Create only one compartment for each script thread (agent)#28536
Merged
bors-servo merged 3 commits intoservo:masterfrom Jul 9, 2021
Merged
Create only one compartment for each script thread (agent)#28536bors-servo merged 3 commits intoservo:masterfrom
bors-servo merged 3 commits intoservo:masterfrom
Conversation
Documents in the same agent[1] can share and exchange JS and DOM objects freely, so putting them in separate compartments would require almost every instance of `Dom` to be able to handle cross-compartment references. [1]: https://html.spec.whatwg.org/multipage/webappapis.html#integration-with-the-javascript-agent-formalism
|
Heads up! This PR modifies the following files:
|
5 tasks
Member
|
Thinking through whether this logic makes sense: unlike gecko, which has a single JS runtime in a process for all origins, servo has one JS runtime per effective top-level domain. This means that all the compartments in a runtime should be shareable, so we don't need any checks for same-origin when choosing a compartment to share. @bors-servo r+ |
Contributor
|
📌 Commit d597264 has been approved by |
Contributor
bors-servo
added a commit
that referenced
this pull request
Jul 8, 2021
Create only one compartment for each script thread (agent) Documents in the same [agent][1] can share and exchange JS and DOM objects freely, so putting them in separate compartments would require almost every instance of `Dom` to be capable of handling cross-compartment references. [1]: https://html.spec.whatwg.org/multipage/webappapis.html#integration-with-the-javascript-agent-formalism --- - [x] `./mach build -d` does not report any errors - [ ] `./mach test-tidy` does not report any errors - [ ] These changes fix #___ (GitHub issue number if applicable) --- - [ ] There are tests for these changes OR - [x] These changes do not require tests because I think there's already a wide test coverage for same-origin-domain JS object passing, albeit this requires Servo to be built with `--debug-mozjs` for the errors to be (reliably) observable
Contributor
|
💔 Test failed - checks-github |
Member
|
Nice, there are a bunch of new passing tests! |
Member
|
@bors-servo r+ |
Contributor
|
📌 Commit 7cda260 has been approved by |
Contributor
Contributor
|
☀️ Test successful - checks-github, status-taskcluster |
23 tasks
bors-servo
added a commit
that referenced
this pull request
Mar 23, 2023
HTML #named-access-on-the-window-object This patch implements [named access on the window object](https://html.spec.whatwg.org/#named-access-on-the-window-object) based on @pylbrecht’s and @yvt’s previous work (see also #27952, #25562, #21869, #19904). That work makes 130 tests pass, and I’ve made some additional changes to make [the test for the feature itself](https://wpt.live/webidl/ecmascript-binding/window-named-properties-object.html) pass too, but I haven’t worked with mozjs before, so I have no idea if I’ve gone about my changes the Right Way. In particular, this patch: * [x] applies @pylbrecht’s patch (#27952) * [x] resolves conflicts related to #29079 and #28546 (5ae0ca4) * [x] applies @yvt’s patch to the segfault in getPrototypeIfOrdinary (1e24ffd) * [x] reverts the change introducing Untransplantable (76dc35a), since #28534 was abandoned in favour of #28536 * [x] triages the unexpected WPT results, updating expectations as needed (see below) * [x] fixes the failures in /webidl/ecmascript-binding/window-named-properties-object.html (3844f69) * [x] fixes the failures in the [[GetOwnProperty]] subtest (75c24e9) * [x] fixes the failures in the [[DefineOwnProperty]] subtest (e4e7a14) * [x] fixes the failures in the [[HasProperty]] subtest (75c24e9) * [x] fixes the failures in the [[Get]] subtest (4bafb27) * [x] fixes the failures in the [[Set]] (direct) subtest (e4e7a14) * [x] fixes the failures in the [[Delete]] subtest (4bafb27) * [x] fixes the failures in the [[OwnPropertyKeys]] subtest (afcd24a) * [x] resolves the todos and fixmes * [x] Document: handle exposed objects ×3 (ed3e37b) * [x] Window::NamedGetter: document.get_elements_with_id() (618ef57) * [x] get_own_property_descriptor: check for interactions with indexed access (b906fae) * [x] create trap: pass proper classp (618ef57) <details><summary>131× tests that now pass</summary> * **/webidl/ecmascript-binding/window-named-properties-object.html** *directly relevant to this patch* * **/FileAPI/Blob-methods-from-detached-frame.html** done #29450 #29451 * **/cors/script-304.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html** * **/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html** * **/css/CSS2/floats/computed-float-position-absolute.html** * **/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html** * **/css/CSS2/normal-flow/block-in-inline-insert-018.html** * **/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html** * **/css/CSS2/positioning/abspos-change-in-inline-block.html** * **/css/CSS2/positioning/abspos-width-change-inline-container-001.html** * **/css/CSS2/positioning/detach-abspos-before-layout.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html** * **/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html** * **/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html** * **/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html** * **/css/CSS2/stacking-context/opacity-transition-change-parent-stacking-context.html** * **/css/css-animations/animation-base-response-002.html** * **/css/css-animations/style-animation-parsing.html** * **/css/css-backgrounds/background-clip-color-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html** * **/css/css-backgrounds/background-image-none-gradient-repaint.html** * **/css/css-backgrounds/border-radius-dynamic-from-no-radius.html** * **/css/css-backgrounds/child-move-reveals-parent-background.html** * **/css/css-color/filters-under-will-change-opacity.html** * **/css/css-flexbox/anonymous-flex-item-001.html** * **/css/css-flexbox/anonymous-flex-item-003.html** * **/css/css-flexbox/dynamic-bsize-change.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-016.html** * **/css/cssom/at-namespace.html** * **/css/cssom/computed-style-002.html** * **/css/cssom/getComputedStyle-display-none-002.html** * **/css/cssom/getComputedStyle-display-none-003.html** * **/css/cssom/preferred-stylesheet-reversed-order.html** * **/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html** * **/css/cssom-view/pt-to-px-width.html** * **/css/cssom-view/scroll-back-to-initial-position.html** * **/css/css-text-decor/text-decoration-color-recalc-002.html** * **/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html** * **/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html** * **/css/css-text/text-indent/percentage-value-intrinsic-size.html** * **/css/css-text/white-space/display-contents-remove-whitespace-change.html** * **/css/css-text/white-space/white-space-empty-text-sibling.html** * **/css/css-transforms/change-perspective-property.html** * **/css/css-transforms/change-scale-wide-range.html** * **/css/css-transforms/change-transform-origin-property.html** * **/css/css-transforms/dynamic-fixed-pos-cb-change.html** * **/css/css-transforms/individual-transform/change-rotate-property.html** * **/css/css-transforms/individual-transform/change-scale-property.html** * **/css/css-transforms/paint-order-with-transform-change.html** * **/css/css-transforms/size-change-under-backface-visibility-hidden.html** * **/css/css-transforms/subpixel-transform-changes-001.html** * **/css/css-transforms/subpixel-transform-changes-002.html** * **/css/css-transforms/subpixel-transform-changes-003.html** * **/css/css-transforms/subpixel-transform-changes-004.html** * **/css/css-transitions/transition-reparented.html** * **/css/css-ui/historical/moz-user-modify-01.html** * **/css/css-ui/historical/user-modify-01.html** * **/css/css-ui/historical/webkit-user-modify-01.html** * **/css/css-ui/resize-change-margin.html** * **/css/css-ui/text-overflow-change-color.html** * **/css/css-ui/text-overflow-ellipsis-width-001.html** * **/css/css-values/animations/line-height-lh-transition.html** * **/css/css-values/calc-nesting.html** * **/css/css-values/update-subpixel-rem-unit.html** * **/css/css-values/viewport-units-modify.html** * **/css/css-variables/css-variable-change-style-001.html** * **/css/css-variables/css-variable-change-style-002.html** * **/css/css-variables/variable-cycles.html** * **/css/selectors/attribute-selectors/style-attribute-selector.html** * **/css/selectors/i18n/lang-pseudo-class-disconnected.html** * **/css/selectors/invalidation/attribute.html** * **/css/selectors/invalidation/class-id-attr.html** * **/css/selectors/invalidation/defined.html** * **/css/selectors/invalidation/sheet-going-away-001.html** * **/css/selectors/invalidation/sibling.html** * **/css/selectors/missing-right-token.html** * **/css/selectors/not-complex.html** * **/css/selectors/not-specificity.html** * **/css/selectors/nth-of-type-namespace.html** * **/css/selectors/selectors-case-sensitive-001.html** * **/css/selectors/visited-inheritance.html** * **/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html** * **/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html** * **/dom/nodes/remove-and-adopt-thcrash.html** * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html** * **/html/browsers/history/the-history-interface/history_back_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_go_cross_realm_method.html** * **/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html** * **/html/dom/elements/images/bypass-cache-revalidation.html** * **/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html** * **/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html** * **/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe-in-multicol.sub.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html** * **/html/rendering/replaced-elements/embedded-content/tall-cross-domain-iframe-in-scrolled.sub.html** * **/html/rendering/widgets/the-select-element/select-invalidation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html** * **/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-change.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html** * **/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html** * **/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html** * **/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html** * **/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html** * **/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html** * **/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html** * **/html/semantics/forms/the-input-element/radio-morphed.html** * **/html/semantics/forms/the-progress-element/progress.html** * **/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html** * **/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html** * **/html/syntax/serializing-html-fragments/initial-linefeed-pre.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html** * **/quirks/unitless-length/excluded-properties-001.html** * **/quirks/unitless-length/excluded-properties-003.html** * **/selection/caret/empty-elements.html** * **/selection/contenteditable/cefalse-on-boundaries.html** * **/selection/textcontrols/onselectionchange-content-attribute.html** </details> <details><summary>94× tests that improve but still fail in a way that’s clearly the subject of the test</summary> * **/css/css-animations/animation-base-response-001.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-visited.html** * **/css/css-backgrounds/inheritance.sub.html** * **/css/css-backgrounds/local-attachment-content-box-scroll.html** * **/css/css-color/canvas-change-opacity.html** * **/css/css-color/color-initial-canvastext.html** * **/css/css-flexbox/flex-aspect-ratio-img-column-010.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-004.html** * **/css/css-fonts/parsing/font-face-src-format.html** getter works but insertRule does nothing * **/css/css-fonts/parsing/font-face-src-list.html** as above * **/css/css-fonts/parsing/font-face-src-local.html** as above, but also delayed length change? * **/css/css-fonts/parsing/font-face-src-tech.html** as above * **/css/css-text/white-space/trailing-space-before-br-001.html** * **/css/css-transforms/3d-rendering-context-behavior.html** failures are subject of test, but also blank page? * **/css/css-transforms/individual-transform/change-translate-property.html** * **/css/css-transforms/preserve-3d-flat-grouping-properties.html** * **/css/css-transforms/transforms-support-calc.html** * **/css/css-transitions/inherit-height-transition.html** * **/css/css-ui/inheritance.html** * **/css/css-ui/parsing/outline-width-computed.html** failures are subject of test; https://drafts.csswg.org/css-values-4/#snap-a-length-as-a-border-width * **/css/css-values/lh-unit-003.html** * **/css/css-values/viewport-units-compute.html** * **/css/css-values/viewport-units-keyframes.html** * **/css/css-values/viewport-units-media-queries.html** * **/css/css-values/viewport-units-writing-mode.html** * **/css/cssom-view/elementsFromPoint-table.html** * **/css/cssom-view/scroll-behavior-default-css.html** * **/css/cssom-view/scroll-behavior-element.html** * **/css/cssom-view/scroll-behavior-main-frame-root.html** * **/css/cssom-view/scroll-behavior-main-frame-window.html** * **/css/cssom-view/scroll-behavior-smooth-navigation.html** * **/css/cssom-view/scroll-behavior-subframe-root.html** * **/css/cssom/computed-style-003.html** * **/css/cssom/computed-style-004.html** * **/css/cssom/font-variant-shorthand-serialization.html** * **/css/selectors/dir-selector-auto.html** * **/css/selectors/has-argument-with-explicit-scope.html** * **/css/selectors/has-basic.html** * **/css/selectors/has-relative-argument.html** * **/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html** * **/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html** * **/css/selectors/invalidation/dir-pseudo-class-in-has.html** * **/css/selectors/invalidation/empty-pseudo-in-has.html** * **/css/selectors/invalidation/has-in-adjacent-position.html** * **/css/selectors/invalidation/has-in-ancestor-position.html** * **/css/selectors/invalidation/has-in-parent-position.html** * **/css/selectors/invalidation/has-in-sibling-position.html** * **/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html** * **/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html** * **/css/selectors/invalidation/has-sibling.html** * **/css/selectors/invalidation/has-with-not.html** * **/css/selectors/invalidation/has-with-pseudo-class.html** * **/css/selectors/invalidation/input-pseudo-classes-in-has.html** * **/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/lang-pseudo-class-in-has.html** * **/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html** * **/css/selectors/is-where-basic.html** * **/css/selectors/is-where-not.html** * **/html/rendering/non-replaced-elements/tables/form-in-tables.html** * /html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update- * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html** * **/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html** * **/html/semantics/popovers/popover-stacking.html** * **/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html** * **/resource-timing/resource-reload-TAO.html** * **/selection/bidi/modify.tentative.html** * **/selection/contenteditable/modify.tentative.html** * **/selection/textcontrols/selectionchange.html** * **/css/CSS2/normal-flow/block-in-inline-client-rects-001.html** * **/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html** * **/css/css-animations/computed-style-animation-parsing.html** * **/css/css-variables/variables-substitute-guaranteed-invalid.html** * **/css/cssom-view/elementsFromPoint-simple.html** * **/css/cssom/CSSStyleSheet-modify-after-removal.html** * **/css/cssom/getComputedStyle-display-none-001.html** * **/css/selectors/focus-visible-script-focus-001.html** * **/css/selectors/has-specificity.html** * **/css/selectors/invalidation/is.html** * **/css/selectors/invalidation/not-002.html** * **/dom/events/EventListener-handleEvent-cross-realm.html** * **/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html** * **/html/browsers/the-window-object/window-properties.https.html** * **/html/browsers/the-window-object/window-prototype-chain.html** * **/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html** * **/html/dom/aria-element-reflection.html** * **/html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update-with-border-object-fit.html** * **/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html** * **/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html** * **/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html** * **/quirks/unitless-length/excluded-properties-002.html** </details> <details><summary>22× tests with failures that looked interesting</summary> * 1× CRASH [expected ...] * **/css/css-fonts/crash-large-grapheme-cluster.html** crash is subject of test * 6× FAIL [expected PASS] /... (reftest) * **/css/css-flexbox/anonymous-flex-item-005.html** old pass was spurious * **/css/css-flexbox/anonymous-flex-item-006.html** old pass was spurious * **/css/css-text-decor/text-decoration-line-recalc.html** old pass was spurious; ‘text-decoration’ shorthand unimplemented * **/css/css-ui/appearance-auto-non-html-namespace-001.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html** old pass was spurious * 13× TIMEOUT [expected ...] * **/css/css-fonts/font-size-monospace-adjust.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/css/cssom-view/background-change-during-smooth-scroll.html** timeout is subject of test * **/css/selectors/invalidation/has-complexity.html** timeout is subject of test * **/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html** timeout is subject of test; :has() unimplemented * **/fetch/stale-while-revalidate/stale-image.html** timeout is subject of test * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html** timeout is subject of test * **/html/rendering/widgets/appearance/appearance-animation-001.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-animation-002.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-transition-001.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-002.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-003.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/resource-timing/opaque-origin.html** timeout is subject of test * **/selection/textcontrols/selectionchange-bubble.html** timeout is subject of test * **/webidl/ecmascript-binding/invalid-this-value-cross-realm.html** ‘HTMLDocument’ unimplemented </details> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #27949 (GitHub issue number if applicable) <!-- Either: --> - [x] There are tests for these changes OR - [ ] These changes do not require tests because ___
bors-servo
added a commit
that referenced
this pull request
Mar 27, 2023
HTML #named-access-on-the-window-object This patch implements [named access on the window object](https://html.spec.whatwg.org/#named-access-on-the-window-object) based on @pylbrecht’s and @yvt’s previous work (see also #27952, #25562, #21869, #19904). That work makes 130 tests pass, and I’ve made some additional changes to make [the test for the feature itself](https://wpt.live/webidl/ecmascript-binding/window-named-properties-object.html) pass too, but I haven’t worked with mozjs before, so I have no idea if I’ve gone about my changes the Right Way. In particular, this patch: * [x] applies @pylbrecht’s patch (#27952) * [x] resolves conflicts related to #29079 and #28546 (5ae0ca4) * [x] applies @yvt’s patch to the segfault in getPrototypeIfOrdinary (1e24ffd) * [x] reverts the change introducing Untransplantable (76dc35a), since #28534 was abandoned in favour of #28536 * [x] triages the unexpected WPT results, updating expectations as needed (see below) * [x] fixes the failures in /webidl/ecmascript-binding/window-named-properties-object.html (3844f69) * [x] fixes the failures in the [[GetOwnProperty]] subtest (75c24e9) * [x] fixes the failures in the [[DefineOwnProperty]] subtest (e4e7a14) * [x] fixes the failures in the [[HasProperty]] subtest (75c24e9) * [x] fixes the failures in the [[Get]] subtest (4bafb27) * [x] fixes the failures in the [[Set]] (direct) subtest (e4e7a14) * [x] fixes the failures in the [[Delete]] subtest (4bafb27) * [x] fixes the failures in the [[OwnPropertyKeys]] subtest (afcd24a) * [x] resolves the todos and fixmes * [x] Document: handle exposed objects ×3 (ed3e37b) * [x] Window::NamedGetter: document.get_elements_with_id() (618ef57) * [x] get_own_property_descriptor: check for interactions with indexed access (b906fae) * [x] create trap: pass proper classp (618ef57) <details><summary>131× tests that now pass</summary> * **/webidl/ecmascript-binding/window-named-properties-object.html** *directly relevant to this patch* * **/FileAPI/Blob-methods-from-detached-frame.html** done #29450 #29451 * **/cors/script-304.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html** * **/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html** * **/css/CSS2/floats/computed-float-position-absolute.html** * **/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html** * **/css/CSS2/normal-flow/block-in-inline-insert-018.html** * **/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html** * **/css/CSS2/positioning/abspos-change-in-inline-block.html** * **/css/CSS2/positioning/abspos-width-change-inline-container-001.html** * **/css/CSS2/positioning/detach-abspos-before-layout.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html** * **/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html** * **/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html** * **/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html** * **/css/CSS2/stacking-context/opacity-transition-change-parent-stacking-context.html** * **/css/css-animations/animation-base-response-002.html** * **/css/css-animations/style-animation-parsing.html** * **/css/css-backgrounds/background-clip-color-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html** * **/css/css-backgrounds/background-image-none-gradient-repaint.html** * **/css/css-backgrounds/border-radius-dynamic-from-no-radius.html** * **/css/css-backgrounds/child-move-reveals-parent-background.html** * **/css/css-color/filters-under-will-change-opacity.html** * **/css/css-flexbox/anonymous-flex-item-001.html** * **/css/css-flexbox/anonymous-flex-item-003.html** * **/css/css-flexbox/dynamic-bsize-change.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-016.html** * **/css/cssom/at-namespace.html** * **/css/cssom/computed-style-002.html** * **/css/cssom/getComputedStyle-display-none-002.html** * **/css/cssom/getComputedStyle-display-none-003.html** * **/css/cssom/preferred-stylesheet-reversed-order.html** * **/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html** * **/css/cssom-view/pt-to-px-width.html** * **/css/cssom-view/scroll-back-to-initial-position.html** * **/css/css-text-decor/text-decoration-color-recalc-002.html** * **/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html** * **/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html** * **/css/css-text/text-indent/percentage-value-intrinsic-size.html** * **/css/css-text/white-space/display-contents-remove-whitespace-change.html** * **/css/css-text/white-space/white-space-empty-text-sibling.html** * **/css/css-transforms/change-perspective-property.html** * **/css/css-transforms/change-scale-wide-range.html** * **/css/css-transforms/change-transform-origin-property.html** * **/css/css-transforms/dynamic-fixed-pos-cb-change.html** * **/css/css-transforms/individual-transform/change-rotate-property.html** * **/css/css-transforms/individual-transform/change-scale-property.html** * **/css/css-transforms/paint-order-with-transform-change.html** * **/css/css-transforms/size-change-under-backface-visibility-hidden.html** * **/css/css-transforms/subpixel-transform-changes-001.html** * **/css/css-transforms/subpixel-transform-changes-002.html** * **/css/css-transforms/subpixel-transform-changes-003.html** * **/css/css-transforms/subpixel-transform-changes-004.html** * **/css/css-transitions/transition-reparented.html** * **/css/css-ui/historical/moz-user-modify-01.html** * **/css/css-ui/historical/user-modify-01.html** * **/css/css-ui/historical/webkit-user-modify-01.html** * **/css/css-ui/resize-change-margin.html** * **/css/css-ui/text-overflow-change-color.html** * **/css/css-ui/text-overflow-ellipsis-width-001.html** * **/css/css-values/animations/line-height-lh-transition.html** * **/css/css-values/calc-nesting.html** * **/css/css-values/update-subpixel-rem-unit.html** * **/css/css-values/viewport-units-modify.html** * **/css/css-variables/css-variable-change-style-001.html** * **/css/css-variables/css-variable-change-style-002.html** * **/css/css-variables/variable-cycles.html** * **/css/selectors/attribute-selectors/style-attribute-selector.html** * **/css/selectors/i18n/lang-pseudo-class-disconnected.html** * **/css/selectors/invalidation/attribute.html** * **/css/selectors/invalidation/class-id-attr.html** * **/css/selectors/invalidation/defined.html** * **/css/selectors/invalidation/sheet-going-away-001.html** * **/css/selectors/invalidation/sibling.html** * **/css/selectors/missing-right-token.html** * **/css/selectors/not-complex.html** * **/css/selectors/not-specificity.html** * **/css/selectors/nth-of-type-namespace.html** * **/css/selectors/selectors-case-sensitive-001.html** * **/css/selectors/visited-inheritance.html** * **/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html** * **/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html** * **/dom/nodes/remove-and-adopt-thcrash.html** * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html** * **/html/browsers/history/the-history-interface/history_back_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_go_cross_realm_method.html** * **/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html** * **/html/dom/elements/images/bypass-cache-revalidation.html** * **/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html** * **/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html** * **/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe-in-multicol.sub.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html** * **/html/rendering/replaced-elements/embedded-content/tall-cross-domain-iframe-in-scrolled.sub.html** * **/html/rendering/widgets/the-select-element/select-invalidation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html** * **/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-change.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html** * **/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html** * **/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html** * **/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html** * **/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html** * **/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html** * **/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html** * **/html/semantics/forms/the-input-element/radio-morphed.html** * **/html/semantics/forms/the-progress-element/progress.html** * **/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html** * **/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html** * **/html/syntax/serializing-html-fragments/initial-linefeed-pre.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html** * **/quirks/unitless-length/excluded-properties-001.html** * **/quirks/unitless-length/excluded-properties-003.html** * **/selection/caret/empty-elements.html** * **/selection/contenteditable/cefalse-on-boundaries.html** * **/selection/textcontrols/onselectionchange-content-attribute.html** </details> <details><summary>94× tests that improve but still fail in a way that’s clearly the subject of the test</summary> * **/css/css-animations/animation-base-response-001.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-visited.html** * **/css/css-backgrounds/inheritance.sub.html** * **/css/css-backgrounds/local-attachment-content-box-scroll.html** * **/css/css-color/canvas-change-opacity.html** * **/css/css-color/color-initial-canvastext.html** * **/css/css-flexbox/flex-aspect-ratio-img-column-010.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-004.html** * **/css/css-fonts/parsing/font-face-src-format.html** getter works but insertRule does nothing * **/css/css-fonts/parsing/font-face-src-list.html** as above * **/css/css-fonts/parsing/font-face-src-local.html** as above, but also delayed length change? * **/css/css-fonts/parsing/font-face-src-tech.html** as above * **/css/css-text/white-space/trailing-space-before-br-001.html** * **/css/css-transforms/3d-rendering-context-behavior.html** failures are subject of test, but also blank page? * **/css/css-transforms/individual-transform/change-translate-property.html** * **/css/css-transforms/preserve-3d-flat-grouping-properties.html** * **/css/css-transforms/transforms-support-calc.html** * **/css/css-transitions/inherit-height-transition.html** * **/css/css-ui/inheritance.html** * **/css/css-ui/parsing/outline-width-computed.html** failures are subject of test; https://drafts.csswg.org/css-values-4/#snap-a-length-as-a-border-width * **/css/css-values/lh-unit-003.html** * **/css/css-values/viewport-units-compute.html** * **/css/css-values/viewport-units-keyframes.html** * **/css/css-values/viewport-units-media-queries.html** * **/css/css-values/viewport-units-writing-mode.html** * **/css/cssom-view/elementsFromPoint-table.html** * **/css/cssom-view/scroll-behavior-default-css.html** * **/css/cssom-view/scroll-behavior-element.html** * **/css/cssom-view/scroll-behavior-main-frame-root.html** * **/css/cssom-view/scroll-behavior-main-frame-window.html** * **/css/cssom-view/scroll-behavior-smooth-navigation.html** * **/css/cssom-view/scroll-behavior-subframe-root.html** * **/css/cssom/computed-style-003.html** * **/css/cssom/computed-style-004.html** * **/css/cssom/font-variant-shorthand-serialization.html** * **/css/selectors/dir-selector-auto.html** * **/css/selectors/has-argument-with-explicit-scope.html** * **/css/selectors/has-basic.html** * **/css/selectors/has-relative-argument.html** * **/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html** * **/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html** * **/css/selectors/invalidation/dir-pseudo-class-in-has.html** * **/css/selectors/invalidation/empty-pseudo-in-has.html** * **/css/selectors/invalidation/has-in-adjacent-position.html** * **/css/selectors/invalidation/has-in-ancestor-position.html** * **/css/selectors/invalidation/has-in-parent-position.html** * **/css/selectors/invalidation/has-in-sibling-position.html** * **/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html** * **/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html** * **/css/selectors/invalidation/has-sibling.html** * **/css/selectors/invalidation/has-with-not.html** * **/css/selectors/invalidation/has-with-pseudo-class.html** * **/css/selectors/invalidation/input-pseudo-classes-in-has.html** * **/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/lang-pseudo-class-in-has.html** * **/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html** * **/css/selectors/is-where-basic.html** * **/css/selectors/is-where-not.html** * **/html/rendering/non-replaced-elements/tables/form-in-tables.html** * /html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update- * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html** * **/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html** * **/html/semantics/popovers/popover-stacking.html** * **/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html** * **/resource-timing/resource-reload-TAO.html** * **/selection/bidi/modify.tentative.html** * **/selection/contenteditable/modify.tentative.html** * **/selection/textcontrols/selectionchange.html** * **/css/CSS2/normal-flow/block-in-inline-client-rects-001.html** * **/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html** * **/css/css-animations/computed-style-animation-parsing.html** * **/css/css-variables/variables-substitute-guaranteed-invalid.html** * **/css/cssom-view/elementsFromPoint-simple.html** * **/css/cssom/CSSStyleSheet-modify-after-removal.html** * **/css/cssom/getComputedStyle-display-none-001.html** * **/css/selectors/focus-visible-script-focus-001.html** * **/css/selectors/has-specificity.html** * **/css/selectors/invalidation/is.html** * **/css/selectors/invalidation/not-002.html** * **/dom/events/EventListener-handleEvent-cross-realm.html** * **/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html** * **/html/browsers/the-window-object/window-properties.https.html** * **/html/browsers/the-window-object/window-prototype-chain.html** * **/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html** * **/html/dom/aria-element-reflection.html** * **/html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update-with-border-object-fit.html** * **/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html** * **/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html** * **/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html** * **/quirks/unitless-length/excluded-properties-002.html** </details> <details><summary>22× tests with failures that looked interesting</summary> * 1× CRASH [expected ...] * **/css/css-fonts/crash-large-grapheme-cluster.html** crash is subject of test * 6× FAIL [expected PASS] /... (reftest) * **/css/css-flexbox/anonymous-flex-item-005.html** old pass was spurious * **/css/css-flexbox/anonymous-flex-item-006.html** old pass was spurious * **/css/css-text-decor/text-decoration-line-recalc.html** old pass was spurious; ‘text-decoration’ shorthand unimplemented * **/css/css-ui/appearance-auto-non-html-namespace-001.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html** old pass was spurious * 13× TIMEOUT [expected ...] * **/css/css-fonts/font-size-monospace-adjust.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/css/cssom-view/background-change-during-smooth-scroll.html** timeout is subject of test * **/css/selectors/invalidation/has-complexity.html** timeout is subject of test * **/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html** timeout is subject of test; :has() unimplemented * **/fetch/stale-while-revalidate/stale-image.html** timeout is subject of test * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html** timeout is subject of test * **/html/rendering/widgets/appearance/appearance-animation-001.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-animation-002.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-transition-001.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-002.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-003.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/resource-timing/opaque-origin.html** timeout is subject of test * **/selection/textcontrols/selectionchange-bubble.html** timeout is subject of test * **/webidl/ecmascript-binding/invalid-this-value-cross-realm.html** ‘HTMLDocument’ unimplemented </details> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #27949 (GitHub issue number if applicable) <!-- Either: --> - [x] There are tests for these changes OR - [ ] These changes do not require tests because ___
bors-servo
added a commit
that referenced
this pull request
Mar 27, 2023
HTML #named-access-on-the-window-object This patch implements [named access on the window object](https://html.spec.whatwg.org/#named-access-on-the-window-object) based on @pylbrecht’s and @yvt’s previous work (see also #27952, #25562, #21869, #19904). That work makes 130 tests pass, and I’ve made some additional changes to make [the test for the feature itself](https://wpt.live/webidl/ecmascript-binding/window-named-properties-object.html) pass too, but I haven’t worked with mozjs before, so I have no idea if I’ve gone about my changes the Right Way. In particular, this patch: * [x] applies @pylbrecht’s patch (#27952) * [x] resolves conflicts related to #29079 and #28546 (5ae0ca4) * [x] applies @yvt’s patch to the segfault in getPrototypeIfOrdinary (1e24ffd) * [x] reverts the change introducing Untransplantable (76dc35a), since #28534 was abandoned in favour of #28536 * [x] triages the unexpected WPT results, updating expectations as needed (see below) * [x] fixes the failures in /webidl/ecmascript-binding/window-named-properties-object.html (3844f69) * [x] fixes the failures in the [[GetOwnProperty]] subtest (75c24e9) * [x] fixes the failures in the [[DefineOwnProperty]] subtest (e4e7a14) * [x] fixes the failures in the [[HasProperty]] subtest (75c24e9) * [x] fixes the failures in the [[Get]] subtest (4bafb27) * [x] fixes the failures in the [[Set]] (direct) subtest (e4e7a14) * [x] fixes the failures in the [[Delete]] subtest (4bafb27) * [x] fixes the failures in the [[OwnPropertyKeys]] subtest (afcd24a) * [x] resolves the todos and fixmes * [x] Document: handle exposed objects ×3 (ed3e37b) * [x] Window::NamedGetter: document.get_elements_with_id() (618ef57) * [x] get_own_property_descriptor: check for interactions with indexed access (b906fae) * [x] create trap: pass proper classp (618ef57) <details><summary>131× tests that now pass</summary> * **/webidl/ecmascript-binding/window-named-properties-object.html** *directly relevant to this patch* * **/FileAPI/Blob-methods-from-detached-frame.html** done #29450 #29451 * **/cors/script-304.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html** * **/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html** * **/css/CSS2/floats/computed-float-position-absolute.html** * **/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html** * **/css/CSS2/normal-flow/block-in-inline-insert-018.html** * **/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html** * **/css/CSS2/positioning/abspos-change-in-inline-block.html** * **/css/CSS2/positioning/abspos-width-change-inline-container-001.html** * **/css/CSS2/positioning/detach-abspos-before-layout.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html** * **/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html** * **/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html** * **/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html** * **/css/CSS2/stacking-context/opacity-transition-change-parent-stacking-context.html** * **/css/css-animations/animation-base-response-002.html** * **/css/css-animations/style-animation-parsing.html** * **/css/css-backgrounds/background-clip-color-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html** * **/css/css-backgrounds/background-image-none-gradient-repaint.html** * **/css/css-backgrounds/border-radius-dynamic-from-no-radius.html** * **/css/css-backgrounds/child-move-reveals-parent-background.html** * **/css/css-color/filters-under-will-change-opacity.html** * **/css/css-flexbox/anonymous-flex-item-001.html** * **/css/css-flexbox/anonymous-flex-item-003.html** * **/css/css-flexbox/dynamic-bsize-change.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-016.html** * **/css/cssom/at-namespace.html** * **/css/cssom/computed-style-002.html** * **/css/cssom/getComputedStyle-display-none-002.html** * **/css/cssom/getComputedStyle-display-none-003.html** * **/css/cssom/preferred-stylesheet-reversed-order.html** * **/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html** * **/css/cssom-view/pt-to-px-width.html** * **/css/cssom-view/scroll-back-to-initial-position.html** * **/css/css-text-decor/text-decoration-color-recalc-002.html** * **/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html** * **/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html** * **/css/css-text/text-indent/percentage-value-intrinsic-size.html** * **/css/css-text/white-space/display-contents-remove-whitespace-change.html** * **/css/css-text/white-space/white-space-empty-text-sibling.html** * **/css/css-transforms/change-perspective-property.html** * **/css/css-transforms/change-scale-wide-range.html** * **/css/css-transforms/change-transform-origin-property.html** * **/css/css-transforms/dynamic-fixed-pos-cb-change.html** * **/css/css-transforms/individual-transform/change-rotate-property.html** * **/css/css-transforms/individual-transform/change-scale-property.html** * **/css/css-transforms/paint-order-with-transform-change.html** * **/css/css-transforms/size-change-under-backface-visibility-hidden.html** * **/css/css-transforms/subpixel-transform-changes-001.html** * **/css/css-transforms/subpixel-transform-changes-002.html** * **/css/css-transforms/subpixel-transform-changes-003.html** * **/css/css-transforms/subpixel-transform-changes-004.html** * **/css/css-transitions/transition-reparented.html** * **/css/css-ui/historical/moz-user-modify-01.html** * **/css/css-ui/historical/user-modify-01.html** * **/css/css-ui/historical/webkit-user-modify-01.html** * **/css/css-ui/resize-change-margin.html** * **/css/css-ui/text-overflow-change-color.html** * **/css/css-ui/text-overflow-ellipsis-width-001.html** * **/css/css-values/animations/line-height-lh-transition.html** * **/css/css-values/calc-nesting.html** * **/css/css-values/update-subpixel-rem-unit.html** * **/css/css-values/viewport-units-modify.html** * **/css/css-variables/css-variable-change-style-001.html** * **/css/css-variables/css-variable-change-style-002.html** * **/css/css-variables/variable-cycles.html** * **/css/selectors/attribute-selectors/style-attribute-selector.html** * **/css/selectors/i18n/lang-pseudo-class-disconnected.html** * **/css/selectors/invalidation/attribute.html** * **/css/selectors/invalidation/class-id-attr.html** * **/css/selectors/invalidation/defined.html** * **/css/selectors/invalidation/sheet-going-away-001.html** * **/css/selectors/invalidation/sibling.html** * **/css/selectors/missing-right-token.html** * **/css/selectors/not-complex.html** * **/css/selectors/not-specificity.html** * **/css/selectors/nth-of-type-namespace.html** * **/css/selectors/selectors-case-sensitive-001.html** * **/css/selectors/visited-inheritance.html** * **/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html** * **/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html** * **/dom/nodes/remove-and-adopt-thcrash.html** * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html** * **/html/browsers/history/the-history-interface/history_back_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_go_cross_realm_method.html** * **/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html** * **/html/dom/elements/images/bypass-cache-revalidation.html** * **/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html** * **/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html** * **/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe-in-multicol.sub.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html** * **/html/rendering/replaced-elements/embedded-content/tall-cross-domain-iframe-in-scrolled.sub.html** * **/html/rendering/widgets/the-select-element/select-invalidation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html** * **/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-change.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html** * **/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html** * **/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html** * **/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html** * **/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html** * **/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html** * **/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html** * **/html/semantics/forms/the-input-element/radio-morphed.html** * **/html/semantics/forms/the-progress-element/progress.html** * **/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html** * **/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html** * **/html/syntax/serializing-html-fragments/initial-linefeed-pre.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html** * **/quirks/unitless-length/excluded-properties-001.html** * **/quirks/unitless-length/excluded-properties-003.html** * **/selection/caret/empty-elements.html** * **/selection/contenteditable/cefalse-on-boundaries.html** * **/selection/textcontrols/onselectionchange-content-attribute.html** </details> <details><summary>94× tests that improve but still fail in a way that’s clearly the subject of the test</summary> * **/css/css-animations/animation-base-response-001.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-visited.html** * **/css/css-backgrounds/inheritance.sub.html** * **/css/css-backgrounds/local-attachment-content-box-scroll.html** * **/css/css-color/canvas-change-opacity.html** * **/css/css-color/color-initial-canvastext.html** * **/css/css-flexbox/flex-aspect-ratio-img-column-010.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-004.html** * **/css/css-fonts/parsing/font-face-src-format.html** getter works but insertRule does nothing * **/css/css-fonts/parsing/font-face-src-list.html** as above * **/css/css-fonts/parsing/font-face-src-local.html** as above, but also delayed length change? * **/css/css-fonts/parsing/font-face-src-tech.html** as above * **/css/css-text/white-space/trailing-space-before-br-001.html** * **/css/css-transforms/3d-rendering-context-behavior.html** failures are subject of test, but also blank page? * **/css/css-transforms/individual-transform/change-translate-property.html** * **/css/css-transforms/preserve-3d-flat-grouping-properties.html** * **/css/css-transforms/transforms-support-calc.html** * **/css/css-transitions/inherit-height-transition.html** * **/css/css-ui/inheritance.html** * **/css/css-ui/parsing/outline-width-computed.html** failures are subject of test; https://drafts.csswg.org/css-values-4/#snap-a-length-as-a-border-width * **/css/css-values/lh-unit-003.html** * **/css/css-values/viewport-units-compute.html** * **/css/css-values/viewport-units-keyframes.html** * **/css/css-values/viewport-units-media-queries.html** * **/css/css-values/viewport-units-writing-mode.html** * **/css/cssom-view/elementsFromPoint-table.html** * **/css/cssom-view/scroll-behavior-default-css.html** * **/css/cssom-view/scroll-behavior-element.html** * **/css/cssom-view/scroll-behavior-main-frame-root.html** * **/css/cssom-view/scroll-behavior-main-frame-window.html** * **/css/cssom-view/scroll-behavior-smooth-navigation.html** * **/css/cssom-view/scroll-behavior-subframe-root.html** * **/css/cssom/computed-style-003.html** * **/css/cssom/computed-style-004.html** * **/css/cssom/font-variant-shorthand-serialization.html** * **/css/selectors/dir-selector-auto.html** * **/css/selectors/has-argument-with-explicit-scope.html** * **/css/selectors/has-basic.html** * **/css/selectors/has-relative-argument.html** * **/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html** * **/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html** * **/css/selectors/invalidation/dir-pseudo-class-in-has.html** * **/css/selectors/invalidation/empty-pseudo-in-has.html** * **/css/selectors/invalidation/has-in-adjacent-position.html** * **/css/selectors/invalidation/has-in-ancestor-position.html** * **/css/selectors/invalidation/has-in-parent-position.html** * **/css/selectors/invalidation/has-in-sibling-position.html** * **/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html** * **/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html** * **/css/selectors/invalidation/has-sibling.html** * **/css/selectors/invalidation/has-with-not.html** * **/css/selectors/invalidation/has-with-pseudo-class.html** * **/css/selectors/invalidation/input-pseudo-classes-in-has.html** * **/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/lang-pseudo-class-in-has.html** * **/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html** * **/css/selectors/is-where-basic.html** * **/css/selectors/is-where-not.html** * **/html/rendering/non-replaced-elements/tables/form-in-tables.html** * /html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update- * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html** * **/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html** * **/html/semantics/popovers/popover-stacking.html** * **/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html** * **/resource-timing/resource-reload-TAO.html** * **/selection/bidi/modify.tentative.html** * **/selection/contenteditable/modify.tentative.html** * **/selection/textcontrols/selectionchange.html** * **/css/CSS2/normal-flow/block-in-inline-client-rects-001.html** * **/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html** * **/css/css-animations/computed-style-animation-parsing.html** * **/css/css-variables/variables-substitute-guaranteed-invalid.html** * **/css/cssom-view/elementsFromPoint-simple.html** * **/css/cssom/CSSStyleSheet-modify-after-removal.html** * **/css/cssom/getComputedStyle-display-none-001.html** * **/css/selectors/focus-visible-script-focus-001.html** * **/css/selectors/has-specificity.html** * **/css/selectors/invalidation/is.html** * **/css/selectors/invalidation/not-002.html** * **/dom/events/EventListener-handleEvent-cross-realm.html** * **/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html** * **/html/browsers/the-window-object/window-properties.https.html** * **/html/browsers/the-window-object/window-prototype-chain.html** * **/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html** * **/html/dom/aria-element-reflection.html** * **/html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update-with-border-object-fit.html** * **/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html** * **/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html** * **/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html** * **/quirks/unitless-length/excluded-properties-002.html** </details> <details><summary>22× tests with failures that looked interesting</summary> * 1× CRASH [expected ...] * **/css/css-fonts/crash-large-grapheme-cluster.html** crash is subject of test * 6× FAIL [expected PASS] /... (reftest) * **/css/css-flexbox/anonymous-flex-item-005.html** old pass was spurious * **/css/css-flexbox/anonymous-flex-item-006.html** old pass was spurious * **/css/css-text-decor/text-decoration-line-recalc.html** old pass was spurious; ‘text-decoration’ shorthand unimplemented * **/css/css-ui/appearance-auto-non-html-namespace-001.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html** old pass was spurious * 13× TIMEOUT [expected ...] * **/css/css-fonts/font-size-monospace-adjust.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/css/cssom-view/background-change-during-smooth-scroll.html** timeout is subject of test * **/css/selectors/invalidation/has-complexity.html** timeout is subject of test * **/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html** timeout is subject of test; :has() unimplemented * **/fetch/stale-while-revalidate/stale-image.html** timeout is subject of test * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html** timeout is subject of test * **/html/rendering/widgets/appearance/appearance-animation-001.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-animation-002.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-transition-001.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-002.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-003.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/resource-timing/opaque-origin.html** timeout is subject of test * **/selection/textcontrols/selectionchange-bubble.html** timeout is subject of test * **/webidl/ecmascript-binding/invalid-this-value-cross-realm.html** ‘HTMLDocument’ unimplemented </details> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #27949 (GitHub issue number if applicable) <!-- Either: --> - [x] There are tests for these changes OR - [ ] These changes do not require tests because ___
bors-servo
added a commit
that referenced
this pull request
Mar 27, 2023
HTML #named-access-on-the-window-object This patch implements [named access on the window object](https://html.spec.whatwg.org/#named-access-on-the-window-object) based on @pylbrecht’s and @yvt’s previous work (see also #27952, #25562, #21869, #19904). That work makes 130 tests pass, and I’ve made some additional changes to make [the test for the feature itself](https://wpt.live/webidl/ecmascript-binding/window-named-properties-object.html) pass too, but I haven’t worked with mozjs before, so I have no idea if I’ve gone about my changes the Right Way. In particular, this patch: * [x] applies @pylbrecht’s patch (#27952) * [x] resolves conflicts related to #29079 and #28546 (5ae0ca4) * [x] applies @yvt’s patch to the segfault in getPrototypeIfOrdinary (1e24ffd) * [x] reverts the change introducing Untransplantable (76dc35a), since #28534 was abandoned in favour of #28536 * [x] triages the unexpected WPT results, updating expectations as needed (see below) * [x] fixes the failures in /webidl/ecmascript-binding/window-named-properties-object.html (3844f69) * [x] fixes the failures in the [[GetOwnProperty]] subtest (75c24e9) * [x] fixes the failures in the [[DefineOwnProperty]] subtest (e4e7a14) * [x] fixes the failures in the [[HasProperty]] subtest (75c24e9) * [x] fixes the failures in the [[Get]] subtest (4bafb27) * [x] fixes the failures in the [[Set]] (direct) subtest (e4e7a14) * [x] fixes the failures in the [[Delete]] subtest (4bafb27) * [x] fixes the failures in the [[OwnPropertyKeys]] subtest (afcd24a) * [x] resolves the todos and fixmes * [x] Document: handle exposed objects ×3 (ed3e37b) * [x] Window::NamedGetter: document.get_elements_with_id() (618ef57) * [x] get_own_property_descriptor: check for interactions with indexed access (b906fae) * [x] create trap: pass proper classp (618ef57) <details><summary>131× tests that now pass</summary> * **/webidl/ecmascript-binding/window-named-properties-object.html** *directly relevant to this patch* * **/FileAPI/Blob-methods-from-detached-frame.html** done #29450 #29451 * **/cors/script-304.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html** * **/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html** * **/css/CSS2/floats/computed-float-position-absolute.html** * **/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html** * **/css/CSS2/normal-flow/block-in-inline-insert-018.html** * **/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html** * **/css/CSS2/positioning/abspos-change-in-inline-block.html** * **/css/CSS2/positioning/abspos-width-change-inline-container-001.html** * **/css/CSS2/positioning/detach-abspos-before-layout.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html** * **/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html** * **/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html** * **/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html** * **/css/CSS2/stacking-context/opacity-transition-change-parent-stacking-context.html** * **/css/css-animations/animation-base-response-002.html** * **/css/css-animations/style-animation-parsing.html** * **/css/css-backgrounds/background-clip-color-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html** * **/css/css-backgrounds/background-image-none-gradient-repaint.html** * **/css/css-backgrounds/border-radius-dynamic-from-no-radius.html** * **/css/css-backgrounds/child-move-reveals-parent-background.html** * **/css/css-color/filters-under-will-change-opacity.html** * **/css/css-flexbox/anonymous-flex-item-001.html** * **/css/css-flexbox/anonymous-flex-item-003.html** * **/css/css-flexbox/dynamic-bsize-change.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-016.html** * **/css/cssom/at-namespace.html** * **/css/cssom/computed-style-002.html** * **/css/cssom/getComputedStyle-display-none-002.html** * **/css/cssom/getComputedStyle-display-none-003.html** * **/css/cssom/preferred-stylesheet-reversed-order.html** * **/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html** * **/css/cssom-view/pt-to-px-width.html** * **/css/cssom-view/scroll-back-to-initial-position.html** * **/css/css-text-decor/text-decoration-color-recalc-002.html** * **/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html** * **/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html** * **/css/css-text/text-indent/percentage-value-intrinsic-size.html** * **/css/css-text/white-space/display-contents-remove-whitespace-change.html** * **/css/css-text/white-space/white-space-empty-text-sibling.html** * **/css/css-transforms/change-perspective-property.html** * **/css/css-transforms/change-scale-wide-range.html** * **/css/css-transforms/change-transform-origin-property.html** * **/css/css-transforms/dynamic-fixed-pos-cb-change.html** * **/css/css-transforms/individual-transform/change-rotate-property.html** * **/css/css-transforms/individual-transform/change-scale-property.html** * **/css/css-transforms/paint-order-with-transform-change.html** * **/css/css-transforms/size-change-under-backface-visibility-hidden.html** * **/css/css-transforms/subpixel-transform-changes-001.html** * **/css/css-transforms/subpixel-transform-changes-002.html** * **/css/css-transforms/subpixel-transform-changes-003.html** * **/css/css-transforms/subpixel-transform-changes-004.html** * **/css/css-transitions/transition-reparented.html** * **/css/css-ui/historical/moz-user-modify-01.html** * **/css/css-ui/historical/user-modify-01.html** * **/css/css-ui/historical/webkit-user-modify-01.html** * **/css/css-ui/resize-change-margin.html** * **/css/css-ui/text-overflow-change-color.html** * **/css/css-ui/text-overflow-ellipsis-width-001.html** * **/css/css-values/animations/line-height-lh-transition.html** * **/css/css-values/calc-nesting.html** * **/css/css-values/update-subpixel-rem-unit.html** * **/css/css-values/viewport-units-modify.html** * **/css/css-variables/css-variable-change-style-001.html** * **/css/css-variables/css-variable-change-style-002.html** * **/css/css-variables/variable-cycles.html** * **/css/selectors/attribute-selectors/style-attribute-selector.html** * **/css/selectors/i18n/lang-pseudo-class-disconnected.html** * **/css/selectors/invalidation/attribute.html** * **/css/selectors/invalidation/class-id-attr.html** * **/css/selectors/invalidation/defined.html** * **/css/selectors/invalidation/sheet-going-away-001.html** * **/css/selectors/invalidation/sibling.html** * **/css/selectors/missing-right-token.html** * **/css/selectors/not-complex.html** * **/css/selectors/not-specificity.html** * **/css/selectors/nth-of-type-namespace.html** * **/css/selectors/selectors-case-sensitive-001.html** * **/css/selectors/visited-inheritance.html** * **/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html** * **/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html** * **/dom/nodes/remove-and-adopt-thcrash.html** * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html** * **/html/browsers/history/the-history-interface/history_back_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_go_cross_realm_method.html** * **/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html** * **/html/dom/elements/images/bypass-cache-revalidation.html** * **/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html** * **/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html** * **/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe-in-multicol.sub.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html** * **/html/rendering/replaced-elements/embedded-content/tall-cross-domain-iframe-in-scrolled.sub.html** * **/html/rendering/widgets/the-select-element/select-invalidation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html** * **/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-change.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html** * **/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html** * **/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html** * **/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html** * **/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html** * **/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html** * **/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html** * **/html/semantics/forms/the-input-element/radio-morphed.html** * **/html/semantics/forms/the-progress-element/progress.html** * **/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html** * **/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html** * **/html/syntax/serializing-html-fragments/initial-linefeed-pre.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html** * **/quirks/unitless-length/excluded-properties-001.html** * **/quirks/unitless-length/excluded-properties-003.html** * **/selection/caret/empty-elements.html** * **/selection/contenteditable/cefalse-on-boundaries.html** * **/selection/textcontrols/onselectionchange-content-attribute.html** </details> <details><summary>94× tests that improve but still fail in a way that’s clearly the subject of the test</summary> * **/css/css-animations/animation-base-response-001.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-visited.html** * **/css/css-backgrounds/inheritance.sub.html** * **/css/css-backgrounds/local-attachment-content-box-scroll.html** * **/css/css-color/canvas-change-opacity.html** * **/css/css-color/color-initial-canvastext.html** * **/css/css-flexbox/flex-aspect-ratio-img-column-010.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-004.html** * **/css/css-fonts/parsing/font-face-src-format.html** getter works but insertRule does nothing * **/css/css-fonts/parsing/font-face-src-list.html** as above * **/css/css-fonts/parsing/font-face-src-local.html** as above, but also delayed length change? * **/css/css-fonts/parsing/font-face-src-tech.html** as above * **/css/css-text/white-space/trailing-space-before-br-001.html** * **/css/css-transforms/3d-rendering-context-behavior.html** failures are subject of test, but also blank page? * **/css/css-transforms/individual-transform/change-translate-property.html** * **/css/css-transforms/preserve-3d-flat-grouping-properties.html** * **/css/css-transforms/transforms-support-calc.html** * **/css/css-transitions/inherit-height-transition.html** * **/css/css-ui/inheritance.html** * **/css/css-ui/parsing/outline-width-computed.html** failures are subject of test; https://drafts.csswg.org/css-values-4/#snap-a-length-as-a-border-width * **/css/css-values/lh-unit-003.html** * **/css/css-values/viewport-units-compute.html** * **/css/css-values/viewport-units-keyframes.html** * **/css/css-values/viewport-units-media-queries.html** * **/css/css-values/viewport-units-writing-mode.html** * **/css/cssom-view/elementsFromPoint-table.html** * **/css/cssom-view/scroll-behavior-default-css.html** * **/css/cssom-view/scroll-behavior-element.html** * **/css/cssom-view/scroll-behavior-main-frame-root.html** * **/css/cssom-view/scroll-behavior-main-frame-window.html** * **/css/cssom-view/scroll-behavior-smooth-navigation.html** * **/css/cssom-view/scroll-behavior-subframe-root.html** * **/css/cssom/computed-style-003.html** * **/css/cssom/computed-style-004.html** * **/css/cssom/font-variant-shorthand-serialization.html** * **/css/selectors/dir-selector-auto.html** * **/css/selectors/has-argument-with-explicit-scope.html** * **/css/selectors/has-basic.html** * **/css/selectors/has-relative-argument.html** * **/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html** * **/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html** * **/css/selectors/invalidation/dir-pseudo-class-in-has.html** * **/css/selectors/invalidation/empty-pseudo-in-has.html** * **/css/selectors/invalidation/has-in-adjacent-position.html** * **/css/selectors/invalidation/has-in-ancestor-position.html** * **/css/selectors/invalidation/has-in-parent-position.html** * **/css/selectors/invalidation/has-in-sibling-position.html** * **/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html** * **/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html** * **/css/selectors/invalidation/has-sibling.html** * **/css/selectors/invalidation/has-with-not.html** * **/css/selectors/invalidation/has-with-pseudo-class.html** * **/css/selectors/invalidation/input-pseudo-classes-in-has.html** * **/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/lang-pseudo-class-in-has.html** * **/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html** * **/css/selectors/is-where-basic.html** * **/css/selectors/is-where-not.html** * **/html/rendering/non-replaced-elements/tables/form-in-tables.html** * /html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update- * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html** * **/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html** * **/html/semantics/popovers/popover-stacking.html** * **/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html** * **/resource-timing/resource-reload-TAO.html** * **/selection/bidi/modify.tentative.html** * **/selection/contenteditable/modify.tentative.html** * **/selection/textcontrols/selectionchange.html** * **/css/CSS2/normal-flow/block-in-inline-client-rects-001.html** * **/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html** * **/css/css-animations/computed-style-animation-parsing.html** * **/css/css-variables/variables-substitute-guaranteed-invalid.html** * **/css/cssom-view/elementsFromPoint-simple.html** * **/css/cssom/CSSStyleSheet-modify-after-removal.html** * **/css/cssom/getComputedStyle-display-none-001.html** * **/css/selectors/focus-visible-script-focus-001.html** * **/css/selectors/has-specificity.html** * **/css/selectors/invalidation/is.html** * **/css/selectors/invalidation/not-002.html** * **/dom/events/EventListener-handleEvent-cross-realm.html** * **/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html** * **/html/browsers/the-window-object/window-properties.https.html** * **/html/browsers/the-window-object/window-prototype-chain.html** * **/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html** * **/html/dom/aria-element-reflection.html** * **/html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update-with-border-object-fit.html** * **/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html** * **/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html** * **/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html** * **/quirks/unitless-length/excluded-properties-002.html** </details> <details><summary>22× tests with failures that looked interesting</summary> * 1× CRASH [expected ...] * **/css/css-fonts/crash-large-grapheme-cluster.html** crash is subject of test * 6× FAIL [expected PASS] /... (reftest) * **/css/css-flexbox/anonymous-flex-item-005.html** old pass was spurious * **/css/css-flexbox/anonymous-flex-item-006.html** old pass was spurious * **/css/css-text-decor/text-decoration-line-recalc.html** old pass was spurious; ‘text-decoration’ shorthand unimplemented * **/css/css-ui/appearance-auto-non-html-namespace-001.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html** old pass was spurious * 13× TIMEOUT [expected ...] * **/css/css-fonts/font-size-monospace-adjust.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/css/cssom-view/background-change-during-smooth-scroll.html** timeout is subject of test * **/css/selectors/invalidation/has-complexity.html** timeout is subject of test * **/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html** timeout is subject of test; :has() unimplemented * **/fetch/stale-while-revalidate/stale-image.html** timeout is subject of test * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html** timeout is subject of test * **/html/rendering/widgets/appearance/appearance-animation-001.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-animation-002.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-transition-001.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-002.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-003.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/resource-timing/opaque-origin.html** timeout is subject of test * **/selection/textcontrols/selectionchange-bubble.html** timeout is subject of test * **/webidl/ecmascript-binding/invalid-this-value-cross-realm.html** ‘HTMLDocument’ unimplemented </details> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #27949 (GitHub issue number if applicable) <!-- Either: --> - [x] There are tests for these changes OR - [ ] These changes do not require tests because ___
bors-servo
added a commit
that referenced
this pull request
Mar 27, 2023
HTML #named-access-on-the-window-object This patch implements [named access on the window object](https://html.spec.whatwg.org/#named-access-on-the-window-object) based on @pylbrecht’s and @yvt’s previous work (see also #27952, #25562, #21869, #19904). That work makes 130 tests pass, and I’ve made some additional changes to make [the test for the feature itself](https://wpt.live/webidl/ecmascript-binding/window-named-properties-object.html) pass too, but I haven’t worked with mozjs before, so I have no idea if I’ve gone about my changes the Right Way. In particular, this patch: * [x] applies @pylbrecht’s patch (#27952) * [x] resolves conflicts related to #29079 and #28546 (5ae0ca4) * [x] applies @yvt’s patch to the segfault in getPrototypeIfOrdinary (1e24ffd) * [x] reverts the change introducing Untransplantable (76dc35a), since #28534 was abandoned in favour of #28536 * [x] triages the unexpected WPT results, updating expectations as needed (see below) * [x] fixes the failures in /webidl/ecmascript-binding/window-named-properties-object.html (3844f69) * [x] fixes the failures in the [[GetOwnProperty]] subtest (75c24e9) * [x] fixes the failures in the [[DefineOwnProperty]] subtest (e4e7a14) * [x] fixes the failures in the [[HasProperty]] subtest (75c24e9) * [x] fixes the failures in the [[Get]] subtest (4bafb27) * [x] fixes the failures in the [[Set]] (direct) subtest (e4e7a14) * [x] fixes the failures in the [[Delete]] subtest (4bafb27) * [x] fixes the failures in the [[OwnPropertyKeys]] subtest (afcd24a) * [x] resolves the todos and fixmes * [x] Document: handle exposed objects ×3 (ed3e37b) * [x] Window::NamedGetter: document.get_elements_with_id() (618ef57) * [x] get_own_property_descriptor: check for interactions with indexed access (b906fae) * [x] create trap: pass proper classp (618ef57) <details><summary>131× tests that now pass</summary> * **/webidl/ecmascript-binding/window-named-properties-object.html** *directly relevant to this patch* * **/FileAPI/Blob-methods-from-detached-frame.html** done #29450 #29451 * **/cors/script-304.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html** * **/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html** * **/css/CSS2/floats/computed-float-position-absolute.html** * **/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html** * **/css/CSS2/normal-flow/block-in-inline-insert-018.html** * **/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html** * **/css/CSS2/positioning/abspos-change-in-inline-block.html** * **/css/CSS2/positioning/abspos-width-change-inline-container-001.html** * **/css/CSS2/positioning/detach-abspos-before-layout.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html** * **/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html** * **/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html** * **/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html** * **/css/CSS2/stacking-context/opacity-transition-change-parent-stacking-context.html** * **/css/css-animations/animation-base-response-002.html** * **/css/css-animations/style-animation-parsing.html** * **/css/css-backgrounds/background-clip-color-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html** * **/css/css-backgrounds/background-image-none-gradient-repaint.html** * **/css/css-backgrounds/border-radius-dynamic-from-no-radius.html** * **/css/css-backgrounds/child-move-reveals-parent-background.html** * **/css/css-color/filters-under-will-change-opacity.html** * **/css/css-flexbox/anonymous-flex-item-001.html** * **/css/css-flexbox/anonymous-flex-item-003.html** * **/css/css-flexbox/dynamic-bsize-change.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-016.html** * **/css/cssom/at-namespace.html** * **/css/cssom/computed-style-002.html** * **/css/cssom/getComputedStyle-display-none-002.html** * **/css/cssom/getComputedStyle-display-none-003.html** * **/css/cssom/preferred-stylesheet-reversed-order.html** * **/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html** * **/css/cssom-view/pt-to-px-width.html** * **/css/cssom-view/scroll-back-to-initial-position.html** * **/css/css-text-decor/text-decoration-color-recalc-002.html** * **/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html** * **/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html** * **/css/css-text/text-indent/percentage-value-intrinsic-size.html** * **/css/css-text/white-space/display-contents-remove-whitespace-change.html** * **/css/css-text/white-space/white-space-empty-text-sibling.html** * **/css/css-transforms/change-perspective-property.html** * **/css/css-transforms/change-scale-wide-range.html** * **/css/css-transforms/change-transform-origin-property.html** * **/css/css-transforms/dynamic-fixed-pos-cb-change.html** * **/css/css-transforms/individual-transform/change-rotate-property.html** * **/css/css-transforms/individual-transform/change-scale-property.html** * **/css/css-transforms/paint-order-with-transform-change.html** * **/css/css-transforms/size-change-under-backface-visibility-hidden.html** * **/css/css-transforms/subpixel-transform-changes-001.html** * **/css/css-transforms/subpixel-transform-changes-002.html** * **/css/css-transforms/subpixel-transform-changes-003.html** * **/css/css-transforms/subpixel-transform-changes-004.html** * **/css/css-transitions/transition-reparented.html** * **/css/css-ui/historical/moz-user-modify-01.html** * **/css/css-ui/historical/user-modify-01.html** * **/css/css-ui/historical/webkit-user-modify-01.html** * **/css/css-ui/resize-change-margin.html** * **/css/css-ui/text-overflow-change-color.html** * **/css/css-ui/text-overflow-ellipsis-width-001.html** * **/css/css-values/animations/line-height-lh-transition.html** * **/css/css-values/calc-nesting.html** * **/css/css-values/update-subpixel-rem-unit.html** * **/css/css-values/viewport-units-modify.html** * **/css/css-variables/css-variable-change-style-001.html** * **/css/css-variables/css-variable-change-style-002.html** * **/css/css-variables/variable-cycles.html** * **/css/selectors/attribute-selectors/style-attribute-selector.html** * **/css/selectors/i18n/lang-pseudo-class-disconnected.html** * **/css/selectors/invalidation/attribute.html** * **/css/selectors/invalidation/class-id-attr.html** * **/css/selectors/invalidation/defined.html** * **/css/selectors/invalidation/sheet-going-away-001.html** * **/css/selectors/invalidation/sibling.html** * **/css/selectors/missing-right-token.html** * **/css/selectors/not-complex.html** * **/css/selectors/not-specificity.html** * **/css/selectors/nth-of-type-namespace.html** * **/css/selectors/selectors-case-sensitive-001.html** * **/css/selectors/visited-inheritance.html** * **/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html** * **/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html** * **/dom/nodes/remove-and-adopt-thcrash.html** * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html** * **/html/browsers/history/the-history-interface/history_back_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_go_cross_realm_method.html** * **/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html** * **/html/dom/elements/images/bypass-cache-revalidation.html** * **/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html** * **/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html** * **/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe-in-multicol.sub.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html** * **/html/rendering/replaced-elements/embedded-content/tall-cross-domain-iframe-in-scrolled.sub.html** * **/html/rendering/widgets/the-select-element/select-invalidation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html** * **/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-change.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html** * **/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html** * **/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html** * **/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html** * **/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html** * **/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html** * **/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html** * **/html/semantics/forms/the-input-element/radio-morphed.html** * **/html/semantics/forms/the-progress-element/progress.html** * **/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html** * **/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html** * **/html/syntax/serializing-html-fragments/initial-linefeed-pre.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html** * **/quirks/unitless-length/excluded-properties-001.html** * **/quirks/unitless-length/excluded-properties-003.html** * **/selection/caret/empty-elements.html** * **/selection/contenteditable/cefalse-on-boundaries.html** * **/selection/textcontrols/onselectionchange-content-attribute.html** </details> <details><summary>94× tests that improve but still fail in a way that’s clearly the subject of the test</summary> * **/css/css-animations/animation-base-response-001.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-visited.html** * **/css/css-backgrounds/inheritance.sub.html** * **/css/css-backgrounds/local-attachment-content-box-scroll.html** * **/css/css-color/canvas-change-opacity.html** * **/css/css-color/color-initial-canvastext.html** * **/css/css-flexbox/flex-aspect-ratio-img-column-010.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-004.html** * **/css/css-fonts/parsing/font-face-src-format.html** getter works but insertRule does nothing * **/css/css-fonts/parsing/font-face-src-list.html** as above * **/css/css-fonts/parsing/font-face-src-local.html** as above, but also delayed length change? * **/css/css-fonts/parsing/font-face-src-tech.html** as above * **/css/css-text/white-space/trailing-space-before-br-001.html** * **/css/css-transforms/3d-rendering-context-behavior.html** failures are subject of test, but also blank page? * **/css/css-transforms/individual-transform/change-translate-property.html** * **/css/css-transforms/preserve-3d-flat-grouping-properties.html** * **/css/css-transforms/transforms-support-calc.html** * **/css/css-transitions/inherit-height-transition.html** * **/css/css-ui/inheritance.html** * **/css/css-ui/parsing/outline-width-computed.html** failures are subject of test; https://drafts.csswg.org/css-values-4/#snap-a-length-as-a-border-width * **/css/css-values/lh-unit-003.html** * **/css/css-values/viewport-units-compute.html** * **/css/css-values/viewport-units-keyframes.html** * **/css/css-values/viewport-units-media-queries.html** * **/css/css-values/viewport-units-writing-mode.html** * **/css/cssom-view/elementsFromPoint-table.html** * **/css/cssom-view/scroll-behavior-default-css.html** * **/css/cssom-view/scroll-behavior-element.html** * **/css/cssom-view/scroll-behavior-main-frame-root.html** * **/css/cssom-view/scroll-behavior-main-frame-window.html** * **/css/cssom-view/scroll-behavior-smooth-navigation.html** * **/css/cssom-view/scroll-behavior-subframe-root.html** * **/css/cssom/computed-style-003.html** * **/css/cssom/computed-style-004.html** * **/css/cssom/font-variant-shorthand-serialization.html** * **/css/selectors/dir-selector-auto.html** * **/css/selectors/has-argument-with-explicit-scope.html** * **/css/selectors/has-basic.html** * **/css/selectors/has-relative-argument.html** * **/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html** * **/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html** * **/css/selectors/invalidation/dir-pseudo-class-in-has.html** * **/css/selectors/invalidation/empty-pseudo-in-has.html** * **/css/selectors/invalidation/has-in-adjacent-position.html** * **/css/selectors/invalidation/has-in-ancestor-position.html** * **/css/selectors/invalidation/has-in-parent-position.html** * **/css/selectors/invalidation/has-in-sibling-position.html** * **/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html** * **/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html** * **/css/selectors/invalidation/has-sibling.html** * **/css/selectors/invalidation/has-with-not.html** * **/css/selectors/invalidation/has-with-pseudo-class.html** * **/css/selectors/invalidation/input-pseudo-classes-in-has.html** * **/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/lang-pseudo-class-in-has.html** * **/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html** * **/css/selectors/is-where-basic.html** * **/css/selectors/is-where-not.html** * **/html/rendering/non-replaced-elements/tables/form-in-tables.html** * /html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update- * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html** * **/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html** * **/html/semantics/popovers/popover-stacking.html** * **/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html** * **/resource-timing/resource-reload-TAO.html** * **/selection/bidi/modify.tentative.html** * **/selection/contenteditable/modify.tentative.html** * **/selection/textcontrols/selectionchange.html** * **/css/CSS2/normal-flow/block-in-inline-client-rects-001.html** * **/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html** * **/css/css-animations/computed-style-animation-parsing.html** * **/css/css-variables/variables-substitute-guaranteed-invalid.html** * **/css/cssom-view/elementsFromPoint-simple.html** * **/css/cssom/CSSStyleSheet-modify-after-removal.html** * **/css/cssom/getComputedStyle-display-none-001.html** * **/css/selectors/focus-visible-script-focus-001.html** * **/css/selectors/has-specificity.html** * **/css/selectors/invalidation/is.html** * **/css/selectors/invalidation/not-002.html** * **/dom/events/EventListener-handleEvent-cross-realm.html** * **/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html** * **/html/browsers/the-window-object/window-properties.https.html** * **/html/browsers/the-window-object/window-prototype-chain.html** * **/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html** * **/html/dom/aria-element-reflection.html** * **/html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update-with-border-object-fit.html** * **/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html** * **/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html** * **/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html** * **/quirks/unitless-length/excluded-properties-002.html** </details> <details><summary>22× tests with failures that looked interesting</summary> * 1× CRASH [expected ...] * **/css/css-fonts/crash-large-grapheme-cluster.html** crash is subject of test * 6× FAIL [expected PASS] /... (reftest) * **/css/css-flexbox/anonymous-flex-item-005.html** old pass was spurious * **/css/css-flexbox/anonymous-flex-item-006.html** old pass was spurious * **/css/css-text-decor/text-decoration-line-recalc.html** old pass was spurious; ‘text-decoration’ shorthand unimplemented * **/css/css-ui/appearance-auto-non-html-namespace-001.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html** old pass was spurious * 13× TIMEOUT [expected ...] * **/css/css-fonts/font-size-monospace-adjust.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/css/cssom-view/background-change-during-smooth-scroll.html** timeout is subject of test * **/css/selectors/invalidation/has-complexity.html** timeout is subject of test * **/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html** timeout is subject of test; :has() unimplemented * **/fetch/stale-while-revalidate/stale-image.html** timeout is subject of test * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html** timeout is subject of test * **/html/rendering/widgets/appearance/appearance-animation-001.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-animation-002.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-transition-001.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-002.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-003.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/resource-timing/opaque-origin.html** timeout is subject of test * **/selection/textcontrols/selectionchange-bubble.html** timeout is subject of test * **/webidl/ecmascript-binding/invalid-this-value-cross-realm.html** ‘HTMLDocument’ unimplemented </details> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #27949 (GitHub issue number if applicable) <!-- Either: --> - [x] There are tests for these changes (including but not limited to web-platform-tests/wpt#39211) OR - [ ] These changes do not require tests because ___
bors-servo
added a commit
that referenced
this pull request
Mar 28, 2023
HTML #named-access-on-the-window-object This patch implements [named access on the window object](https://html.spec.whatwg.org/#named-access-on-the-window-object) based on @pylbrecht’s and @yvt’s previous work (see also #27952, #25562, #21869, #19904). That work makes 130 tests pass, and I’ve made some additional changes to make [the test for the feature itself](https://wpt.live/webidl/ecmascript-binding/window-named-properties-object.html) pass too, but I haven’t worked with mozjs before, so I have no idea if I’ve gone about my changes the Right Way. In particular, this patch: * [x] applies @pylbrecht’s patch (#27952) * [x] resolves conflicts related to #29079 and #28546 (5ae0ca4) * [x] applies @yvt’s patch to the segfault in getPrototypeIfOrdinary (1e24ffd) * [x] reverts the change introducing Untransplantable (76dc35a), since #28534 was abandoned in favour of #28536 * [x] triages the unexpected WPT results, updating expectations as needed (see below) * [x] fixes the failures in /webidl/ecmascript-binding/window-named-properties-object.html (3844f69) * [x] fixes the failures in the [[GetOwnProperty]] subtest (75c24e9) * [x] fixes the failures in the [[DefineOwnProperty]] subtest (e4e7a14) * [x] fixes the failures in the [[HasProperty]] subtest (75c24e9) * [x] fixes the failures in the [[Get]] subtest (4bafb27) * [x] fixes the failures in the [[Set]] (direct) subtest (e4e7a14) * [x] fixes the failures in the [[Delete]] subtest (4bafb27) * [x] fixes the failures in the [[OwnPropertyKeys]] subtest (afcd24a) * [x] resolves the todos and fixmes * [x] Document: handle exposed objects ×3 (ed3e37b) * [x] Window::NamedGetter: document.get_elements_with_id() (618ef57) * [x] get_own_property_descriptor: check for interactions with indexed access (b906fae) * [x] create trap: pass proper classp (618ef57) <details><summary>131× tests that now pass</summary> * **/webidl/ecmascript-binding/window-named-properties-object.html** *directly relevant to this patch* * **/FileAPI/Blob-methods-from-detached-frame.html** done #29450 #29451 * **/cors/script-304.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html** * **/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html** * **/css/CSS2/floats/computed-float-position-absolute.html** * **/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html** * **/css/CSS2/normal-flow/block-in-inline-insert-018.html** * **/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html** * **/css/CSS2/positioning/abspos-change-in-inline-block.html** * **/css/CSS2/positioning/abspos-width-change-inline-container-001.html** * **/css/CSS2/positioning/detach-abspos-before-layout.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html** * **/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html** * **/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html** * **/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html** * **/css/CSS2/stacking-context/opacity-transition-change-parent-stacking-context.html** * **/css/css-animations/animation-base-response-002.html** * **/css/css-animations/style-animation-parsing.html** * **/css/css-backgrounds/background-clip-color-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html** * **/css/css-backgrounds/background-image-none-gradient-repaint.html** * **/css/css-backgrounds/border-radius-dynamic-from-no-radius.html** * **/css/css-backgrounds/child-move-reveals-parent-background.html** * **/css/css-color/filters-under-will-change-opacity.html** * **/css/css-flexbox/anonymous-flex-item-001.html** * **/css/css-flexbox/anonymous-flex-item-003.html** * **/css/css-flexbox/dynamic-bsize-change.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-016.html** * **/css/cssom/at-namespace.html** * **/css/cssom/computed-style-002.html** * **/css/cssom/getComputedStyle-display-none-002.html** * **/css/cssom/getComputedStyle-display-none-003.html** * **/css/cssom/preferred-stylesheet-reversed-order.html** * **/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html** * **/css/cssom-view/pt-to-px-width.html** * **/css/cssom-view/scroll-back-to-initial-position.html** * **/css/css-text-decor/text-decoration-color-recalc-002.html** * **/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html** * **/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html** * **/css/css-text/text-indent/percentage-value-intrinsic-size.html** * **/css/css-text/white-space/display-contents-remove-whitespace-change.html** * **/css/css-text/white-space/white-space-empty-text-sibling.html** * **/css/css-transforms/change-perspective-property.html** * **/css/css-transforms/change-scale-wide-range.html** * **/css/css-transforms/change-transform-origin-property.html** * **/css/css-transforms/dynamic-fixed-pos-cb-change.html** * **/css/css-transforms/individual-transform/change-rotate-property.html** * **/css/css-transforms/individual-transform/change-scale-property.html** * **/css/css-transforms/paint-order-with-transform-change.html** * **/css/css-transforms/size-change-under-backface-visibility-hidden.html** * **/css/css-transforms/subpixel-transform-changes-001.html** * **/css/css-transforms/subpixel-transform-changes-002.html** * **/css/css-transforms/subpixel-transform-changes-003.html** * **/css/css-transforms/subpixel-transform-changes-004.html** * **/css/css-transitions/transition-reparented.html** * **/css/css-ui/historical/moz-user-modify-01.html** * **/css/css-ui/historical/user-modify-01.html** * **/css/css-ui/historical/webkit-user-modify-01.html** * **/css/css-ui/resize-change-margin.html** * **/css/css-ui/text-overflow-change-color.html** * **/css/css-ui/text-overflow-ellipsis-width-001.html** * **/css/css-values/animations/line-height-lh-transition.html** * **/css/css-values/calc-nesting.html** * **/css/css-values/update-subpixel-rem-unit.html** * **/css/css-values/viewport-units-modify.html** * **/css/css-variables/css-variable-change-style-001.html** * **/css/css-variables/css-variable-change-style-002.html** * **/css/css-variables/variable-cycles.html** * **/css/selectors/attribute-selectors/style-attribute-selector.html** * **/css/selectors/i18n/lang-pseudo-class-disconnected.html** * **/css/selectors/invalidation/attribute.html** * **/css/selectors/invalidation/class-id-attr.html** * **/css/selectors/invalidation/defined.html** * **/css/selectors/invalidation/sheet-going-away-001.html** * **/css/selectors/invalidation/sibling.html** * **/css/selectors/missing-right-token.html** * **/css/selectors/not-complex.html** * **/css/selectors/not-specificity.html** * **/css/selectors/nth-of-type-namespace.html** * **/css/selectors/selectors-case-sensitive-001.html** * **/css/selectors/visited-inheritance.html** * **/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html** * **/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html** * **/dom/nodes/remove-and-adopt-thcrash.html** * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html** * **/html/browsers/history/the-history-interface/history_back_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_go_cross_realm_method.html** * **/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html** * **/html/dom/elements/images/bypass-cache-revalidation.html** * **/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html** * **/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html** * **/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe-in-multicol.sub.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html** * **/html/rendering/replaced-elements/embedded-content/tall-cross-domain-iframe-in-scrolled.sub.html** * **/html/rendering/widgets/the-select-element/select-invalidation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html** * **/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-change.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html** * **/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html** * **/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html** * **/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html** * **/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html** * **/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html** * **/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html** * **/html/semantics/forms/the-input-element/radio-morphed.html** * **/html/semantics/forms/the-progress-element/progress.html** * **/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html** * **/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html** * **/html/syntax/serializing-html-fragments/initial-linefeed-pre.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html** * **/quirks/unitless-length/excluded-properties-001.html** * **/quirks/unitless-length/excluded-properties-003.html** * **/selection/caret/empty-elements.html** * **/selection/contenteditable/cefalse-on-boundaries.html** * **/selection/textcontrols/onselectionchange-content-attribute.html** </details> <details><summary>94× tests that improve but still fail in a way that’s clearly the subject of the test</summary> * **/css/css-animations/animation-base-response-001.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-visited.html** * **/css/css-backgrounds/inheritance.sub.html** * **/css/css-backgrounds/local-attachment-content-box-scroll.html** * **/css/css-color/canvas-change-opacity.html** * **/css/css-color/color-initial-canvastext.html** * **/css/css-flexbox/flex-aspect-ratio-img-column-010.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-004.html** * **/css/css-fonts/parsing/font-face-src-format.html** getter works but insertRule does nothing * **/css/css-fonts/parsing/font-face-src-list.html** as above * **/css/css-fonts/parsing/font-face-src-local.html** as above, but also delayed length change? * **/css/css-fonts/parsing/font-face-src-tech.html** as above * **/css/css-text/white-space/trailing-space-before-br-001.html** * **/css/css-transforms/3d-rendering-context-behavior.html** failures are subject of test, but also blank page? * **/css/css-transforms/individual-transform/change-translate-property.html** * **/css/css-transforms/preserve-3d-flat-grouping-properties.html** * **/css/css-transforms/transforms-support-calc.html** * **/css/css-transitions/inherit-height-transition.html** * **/css/css-ui/inheritance.html** * **/css/css-ui/parsing/outline-width-computed.html** failures are subject of test; https://drafts.csswg.org/css-values-4/#snap-a-length-as-a-border-width * **/css/css-values/lh-unit-003.html** * **/css/css-values/viewport-units-compute.html** * **/css/css-values/viewport-units-keyframes.html** * **/css/css-values/viewport-units-media-queries.html** * **/css/css-values/viewport-units-writing-mode.html** * **/css/cssom-view/elementsFromPoint-table.html** * **/css/cssom-view/scroll-behavior-default-css.html** * **/css/cssom-view/scroll-behavior-element.html** * **/css/cssom-view/scroll-behavior-main-frame-root.html** * **/css/cssom-view/scroll-behavior-main-frame-window.html** * **/css/cssom-view/scroll-behavior-smooth-navigation.html** * **/css/cssom-view/scroll-behavior-subframe-root.html** * **/css/cssom/computed-style-003.html** * **/css/cssom/computed-style-004.html** * **/css/cssom/font-variant-shorthand-serialization.html** * **/css/selectors/dir-selector-auto.html** * **/css/selectors/has-argument-with-explicit-scope.html** * **/css/selectors/has-basic.html** * **/css/selectors/has-relative-argument.html** * **/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html** * **/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html** * **/css/selectors/invalidation/dir-pseudo-class-in-has.html** * **/css/selectors/invalidation/empty-pseudo-in-has.html** * **/css/selectors/invalidation/has-in-adjacent-position.html** * **/css/selectors/invalidation/has-in-ancestor-position.html** * **/css/selectors/invalidation/has-in-parent-position.html** * **/css/selectors/invalidation/has-in-sibling-position.html** * **/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html** * **/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html** * **/css/selectors/invalidation/has-sibling.html** * **/css/selectors/invalidation/has-with-not.html** * **/css/selectors/invalidation/has-with-pseudo-class.html** * **/css/selectors/invalidation/input-pseudo-classes-in-has.html** * **/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/lang-pseudo-class-in-has.html** * **/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html** * **/css/selectors/is-where-basic.html** * **/css/selectors/is-where-not.html** * **/html/rendering/non-replaced-elements/tables/form-in-tables.html** * /html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update- * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html** * **/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html** * **/html/semantics/popovers/popover-stacking.html** * **/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html** * **/resource-timing/resource-reload-TAO.html** * **/selection/bidi/modify.tentative.html** * **/selection/contenteditable/modify.tentative.html** * **/selection/textcontrols/selectionchange.html** * **/css/CSS2/normal-flow/block-in-inline-client-rects-001.html** * **/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html** * **/css/css-animations/computed-style-animation-parsing.html** * **/css/css-variables/variables-substitute-guaranteed-invalid.html** * **/css/cssom-view/elementsFromPoint-simple.html** * **/css/cssom/CSSStyleSheet-modify-after-removal.html** * **/css/cssom/getComputedStyle-display-none-001.html** * **/css/selectors/focus-visible-script-focus-001.html** * **/css/selectors/has-specificity.html** * **/css/selectors/invalidation/is.html** * **/css/selectors/invalidation/not-002.html** * **/dom/events/EventListener-handleEvent-cross-realm.html** * **/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html** * **/html/browsers/the-window-object/window-properties.https.html** * **/html/browsers/the-window-object/window-prototype-chain.html** * **/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html** * **/html/dom/aria-element-reflection.html** * **/html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update-with-border-object-fit.html** * **/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html** * **/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html** * **/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html** * **/quirks/unitless-length/excluded-properties-002.html** </details> <details><summary>22× tests with failures that looked interesting</summary> * 1× CRASH [expected ...] * **/css/css-fonts/crash-large-grapheme-cluster.html** crash is subject of test * 6× FAIL [expected PASS] /... (reftest) * **/css/css-flexbox/anonymous-flex-item-005.html** old pass was spurious * **/css/css-flexbox/anonymous-flex-item-006.html** old pass was spurious * **/css/css-text-decor/text-decoration-line-recalc.html** old pass was spurious; ‘text-decoration’ shorthand unimplemented * **/css/css-ui/appearance-auto-non-html-namespace-001.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html** old pass was spurious * 13× TIMEOUT [expected ...] * **/css/css-fonts/font-size-monospace-adjust.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/css/cssom-view/background-change-during-smooth-scroll.html** timeout is subject of test * **/css/selectors/invalidation/has-complexity.html** timeout is subject of test * **/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html** timeout is subject of test; :has() unimplemented * **/fetch/stale-while-revalidate/stale-image.html** timeout is subject of test * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html** timeout is subject of test * **/html/rendering/widgets/appearance/appearance-animation-001.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-animation-002.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-transition-001.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-002.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-003.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/resource-timing/opaque-origin.html** timeout is subject of test * **/selection/textcontrols/selectionchange-bubble.html** timeout is subject of test * **/webidl/ecmascript-binding/invalid-this-value-cross-realm.html** ‘HTMLDocument’ unimplemented </details> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #27949 (GitHub issue number if applicable) <!-- Either: --> - [x] There are tests for these changes (including but not limited to web-platform-tests/wpt#39211) OR - [ ] These changes do not require tests because ___
bors-servo
added a commit
that referenced
this pull request
Mar 28, 2023
HTML #named-access-on-the-window-object This patch implements [named access on the window object](https://html.spec.whatwg.org/#named-access-on-the-window-object) based on @pylbrecht’s and @yvt’s previous work (see also #27952, #25562, #21869, #19904). That work makes 130 tests pass, and I’ve made some additional changes to make [the test for the feature itself](https://wpt.live/webidl/ecmascript-binding/window-named-properties-object.html) pass too, but I haven’t worked with mozjs before, so I have no idea if I’ve gone about my changes the Right Way. In particular, this patch: * [x] applies @pylbrecht’s patch (#27952) * [x] resolves conflicts related to #29079 and #28546 (5ae0ca4) * [x] applies @yvt’s patch to the segfault in getPrototypeIfOrdinary (1e24ffd) * [x] reverts the change introducing Untransplantable (76dc35a), since #28534 was abandoned in favour of #28536 * [x] triages the unexpected WPT results, updating expectations as needed (see below) * [x] fixes the failures in /webidl/ecmascript-binding/window-named-properties-object.html (3844f69) * [x] fixes the failures in the [[GetOwnProperty]] subtest (75c24e9) * [x] fixes the failures in the [[DefineOwnProperty]] subtest (e4e7a14) * [x] fixes the failures in the [[HasProperty]] subtest (75c24e9) * [x] fixes the failures in the [[Get]] subtest (4bafb27) * [x] fixes the failures in the [[Set]] (direct) subtest (e4e7a14) * [x] fixes the failures in the [[Delete]] subtest (4bafb27) * [x] fixes the failures in the [[OwnPropertyKeys]] subtest (afcd24a) * [x] resolves the todos and fixmes * [x] Document: handle exposed objects ×3 (ed3e37b) * [x] Window::NamedGetter: document.get_elements_with_id() (618ef57) * [x] get_own_property_descriptor: check for interactions with indexed access (b906fae) * [x] create trap: pass proper classp (618ef57) <details><summary>131× tests that now pass</summary> * **/webidl/ecmascript-binding/window-named-properties-object.html** *directly relevant to this patch* * **/FileAPI/Blob-methods-from-detached-frame.html** done #29450 #29451 * **/cors/script-304.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html** * **/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html** * **/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html** * **/css/CSS2/floats/computed-float-position-absolute.html** * **/css/CSS2/normal-flow/block-in-inline-hittest-float-001.html** * **/css/CSS2/normal-flow/block-in-inline-insert-018.html** * **/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html** * **/css/CSS2/positioning/abspos-change-in-inline-block.html** * **/css/CSS2/positioning/abspos-width-change-inline-container-001.html** * **/css/CSS2/positioning/detach-abspos-before-layout.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html** * **/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html** * **/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html** * **/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html** * **/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html** * **/css/CSS2/stacking-context/opacity-transition-change-parent-stacking-context.html** * **/css/css-animations/animation-base-response-002.html** * **/css/css-animations/style-animation-parsing.html** * **/css/css-backgrounds/background-clip-color-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-conic-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-linear-repaint.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-radial-repaint.html** * **/css/css-backgrounds/background-image-none-gradient-repaint.html** * **/css/css-backgrounds/border-radius-dynamic-from-no-radius.html** * **/css/css-backgrounds/child-move-reveals-parent-background.html** * **/css/css-color/filters-under-will-change-opacity.html** * **/css/css-flexbox/anonymous-flex-item-001.html** * **/css/css-flexbox/anonymous-flex-item-003.html** * **/css/css-flexbox/dynamic-bsize-change.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-016.html** * **/css/cssom/at-namespace.html** * **/css/cssom/computed-style-002.html** * **/css/cssom/getComputedStyle-display-none-002.html** * **/css/cssom/getComputedStyle-display-none-003.html** * **/css/cssom/preferred-stylesheet-reversed-order.html** * **/css/cssom-view/HTMLImageElement-x-and-y-ignore-transforms.html** * **/css/cssom-view/pt-to-px-width.html** * **/css/cssom-view/scroll-back-to-initial-position.html** * **/css/css-text-decor/text-decoration-color-recalc-002.html** * **/css/css-text-decor/text-decoration-line-grammar-error-color-dynamic-001.optional.html** * **/css/css-text-decor/text-decoration-line-spelling-error-color-dynamic-001.optional.html** * **/css/css-text/text-indent/percentage-value-intrinsic-size.html** * **/css/css-text/white-space/display-contents-remove-whitespace-change.html** * **/css/css-text/white-space/white-space-empty-text-sibling.html** * **/css/css-transforms/change-perspective-property.html** * **/css/css-transforms/change-scale-wide-range.html** * **/css/css-transforms/change-transform-origin-property.html** * **/css/css-transforms/dynamic-fixed-pos-cb-change.html** * **/css/css-transforms/individual-transform/change-rotate-property.html** * **/css/css-transforms/individual-transform/change-scale-property.html** * **/css/css-transforms/paint-order-with-transform-change.html** * **/css/css-transforms/size-change-under-backface-visibility-hidden.html** * **/css/css-transforms/subpixel-transform-changes-001.html** * **/css/css-transforms/subpixel-transform-changes-002.html** * **/css/css-transforms/subpixel-transform-changes-003.html** * **/css/css-transforms/subpixel-transform-changes-004.html** * **/css/css-transitions/transition-reparented.html** * **/css/css-ui/historical/moz-user-modify-01.html** * **/css/css-ui/historical/user-modify-01.html** * **/css/css-ui/historical/webkit-user-modify-01.html** * **/css/css-ui/resize-change-margin.html** * **/css/css-ui/text-overflow-change-color.html** * **/css/css-ui/text-overflow-ellipsis-width-001.html** * **/css/css-values/animations/line-height-lh-transition.html** * **/css/css-values/calc-nesting.html** * **/css/css-values/update-subpixel-rem-unit.html** * **/css/css-values/viewport-units-modify.html** * **/css/css-variables/css-variable-change-style-001.html** * **/css/css-variables/css-variable-change-style-002.html** * **/css/css-variables/variable-cycles.html** * **/css/selectors/attribute-selectors/style-attribute-selector.html** * **/css/selectors/i18n/lang-pseudo-class-disconnected.html** * **/css/selectors/invalidation/attribute.html** * **/css/selectors/invalidation/class-id-attr.html** * **/css/selectors/invalidation/defined.html** * **/css/selectors/invalidation/sheet-going-away-001.html** * **/css/selectors/invalidation/sibling.html** * **/css/selectors/missing-right-token.html** * **/css/selectors/not-complex.html** * **/css/selectors/not-specificity.html** * **/css/selectors/nth-of-type-namespace.html** * **/css/selectors/selectors-case-sensitive-001.html** * **/css/selectors/visited-inheritance.html** * **/custom-elements/CustomElementRegistry-constructor-and-callbacks-are-held-strongly.html** * **/dom/events/event-global-is-still-set-when-coercing-beforeunload-result.html** * **/dom/nodes/remove-and-adopt-thcrash.html** * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigate-parent-while-child-loading.html** * **/html/browsers/history/the-history-interface/history_back_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_forward_cross_realm_method.html** * **/html/browsers/history/the-history-interface/history_go_cross_realm_method.html** * **/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html** * **/html/dom/elements/images/bypass-cache-revalidation.html** * **/html/rendering/non-replaced-elements/tables/table-ua-stylesheet.html** * **/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html** * **/html/rendering/replaced-elements/embedded-content/change-src-while-not-displayed.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe-in-multicol.sub.html** * **/html/rendering/replaced-elements/embedded-content/cross-domain-iframe.sub.html** * **/html/rendering/replaced-elements/embedded-content/tall-cross-domain-iframe-in-scrolled.sub.html** * **/html/rendering/widgets/the-select-element/select-invalidation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation.html** * **/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-focus.html** * **/html/semantics/embedded-content/the-embed-element/embed-document-under-content-visibility-gbcr.html** * **/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-anchor.html** * **/html/semantics/embedded-content/the-iframe-element/srcdoc-attribute-reset.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-change.html** * **/html/semantics/embedded-content/the-img-element/image-compositing-large-scale-change.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-clip-path.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-zero-intersection-area.html** * **/html/semantics/embedded-content/the-img-element/image-loading-subpixel-clip.html** * **/html/semantics/forms/form-submission-0/form-double-submit-to-different-origin-frame.html** * **/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html** * **/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html** * **/html/semantics/forms/the-button-element/button-willvalidate-readonly-attribute.html** * **/html/semantics/forms/the-input-element/datetime-local-trailing-zeros.html** * **/html/semantics/forms/the-input-element/radio-morphed.html** * **/html/semantics/forms/the-progress-element/progress.html** * **/html/semantics/forms/the-select-element/select-willvalidate-readonly-attribute.html** * **/html/semantics/selectors/pseudo-classes/placeholder-shown-type-change.html** * **/html/syntax/serializing-html-fragments/initial-linefeed-pre.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-errorevent.html** * **/html/webappapis/scripting/events/event-handler-processing-algorithm-error/frameset-element-synthetic-event.html** * **/quirks/unitless-length/excluded-properties-001.html** * **/quirks/unitless-length/excluded-properties-003.html** * **/selection/caret/empty-elements.html** * **/selection/contenteditable/cefalse-on-boundaries.html** * **/selection/textcontrols/onselectionchange-content-attribute.html** </details> <details><summary>94× tests that improve but still fail in a way that’s clearly the subject of the test</summary> * **/css/css-animations/animation-base-response-001.html** * **/css/css-backgrounds/background-image-gradient-currentcolor-visited.html** * **/css/css-backgrounds/inheritance.sub.html** * **/css/css-backgrounds/local-attachment-content-box-scroll.html** * **/css/css-color/canvas-change-opacity.html** * **/css/css-color/color-initial-canvastext.html** * **/css/css-flexbox/flex-aspect-ratio-img-column-010.html** * **/css/css-flexbox/flex-aspect-ratio-img-row-004.html** * **/css/css-fonts/parsing/font-face-src-format.html** getter works but insertRule does nothing * **/css/css-fonts/parsing/font-face-src-list.html** as above * **/css/css-fonts/parsing/font-face-src-local.html** as above, but also delayed length change? * **/css/css-fonts/parsing/font-face-src-tech.html** as above * **/css/css-text/white-space/trailing-space-before-br-001.html** * **/css/css-transforms/3d-rendering-context-behavior.html** failures are subject of test, but also blank page? * **/css/css-transforms/individual-transform/change-translate-property.html** * **/css/css-transforms/preserve-3d-flat-grouping-properties.html** * **/css/css-transforms/transforms-support-calc.html** * **/css/css-transitions/inherit-height-transition.html** * **/css/css-ui/inheritance.html** * **/css/css-ui/parsing/outline-width-computed.html** failures are subject of test; https://drafts.csswg.org/css-values-4/#snap-a-length-as-a-border-width * **/css/css-values/lh-unit-003.html** * **/css/css-values/viewport-units-compute.html** * **/css/css-values/viewport-units-keyframes.html** * **/css/css-values/viewport-units-media-queries.html** * **/css/css-values/viewport-units-writing-mode.html** * **/css/cssom-view/elementsFromPoint-table.html** * **/css/cssom-view/scroll-behavior-default-css.html** * **/css/cssom-view/scroll-behavior-element.html** * **/css/cssom-view/scroll-behavior-main-frame-root.html** * **/css/cssom-view/scroll-behavior-main-frame-window.html** * **/css/cssom-view/scroll-behavior-smooth-navigation.html** * **/css/cssom-view/scroll-behavior-subframe-root.html** * **/css/cssom/computed-style-003.html** * **/css/cssom/computed-style-004.html** * **/css/cssom/font-variant-shorthand-serialization.html** * **/css/selectors/dir-selector-auto.html** * **/css/selectors/has-argument-with-explicit-scope.html** * **/css/selectors/has-basic.html** * **/css/selectors/has-relative-argument.html** * **/css/selectors/invalidation/attribute-or-elemental-selectors-in-has.html** * **/css/selectors/invalidation/child-indexed-pseudo-classes-in-has.html** * **/css/selectors/invalidation/dir-pseudo-class-in-has.html** * **/css/selectors/invalidation/empty-pseudo-in-has.html** * **/css/selectors/invalidation/has-in-adjacent-position.html** * **/css/selectors/invalidation/has-in-ancestor-position.html** * **/css/selectors/invalidation/has-in-parent-position.html** * **/css/selectors/invalidation/has-in-sibling-position.html** * **/css/selectors/invalidation/has-invalidation-after-removing-non-first-element.html** * **/css/selectors/invalidation/has-invalidation-for-wiping-an-element.html** * **/css/selectors/invalidation/has-sibling.html** * **/css/selectors/invalidation/has-with-not.html** * **/css/selectors/invalidation/has-with-pseudo-class.html** * **/css/selectors/invalidation/input-pseudo-classes-in-has.html** * **/css/selectors/invalidation/is-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/lang-pseudo-class-in-has.html** * **/css/selectors/invalidation/not-pseudo-containing-complex-in-has.html** * **/css/selectors/invalidation/typed-child-indexed-pseudo-classes-in-has.html** * **/css/selectors/is-where-basic.html** * **/css/selectors/is-where-not.html** * **/html/rendering/non-replaced-elements/tables/form-in-tables.html** * /html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update- * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-attribute-changes.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-normal-descendant-change.html** * **/html/semantics/document-metadata/the-meta-element/color-scheme/meta-color-scheme-remove.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow-aspect-ratio.html** * **/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html** * **/html/semantics/interactive-elements/the-dialog-element/inertness-with-modal-dialogs-and-iframes.html** * **/html/semantics/popovers/popover-stacking.html** * **/referrer-policy/generic/inheritance/popup-inheritance-form-submission.html** * **/resource-timing/resource-reload-TAO.html** * **/selection/bidi/modify.tentative.html** * **/selection/contenteditable/modify.tentative.html** * **/selection/textcontrols/selectionchange.html** * **/css/CSS2/normal-flow/block-in-inline-client-rects-001.html** * **/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html** * **/css/css-animations/computed-style-animation-parsing.html** * **/css/css-variables/variables-substitute-guaranteed-invalid.html** * **/css/cssom-view/elementsFromPoint-simple.html** * **/css/cssom/CSSStyleSheet-modify-after-removal.html** * **/css/cssom/getComputedStyle-display-none-001.html** * **/css/selectors/focus-visible-script-focus-001.html** * **/css/selectors/has-specificity.html** * **/css/selectors/invalidation/is.html** * **/css/selectors/invalidation/not-002.html** * **/dom/events/EventListener-handleEvent-cross-realm.html** * **/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html** * **/html/browsers/the-window-object/window-properties.https.html** * **/html/browsers/the-window-object/window-prototype-chain.html** * **/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html** * **/html/dom/aria-element-reflection.html** * **/html/rendering/replaced-elements/embedded-content-rendering-rules/canvas-update-with-border-object-fit.html** * **/html/semantics/forms/form-submission-0/form-double-submit-multiple-targets.html** * **/html/semantics/forms/the-input-element/show-picker-cross-origin-iframe.html** * **/html/webappapis/scripting/events/compile-event-handler-lexical-scopes-form-owner.html** * **/quirks/unitless-length/excluded-properties-002.html** </details> <details><summary>22× tests with failures that looked interesting</summary> * 1× CRASH [expected ...] * **/css/css-fonts/crash-large-grapheme-cluster.html** crash is subject of test * 6× FAIL [expected PASS] /... (reftest) * **/css/css-flexbox/anonymous-flex-item-005.html** old pass was spurious * **/css/css-flexbox/anonymous-flex-item-006.html** old pass was spurious * **/css/css-text-decor/text-decoration-line-recalc.html** old pass was spurious; ‘text-decoration’ shorthand unimplemented * **/css/css-ui/appearance-auto-non-html-namespace-001.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-inherit-rtl.html** old pass was spurious * **/html/canvas/element/drawing-text-to-the-canvas/direction-rtl.html** old pass was spurious * 13× TIMEOUT [expected ...] * **/css/css-fonts/font-size-monospace-adjust.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/css/cssom-view/background-change-during-smooth-scroll.html** timeout is subject of test * **/css/selectors/invalidation/has-complexity.html** timeout is subject of test * **/css/selectors/invalidation/media-loading-pseudo-classes-in-has.html** timeout is subject of test; :has() unimplemented * **/fetch/stale-while-revalidate/stale-image.html** timeout is subject of test * **/html/browsers/browsing-the-web/history-traversal/history-traversal-navigates-multiple-frames.html** timeout is subject of test * **/html/rendering/widgets/appearance/appearance-animation-001.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-animation-002.html** timeout is subject of test; reftest runner bug with 1e10s animation? * **/html/rendering/widgets/appearance/appearance-transition-001.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-002.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/html/rendering/widgets/appearance/appearance-transition-003.html** timeout is subject of test; reftest runner bug with 1e10s transition? * **/resource-timing/opaque-origin.html** timeout is subject of test * **/selection/textcontrols/selectionchange-bubble.html** timeout is subject of test * **/webidl/ecmascript-binding/invalid-this-value-cross-realm.html** ‘HTMLDocument’ unimplemented </details> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #27949 (GitHub issue number if applicable) <!-- Either: --> - [x] There are tests for these changes (including but not limited to web-platform-tests/wpt#39211) OR - [ ] These changes do not require tests because ___
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documents in the same agent can share and exchange JS and DOM objects freely, so putting them in separate compartments would require almost every instance of
Domto be capable of handling cross-compartment references../mach build -ddoes not report any errors./mach test-tidydoes not report any errors--debug-mozjsfor the errors to be (reliably) observable