New issue
Advanced search Search tips

Issue 867831 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 21
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug

Blocking:
issue 660759
issue 810012



Sign in to add a comment

Chrome apps tags should use Custom Elements V1 as its infrastructure

Project Member Reported by kochi@chromium.org, Jul 26

Issue description

Some Chrome apps tags (<appview>, <extensionoptions>, <extensionview>,
<webview> etc.) uses Custom Elements V0 as its implementation infra,
but as V0 code will go away, we should migrate to Custom Elements
V1 infra.

 
I found V0CustomElementsRegisterEmbedderElement counts the usage
https://www.chromestatus.com/metrics/feature/timeline/popularity/1876 (~0.3%)

and the number is exclusive to the counter for document.registerElement()
https://www.chromestatus.com/metrics/feature/timeline/popularity/457 (~5.0%)

Comment 2 Deleted

Status: Assigned (was: Available)
Labels: OS-Chrome OS-Linux OS-Mac OS-Windows
Status: Started (was: Assigned)
When I tried creating a trivial element via window.customElements.define, I got the following error:
Uncaught DOMException: Failed to execute 'define' on 'CustomElementRegistry': "webview" is not a valid custom element name

It looks like we'll need something similar to the v0 RegisterElement where if we call it via a custom binding, then it can use whitelisted internal names.
Blocking: 810012
Project Member

Comment 6 by bugdroid1@chromium.org, Sep 6

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

commit 1494a08ed61f06f71818f705c6ea3f66c047c6b8
Author: Kevin McNee <mcnee@chromium.org>
Date: Thu Sep 06 20:08:56 2018

Separate guest view custom elements from their private implementations

Currently, the definition of public custom elements for guest view
containers is not clearly separated from the private implementation.

We now have the custom element (e.g. WebViewElement) as a distinct
entity which is backed by the private implementation
(e.g. WebViewImpl).

Bug:  793935 ,  867831 
Change-Id: Iaee57a53ff727f27a7fab5601b54face9335faca
Reviewed-on: https://chromium-review.googlesource.com/1187072
Reviewed-by: Paul Meyer <paulmeyer@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589259}
[modify] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/BUILD.gn
[modify] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/dispatcher.cc
[modify] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/extensions_renderer_resources.grd
[modify] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/app_view/app_view.js
[add] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/app_view/app_view_element.js
[modify] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/extension_options/extension_options.js
[add] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/extension_options/extension_options_element.js
[modify] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/extension_view/extension_view.js
[add] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/extension_view/extension_view_element.js
[modify] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/guest_view_container.js
[add] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/guest_view_container_element.js
[modify] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/guest_view_deny.js
[modify] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/web_view/web_view.js
[add] https://crrev.com/1494a08ed61f06f71818f705c6ea3f66c047c6b8/extensions/renderer/resources/guest_view/web_view/web_view_element.js

Project Member

Comment 7 by bugdroid1@chromium.org, Sep 10

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

commit 8f204c40e8eb3767bfd83a6925acbaf9bdda1089
Author: Kevin McNee <mcnee@chromium.org>
Date: Mon Sep 10 15:10:24 2018

Move <webview> public api implementation to the element's prototype

Currently, all of the <webview> public api methods forward to
WebViewImpl. We now implement methods that don't involve internal
details of WebViewImpl on the <webview> element itself. For methods
that do require details of WebViewImpl or WebViewInternal, we forward
the calls as needed.

Bug:  793935 ,  867831 
Change-Id: Iad6a1a1b27c9351e7f7edeaa246b26e799be697d
Reviewed-on: https://chromium-review.googlesource.com/1188868
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Reviewed-by: Paul Meyer <paulmeyer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589915}
[modify] https://crrev.com/8f204c40e8eb3767bfd83a6925acbaf9bdda1089/extensions/renderer/resources/guest_view/app_view/app_view_element.js
[modify] https://crrev.com/8f204c40e8eb3767bfd83a6925acbaf9bdda1089/extensions/renderer/resources/guest_view/extension_view/extension_view.js
[modify] https://crrev.com/8f204c40e8eb3767bfd83a6925acbaf9bdda1089/extensions/renderer/resources/guest_view/extension_view/extension_view_element.js
[modify] https://crrev.com/8f204c40e8eb3767bfd83a6925acbaf9bdda1089/extensions/renderer/resources/guest_view/guest_view_container_element.js
[modify] https://crrev.com/8f204c40e8eb3767bfd83a6925acbaf9bdda1089/extensions/renderer/resources/guest_view/web_view/web_view.js
[modify] https://crrev.com/8f204c40e8eb3767bfd83a6925acbaf9bdda1089/extensions/renderer/resources/guest_view/web_view/web_view_element.js

Project Member

Comment 8 by bugdroid1@chromium.org, Sep 17

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

commit 041f0cd554ad80ca012fb352075747dc46ce6c74
Author: Kevin McNee <mcnee@chromium.org>
Date: Mon Sep 17 16:12:57 2018

Allow blink's embedder to use CustomElementRegistry with whitelisted names

Chrome's extension system implements <webview> (and other guest view
elements) using the Custom Elements mechanism. However, "webview" is
not a valid custom element name. The Custom Elements V0 implementation
allows the embedder to use the name anyway. We introduce a similar
whitelist for Custom Elements V1, so that we can migrate <webview>
to V1.

Bug:  867831 
Change-Id: I807725b2867f0661121f86f77803cb0c61150645
Reviewed-on: https://chromium-review.googlesource.com/1214181
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591698}
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/extensions/renderer/document_custom_bindings.h
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/extensions/renderer/guest_view/guest_view_internal_custom_bindings.cc
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/extensions/renderer/guest_view/guest_view_internal_custom_bindings.h
[add] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/WebKit/LayoutTests/custom-elements/embedder-custom-elements-not-exposed.html
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/public/web/DEPS
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/public/web/web_custom_element.h
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/public/web/web_document.h
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/renderer/core/exported/web_custom_element.cc
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/renderer/core/html/custom/custom_element.cc
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/renderer/core/html/custom/custom_element.h
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/renderer/core/html/custom/custom_element_registry.cc
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/renderer/core/html/custom/custom_element_registry_test.cc
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/renderer/core/html/custom/custom_element_test.cc
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/renderer/core/testing/internals.cc
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/renderer/core/testing/internals.h
[modify] https://crrev.com/041f0cd554ad80ca012fb352075747dc46ce6c74/third_party/blink/renderer/core/testing/internals.idl

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 17

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

commit 32ce44fbfb0d9bf50cb09340d452ed56d6c5fc42
Author: Kevin McNee <mcnee@chromium.org>
Date: Mon Sep 17 19:04:10 2018

Migrate GuestView elements to Custom Elements V1

Chrome's extension system implements <webview> (and other guest view
elements) using the Custom Elements mechanism. We've been using an
internal version of document.registerElement which is for the deprecated
Custom Elements V0. We now use window.customElements.define for Custom
Elements V1.

Bug:  867831 
Change-Id: I21d80d2c92ba0c058aeab3426f5dcf4421e018c6
Reviewed-on: https://chromium-review.googlesource.com/1219780
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Reviewed-by: James MacLean <wjmaclean@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591761}
[modify] https://crrev.com/32ce44fbfb0d9bf50cb09340d452ed56d6c5fc42/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
[modify] https://crrev.com/32ce44fbfb0d9bf50cb09340d452ed56d6c5fc42/extensions/renderer/resources/guest_view/app_view/app_view_element.js
[modify] https://crrev.com/32ce44fbfb0d9bf50cb09340d452ed56d6c5fc42/extensions/renderer/resources/guest_view/extension_options/extension_options_element.js
[modify] https://crrev.com/32ce44fbfb0d9bf50cb09340d452ed56d6c5fc42/extensions/renderer/resources/guest_view/extension_view/extension_view_element.js
[modify] https://crrev.com/32ce44fbfb0d9bf50cb09340d452ed56d6c5fc42/extensions/renderer/resources/guest_view/guest_view_container_element.js
[modify] https://crrev.com/32ce44fbfb0d9bf50cb09340d452ed56d6c5fc42/extensions/renderer/resources/guest_view/guest_view_deny.js
[modify] https://crrev.com/32ce44fbfb0d9bf50cb09340d452ed56d6c5fc42/extensions/renderer/resources/guest_view/web_view/web_view_element.js
[modify] https://crrev.com/32ce44fbfb0d9bf50cb09340d452ed56d6c5fc42/extensions/test/data/web_view/apitest/main.js

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 20

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

commit 4b3d013f633b6dfb8e4a61eb34d3531cda79ec71
Author: Kevin McNee <mcnee@chromium.org>
Date: Thu Sep 20 15:46:07 2018

Remove embedder element registration from Custom Elements V0

The embedder has been migrated to Custom Elements V1, so there is no
longer any need for Custom Elements V0 to register elements with
non-standard names.

Bug:  867831 
Change-Id: I96a48fcf8560e08c8286081b844be93a3a630159
Reviewed-on: https://chromium-review.googlesource.com/1220036
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: Istiaque Ahmed <lazyboy@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592814}
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/extensions/renderer/BUILD.gn
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/extensions/renderer/dispatcher.cc
[delete] https://crrev.com/e061f0d0789ebfe1eb68265ac3957c78353b1a2f/extensions/renderer/document_custom_bindings.cc
[delete] https://crrev.com/e061f0d0789ebfe1eb68265ac3957c78353b1a2f/extensions/renderer/document_custom_bindings.h
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/public/platform/web_feature.mojom
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/public/web/web_document.h
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/renderer/core/dom/document.cc
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/renderer/core/dom/document.h
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/renderer/core/exported/web_custom_element.cc
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/renderer/core/exported/web_document.cc
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/renderer/core/html/custom/v0_custom_element.cc
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/renderer/core/html/custom/v0_custom_element.h
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/renderer/core/html/custom/v0_custom_element_registration_context.cc
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/renderer/core/html/custom/v0_custom_element_registration_context.h
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/renderer/core/html/custom/v0_custom_element_registry.cc
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/third_party/blink/renderer/core/html/custom/v0_custom_element_registry.h
[modify] https://crrev.com/4b3d013f633b6dfb8e4a61eb34d3531cda79ec71/tools/metrics/histograms/enums.xml

Status: Fixed (was: Started)

Sign in to add a comment