Bug 171567 - window.customElements should be associated with each Window
Summary: window.customElements should be associated with each Window
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: DOM (show other bugs)
Version: Safari Technology Preview
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL: https://wpt.fyi/results/custom-elemen...
Keywords: InRadar
Depends on:
Blocks: 154907
  Show dependency treegraph
 
Reported: 2017-05-02 13:46 PDT by Domenic Denicola
Modified: 2023-02-07 22:35 PST (History)
13 users (show)

See Also:


Attachments
WIP (6.19 KB, patch)
2023-01-31 22:17 PST, Ryosuke Niwa
ews-feeder: commit-queue-
Details | Formatted Diff | Diff
WIP2 (8.37 KB, patch)
2023-02-06 18:22 PST, Ryosuke Niwa
ews-feeder: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Domenic Denicola 2017-05-02 13:46:52 PDT
Currently it appears to not be, in three ways:

- It gets cleared (set to undefined) when an iframe is removed from the DOM
- It gets reset to a new value on navigation from the initial about:blank, even though the Window stays the same during such a navigation
- It does not get cleared during document.open(). Per spec this is supposed to create a new Window; non-Firefox browsers do not follow this, but they do generally clear Window-associated stuff, and so we should do the same for window.customElements.

Tests at http://w3c-test.org/custom-elements/custom-element-registry/per-global.html
Comment 1 Radar WebKit Bug Importer 2017-05-08 21:20:33 PDT
<rdar://problem/32067854>
Comment 2 Ryosuke Niwa 2018-08-03 01:03:23 PDT
This stems from the fact neither Blink nor WebKit preserves DOMWindow when navigating from about:blank and doesn't replace DOMWindow upon document.open.

This seems quite inconsequential nonetheless.
Comment 3 Domenic Denicola 2018-08-03 07:59:29 PDT
We will likely revert the document.open() tests as part of a general document.open() overhaul led by Timothy Gu (CC'ed), to bring the spec more in line with the simple model used by Chrome and WebKit.

For about:blank, the issue is less clear to me, as I was pretty sure that did preserve Window in all browsers... I'm investigating further and will get back to you.
Comment 4 Ryosuke Niwa 2018-08-03 15:19:33 PDT
Great. Let me know what you decide to do.
Comment 5 Ahmad Saleem 2022-08-19 14:44:30 PDT
Safari Technology Preview 151 is failing on following test from test case in Comment 0:

Navigating from the initial about:blank must not replace window.customElements	

Similarly, Chrome Canary 106 also fail on same, while Firefox Nightly 105 pass all tests. Thanks1
Comment 6 Ryosuke Niwa 2023-01-31 22:17:56 PST
Created attachment 464791 [details]
WIP
Comment 7 Ryosuke Niwa 2023-02-06 18:22:55 PST
Created attachment 464881 [details]
WIP2