Commit 331504cf authored by Kevin McNee's avatar Kevin McNee Committed by Commit Bot

Revert "Define guest view custom elements synchronously"

This reverts commit 5d01e87e.

Reason for revert: Caused regression https://crbug.com/1014385

Original change's description:
> Define guest view custom elements synchronously
> 
> Previously, we've had to wait for readystatechange before defining
> the guest view custom elements because
> 1) there were circular dependencies that would cause errors if we
> tried to perform the definition immediately, and
> 2) the Custom Elements V0 registration context was scoped to the
> document rather than the window, so if we defined the elements
> while the document was still on about:blank, the definition would
> be available on about:blank, but not for the extension.
> 
> Now that the circular dependencies are fixed and guest view is
> migrated to Custom Elements V1 (whose registration context is
> scoped to the window), it is no longer necessary to wait for
> readystatechange.
> 
> We now perform the definition immediately.
> 
> Bug: 810012
> Change-Id: Ib5e8ba6f4e302eaae56c5566765521d64b1a0e15
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1278287
> Commit-Queue: Kevin McNee <mcnee@chromium.org>
> Reviewed-by: James MacLean <wjmaclean@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#700425}

TBR=wjmaclean@chromium.org,mcnee@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 810012, 1014385
Change-Id: Ie43a88bc07036fc392079cc8f2593e28440de104
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863691Reviewed-by: default avatarKevin McNee <mcnee@chromium.org>
Commit-Queue: Kevin McNee <mcnee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#706200}
parent 0e6ce3de
......@@ -15,11 +15,20 @@ var GuestViewInternalNatives = requireNative('guest_view_internal');
var IdGenerator = requireNative('id_generator');
var logging = requireNative('logging');
// Registers the browserplugin and guestview as custom elements.
// Registers the browserplugin and guestview as custom elements once the
// document has loaded.
// |containerElementType| is a GuestViewContainerElement (e.g. WebViewElement)
function registerElement(elementName, containerElementType) {
registerInternalElement($String.toLowerCase(elementName));
registerGuestViewElement(elementName, containerElementType);
var useCapture = true;
window.addEventListener('readystatechange', function listener(event) {
if (document.readyState == 'loading')
return;
registerInternalElement($String.toLowerCase(elementName));
registerGuestViewElement(elementName, containerElementType);
$EventTarget.removeEventListener(window, event.type, listener, useCapture);
}, useCapture);
}
// Registers the browser plugin <object> custom element. |viewType| is the
......
......@@ -40,11 +40,19 @@ function registerGuestViewElement(viewType) {
});
}
for (var viewType of VIEW_TYPES) {
// Register the error-providing custom element only for those view types
// that have not already been registered. Since this module is always loaded
// last, all the view types that are available (i.e. have the proper
// permissions) will have already been registered on |window|.
if (!$Object.hasOwnProperty(window, viewType))
registerGuestViewElement(viewType);
}
var useCapture = true;
window.addEventListener('readystatechange', function listener(event) {
if (document.readyState == 'loading')
return;
for (var viewType of VIEW_TYPES) {
// Register the error-providing custom element only for those view types
// that have not already been registered. Since this module is always loaded
// last, all the view types that are available (i.e. have the proper
// permissions) will have already been registered on |window|.
if (!$Object.hasOwnProperty(window, viewType))
registerGuestViewElement(viewType);
}
$EventTarget.removeEventListener(window, event.type, listener, useCapture);
}, useCapture);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment