New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 660759 link

Starred by 13 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 1
Type: Task


Sign in to add a comment

Deprecate and remove Custom Elements V0

Project Member Reported by dominicc@chromium.org, Oct 31 2016

Issue description

Custom elements are part of the HTML spec now, but the API and semantics are different to the early draft Chrome implemented. We should investigate deprecating and removing the old implementation.
 
Cc: hayato@chromium.org
 Issue 690604  has been merged into this issue.
Blocking: 674593
Cc: foolip@chromium.org
 Issue 701441  has been merged into this issue.
Status: Started (was: Assigned)
 Issue 726628  has been merged into this issue.
Labels: Hotlist-Interop
I've created a negative test for this in https://github.com/w3c/web-platform-tests/pull/7580

At https://webengineshackfest.org/ I've also learned that YouTube sends code using document.registerElement if the UA identifies as Chrome.

Is there a roadmap doc for how Custom Elements v0 will get deprecated and removed? Is it blocked on removing Shadow DOM v0?
hayato@, will bugs assigned to dominicc@ be mass-reassigned, or should I make them available when I come across them? (Also, hi Dominic!)
Cc: mike.cat...@gmail.com
Historical tests (written by me after poking by mcatanzaro at Igalia) for this were imported from wpt in https://chromium-review.googlesource.com/c/chromium/src/+/701697
Owner: ----
Status: Available (was: Started)
Bulk edit bugs owned by dominicc@

Comment 13 by tkent@chromium.org, Apr 23 2018

Cc: tkent@chromium.org kochi@chromium.org
 Issue 835725  has been merged into this issue.
Project Member

Comment 14 by bugdroid1@chromium.org, Apr 23 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/61bbfaf35be2778156c6db45bb16f0fe99b829ae

commit 61bbfaf35be2778156c6db45bb16f0fe99b829ae
Author: Takayoshi Kochi <kochi@chromium.org>
Date: Mon Apr 23 08:34:21 2018

Add "CustomElementsV0" runtime flag

This is to disable "document.registerElement" custom element v0
API for experimenting how the site is compatible without custom
element v0 features.

Bug: 660759
Change-Id: Iaf8ac0b1c6512696a4e5539ecc71eaad4f206d32
Reviewed-on: https://chromium-review.googlesource.com/1023752
Commit-Queue: Takayoshi Kochi <kochi@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552653}
[modify] https://crrev.com/61bbfaf35be2778156c6db45bb16f0fe99b829ae/third_party/blink/renderer/core/dom/document.idl
[modify] https://crrev.com/61bbfaf35be2778156c6db45bb16f0fe99b829ae/third_party/blink/renderer/platform/runtime_enabled_features.json5

Comment 15 by kochi@chromium.org, May 15 2018

Blockedon: 843080

Comment 16 by kochi@chromium.org, May 31 2018

Cc: dominicc@chromium.org
 Issue 658284  has been merged into this issue.
Project Member

Comment 17 by bugdroid1@chromium.org, Jun 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4f255e036ad93024c2a1ccd983381b9f56ea9c6e

commit 4f255e036ad93024c2a1ccd983381b9f56ea9c6e
Author: Takayoshi Kochi <kochi@chromium.org>
Date: Tue Jun 05 07:55:03 2018

Count Polymer V1/V2 usage via UMA

To get more realistic number of users that are affected by
Custom Element v0 deprecation, we would like to exclude numbers
coming from Polymer v1 users, because they can just switch
to polyfill without any developer effort.

Also this CL adds Polymer V2 detection so that it can make
it easier to estimate the effect of HTML Imports deprecation.

Bug: 660759, 766694
Change-Id: I61605b854441973aa892932ac33cf781818ae14f
Reviewed-on: https://chromium-review.googlesource.com/1078591
Commit-Queue: Takayoshi Kochi <kochi@chromium.org>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564397}
[modify] https://crrev.com/4f255e036ad93024c2a1ccd983381b9f56ea9c6e/third_party/blink/public/platform/web_feature.mojom
[modify] https://crrev.com/4f255e036ad93024c2a1ccd983381b9f56ea9c6e/third_party/blink/renderer/core/dom/document.cc
[modify] https://crrev.com/4f255e036ad93024c2a1ccd983381b9f56ea9c6e/third_party/blink/renderer/core/html/custom/custom_element_registry.cc
[modify] https://crrev.com/4f255e036ad93024c2a1ccd983381b9f56ea9c6e/tools/metrics/histograms/enums.xml

Comment 18 by tkent@chromium.org, Jun 12 2018

Labels: -Type-Bug Type-Task
Blockedon: 867831
Project Member

Comment 20 by bugdroid1@chromium.org, Aug 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8a68179ccad4e849ff410e5269b1aa054296ee20

commit 8a68179ccad4e849ff410e5269b1aa054296ee20
Author: Yoichi Osato <yoichio@chromium.org>
Date: Thu Aug 30 09:33:54 2018

Show Deprecation message for Custom Element V0.

This patch marks it removed at M73.
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/h-JwMiPUnuU/sl79aLoLBQAJ

Bug: 660759
Change-Id: I868df2c6b68ab3334490a392074dd702e905532a
Reviewed-on: https://chromium-review.googlesource.com/1192864
Commit-Queue: Yoichi Osato <yoichio@chromium.org>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587495}
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/css/invalidation/unresolved-pseudo-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/DOMException/max-recursion-depth-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/HTMLTemplateElement/import-template-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/callback-timing-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/constructor-calls-created-synchronously-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/document-register-basic-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/document-register-namespace-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/document-register-reentrant-null-constructor-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/document-register-reentrant-returning-fake-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/document-register-reentrant-throwing-constructor-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/document-register-type-extensions-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/element-type-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/element-upgrade-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/exception-from-constructor-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/frameElement-crash-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/isolated-world-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/lifecycle-created-createElement-recursion-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/lifecycle-created-createElement-reentrancy-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/lifecycle-created-creation-api-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/lifecycle-created-innerHTML-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/lifecycle-created-parser-script-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/lifecycle-created-paste-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/prerender-insert-after-stop-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/registration-context-delete-during-attribute-changed-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/registration-context-delete-during-attribute-changed-retrieval-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/registration-context-delete-during-callback-recursion-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/registration-context-delete-during-register-base-constructor-retrieval-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/registration-context-delete-during-register-created-retrieval-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/registration-context-delete-during-register-extends-retrieval-and-throw-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/registration-context-delete-during-register-extends-retrieval-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/registration-context-delete-during-register-prototype-retrieval-and-throw-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/registration-context-delete-during-register-prototype-retrieval-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/registration-context-delete-during-upgrade-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/reparent-unwrapped-custom-element-crash-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/svg-use-shadow-tree-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/unresolved-pseudoclass-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/upgrade-candidate-adopt-crash-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/custom/upgrade-candidate-remove-crash-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/dom/shadow/svg-style-in-shadow-tree-crash-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/html/imports/import-custom-element-abort-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/html/imports/import-normalize-resolve-1-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/html/imports/import-normalize-resolve-2-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/html/imports/import-normalize-resolve-3-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/html/imports/import-normalize-resolve-4-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/fast/html/imports/import-normalize-resolve-5-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-log-custom-elements-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/http/tests/devtools/sources/debugger-ui/custom-element-lifecycle-events-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/WebKit/LayoutTests/http/tests/htmlimports/import-upgrade-iframe-expected.txt
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/blink/renderer/core/dom/document.idl
[modify] https://crrev.com/8a68179ccad4e849ff410e5269b1aa054296ee20/third_party/blink/renderer/core/frame/deprecation.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Sep 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e57a8b12a89bc6f38a09fa60c365f80e268c7c5e

commit e57a8b12a89bc6f38a09fa60c365f80e268c7c5e
Author: Kent Tamura <tkent@chromium.org>
Date: Fri Sep 28 07:44:49 2018

Deprecate :unresolved pseudo selector.

:unresolved selector is a part of Custom Elements V0, and should be
removed with document.registerElement().

This is a leftover of http://crrev.com/587495.
Intent to Deprecate and Remove:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/h-JwMiPUnuU/sl79aLoLBQAJ

This CL also fixes an issue of CSSSelectorParser::
RecordUsageAndDeprecations(). It didn't show a deprecation message if
the function was called with style_sheet_==nullptr, then was called with
a valid style_sheet_.

Change-Id: I5b1b16c722da7bc85fe24a63432e0805fbbed087
Bug: 660759,  889336 
Reviewed-on: https://chromium-review.googlesource.com/1250345
Reviewed-by: Yoichi Osato <yoichio@chromium.org>
Commit-Queue: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595012}
[modify] https://crrev.com/e57a8b12a89bc6f38a09fa60c365f80e268c7c5e/third_party/WebKit/LayoutTests/fast/css/invalidation/unresolved-pseudo-expected.txt
[modify] https://crrev.com/e57a8b12a89bc6f38a09fa60c365f80e268c7c5e/third_party/WebKit/LayoutTests/fast/dom/custom/element-upgrade-expected.txt
[modify] https://crrev.com/e57a8b12a89bc6f38a09fa60c365f80e268c7c5e/third_party/WebKit/LayoutTests/fast/dom/custom/unresolved-pseudoclass-expected.txt
[modify] https://crrev.com/e57a8b12a89bc6f38a09fa60c365f80e268c7c5e/third_party/WebKit/LayoutTests/webexposed/custom-elements-expected.txt
[modify] https://crrev.com/e57a8b12a89bc6f38a09fa60c365f80e268c7c5e/third_party/blink/renderer/core/css/parser/css_selector_parser.cc
[modify] https://crrev.com/e57a8b12a89bc6f38a09fa60c365f80e268c7c5e/third_party/blink/renderer/core/frame/deprecation.cc

Owner: yoichio@chromium.org
Status: Started (was: Available)
Summary: Deprecate Custom Elements V0 (was: Deprecate and remove document.registerElement-style custom elements)
Project Member

Comment 24 by bugdroid1@chromium.org, Dec 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/81a6c4210d64732b7eefbc7fa8703e7ae1b90630

commit 81a6c4210d64732b7eefbc7fa8703e7ae1b90630
Author: Yoichi Osato <yoichio@chromium.org>
Date: Wed Dec 05 01:43:22 2018

Enable origin trial for Custom Elements V0.

This patch makes runtime-enabled feature CustomElementsV0 origin trial feature
so that web author use the feature with a OT token on
“chrome --disable-blink-features=CustomElementsV0”.

This patch doesn't throttle any usage of the feature.
I will turn "status: "stable"" to "test" for actual removal later.

Intent to deprecate and remove:
https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/h-JwMiPUnuU/sl79aLoLBQAJ

Test:
1. Create test token by:
python tools\origin_trials\generate_token.py http://127.0.0.1:8000 WebComponentsV0
2. Run built chrome with the public key:
./chrome.exe --disable-blink-features=CustomElementsV0 --origin-trial-public-key=dRCs+TocuKkocNKa0AtZ4awrt9XKH2SQCI6o4FY6BNA=
3. Then load a page using the generated token: <meta http-equiv="origin-trial" content="<token>">

Bug: 660759
Change-Id: Ibbda63ecb0a5ec85f8fe09883a8bb9ed24272a63
Reviewed-on: https://chromium-review.googlesource.com/c/1360470
Reviewed-by: Ian Clelland <iclelland@chromium.org>
Reviewed-by: Hayato Ito <hayato@chromium.org>
Commit-Queue: Yoichi Osato <yoichio@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613804}
[modify] https://crrev.com/81a6c4210d64732b7eefbc7fa8703e7ae1b90630/third_party/blink/renderer/core/dom/document.idl
[modify] https://crrev.com/81a6c4210d64732b7eefbc7fa8703e7ae1b90630/third_party/blink/renderer/platform/runtime_enabled_features.json5

Blocking: 911943

Comment 26 by yoichio@chromium.org, Yesterday (46 hours ago)

Labels: -Pri-3 M-74 Pri-1

Comment 27 by yoichio@chromium.org, Yesterday (28 hours ago)

Summary: Deprecate and remove Custom Elements V0 (was: Deprecate Custom Elements V0)

Comment 28 by yoichio@chromium.org, Today (116 minutes ago)

Blocking: 924855

Comment 29 by yoichio@chromium.org, Today (32 minutes ago)

Blockedon: 924873

Sign in to add a comment