From a37a9f68b810e0e7d2a2d4cce4b9e5706288c434 Mon Sep 17 00:00:00 2001 From: Servo WPT Sync <32481905+servo-wpt-sync@users.noreply.github.com> Date: Sun, 15 Dec 2024 04:52:07 +0100 Subject: [PATCH] Update web-platform-tests to revision b'38623a53d6598cb7aab4be8a810102b352a652df' (#34622) Signed-off-by: WPT Sync Bot --- .../url/url-in-tags-revoke.window.js.ini | 3 - .../css/css-cascade/scope-nesting.html.ini | 3 + .../generic-family-keywords-001.html.ini | 3 - .../gap-decorations-style-computed.html.ini | 36 + ...he-check-pseudo-element.tentative.html.ini | 2 - ...ct-arrow-pseudo-element.tentative.html.ini | 2 - ...keyword-sizes-on-replaced-element.html.ini | 12 + .../stretch/block-height-1.html.ini | 27 +- .../stretch/block-height-2.html.ini | 6 +- .../vh_not_refreshing_on_chrome.html.ini | 1 + ...QueryList-addListener-handleEvent.html.ini | 9 + ...ryList-addListener-removeListener.html.ini | 12 + ...yList-extends-EventTarget-interop.html.ini | 12 + ...ediaQueryList-extends-EventTarget.html.ini | 9 + .../cssom-view/MediaQueryListEvent.html.ini | 6 + ...llWidthHeight-negative-margin-002.html.ini | 48 + ...scrollWidthHeightWhenNotScrollable.xht.ini | 3 + .../css/cssom/serialize-values.html.ini | 3 + .../cssom/stylesheet-same-origin.sub.html.ini | 4 - .../dom/idlharness.window.js.ini | 53 - .../tentative/Node-moveBefore.html.ini | 12 + .../tentative/observable-reduce.any.js.ini | 6 + .../domxpath/booleans.html.ini | 21 + .../domxpath/document.tentative.html.ini | 3 + .../domxpath/evaluator-constructor.html.ini | 3 + .../evaluator-cross-realm.tentative.html.ini | 12 + ...ator-different-document.tentative.html.ini | 24 + .../expression-cross-realm.tentative.html.ini | 12 + ...sion-different-document.tentative.html.ini | 24 + .../domxpath/fn-concat.html.ini | 3 + .../domxpath/fn-contains.html.ini | 3 + .../domxpath/fn-lang.html.ini | 21 + .../domxpath/fn-normalize-space.html.ini | 6 + .../domxpath/fn-starts-with.html.ini | 3 + .../domxpath/fn-substring-after.html.ini | 3 + .../domxpath/fn-substring-before.html.ini | 3 + .../domxpath/fn-substring.html.ini | 3 + .../domxpath/fn-translate.html.ini | 3 + .../domxpath/lexical-structure.html.ini | 6 + .../domxpath/node-sets.html.ini | 3 + .../domxpath/numbers.html.ini | 15 + .../domxpath/predicates.html.ini | 3 + ...k-interface-cross-realm.tentative.html.ini | 15 + .../resolver-callback-interface.html.ini | 30 + .../resolver-non-string-result.html.ini | 18 + .../domxpath/text-html-attributes.html.ini | 45 + .../domxpath/text-html-elements.html.ini | 33 + .../domxpath/xml_xpath_runner.html.ini | 3072 +++++++++++++++++ ...athevaluatorbase-creatensresolver.html.ini | 2 + ...edirect-back-to-original-origin.any.js.ini | 6 - ...remote-read-remote-image-redirect.html.ini | 4 - ...css-font-face.https.sub.tentative.html.ini | 3 + .../css-font-face.sub.tentative.html.ini | 6 + .../css-images.https.sub.tentative.html.ini | 24 + .../css-images.sub.tentative.html.ini | 27 + .../generated/element-area.sub.html.ini | 9 + .../element-audio.https.sub.html.ini | 3 + .../element-embed.https.sub.html.ini | 6 + .../generated/element-embed.sub.html.ini | 9 + .../generated/element-frame.sub.html.ini | 9 + ...-img-environment-change.https.sub.html.ini | 28 +- ...lement-img-environment-change.sub.html.ini | 40 +- .../generated/element-img.https.sub.html.ini | 6 + .../element-input-image.https.sub.html.ini | 6 + .../element-input-image.sub.html.ini | 9 + .../element-link-icon.https.sub.html.ini | 6 + .../generated/element-link-icon.sub.html.ini | 9 + ...-link-prefetch.https.optional.sub.html.ini | 3 + .../element-picture.https.sub.html.ini | 9 + .../element-script.https.sub.html.ini | 3 + .../element-video-poster.https.sub.html.ini | 6 + .../element-video-poster.sub.html.ini | 9 + .../element-video.https.sub.html.ini | 3 + ...fetch-via-serviceworker.https.sub.html.ini | 12 + .../generated/fetch.https.sub.html.ini | 3 + .../generated/form-submission.sub.html.ini | 18 + .../generated/header-link.https.sub.html.ini | 12 + .../generated/header-link.sub.html.ini | 18 + ...header-refresh.https.optional.sub.html.ini | 6 + .../header-refresh.optional.sub.html.ini | 9 + .../generated/svg-image.https.sub.html.ini | 6 + .../metadata/generated/svg-image.sub.html.ini | 9 + .../window-history.https.sub.html.ini | 12 + .../generated/window-history.sub.html.ini | 18 + ...dedicated-importscripts.https.sub.html.ini | 3 + ...c-aboutblank-navigate-immediately.html.ini | 3 + ...avigation-unload-same-origin.window.js.ini | 3 + .../refresh/same-document-refresh.html.ini | 3 + .../embedded-opener-remove-frame.html.ini | 3 - ...ret-position-edge-cases.tentative.html.ini | 3 +- ...re.caret-position-edges.tentative.html.ini | 30 +- ....measure.caret-position.tentative.html.ini | 120 +- ...ret-position-edge-cases.tentative.html.ini | 3 +- ...osition-edge-cases.tentative.worker.js.ini | 3 +- ...re.caret-position-edges.tentative.html.ini | 30 +- ...ret-position-edges.tentative.worker.js.ini | 30 +- ....measure.caret-position.tentative.html.ini | 120 +- .../html/dom/idlharness.https.html.ini | 6 - ...frame-loading-lazy-nav-link-click.html.ini | 3 - .../iframe_sandbox_popups_escaping-2.html.ini | 3 +- .../viewport-change.html.ini | 11 +- .../input-form-detach-style-crash.html.ini | 2 - .../popovers/popover-minimum-role.html.ini | 3 + .../module-static-import-delayed.html.ini | 3 - .../child-document-raf-order.html.ini | 3 - .../nav2-test-timing-persistent.html.ini | 7 + .../no-referrer/iframe-tag.http.html.ini | 37 - .../iframe-tag.http.html.ini | 30 - .../req.attr/origin/iframe-tag.http.html.ini | 36 - .../same-origin/iframe-tag.http.html.ini | 24 - .../iframe-tag.http.html.ini | 30 - .../strict-origin/iframe-tag.http.html.ini | 36 - .../generic/iframe-src-change.html.ini | 4 - .../Worker/Worker-constructor.html.ini | 2 + .../xhr/open-url-multi-window-5.htm.ini | 3 - ...cross-partition-navigation.https.html.ini} | 5 +- ...tition-navigation.tentative.https.html.ini | 13 - ...-partition-worker-creation.https.html.ini} | 2 +- ...n-worker-creation.tentative.https.html.ini | 7 - .../BlobURL/cross-partition.https.html.ini} | 2 +- .../cross-partition.tentative.https.html.ini | 25 - tests/wpt/meta/MANIFEST.json | 2979 +++++++++++++--- .../css/css-cascade/scope-nesting.html.ini | 3 + .../container-for-cue.html.ini | 2 - .../container-units-auto.html.ini | 3 + .../size-container-auto-height.html.ini | 3 + .../aspect-ratio-intrinsic-size-010.html.ini | 2 + .../flexbox-flex-wrap-flexing-003.html.ini | 2 + .../gap-decorations-style-computed.html.ini | 36 + .../gap-decorations-style-valid.html.ini | 45 + ...em-grid-container-auto-repeat-002.html.ini | 2 + ...id-template-shorthand-composition.html.ini | 6 - .../parsing/masonry-fill-computed.html.ini | 6 + .../parsing/masonry-fill-valid.html.ini | 6 + .../highlight-cascade-010.html.ini | 3 + ...t-1.html.ini => block-height-001.html.ini} | 2 +- .../block-height-002.tentative.html.ini | 6 + .../block-height-003.tentative.html.ini | 2 + .../block-height-004.tentative.html.ini | 18 + .../block-height-005.tentative.html.ini | 12 + .../block-height-006.tentative.html.ini | 2 + .../stretch/block-height-2.html.ini | 6 - .../stretch/content-contribution-001.html.ini | 9 + .../vh_not_refreshing_on_chrome.html.ini | 2 + ...QueryList-addListener-handleEvent.html.ini | 9 + ...ryList-addListener-removeListener.html.ini | 14 +- ...yList-extends-EventTarget-interop.html.ini | 12 + ...ediaQueryList-extends-EventTarget.html.ini | 9 + .../cssom-view/MediaQueryListEvent.html.ini | 6 + ...llWidthHeight-negative-margin-002.html.ini | 48 + ...scrollWidthHeightWhenNotScrollable.xht.ini | 3 + .../meta/css/cssom/serialize-values.html.ini | 3 + .../ShadowRoot-importNode.tentative.html.ini | 9 + .../ShadowRoot-innerHTML.tentative.html.ini | 15 + .../tentative/Node-moveBefore.html.ini | 12 + .../tentative/observable-reduce.any.js.ini | 6 + ...css-font-face.https.sub.tentative.html.ini | 3 + .../css-font-face.sub.tentative.html.ini | 9 + .../css-images.https.sub.tentative.html.ini | 27 + .../css-images.sub.tentative.html.ini | 36 + .../generated/element-area.sub.html.ini | 9 + .../element-audio.https.sub.html.ini | 3 + .../element-embed.https.sub.html.ini | 6 + .../generated/element-embed.sub.html.ini | 9 + .../generated/element-frame.sub.html.ini | 9 + ...-img-environment-change.https.sub.html.ini | 38 +- ...lement-img-environment-change.sub.html.ini | 5 +- .../generated/element-img.https.sub.html.ini | 6 + .../element-input-image.https.sub.html.ini | 6 + .../element-input-image.sub.html.ini | 9 + .../element-link-icon.https.sub.html.ini | 6 + .../generated/element-link-icon.sub.html.ini | 9 + ...-link-prefetch.https.optional.sub.html.ini | 3 + .../element-picture.https.sub.html.ini | 9 + .../element-script.https.sub.html.ini | 3 + .../element-video-poster.https.sub.html.ini | 6 + .../element-video-poster.sub.html.ini | 9 + .../element-video.https.sub.html.ini | 3 + ...fetch-via-serviceworker.https.sub.html.ini | 12 + .../generated/fetch.https.sub.html.ini | 3 + .../generated/form-submission.sub.html.ini | 18 + .../generated/header-link.https.sub.html.ini | 12 + .../generated/header-link.sub.html.ini | 18 + ...header-refresh.https.optional.sub.html.ini | 6 + .../header-refresh.optional.sub.html.ini | 9 + .../generated/svg-image.https.sub.html.ini | 6 + .../metadata/generated/svg-image.sub.html.ini | 9 + .../window-history.https.sub.html.ini | 12 + .../generated/window-history.sub.html.ini | 18 + ...dedicated-importscripts.https.sub.html.ini | 3 + .../crashtests/chrome-1312699.html.ini | 2 + .../content-visibility-crash.html.ini | 2 + .../rendering/backdrop-iframe.html.ini | 2 + .../rendering/backdrop-inherit.html.ini | 2 + .../rendering/backdrop-object.html.ini | 2 + .../fullscreen-root-fills-page.html.ini | 2 + ...averse_the_history_write_onload_1.html.ini | 4 + ...-scoped-to-browsing-context-group.html.ini | 3 + ...swap-when-other-contexts-in-group.html.ini | 3 + .../createImageBitmap-transfer.html.ini | 2 +- ...ret-position-edge-cases.tentative.html.ini | 3 - ...re.caret-position-edges.tentative.html.ini | 30 - ....measure.caret-position.tentative.html.ini | 120 - ...-from-offset-edge-cases.tentative.html.ini | 3 + ...index-from-offset-edges.tentative.html.ini | 30 + ...asure.index-from-offset.tentative.html.ini | 120 + ...sters-rendering-options.tentative.html.ini | 3 + ...ret-position-edge-cases.tentative.html.ini | 3 - ...osition-edge-cases.tentative.worker.js.ini | 3 - ...re.caret-position-edges.tentative.html.ini | 30 - ...ret-position-edges.tentative.worker.js.ini | 30 - ....measure.caret-position.tentative.html.ini | 120 - ...-from-offset-edge-cases.tentative.html.ini | 3 + ...-offset-edge-cases.tentative.worker.js.ini | 3 + ...index-from-offset-edges.tentative.html.ini | 30 + ...-from-offset-edges.tentative.worker.js.ini | 30 + ...asure.index-from-offset.tentative.html.ini | 120 + ...sters-rendering-options.tentative.html.ini | 3 + ...-rendering-options.tentative.worker.js.ini | 3 + ...ading-lazy-reload-location-reload.html.ini | 3 - .../iframe_sandbox_popups_escaping-2.html.ini | 2 +- ...rame_sandbox_popups_nonescaping-1.html.ini | 2 +- .../viewport-change.html.ini | 11 +- ...submits-with-commandfor.tentative.html.ini | 9 + .../border-rendering.tentative.html.ini | 2 + ...-popup-with-wrapper-div.tentative.html.ini | 2 + .../picker-and-slotted.tentative.html.ini | 2 + ...elect-appearance-active.tentative.html.ini | 2 + ...ppearance-custom-button.tentative.html.ini | 2 + ...ct-appearance-dark-mode.tentative.html.ini | 2 + ...pearance-default-button.tentative.html.ini | 2 + ...earance-disabled-option.tentative.html.ini | 2 + ...ck-bottom-left-scroller.tentative.html.ini | 2 + ...ce-fallback-bottom-left.tentative.html.ini | 2 + ...k-bottom-right-scroller.tentative.html.ini | 2 + ...e-fallback-bottom-right.tentative.html.ini | 2 + ...lback-top-left-scroller.tentative.html.ini | 2 + ...rance-fallback-top-left.tentative.html.ini | 2 + ...back-top-right-scroller.tentative.html.ini | 2 + ...ance-fallback-top-right.tentative.html.ini | 2 + ...earance-font-inheriting.tentative.html.ini | 2 + ...select-appearance-hover.tentative.html.ini | 2 + ...tgroup-legend-and-label.tentative.html.ini | 2 + ...earance-optgroup-legend.tentative.html.ini | 2 + ...ance-optgroup-rendering.tentative.html.ini | 2 + ...rance-option-with-label.tentative.html.ini | 2 + ...ce-picker-select-border.tentative.html.ini | 2 + ...-switching-invalidation.tentative.html.ini | 2 + ...riting-mode-vertical-lr.tentative.html.ini | 2 + ...riting-mode-vertical-rl.tentative.html.ini | 2 + ...e-wrong-picker-argument.tentative.html.ini | 2 + .../select-explicit-size.tentative.html.ini | 2 + .../select-font-size.tentative.html.ini | 2 + .../select-icon-color.tentative.html.ini | 2 + ...lect-only-button-opt-in.tentative.html.ini | 2 + ...lect-only-picker-opt-in.tentative.html.ini | 2 + ...elect-open-invalidation.tentative.html.ini | 2 + .../select-option-images.tentative.html.ini | 2 + ...-popover-exit-animation.tentative.html.ini | 2 + ...ect-second-child-button.tentative.html.ini | 2 + ...selected-value-behavior.tentative.html.ini | 2 + .../select-text-only.tentative.html.ini | 2 + ...ng-context-group-change.tentative.html.ini | 6 + .../nav2-test-timing-persistent.html.ini | 7 + ...nested-context-navigations-iframe.html.ini | 28 - .../meta/wasm/jsapi/jspi/notraps.any.js.ini | 20 + .../DOMException-is-error.any.js.ini | 27 + .../workers/WorkerGlobalScope-close.html.ini | 3 - .../Worker/Worker-constructor.html.ini | 2 + ... => cross-partition-navigation.https.html} | 0 ...ross-partition-worker-creation.https.html} | 0 ....https.html => cross-partition.https.html} | 0 .../fire-error-event-exception.any.js | 194 ++ .../IndexedDB/fire-error-event-exception.html | 181 - ...ml => fire-success-event-exception.any.js} | 61 +- ...fire-upgradeneeded-event-exception.any.js} | 33 +- .../accname/name/comp_name_from_content.html | 23 + tests/wpt/tests/close-watcher/basic.html | 6 +- .../close-watcher/inside-event-listeners.html | 12 +- .../tests/compat/webkit-box-align-001.html | 26 + .../reporting/report-clips-sample.https.html | 2 +- .../linenumber.tentative.html | 22 + .../anchor-position-multicol-007.html | 25 + .../anchor-position-multicol-008.html | 25 + .../position-try-order-basic.html | 14 +- .../position-try-order-position-area.html | 14 +- .../tests/css/css-cascade/scope-nesting.html | 34 + .../container-units-auto.html | 23 + .../size-container-auto-height.html | 18 + .../css-content/parsing/content-invalid.html | 7 - .../css-content/parsing/content-valid.html | 6 - .../aspect-ratio-intrinsic-size-010.html | 14 + .../flexbox-flex-wrap-flexing-002.html | 8 + .../flexbox-flex-wrap-flexing-003.html | 8 + .../gap-decorations-color-invalid.html | 2 +- .../parsing/gap-decorations-color-valid.html | 2 +- .../gap-decorations-style-computed.html | 15 +- .../gap-decorations-style-invalid.html | 24 + .../parsing/gap-decorations-style-valid.html | 43 + ...x-item-grid-container-auto-repeat-001.html | 32 + ...x-item-grid-container-auto-repeat-002.html | 32 + .../grid-template-shorthand-composition.html | 57 +- ...nt-single-stop-longer-hue-hsl-002-ref.html | 29 + ...adient-single-stop-longer-hue-hsl-002.html | 33 + .../parsing/masonry-fill-computed.html | 21 + .../parsing/masonry-fill-invalid.html | 22 + .../tentative/parsing/masonry-fill-valid.html | 19 + .../css/css-nesting/set-selector-text.html | 44 + ...croller-then-scroll-content-into-view.html | 22 + .../content-change-then-scroll-into-view.html | 22 + .../webkit-line-clamp-abspos-001.html | 35 + .../highlight-cascade-010.html | 29 + ...-elements-affected-by-block-step-size.html | 57 + ...ments-not-affected-by-block-step-size.html | 57 + ...s-margins-affected-by-block-step-size.html | 26 + ...d-margins-affected-by-block-step-size.html | 26 + ...e-margins-affected-by-block-step-size.html | 27 + ...g-margins-affected-by-block-step-size.html | 26 + ...t-margins-affected-by-block-step-size.html | 26 + ...g-margins-affected-by-block-step-size.html | 26 + ...o-margins-affected-by-block-step-size.html | 26 + .../css/css-ruby/ruby-body-element-crash.html | 15 + .../parsing/scroll-start-target-computed.html | 8 +- .../parsing/scroll-start-target-invalid.html | 14 +- .../parsing/scroll-start-target-valid.html | 8 +- ...get-aligns-with-snap-align.tentative.html} | 8 +- ...ial-target-display-toggled.tentative.html} | 16 +- ...al-target-nested-container.tentative.html} | 50 +- ...scroll-initial-target-root.tentative.html} | 10 +- .../scroll-initial-target-rtl.tentative.html} | 12 +- ...scroll-initial-target-span.tentative.html} | 10 +- ...t-with-anchor-navigation-inner-frame.html} | 2 +- ...get-with-anchor-navigation.tentative.html} | 14 +- ...hash-fragment-navigation-inner-frame.html} | 2 +- ...h-hash-fragment-navigation.tentative.html} | 12 +- ...al-target-with-scroll-snap.tentative.html} | 10 +- ...get-with-scroll-start-root.tentative.html} | 10 +- ...l-target-with-scroll-start.tentative.html} | 12 +- ...with-text-fragment-navigation-target.html} | 4 +- ...h-text-fragment-navigation.tentative.html} | 8 +- ...h-user-programmatic-scroll.tentative.html} | 25 +- .../scroll-initial-target.tentative.html} | 10 +- .../stash.py | 10 +- ...uto-sizing-fit-content-percentage-001.html | 31 + ...uto-sizing-fit-content-percentage-002.html | 31 + ...uto-sizing-fit-content-percentage-003.html | 31 + ...uto-sizing-fit-content-percentage-004.html | 31 + ...ck-height-1.html => block-height-001.html} | 0 .../stretch/block-height-002.tentative.html | 62 + .../stretch/block-height-003-ref.html | 16 + .../stretch/block-height-003.tentative.html | 29 + .../stretch/block-height-004.tentative.html | 99 + .../stretch/block-height-005.tentative.html | 77 + .../stretch/block-height-006.tentative.html | 36 + .../css-sizing/stretch/block-height-2.html | 31 - .../stretch/content-contribution-001.html | 58 + .../empty-render-target-crash.html | 19 + .../at-rule-opt-in-change-with-script.html | 39 +- .../chromium-paint-holding-timeout.html | 6 +- .../scrollWidthHeight-contain-layout.html | 2 +- ...scrollWidthHeight-negative-margin-002.html | 2 +- ...ht-overflow-visible-margin-collapsing.html | 51 + .../scrollWidthHeightWhenNotScrollable.xht | 2 +- .../wpt/tests/css/cssom/serialize-values.html | 2 +- .../fecolormatrix-negative-ref.html | 18 + .../fecolormatrix-negative.html | 35 + .../ShadowRoot-importNode.tentative.html | 82 + .../ShadowRoot-innerHTML.tentative.html | 107 + .../tests/docs/writing-tests/testdriver.md | 8 +- .../moveBefore/tentative/Node-moveBefore.html | 44 +- .../tentative/observable-inspect.any.js | 50 +- .../tentative/observable-reduce.any.js | 74 +- tests/wpt/tests/editing/data/delete.js | 22 + tests/wpt/tests/editing/data/forwarddelete.js | 22 + tests/wpt/tests/editing/data/inserttext.js | 11 + tests/wpt/tests/editing/data/multitest.js | 60 +- .../editing/include/editor-test-utils.js | 9 + ...ars-following-collapsible-white-space.html | 284 ++ .../delete-to-make-editing-host-empty.html | 111 + ...ars-following-collapsible-white-space.html | 284 ++ .../resources/element-timing-helpers.js | 9 + .../generated/audioworklet.https.sub.html | 26 + .../css-font-face.https.sub.tentative.html | 20 + .../css-font-face.sub.tentative.html | 30 + .../css-images.https.sub.tentative.html | 145 + .../generated/css-images.sub.tentative.html | 210 ++ .../generated/element-a.https.sub.html | 40 + .../metadata/generated/element-a.sub.html | 60 + .../generated/element-area.https.sub.html | 40 + .../metadata/generated/element-area.sub.html | 60 + .../generated/element-audio.https.sub.html | 27 + .../metadata/generated/element-audio.sub.html | 39 + .../generated/element-embed.https.sub.html | 21 + .../metadata/generated/element-embed.sub.html | 30 + .../generated/element-frame.https.sub.html | 29 + .../metadata/generated/element-frame.sub.html | 42 + .../generated/element-iframe.https.sub.html | 29 + .../generated/element-iframe.sub.html | 42 + ...ment-img-environment-change.https.sub.html | 29 + .../element-img-environment-change.sub.html | 42 + .../generated/element-img.https.sub.html | 58 + .../metadata/generated/element-img.sub.html | 84 + .../element-input-image.https.sub.html | 21 + .../generated/element-input-image.sub.html | 30 + .../element-link-icon.https.sub.html | 31 + .../generated/element-link-icon.sub.html | 45 + ...ment-link-prefetch.https.optional.sub.html | 31 + .../element-link-prefetch.optional.sub.html | 45 + ...ement-meta-refresh.https.optional.sub.html | 24 + .../element-meta-refresh.optional.sub.html | 36 + .../generated/element-picture.https.sub.html | 93 + .../generated/element-picture.sub.html | 135 + .../generated/element-script.https.sub.html | 31 + .../generated/element-script.sub.html | 90 + .../element-video-poster.https.sub.html | 21 + .../generated/element-video-poster.sub.html | 30 + .../generated/element-video.https.sub.html | 27 + .../metadata/generated/element-video.sub.html | 39 + .../fetch-via-serviceworker.https.sub.html | 62 + .../metadata/generated/fetch.https.sub.html | 27 + .../fetch/metadata/generated/fetch.sub.html | 39 + .../generated/form-submission.https.sub.html | 44 + .../generated/form-submission.sub.html | 66 + .../generated/header-link.https.sub.html | 58 + .../metadata/generated/header-link.sub.html | 84 + .../header-refresh.https.optional.sub.html | 24 + .../header-refresh.optional.sub.html | 36 + ...cript-module-import-dynamic.https.sub.html | 26 + .../script-module-import-dynamic.sub.html | 39 + ...script-module-import-static.https.sub.html | 28 + .../script-module-import-static.sub.html | 42 + .../generated/svg-image.https.sub.html | 29 + .../metadata/generated/svg-image.sub.html | 42 + .../generated/window-history.https.sub.html | 44 + .../generated/window-history.sub.html | 66 + .../generated/window-location.https.sub.html | 112 + .../generated/window-location.sub.html | 168 + .../worker-dedicated-constructor.sub.html | 15 + ...ker-dedicated-importscripts.https.sub.html | 27 + .../worker-dedicated-importscripts.sub.html | 39 + .../metadata/tools/fetch-metadata.conf.yml | 81 + .../tentative/resources/ba-fledge-util.sub.js | 4 +- .../fledge/tentative/resources/ba-public-keys | 2 +- .../fullscreen/crashtests/chrome-1312699.html | 21 + .../crashtests/content-visibility-crash.html | 31 + .../rendering/backdrop-green-ref.html | 2 + .../fullscreen/rendering/backdrop-iframe.html | 22 + .../rendering/backdrop-inherit.html | 27 + .../rendering/backdrop-object-ref.html | 14 + .../fullscreen/rendering/backdrop-object.html | 23 + .../fullscreen-root-fills-page-ref.html | 18 + .../rendering/fullscreen-root-fills-page.html | 47 + ...okup-scoped-to-browsing-context-group.html | 27 + ...ive-swap-when-other-contexts-in-group.html | 38 + .../duplicate-name-order.html | 55 + ...e.caret-position-edge-cases.tentative.html | 59 - ...ndex-from-offset-edge-cases.tentative.html | 59 + ...re.index-from-offset-edges.tentative.html} | 44 +- ....measure.index-from-offset.tentative.html} | 404 +-- ...-clusters-rendering-options.tentative.html | 81 + ...e.caret-position-edge-cases.tentative.html | 48 - ...et-position-edge-cases.tentative.worker.js | 41 - ...ndex-from-offset-edge-cases.tentative.html | 48 + ...from-offset-edge-cases.tentative.worker.js | 41 + ...re.index-from-offset-edges.tentative.html} | 44 +- ...dex-from-offset-edges.tentative.worker.js} | 42 +- ....measure.index-from-offset.tentative.html} | 404 +-- ...-clusters-rendering-options.tentative.html | 70 + ...ters-rendering-options.tentative.worker.js | 63 + .../html/canvas/tools/yaml-new/text.yaml | 100 +- .../element-render-blocking-001.html | 21 +- .../element-render-blocking-002.html | 35 +- .../element-render-blocking-003.html | 21 +- .../element-render-blocking-004.html | 21 +- .../element-render-blocking-005.html | 21 +- .../element-render-blocking-006.html | 21 +- .../element-render-blocking-007.html | 21 +- .../element-render-blocking-008.html | 21 +- .../element-render-blocking-009.html | 21 +- .../element-render-blocking-010.html | 21 +- .../element-render-blocking-011.html | 21 +- .../element-render-blocking-012.html | 21 +- .../element-render-blocking-013.html | 21 +- .../element-render-blocking-014.html | 21 +- .../element-render-blocking-015.html | 21 +- .../element-render-blocking-016.html | 21 +- .../element-render-blocking-017.html | 21 +- .../element-render-blocking-018.html | 21 +- .../element-render-blocking-019.html | 21 +- .../element-render-blocking-020.html | 21 +- .../element-render-blocking-021.html | 28 +- .../element-render-blocking-022.html | 21 +- .../element-render-blocking-023.html | 21 +- .../element-render-blocking-024.html | 35 +- .../element-render-blocking-025.html | 43 +- .../element-render-blocking-026.html | 43 +- .../element-render-blocking-027.html | 43 +- .../element-render-blocking-028.html | 43 +- .../element-render-blocking-029.html | 25 +- .../element-render-blocking-030.html | 29 +- .../element-render-blocking-031.html | 27 +- .../element-render-blocking-032.html | 29 +- .../element-render-blocking-033.html | 25 +- .../element-render-blocking-034.html | 28 +- .../element-render-blocking-035.html | 28 +- .../element-render-blocking-036.html | 28 +- .../element-render-blocking-037.html | 28 +- .../element-render-blocking-038.html | 25 +- ...lick-resets-with-commandfor.tentative.html | 64 + ...ick-submits-with-commandfor.tentative.html | 110 + .../border-rendering-ref.html | 12 + .../border-rendering.tentative.html | 15 + .../native-popup-with-wrapper-div-ref.html | 19 + ...tive-popup-with-wrapper-div.tentative.html | 25 + .../picker-and-slotted-ref.html | 32 + .../picker-and-slotted.tentative.html | 41 + .../resources/customizable-select-styles.css | 82 + .../resources/customizable-select-utils.js | 8 + .../resources/fallback-helper.js | 102 + .../select-appearance-active-ref.html | 19 + .../select-appearance-active.tentative.html | 30 + .../select-appearance-button-ref.html | 14 + ...ct-appearance-custom-button.tentative.html | 27 + .../select-appearance-dark-mode-ref.html | 20 + ...select-appearance-dark-mode.tentative.html | 30 + ...t-appearance-default-button.tentative.html | 27 + ...select-appearance-disabled-option-ref.html | 14 + ...-appearance-disabled-option.tentative.html | 27 + ...t-appearance-fallback-bottom-left-ref.html | 15 + ...nce-fallback-bottom-left-scroller-ref.html | 17 + ...llback-bottom-left-scroller.tentative.html | 13 + ...arance-fallback-bottom-left.tentative.html | 14 + ...-appearance-fallback-bottom-right-ref.html | 15 + ...ce-fallback-bottom-right-scroller-ref.html | 18 + ...lback-bottom-right-scroller.tentative.html | 14 + ...rance-fallback-bottom-right.tentative.html | 14 + ...lect-appearance-fallback-top-left-ref.html | 15 + ...arance-fallback-top-left-scroller-ref.html | 17 + ...-fallback-top-left-scroller.tentative.html | 13 + ...ppearance-fallback-top-left.tentative.html | 14 + ...ect-appearance-fallback-top-right-ref.html | 15 + ...rance-fallback-top-right-scroller-ref.html | 18 + ...fallback-top-right-scroller.tentative.html | 14 + ...pearance-fallback-top-right.tentative.html | 14 + ...select-appearance-font-inheriting-ref.html | 24 + ...-appearance-font-inheriting.tentative.html | 34 + .../select-appearance-hover-ref.html | 12 + .../select-appearance-hover.tentative.html | 29 + ...e-optgroup-legend-and-label.tentative.html | 30 + ...select-appearance-optgroup-legend-ref.html | 17 + ...-appearance-optgroup-legend.tentative.html | 30 + ...ect-appearance-optgroup-rendering-ref.html | 33 + ...pearance-optgroup-rendering.tentative.html | 36 + ...ppearance-option-with-label.tentative.html | 27 + ...t-appearance-picker-select-border-ref.html | 19 + ...arance-picker-select-border.tentative.html | 29 + ...appearance-switching-invalidation-ref.html | 24 + ...ance-switching-invalidation.tentative.html | 37 + ...pearance-writing-mode-vertical-lr-ref.html | 20 + ...ce-writing-mode-vertical-lr.tentative.html | 29 + ...pearance-writing-mode-vertical-rl-ref.html | 20 + ...ce-writing-mode-vertical-rl.tentative.html | 29 + ...rance-wrong-picker-argument.tentative.html | 29 + .../select-events.tentative.html | 14 +- .../select-explicit-size-ref.tentative.html | 17 + .../select-explicit-size.tentative.html | 17 + .../select-font-size-ref.tentative.html | 13 + .../select-font-size.tentative.html | 20 + .../select-icon-color-ref.html | 12 + .../select-icon-color.tentative.html | 18 + .../select-multiple-base-appearance-ref.html | 11 + .../select-multiple-base-appearance.html | 20 + .../select-only-button-opt-in.tentative.html | 26 + .../select-only-picker-opt-in-ref.html | 16 + .../select-only-picker-opt-in.tentative.html | 25 + .../select-open-invalidation-ref.html | 20 + .../select-open-invalidation.tentative.html | 38 + .../select-option-images-ref.html | 14 + .../select-option-images.tentative.html | 32 + .../select-popover-exit-animation-ref.html | 15 + ...lect-popover-exit-animation.tentative.html | 40 + .../select-second-child-button-ref.html | 14 + .../select-second-child-button.tentative.html | 27 + .../select-selected-value-behavior-ref.html | 13 + ...ect-selected-value-behavior.tentative.html | 14 + .../select-text-only-ref.html | 7 + .../select-text-only.tentative.html | 15 + .../selectedcontent.tentative.html | 17 +- ...og-popover-closedby-complex.tentative.html | 197 +- .../dialog-requestclose.tentative.html | 77 +- ...arget-button-event-dispatch.tentative.html | 42 +- ...owsing-context-group-change.tentative.html | 92 + .../popovers/popover-minimum-role.html | 49 +- ...-speculative-fetch.tentative.optional.html | 26 + .../resources/no-speculative-fetch.sub.html | 10 + .../no-speculative-fetch.sub.html.headers | 1 + .../resources/stash.py | 11 + .../external-import-map-errors.html | 40 + .../infrastructure/crashtests/testdriver.html | 13 + .../reftest/testdriver-in-ref.html.ini | 5 + .../reftest/testdriver-child.html | 19 + .../reftest/testdriver-iframe.sub.html | 29 + .../reftest/testdriver-in-ref.html | 6 + .../reftest/testdriver-print.html | 23 + .../infrastructure/reftest/testdriver.html | 21 + ...put-events-range-exceptions.tentative.html | 117 + .../first-paint-equals-lcp-text.html | 2 +- tests/wpt/tests/lint.ignore | 15 +- .../tentative/loaf-paint-mixin.html | 22 + .../tentative/loaf-timeline.html | 5 +- .../tentative/resources/utils.js | 19 +- .../nav2-test-timing-persistent.html | 42 +- .../paint-timing/paint-timing-mixin.html | 1 - ...ick_on_chorded_mouse_button.tentative.html | 91 + .../css/animation-range-scroll-timeline.html | 62 + .../siblings-with-anonymous-timelines.html | 79 + tests/wpt/tests/storage-access-api/helpers.js | 11 +- ...frame-navigation-relax.sub.https.window.js | 4 +- ...igin-iframe-navigation.sub.https.window.js | 9 + .../resources/handle-headers-non-retry.py | 20 + .../resources/handle-headers-retry.py | 43 + .../resources/header-helpers.py | 58 + .../nested-handle-storage-access-headers.py | 5 + .../retrieve-storage-access-headers.py | 17 + ...cess-headers.tentative.https.sub.window.js | 487 +++ .../types/SVGElement.ownerSVGElement-01.html | 80 + .../types/SVGElement.ownerSVGElement-02.html | 25 + .../helper-SVGElement.ownerSVGElement-02.svg | 3 + tests/wpt/tests/tools/lint/lint.py | 2 +- .../tests/tools/lint/tests/test_file_lints.py | 35 +- tests/wpt/tests/tools/manifest/item.py | 18 +- tests/wpt/tests/tools/manifest/sourcefile.py | 7 +- .../tools/manifest/tests/test_manifest.py | 26 + tests/wpt/tests/tools/wpt/virtualenv.py | 92 +- .../wptrunner/browsers/headless_shell.py | 14 +- .../tools/wptrunner/wptrunner/environment.py | 67 +- .../wptrunner/executors/executorchrome.py | 4 +- .../wptrunner/executors/executorwebdriver.py | 221 +- .../wptrunner/executors/message-queue.js | 81 + .../wptrunner/executors/test-wait.js | 43 +- .../wptrunner/wptrunner/testdriver-extra.js | 13 +- .../wptrunner/wptrunner/testharnessreport.js | 77 +- .../tools/wptrunner/wptrunner/testloader.py | 2 +- .../wptrunner/tests/test_testloader.py | 4 +- .../wptrunner/tests/test_wptrunner.py | 196 +- .../wptrunner/wptrunner/wptcommandline.py | 2 + .../tools/wptrunner/wptrunner/wptrunner.py | 43 +- .../tools/wptrunner/wptrunner/wpttest.py | 30 +- .../tests/tools/wptserve/wptserve/handlers.py | 14 +- ...bals-CSP-after-adoption-from-TT-realm.html | 74 + ...CSP-after-adoption-from-non-TT-realm.html} | 8 +- .../trusted-types/Element-setAttributeNS.html | 17 +- ...-assignment-to-Element-setAttributeNS.html | 27 +- ...arguments-and-default-policy-throwing.html | 22 + .../tests/trusted-types/support/helper.sub.js | 2 +- .../trusted-types-event-handlers.html | 14 + .../wpt/tests/wasm/jsapi/jspi/notraps.any.js | 82 + .../wpt/tests/wasm/jsapi/jspi/rejects.any.js | 2 +- .../bidi/input/perform_actions/navigation.py | 15 +- .../perform_actions/pointer_mouse_drag.py | 6 +- .../bidi/storage/delete_cookies/partition.py | 2 +- .../classic/perform_actions/navigation.py | 10 +- .../classic/perform_actions/pointer_mouse.py | 7 +- .../DOMException-is-error.any.js | 9 + .../webnn/conformance_tests/gemm.https.any.js | 1150 ++++++ .../layer_normalization.https.any.js | 101 + .../conformance_tests/lstm_cell.https.any.js | 66 +- .../conformance_tests/matmul.https.any.js | 444 +++ tests/wpt/tests/webnn/resources/utils.js | 129 +- .../setParameters-maxFramerate.https.html | 49 +- .../tex-2d-alpha-alpha-unsigned_byte.html.ini | 6 + 671 files changed, 22362 insertions(+), 3510 deletions(-) delete mode 100644 tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-check-pseudo-element.tentative.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-select-arrow-pseudo-element.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryListEvent.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/booleans.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/document.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/evaluator-constructor.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/evaluator-cross-realm.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/evaluator-different-document.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/expression-cross-realm.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/expression-different-document.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/fn-concat.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/fn-contains.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/fn-lang.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/fn-normalize-space.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/fn-starts-with.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/fn-substring-after.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/fn-substring-before.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/fn-substring.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/fn-translate.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/lexical-structure.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/node-sets.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/numbers.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/predicates.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/resolver-callback-interface-cross-realm.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/resolver-callback-interface.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/resolver-non-string-result.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/text-html-attributes.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/text-html-elements.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/xml_xpath_runner.html.ini create mode 100644 tests/wpt/meta-legacy-layout/domxpath/xpathevaluatorbase-creatensresolver.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/fetch/images/canvas-remote-read-remote-image-redirect.html.ini create mode 100644 tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini create mode 100644 tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/refresh/same-document-refresh.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-nav-link-click.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/semantics/forms/the-input-element/input-form-detach-style-crash.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/webappapis/update-rendering/child-document-raf-order.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/referrer-policy/gen/req.attr/no-referrer/iframe-tag.http.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/referrer-policy/gen/req.attr/origin-when-cross-origin/iframe-tag.http.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/referrer-policy/gen/req.attr/origin/iframe-tag.http.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/referrer-policy/gen/req.attr/same-origin/iframe-tag.http.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/referrer-policy/gen/req.attr/strict-origin-when-cross-origin/iframe-tag.http.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/referrer-policy/gen/req.attr/strict-origin/iframe-tag.http.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/referrer-policy/generic/iframe-src-change.html.ini create mode 100644 tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/xhr/open-url-multi-window-5.htm.ini rename tests/wpt/{meta-legacy-layout/FileAPI/BlobURL/cross-partition-navigation.tentative.https.html.ini => meta/FileAPI/BlobURL/cross-partition-navigation.https.html.ini} (69%) delete mode 100644 tests/wpt/meta/FileAPI/BlobURL/cross-partition-navigation.tentative.https.html.ini rename tests/wpt/{meta-legacy-layout/FileAPI/BlobURL/cross-partition-worker-creation.tentative.https.html.ini => meta/FileAPI/BlobURL/cross-partition-worker-creation.https.html.ini} (79%) delete mode 100644 tests/wpt/meta/FileAPI/BlobURL/cross-partition-worker-creation.tentative.https.html.ini rename tests/wpt/{meta-legacy-layout/FileAPI/BlobURL/cross-partition.tentative.https.html.ini => meta/FileAPI/BlobURL/cross-partition.https.html.ini} (95%) delete mode 100644 tests/wpt/meta/FileAPI/BlobURL/cross-partition.tentative.https.html.ini delete mode 100644 tests/wpt/meta/css/css-conditional/container-queries/container-for-cue.html.ini create mode 100644 tests/wpt/meta/css/css-conditional/container-queries/container-units-auto.html.ini create mode 100644 tests/wpt/meta/css/css-conditional/container-queries/size-container-auto-height.html.ini create mode 100644 tests/wpt/meta/css/css-flexbox/aspect-ratio-intrinsic-size-010.html.ini create mode 100644 tests/wpt/meta/css/css-flexbox/flexbox-flex-wrap-flexing-003.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/parsing/gap-decorations-style-valid.html.ini create mode 100644 tests/wpt/meta/css/css-grid/grid-definition/flex-item-grid-container-auto-repeat-002.html.ini delete mode 100644 tests/wpt/meta/css/css-grid/parsing/grid-template-shorthand-composition.html.ini create mode 100644 tests/wpt/meta/css/css-masonry/tentative/parsing/masonry-fill-computed.html.ini create mode 100644 tests/wpt/meta/css/css-masonry/tentative/parsing/masonry-fill-valid.html.ini create mode 100644 tests/wpt/meta/css/css-pseudo/highlight-cascade/highlight-cascade-010.html.ini rename tests/wpt/meta/css/css-sizing/stretch/{block-height-1.html.ini => block-height-001.html.ini} (94%) create mode 100644 tests/wpt/meta/css/css-sizing/stretch/block-height-002.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-sizing/stretch/block-height-003.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-sizing/stretch/block-height-004.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-sizing/stretch/block-height-005.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-sizing/stretch/block-height-006.tentative.html.ini delete mode 100644 tests/wpt/meta/css/css-sizing/stretch/block-height-2.html.ini create mode 100644 tests/wpt/meta/css/css-sizing/stretch/content-contribution-001.html.ini create mode 100644 tests/wpt/meta/css/css-values/vh_not_refreshing_on_chrome.html.ini create mode 100644 tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini create mode 100644 tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini create mode 100644 tests/wpt/meta/css/cssom-view/MediaQueryListEvent.html.ini create mode 100644 tests/wpt/meta/custom-elements/scoped-registry/ShadowRoot-importNode.tentative.html.ini create mode 100644 tests/wpt/meta/custom-elements/scoped-registry/ShadowRoot-innerHTML.tentative.html.ini create mode 100644 tests/wpt/meta/fullscreen/crashtests/chrome-1312699.html.ini create mode 100644 tests/wpt/meta/fullscreen/crashtests/content-visibility-crash.html.ini create mode 100644 tests/wpt/meta/fullscreen/rendering/backdrop-iframe.html.ini create mode 100644 tests/wpt/meta/fullscreen/rendering/backdrop-inherit.html.ini create mode 100644 tests/wpt/meta/fullscreen/rendering/backdrop-object.html.ini create mode 100644 tests/wpt/meta/fullscreen/rendering/fullscreen-root-fills-page.html.ini create mode 100644 tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_write_onload_1.html.ini create mode 100644 tests/wpt/meta/html/browsers/windows/auxiliary-browsing-contexts/named-lookup-scoped-to-browsing-context-group.html.ini create mode 100644 tests/wpt/meta/html/browsers/windows/auxiliary-browsing-contexts/no-proactive-swap-when-other-contexts-in-group.html.ini delete mode 100644 tests/wpt/meta/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini delete mode 100644 tests/wpt/meta/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html.ini delete mode 100644 tests/wpt/meta/html/canvas/element/text/2d.text.measure.caret-position.tentative.html.ini create mode 100644 tests/wpt/meta/html/canvas/element/text/2d.text.measure.index-from-offset-edge-cases.tentative.html.ini create mode 100644 tests/wpt/meta/html/canvas/element/text/2d.text.measure.index-from-offset-edges.tentative.html.ini create mode 100644 tests/wpt/meta/html/canvas/element/text/2d.text.measure.index-from-offset.tentative.html.ini create mode 100644 tests/wpt/meta/html/canvas/element/text/2d.text.measure.text-clusters-rendering-options.tentative.html.ini delete mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini delete mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js.ini delete mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html.ini delete mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js.ini delete mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html.ini create mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.html.ini create mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.worker.js.ini create mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.html.ini create mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.worker.js.ini create mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.index-from-offset.tentative.html.ini create mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.html.ini create mode 100644 tests/wpt/meta/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.worker.js.ini delete mode 100644 tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-reload-location-reload.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-button-element/button-click-submits-with-commandfor.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/border-rendering.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/native-popup-with-wrapper-div.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/picker-and-slotted.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-active.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-custom-button.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-dark-mode.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-default-button.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-option.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-font-inheriting.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-hover.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-and-label.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-rendering.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-option-with-label.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-picker-select-border.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-switching-invalidation.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-lr.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-rl.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-wrong-picker-argument.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-explicit-size.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-font-size.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-icon-color.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-only-button-opt-in.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-only-picker-opt-in.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-open-invalidation.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-option-images.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-popover-exit-animation.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-second-child-button.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-selected-value-behavior.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-text-only.tentative.html.ini create mode 100644 tests/wpt/meta/html/semantics/links/links-created-by-a-and-area-elements/rel-opener-prevents-browsing-context-group-change.tentative.html.ini delete mode 100644 tests/wpt/meta/resource-timing/nested-context-navigations-iframe.html.ini create mode 100644 tests/wpt/meta/wasm/jsapi/jspi/notraps.any.js.ini create mode 100644 tests/wpt/meta/webidl/ecmascript-binding/es-exceptions/DOMException-is-error.any.js.ini delete mode 100644 tests/wpt/meta/workers/WorkerGlobalScope-close.html.ini create mode 100644 tests/wpt/meta/workers/constructors/Worker/Worker-constructor.html.ini rename tests/wpt/tests/FileAPI/BlobURL/{cross-partition-navigation.tentative.https.html => cross-partition-navigation.https.html} (100%) rename tests/wpt/tests/FileAPI/BlobURL/{cross-partition-worker-creation.tentative.https.html => cross-partition-worker-creation.https.html} (100%) rename tests/wpt/tests/FileAPI/BlobURL/{cross-partition.tentative.https.html => cross-partition.https.html} (100%) create mode 100644 tests/wpt/tests/IndexedDB/fire-error-event-exception.any.js delete mode 100644 tests/wpt/tests/IndexedDB/fire-error-event-exception.html rename tests/wpt/tests/IndexedDB/{fire-success-event-exception.html => fire-success-event-exception.any.js} (58%) rename tests/wpt/tests/IndexedDB/{fire-upgradeneeded-event-exception.html => fire-upgradeneeded-event-exception.any.js} (74%) create mode 100644 tests/wpt/tests/compat/webkit-box-align-001.html create mode 100644 tests/wpt/tests/content-security-policy/securitypolicyviolation/linenumber.tentative.html create mode 100644 tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-007.html create mode 100644 tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-008.html create mode 100644 tests/wpt/tests/css/css-conditional/container-queries/container-units-auto.html create mode 100644 tests/wpt/tests/css/css-conditional/container-queries/size-container-auto-height.html create mode 100644 tests/wpt/tests/css/css-flexbox/aspect-ratio-intrinsic-size-010.html create mode 100644 tests/wpt/tests/css/css-flexbox/flexbox-flex-wrap-flexing-002.html create mode 100644 tests/wpt/tests/css/css-flexbox/flexbox-flex-wrap-flexing-003.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-invalid.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-valid.html create mode 100644 tests/wpt/tests/css/css-grid/grid-definition/flex-item-grid-container-auto-repeat-001.html create mode 100644 tests/wpt/tests/css/css-grid/grid-definition/flex-item-grid-container-auto-repeat-002.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-single-stop-longer-hue-hsl-002-ref.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-single-stop-longer-hue-hsl-002.html create mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-computed.html create mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-invalid.html create mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-valid.html create mode 100644 tests/wpt/tests/css/css-nesting/set-selector-text.html create mode 100644 tests/wpt/tests/css/css-overflow/add-scroller-then-scroll-content-into-view.html create mode 100644 tests/wpt/tests/css/css-overflow/content-change-then-scroll-into-view.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-abspos-001.html create mode 100644 tests/wpt/tests/css/css-pseudo/highlight-cascade/highlight-cascade-010.html create mode 100644 tests/wpt/tests/css/css-rhythm/computedstyle/block-level-replaced-elements-affected-by-block-step-size.html create mode 100644 tests/wpt/tests/css/css-rhythm/computedstyle/inline-level-replaced-elements-not-affected-by-block-step-size.html create mode 100644 tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-canvas-margins-affected-by-block-step-size.html create mode 100644 tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-embed-margins-affected-by-block-step-size.html create mode 100644 tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-iframe-margins-affected-by-block-step-size.html create mode 100644 tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-img-margins-affected-by-block-step-size.html create mode 100644 tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-object-margins-affected-by-block-step-size.html create mode 100644 tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-svg-margins-affected-by-block-step-size.html create mode 100644 tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-video-margins-affected-by-block-step-size.html create mode 100644 tests/wpt/tests/css/css-ruby/ruby-body-element-crash.html rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-aligns-with-snap-align.tentative.html => scroll-initial-target/scroll-initial-target-aligns-with-snap-align.tentative.html} (91%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-display-toggled.tentative.html => scroll-initial-target/scroll-initial-target-display-toggled.tentative.html} (88%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-nested-container.tentative.html => scroll-initial-target/scroll-initial-target-nested-container.tentative.html} (82%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-root.tentative.html => scroll-initial-target/scroll-initial-target-root.tentative.html} (83%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-rtl.tentative.html => scroll-initial-target/scroll-initial-target-rtl.tentative.html} (78%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-span.tentative.html => scroll-initial-target/scroll-initial-target-span.tentative.html} (80%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-with-anchor-navigation-inner-frame.html => scroll-initial-target/scroll-initial-target-with-anchor-navigation-inner-frame.html} (94%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-with-anchor-navigation.tentative.html => scroll-initial-target/scroll-initial-target-with-anchor-navigation.tentative.html} (81%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-with-hash-fragment-navigation-inner-frame.html => scroll-initial-target/scroll-initial-target-with-hash-fragment-navigation-inner-frame.html} (95%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-with-hash-fragment-navigation.tentative.html => scroll-initial-target/scroll-initial-target-with-hash-fragment-navigation.tentative.html} (70%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-with-scroll-snap.tentative.html => scroll-initial-target/scroll-initial-target-with-scroll-snap.tentative.html} (87%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-with-scroll-start-root.tentative.html => scroll-initial-target/scroll-initial-target-with-scroll-start-root.tentative.html} (83%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-with-scroll-start.tentative.html => scroll-initial-target/scroll-initial-target-with-scroll-start.tentative.html} (82%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-with-text-fragment-navigation-target.html => scroll-initial-target/scroll-initial-target-with-text-fragment-navigation-target.html} (93%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-with-text-fragment-navigation.tentative.html => scroll-initial-target/scroll-initial-target-with-text-fragment-navigation.tentative.html} (77%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target-with-user-programmatic-scroll.tentative.html => scroll-initial-target/scroll-initial-target-with-user-programmatic-scroll.tentative.html} (80%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target/scroll-start-target.tentative.html => scroll-initial-target/scroll-initial-target.tentative.html} (85%) rename tests/wpt/tests/css/css-scroll-snap-2/{scroll-start-target => scroll-initial-target}/stash.py (68%) create mode 100644 tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-001.html create mode 100644 tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-002.html create mode 100644 tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-003.html create mode 100644 tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-004.html rename tests/wpt/tests/css/css-sizing/stretch/{block-height-1.html => block-height-001.html} (100%) create mode 100644 tests/wpt/tests/css/css-sizing/stretch/block-height-002.tentative.html create mode 100644 tests/wpt/tests/css/css-sizing/stretch/block-height-003-ref.html create mode 100644 tests/wpt/tests/css/css-sizing/stretch/block-height-003.tentative.html create mode 100644 tests/wpt/tests/css/css-sizing/stretch/block-height-004.tentative.html create mode 100644 tests/wpt/tests/css/css-sizing/stretch/block-height-005.tentative.html create mode 100644 tests/wpt/tests/css/css-sizing/stretch/block-height-006.tentative.html delete mode 100644 tests/wpt/tests/css/css-sizing/stretch/block-height-2.html create mode 100644 tests/wpt/tests/css/css-sizing/stretch/content-contribution-001.html create mode 100644 tests/wpt/tests/css/css-view-transitions/empty-render-target-crash.html create mode 100644 tests/wpt/tests/css/cssom-view/scrollWidthHeight-overflow-visible-margin-collapsing.html create mode 100644 tests/wpt/tests/css/filter-effects/fecolormatrix-negative-ref.html create mode 100644 tests/wpt/tests/css/filter-effects/fecolormatrix-negative.html create mode 100644 tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-importNode.tentative.html create mode 100644 tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-innerHTML.tentative.html create mode 100644 tests/wpt/tests/editing/run/delete-chars-following-collapsible-white-space.html create mode 100644 tests/wpt/tests/editing/run/delete-to-make-editing-host-empty.html create mode 100644 tests/wpt/tests/editing/run/forwarddelete-chars-following-collapsible-white-space.html create mode 100644 tests/wpt/tests/fullscreen/crashtests/chrome-1312699.html create mode 100644 tests/wpt/tests/fullscreen/crashtests/content-visibility-crash.html create mode 100644 tests/wpt/tests/fullscreen/rendering/backdrop-green-ref.html create mode 100644 tests/wpt/tests/fullscreen/rendering/backdrop-iframe.html create mode 100644 tests/wpt/tests/fullscreen/rendering/backdrop-inherit.html create mode 100644 tests/wpt/tests/fullscreen/rendering/backdrop-object-ref.html create mode 100644 tests/wpt/tests/fullscreen/rendering/backdrop-object.html create mode 100644 tests/wpt/tests/fullscreen/rendering/fullscreen-root-fills-page-ref.html create mode 100644 tests/wpt/tests/fullscreen/rendering/fullscreen-root-fills-page.html create mode 100644 tests/wpt/tests/html/browsers/windows/auxiliary-browsing-contexts/named-lookup-scoped-to-browsing-context-group.html create mode 100644 tests/wpt/tests/html/browsers/windows/auxiliary-browsing-contexts/no-proactive-swap-when-other-contexts-in-group.html create mode 100644 tests/wpt/tests/html/browsers/windows/browsing-context-names/duplicate-name-order.html delete mode 100644 tests/wpt/tests/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html create mode 100644 tests/wpt/tests/html/canvas/element/text/2d.text.measure.index-from-offset-edge-cases.tentative.html rename tests/wpt/tests/html/canvas/element/text/{2d.text.measure.caret-position-edges.tentative.html => 2d.text.measure.index-from-offset-edges.tentative.html} (88%) rename tests/wpt/tests/html/canvas/element/text/{2d.text.measure.caret-position.tentative.html => 2d.text.measure.index-from-offset.tentative.html} (88%) create mode 100644 tests/wpt/tests/html/canvas/element/text/2d.text.measure.text-clusters-rendering-options.tentative.html delete mode 100644 tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html delete mode 100644 tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js create mode 100644 tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.html create mode 100644 tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.worker.js rename tests/wpt/tests/html/canvas/offscreen/text/{2d.text.measure.caret-position-edges.tentative.html => 2d.text.measure.index-from-offset-edges.tentative.html} (88%) rename tests/wpt/tests/html/canvas/offscreen/text/{2d.text.measure.caret-position-edges.tentative.worker.js => 2d.text.measure.index-from-offset-edges.tentative.worker.js} (88%) rename tests/wpt/tests/html/canvas/offscreen/text/{2d.text.measure.caret-position.tentative.html => 2d.text.measure.index-from-offset.tentative.html} (88%) create mode 100644 tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.html create mode 100644 tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.worker.js create mode 100644 tests/wpt/tests/html/semantics/forms/the-button-element/button-click-resets-with-commandfor.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-button-element/button-click-submits-with-commandfor.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/border-rendering-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/border-rendering.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/native-popup-with-wrapper-div-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/native-popup-with-wrapper-div.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/picker-and-slotted-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/picker-and-slotted.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-utils.js create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/fallback-helper.js create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-active-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-active.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-button-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-custom-button.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-dark-mode-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-dark-mode.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-default-button.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-option-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-option.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-font-inheriting-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-font-inheriting.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-hover-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-hover.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-and-label.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-rendering-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-rendering.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-option-with-label.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-picker-select-border-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-picker-select-border.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-switching-invalidation-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-switching-invalidation.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-lr-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-lr.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-rl-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-rl.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-wrong-picker-argument.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-explicit-size-ref.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-explicit-size.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-font-size-ref.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-font-size.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-icon-color-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-icon-color.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-button-opt-in.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-picker-opt-in-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-picker-opt-in.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-open-invalidation-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-open-invalidation.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-option-images-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-option-images.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-popover-exit-animation-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-popover-exit-animation.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-second-child-button-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-second-child-button.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-selected-value-behavior-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-selected-value-behavior.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-text-only-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-text-only.tentative.html create mode 100644 tests/wpt/tests/html/semantics/links/links-created-by-a-and-area-elements/rel-opener-prevents-browsing-context-group-change.tentative.html create mode 100644 tests/wpt/tests/html/syntax/speculative-parsing/expect-no-linked-resources/no-speculative-fetch.tentative.optional.html create mode 100644 tests/wpt/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/no-speculative-fetch.sub.html create mode 100644 tests/wpt/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/no-speculative-fetch.sub.html.headers create mode 100644 tests/wpt/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/stash.py create mode 100644 tests/wpt/tests/import-maps/external-import-map-errors.html create mode 100644 tests/wpt/tests/infrastructure/crashtests/testdriver.html create mode 100644 tests/wpt/tests/infrastructure/metadata/infrastructure/reftest/testdriver-in-ref.html.ini create mode 100644 tests/wpt/tests/infrastructure/reftest/testdriver-child.html create mode 100644 tests/wpt/tests/infrastructure/reftest/testdriver-iframe.sub.html create mode 100644 tests/wpt/tests/infrastructure/reftest/testdriver-in-ref.html create mode 100644 tests/wpt/tests/infrastructure/reftest/testdriver-print.html create mode 100644 tests/wpt/tests/infrastructure/reftest/testdriver.html create mode 100644 tests/wpt/tests/input-events/input-events-range-exceptions.tentative.html create mode 100644 tests/wpt/tests/long-animation-frame/tentative/loaf-paint-mixin.html create mode 100644 tests/wpt/tests/pointerevents/pointerevent_click_on_chorded_mouse_button.tentative.html create mode 100644 tests/wpt/tests/scroll-animations/css/animation-range-scroll-timeline.html create mode 100644 tests/wpt/tests/scroll-animations/css/siblings-with-anonymous-timelines.html create mode 100644 tests/wpt/tests/storage-access-api/resources/handle-headers-non-retry.py create mode 100644 tests/wpt/tests/storage-access-api/resources/handle-headers-retry.py create mode 100644 tests/wpt/tests/storage-access-api/resources/header-helpers.py create mode 100644 tests/wpt/tests/storage-access-api/resources/nested-handle-storage-access-headers.py create mode 100644 tests/wpt/tests/storage-access-api/resources/retrieve-storage-access-headers.py create mode 100644 tests/wpt/tests/storage-access-api/storage-access-headers.tentative.https.sub.window.js create mode 100644 tests/wpt/tests/svg/types/SVGElement.ownerSVGElement-01.html create mode 100644 tests/wpt/tests/svg/types/SVGElement.ownerSVGElement-02.html create mode 100644 tests/wpt/tests/svg/types/helper-SVGElement.ownerSVGElement-02.svg create mode 100644 tests/wpt/tests/tools/wptrunner/wptrunner/executors/message-queue.js create mode 100644 tests/wpt/tests/trusted-types/Element-setAttribute-respects-Elements-node-documents-globals-CSP-after-adoption-from-TT-realm.html rename tests/wpt/tests/trusted-types/{Element-setAttribute-respects-Elements-node-documents-globals-CSP.html => Element-setAttribute-respects-Elements-node-documents-globals-CSP-after-adoption-from-non-TT-realm.html} (89%) create mode 100644 tests/wpt/tests/trusted-types/eval-function-constructor-untrusted-arguments-and-default-policy-throwing.html create mode 100644 tests/wpt/tests/wasm/jsapi/jspi/notraps.any.js create mode 100644 tests/wpt/tests/webidl/ecmascript-binding/es-exceptions/DOMException-is-error.any.js diff --git a/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini index 35fe4fd6e0d..282ab0b2525 100644 --- a/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -14,6 +14,3 @@ [Opening a blob URL in a new window by clicking an tag works immediately before revoking the URL.] expected: TIMEOUT - - [Fetching a blob URL immediately before revoking it works in - - - diff --git a/tests/wpt/tests/IndexedDB/fire-success-event-exception.html b/tests/wpt/tests/IndexedDB/fire-success-event-exception.any.js similarity index 58% rename from tests/wpt/tests/IndexedDB/fire-success-event-exception.html rename to tests/wpt/tests/IndexedDB/fire-success-event-exception.any.js index eaff1b962a0..bd757ea6b1f 100644 --- a/tests/wpt/tests/IndexedDB/fire-success-event-exception.html +++ b/tests/wpt/tests/IndexedDB/fire-success-event-exception.any.js @@ -1,29 +1,29 @@ - - -Fire success event - Exception thrown - - - - - diff --git a/tests/wpt/tests/IndexedDB/fire-upgradeneeded-event-exception.html b/tests/wpt/tests/IndexedDB/fire-upgradeneeded-event-exception.any.js similarity index 74% rename from tests/wpt/tests/IndexedDB/fire-upgradeneeded-event-exception.html rename to tests/wpt/tests/IndexedDB/fire-upgradeneeded-event-exception.any.js index 7160dbdfc7d..3b17d90f7ca 100644 --- a/tests/wpt/tests/IndexedDB/fire-upgradeneeded-event-exception.html +++ b/tests/wpt/tests/IndexedDB/fire-upgradeneeded-event-exception.any.js @@ -1,16 +1,14 @@ - - -Fire upgradeneeded event - Exception thrown - - - - - diff --git a/tests/wpt/tests/accname/name/comp_name_from_content.html b/tests/wpt/tests/accname/name/comp_name_from_content.html index 32a9a7b3c43..b0c92c8142c 100644 --- a/tests/wpt/tests/accname/name/comp_name_from_content.html +++ b/tests/wpt/tests/accname/name/comp_name_from_content.html @@ -259,6 +259,29 @@

Call us

Call us

+ + + +

Elements with implicit button, heading, link roles containing element with implicit term role

+ +

this is an example

+
this is an example + +

Elements with implicit button, heading, link roles containing element with explicit term role

+ +

this is an example

+this is an example + +

Elements with explicit button, heading, link roles containing element with implicit term role

+
this is an example
+
this is an example
+
this is an example
+ +

Elements with explicit button, heading, link roles containing element with explicit term role

+
this is an example
+
this is an example
+
this is an example
+ diff --git a/tests/wpt/tests/close-watcher/basic.html b/tests/wpt/tests/close-watcher/basic.html index 79a91e127ef..1b092630559 100644 --- a/tests/wpt/tests/close-watcher/basic.html +++ b/tests/wpt/tests/close-watcher/basic.html @@ -14,7 +14,7 @@ test(t => { watcher.requestClose(); - assert_array_equals(events, ["cancel[cancelable=false]", "close"]); + assert_array_equals(events, ["cancel[cancelable=true]", "close"]); }, "requestClose() with no user activation"); test(t => { @@ -43,10 +43,10 @@ test(t => { let watcher = createRecordingCloseWatcher(t, events); watcher.requestClose(); - assert_array_equals(events, ["cancel[cancelable=false]", "close"]); + assert_array_equals(events, ["cancel[cancelable=true]", "close"]); watcher.destroy(); - assert_array_equals(events, ["cancel[cancelable=false]", "close"]); + assert_array_equals(events, ["cancel[cancelable=true]", "close"]); }, "requestClose() then destroy()"); test(t => { diff --git a/tests/wpt/tests/close-watcher/inside-event-listeners.html b/tests/wpt/tests/close-watcher/inside-event-listeners.html index 47f431e2503..93996fb5fee 100644 --- a/tests/wpt/tests/close-watcher/inside-event-listeners.html +++ b/tests/wpt/tests/close-watcher/inside-event-listeners.html @@ -30,10 +30,10 @@ test(t => { watcher.onclose = () => { watcher.destroy(); } watcher.requestClose(); - assert_array_equals(events, ["cancel[cancelable=false]", "close"]); + assert_array_equals(events, ["cancel[cancelable=true]", "close"]); watcher.requestClose(); - assert_array_equals(events, ["cancel[cancelable=false]", "close"], "since it was inactive, no more events fired"); + assert_array_equals(events, ["cancel[cancelable=true]", "close"], "since it was inactive, no more events fired"); }, "destroy() inside onclose"); promise_test(async t => { @@ -58,10 +58,10 @@ test(t => { watcher.onclose = () => { watcher.close(); } watcher.requestClose(); - assert_array_equals(events, ["cancel[cancelable=false]", "close"]); + assert_array_equals(events, ["cancel[cancelable=true]", "close"]); watcher.requestClose(); - assert_array_equals(events, ["cancel[cancelable=false]", "close"], "since it was inactive, no more events fired"); + assert_array_equals(events, ["cancel[cancelable=true]", "close"], "since it was inactive, no more events fired"); }, "close() inside onclose"); promise_test(async t => { @@ -86,9 +86,9 @@ test(t => { watcher.onclose = () => { watcher.requestClose(); } watcher.requestClose(); - assert_array_equals(events, ["cancel[cancelable=false]", "close"]); + assert_array_equals(events, ["cancel[cancelable=true]", "close"]); watcher.requestClose(); - assert_array_equals(events, ["cancel[cancelable=false]", "close"], "since it was inactive, no more events fired"); + assert_array_equals(events, ["cancel[cancelable=true]", "close"], "since it was inactive, no more events fired"); }, "requestClose() inside onclose"); diff --git a/tests/wpt/tests/compat/webkit-box-align-001.html b/tests/wpt/tests/compat/webkit-box-align-001.html new file mode 100644 index 00000000000..83f095ddd24 --- /dev/null +++ b/tests/wpt/tests/compat/webkit-box-align-001.html @@ -0,0 +1,26 @@ + + + + + + + + + + +
+
+
diff --git a/tests/wpt/tests/content-security-policy/reporting/report-clips-sample.https.html b/tests/wpt/tests/content-security-policy/reporting/report-clips-sample.https.html index ae9e380bc2d..fe6b457fc7b 100644 --- a/tests/wpt/tests/content-security-policy/reporting/report-clips-sample.https.html +++ b/tests/wpt/tests/content-security-policy/reporting/report-clips-sample.https.html @@ -35,7 +35,7 @@ }, `Unsafe indirect eval violation sample is clipped to ${trimmedSampleLength} characters.`); const functionBody = "return '1234567890123456789012345678901234567890';"; - const sampleWithoutFunctionPrefix = `(a,b\n) {\nreturn ${functionBody}\n}`; + const sampleWithoutFunctionPrefix = `(a,b\n) {\n${functionBody}\n}`; promise_test(t => { assert_throws_js(EvalError, _ => { diff --git a/tests/wpt/tests/content-security-policy/securitypolicyviolation/linenumber.tentative.html b/tests/wpt/tests/content-security-policy/securitypolicyviolation/linenumber.tentative.html new file mode 100644 index 00000000000..3299a6af2fb --- /dev/null +++ b/tests/wpt/tests/content-security-policy/securitypolicyviolation/linenumber.tentative.html @@ -0,0 +1,22 @@ + + + + + + + + + + + + diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-007.html b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-007.html new file mode 100644 index 00000000000..b8aca116447 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-007.html @@ -0,0 +1,25 @@ + + + + + +

Test passes if there is a filled green square and no red.

+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-008.html b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-008.html new file mode 100644 index 00000000000..f652b6ac2b0 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-008.html @@ -0,0 +1,25 @@ + + + + + +

Test passes if there is a filled green square and no red.

+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html b/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html index c7705a71bbb..f54ce44f723 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html @@ -184,14 +184,22 @@ test_order('most-block-size --bottom-sweep, --left-sweep', '--left-sweep'); test_order('most-inline-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep', '--left-sweep'); test_order('most-block-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep', '--top-sweep'); +// NOTE: the css-anchor-position-1 spec requires that only a minimum of five +// fallback positions be respected. So this test, while intended to test across +// all 8 fallbacks, intentionally leaves off 3 of them. test_order(`most-inline-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep, - --right, --left, --bottom, --top - `, '--left-sweep'); + /* --right, --left, --bottom, --top */ + --bottom + `, '--bottom'); +// NOTE: the css-anchor-position-1 spec requires that only a minimum of five +// fallback positions be respected. So this test, while intended to test across +// all 8 fallbacks, intentionally leaves off 3 of them. test_order(`most-block-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep, - --right, --left, --bottom, --top + /* --right, --left, --bottom, --top */ + --right `, '--right'); diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-order-position-area.html b/tests/wpt/tests/css/css-anchor-position/position-try-order-position-area.html index 3b7a3475c75..4ffbbd0b71d 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-order-position-area.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-order-position-area.html @@ -183,14 +183,22 @@ test_position_area_order('most-block-size --bottom-sweep, --left-sweep', '--left test_position_area_order('most-inline-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep', '--left-sweep'); test_position_area_order('most-block-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep', '--top-sweep'); +// NOTE: the css-anchor-position-1 spec requires that only a minimum of five +// fallback positions be respected. So this test, while intended to test across +// all 8 fallbacks, intentionally leaves off 3 of them. test_position_area_order(`most-inline-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep, - --right, --left, --bottom, --top - `, '--left-sweep'); + /* --right, --left, --bottom, --top */ + --bottom + `, '--bottom'); +// NOTE: the css-anchor-position-1 spec requires that only a minimum of five +// fallback positions be respected. So this test, while intended to test across +// all 8 fallbacks, intentionally leaves off 3 of them. test_position_area_order(`most-block-size --right-sweep, --left-sweep, --bottom-sweep, --top-sweep, - --right, --left, --bottom, --top + /* --right, --left, --bottom, --top */ + --right `, '--right'); diff --git a/tests/wpt/tests/css/css-cascade/scope-nesting.html b/tests/wpt/tests/css/css-cascade/scope-nesting.html index 2811bb4635d..146a3f4ae28 100644 --- a/tests/wpt/tests/css/css-cascade/scope-nesting.html +++ b/tests/wpt/tests/css/css-cascade/scope-nesting.html @@ -677,3 +677,37 @@ test((t) => { assert_equals(getComputedStyle(child).color, 'rgb(0, 128, 0)'); }, 'Insert a CSSNestedDeclarations rule directly in top-level @scope'); + + + diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-auto.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-auto.html new file mode 100644 index 00000000000..e2d054d7cca --- /dev/null +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-auto.html @@ -0,0 +1,23 @@ + +CSS Container Queries Test: auto sized size container unit + + + + +
+
+
+ diff --git a/tests/wpt/tests/css/css-conditional/container-queries/size-container-auto-height.html b/tests/wpt/tests/css/css-conditional/container-queries/size-container-auto-height.html new file mode 100644 index 00000000000..123b3ead2a9 --- /dev/null +++ b/tests/wpt/tests/css/css-conditional/container-queries/size-container-auto-height.html @@ -0,0 +1,18 @@ + +CSS Container Queries Test: auto sized height container query + + + + +
+
+
+ diff --git a/tests/wpt/tests/css/css-content/parsing/content-invalid.html b/tests/wpt/tests/css/css-content/parsing/content-invalid.html index c8454e557e2..efd4ea5136c 100644 --- a/tests/wpt/tests/css/css-content/parsing/content-invalid.html +++ b/tests/wpt/tests/css/css-content/parsing/content-invalid.html @@ -15,8 +15,6 @@ function test_invalid_value_combinations(property, value) { test_invalid_value(property, value); test_invalid_value(property, `${value} / "alt text"`); - test_invalid_value(property, `${value} / "alt text" attr(foo) "bar"`); - test_invalid_value(property, `${value} / attr(foo)`); } function test_invalid_value_alt_text(property, value) { @@ -24,7 +22,6 @@ function test_invalid_value_alt_text(property, value) { test_invalid_value(property, `${value} / no-open-quote`); test_invalid_value(property, `${value} / no-close-quote`); test_invalid_value(property, `${value} / "hi" no-close-quote`); - test_invalid_value(property, `${value} / attr(foo) open-quote`); } test_invalid_value_combinations("content", `attr()`); @@ -36,9 +33,6 @@ test_invalid_value_alt_text("content", "close-quote"); test_invalid_value_alt_text("content", "no-open-quote"); test_invalid_value_alt_text("content", "no-close-quote"); -test_invalid_value_alt_text("content", "attr(alt)"); -test_invalid_value_alt_text("content", "attr(data-foo)"); - test_invalid_value_alt_text("content", "counter(counter-name)"); test_invalid_value_alt_text("content", "counter(counter-name, counter-style)"); @@ -50,7 +44,6 @@ test_invalid_value_alt_text("content", `url("https://www.example.com/picture.svg test_invalid_value_alt_text("content", `"hello"`); test_invalid_value_alt_text("content", `"hello" "world"`); -test_invalid_value_alt_text("content", `"hello" attr(alt) "world"`); test_invalid_value_alt_text("content", `counter(counter-name) "potato"`); test_invalid_value_alt_text("content", `counters(counter-name, ".") "potato"`); test_invalid_value_alt_text("content", `"(" counters(counter-name, ".", counter-style) ")"`); diff --git a/tests/wpt/tests/css/css-content/parsing/content-valid.html b/tests/wpt/tests/css/css-content/parsing/content-valid.html index 60d03a4d4c3..097bf66f62b 100644 --- a/tests/wpt/tests/css/css-content/parsing/content-valid.html +++ b/tests/wpt/tests/css/css-content/parsing/content-valid.html @@ -17,8 +17,6 @@ function test_valid_value_combinations(property, value, serialized) { serialized = value; test_valid_value(property, value, serialized); test_valid_value(property, `${value} / "alt text"`, `${serialized} / "alt text"`); - test_valid_value(property, `${value} / "alt text" attr(foo) "bar"`, `${serialized} / "alt text" attr(foo) "bar"`); - test_valid_value(property, `${value} / attr(foo)`, `${serialized} / attr(foo)`); } test_valid_value("content", "none"); @@ -29,9 +27,6 @@ test_valid_value_combinations("content", "close-quote"); test_valid_value_combinations("content", "no-open-quote"); test_valid_value_combinations("content", "no-close-quote"); -test_valid_value_combinations("content", "attr(alt)"); -test_valid_value_combinations("content", "attr(data-foo)"); - test_valid_value_combinations("content", "counter(counter-name)"); test_valid_value_combinations("content", "counter(counter-name, counter-style)"); test_valid_value_combinations("content", "counter(counter-name, dECiMaL)", "counter(counter-name)"); @@ -47,7 +42,6 @@ test_valid_value_combinations("content", `url("picture.svg")`); test_valid_value_combinations("content", `"hello"`); test_valid_value_combinations("content", `"hello" "world"`); -test_valid_value_combinations("content", `"hello" attr(alt) "world"`); test_valid_value_combinations("content", `counter(counter-name) "potato"`); test_valid_value_combinations("content", `counters(counter-name, ".") "potato"`); test_valid_value_combinations("content", `"(" counters(counter-name, ".", counter-style) ")"`); diff --git a/tests/wpt/tests/css/css-flexbox/aspect-ratio-intrinsic-size-010.html b/tests/wpt/tests/css/css-flexbox/aspect-ratio-intrinsic-size-010.html new file mode 100644 index 00000000000..7afc53e751e --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/aspect-ratio-intrinsic-size-010.html @@ -0,0 +1,14 @@ + + + + + + + + + +

Test passes if there is a filled green square.

+
+
+
diff --git a/tests/wpt/tests/css/css-flexbox/flexbox-flex-wrap-flexing-002.html b/tests/wpt/tests/css/css-flexbox/flexbox-flex-wrap-flexing-002.html new file mode 100644 index 00000000000..00782f608dd --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/flexbox-flex-wrap-flexing-002.html @@ -0,0 +1,8 @@ + + + +

Test passes if there is a filled green square.

+
+
+
+
diff --git a/tests/wpt/tests/css/css-flexbox/flexbox-flex-wrap-flexing-003.html b/tests/wpt/tests/css/css-flexbox/flexbox-flex-wrap-flexing-003.html new file mode 100644 index 00000000000..fb2bd938126 --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/flexbox-flex-wrap-flexing-003.html @@ -0,0 +1,8 @@ + + + +

Test passes if there is a filled green square.

+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-color-invalid.html b/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-color-invalid.html index a1e6769a95c..36f26ceb163 100644 --- a/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-color-invalid.html +++ b/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-color-invalid.html @@ -3,7 +3,7 @@ CSS Gap Decorations: column-rule-color parsing - + diff --git a/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-color-valid.html b/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-color-valid.html index e8fd4df3615..d4cb5b1168f 100644 --- a/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-color-valid.html +++ b/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-color-valid.html @@ -3,7 +3,7 @@ CSS Gap Decorations: parsing column-rule-color with valid values - + diff --git a/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-computed.html b/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-computed.html index 379fb89c071..3d55aed80ba 100644 --- a/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-computed.html +++ b/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-computed.html @@ -3,7 +3,7 @@ CSS Gap Decoration: column-rule-style getComputedStyle() - + @@ -23,7 +23,18 @@ test_computed_value("column-rule-style", "groove"); test_computed_value("column-rule-style", "ridge"); test_computed_value("column-rule-style", "inset"); -// TODO(crbug.com/357648037): Add tests for multiple values when parsing is implemented. +test_computed_value("column-rule-style", "dotted dashed solid"); +test_computed_value("column-rule-style", "repeat(10, double)"); +test_computed_value("column-rule-style", "repeat(3, groove) repeat(4, ridge)"); +test_computed_value("column-rule-style", "repeat(auto, solid)"); +test_computed_value("column-rule-style", "repeat(auto, dotted solid inset)"); +test_computed_value("column-rule-style", "repeat(4, none ridge solid) repeat(auto, hidden)"); +test_computed_value("column-rule-style", "inset repeat(auto, solid ridge) repeat(4, none groove hidden)"); +test_computed_value("column-rule-style", "repeat(calc(5 + 3), ridge)", "repeat(8, ridge)"); +test_computed_value("column-rule-style", "repeat(4, dotted double dashed) repeat(auto, solid) ridge"); +test_computed_value("column-rule-style", "repeat(4, dotted double dashed) repeat(auto, solid) repeat(4, none groove hidden)"); +test_computed_value("column-rule-style", "ridge repeat(auto, solid)"); +test_computed_value("column-rule-style", "ridge repeat(auto, solid) ridge"); diff --git a/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-invalid.html b/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-invalid.html new file mode 100644 index 00000000000..1ea533111cd --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-invalid.html @@ -0,0 +1,24 @@ + + + + +CSS Gap Decorations: column-rule-style parsing + + + + + + + + + + + diff --git a/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-valid.html b/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-valid.html new file mode 100644 index 00000000000..d90a9f83372 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/parsing/gap-decorations-style-valid.html @@ -0,0 +1,43 @@ + + + + +CSS Gap Decorations: parsing column-rule-style with valid values + + + + + + + + + + + diff --git a/tests/wpt/tests/css/css-grid/grid-definition/flex-item-grid-container-auto-repeat-001.html b/tests/wpt/tests/css/css-grid/grid-definition/flex-item-grid-container-auto-repeat-001.html new file mode 100644 index 00000000000..06f87974731 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/grid-definition/flex-item-grid-container-auto-repeat-001.html @@ -0,0 +1,32 @@ + + + + + + + + + + +

Test passes if there is a filled green square.

+
+
+
+
diff --git a/tests/wpt/tests/css/css-grid/grid-definition/flex-item-grid-container-auto-repeat-002.html b/tests/wpt/tests/css/css-grid/grid-definition/flex-item-grid-container-auto-repeat-002.html new file mode 100644 index 00000000000..e199190be6a --- /dev/null +++ b/tests/wpt/tests/css/css-grid/grid-definition/flex-item-grid-container-auto-repeat-002.html @@ -0,0 +1,32 @@ + + + + + + + + + + +

Test passes if there is a filled green square.

+
+
+
+
diff --git a/tests/wpt/tests/css/css-grid/parsing/grid-template-shorthand-composition.html b/tests/wpt/tests/css/css-grid/parsing/grid-template-shorthand-composition.html index 781410d5153..2c19f737fdc 100644 --- a/tests/wpt/tests/css/css-grid/parsing/grid-template-shorthand-composition.html +++ b/tests/wpt/tests/css/css-grid/parsing/grid-template-shorthand-composition.html @@ -31,9 +31,60 @@ testValidGridTemplate("none", "none", "none", "none"); testValidGridTemplate("auto", "auto", "none", "auto / auto"); // `[ ? ? ? ]+ [ / ]?` -testValidGridTemplate("[header-top] auto [header-bottom main-top] 1fr [main-bottom]", "auto 1fr auto", "\"a a a\" \"b b b\"", "[header-top] \"a a a\" [header-bottom main-top] \"b b b\" 1fr [main-bottom] / auto 1fr auto"); -testValidGridTemplate("auto", "auto", "\"a a a\" \"b b b\"", "\"a a a\" \"b b b\" / auto"); -testValidGridTemplate("min-content", "min-content", "\"a a a\" \"b b b\" \"c c c\" \"d d d\"", "\"a a a\" min-content \"b b b\" \"c c c\" \"d d d\" / min-content"); +testValidGridTemplate( + "[header-top] auto [header-bottom main-top] 1fr [main-bottom]", + "auto 1fr auto", + '"a a a" "b b b"', + '[header-top] "a a a" [header-bottom main-top] "b b b" 1fr [main-bottom] / auto 1fr auto', +); +testValidGridTemplate( + "auto", + "auto", + '"a a a" "b b b"', + "", +); +testValidGridTemplate( + "auto", + "auto auto", + '"a a a" "b b b"', + "", +); +testValidGridTemplate( + "auto auto", + "auto", + '"a a a" "b b b"', + '"a a a" "b b b" / auto', +); +testValidGridTemplate( + "auto auto", + "auto auto", + '"a a a" "b b b"', + '"a a a" "b b b" / auto auto', +); +testValidGridTemplate( + "min-content", + "min-content", + '"a a a" "b b b" "c c c" "d d d"', + "", +); +testValidGridTemplate( + "min-content", + "min-content auto auto auto", + '"a a a" "b b b" "c c c" "d d d"', + "", +); +testValidGridTemplate( + "min-content auto auto auto", + "min-content", + '"a a a" "b b b" "c c c" "d d d"', + '"a a a" min-content "b b b" "c c c" "d d d" / min-content', +); +testValidGridTemplate( + "min-content auto auto auto", + "min-content auto auto auto", + '"a a a" "b b b" "c c c" "d d d"', + '"a a a" min-content "b b b" "c c c" "d d d" / min-content auto auto auto', +); diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-single-stop-longer-hue-hsl-002-ref.html b/tests/wpt/tests/css/css-images/gradient/gradient-single-stop-longer-hue-hsl-002-ref.html new file mode 100644 index 00000000000..2862a7a7ab8 --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/gradient-single-stop-longer-hue-hsl-002-ref.html @@ -0,0 +1,29 @@ + + + + + + Gradient in HSL space - reference + + + + + +
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-single-stop-longer-hue-hsl-002.html b/tests/wpt/tests/css/css-images/gradient/gradient-single-stop-longer-hue-hsl-002.html new file mode 100644 index 00000000000..da78d6e1cc5 --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/gradient-single-stop-longer-hue-hsl-002.html @@ -0,0 +1,33 @@ + + + + + + Gradient in HSL space + + + + + + + + + +
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-computed.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-computed.html new file mode 100644 index 00000000000..44ff30b8cd9 --- /dev/null +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-computed.html @@ -0,0 +1,21 @@ + + + + + CSS Masonry: masonry-fill getComputedStyle() + + + + + + + + +
+ + + + diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-invalid.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-invalid.html new file mode 100644 index 00000000000..10ccde781ff --- /dev/null +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-invalid.html @@ -0,0 +1,22 @@ + + + + + CSS Masonry: parsing masonry-fill with invalid values + + + + + + + +
+ + + diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-valid.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-valid.html new file mode 100644 index 00000000000..23498d40215 --- /dev/null +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-fill-valid.html @@ -0,0 +1,19 @@ + + + + + CSS Masonry: parsing masonry-fill with valid values + + + + + + + +
+ + + diff --git a/tests/wpt/tests/css/css-nesting/set-selector-text.html b/tests/wpt/tests/css/css-nesting/set-selector-text.html new file mode 100644 index 00000000000..fe216a9edbc --- /dev/null +++ b/tests/wpt/tests/css/css-nesting/set-selector-text.html @@ -0,0 +1,44 @@ + +CSS Nesting: Mutating selectorText of outer rule + + + + +
+
+
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-overflow/add-scroller-then-scroll-content-into-view.html b/tests/wpt/tests/css/css-overflow/add-scroller-then-scroll-content-into-view.html new file mode 100644 index 00000000000..bbe4ec33c94 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/add-scroller-then-scroll-content-into-view.html @@ -0,0 +1,22 @@ + + + + + + +

Test passes if there is a filled green square and no red.

+ + diff --git a/tests/wpt/tests/css/css-overflow/content-change-then-scroll-into-view.html b/tests/wpt/tests/css/css-overflow/content-change-then-scroll-into-view.html new file mode 100644 index 00000000000..ec8836d5cb9 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/content-change-then-scroll-into-view.html @@ -0,0 +1,22 @@ + + + + + + +

Test passes if there is a filled green square and no red.

+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-abspos-001.html b/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-abspos-001.html new file mode 100644 index 00000000000..be7798c2119 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-abspos-001.html @@ -0,0 +1,35 @@ + + +line-clamping shouldn't prevent abspos content from painting + + + + + + +

Test passes if there is a filled green square.

+ +
+ FAIL
+ FAIL
+ FAIL
+
+
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-cascade/highlight-cascade-010.html b/tests/wpt/tests/css/css-pseudo/highlight-cascade/highlight-cascade-010.html new file mode 100644 index 00000000000..bbfcffb16aa --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-cascade/highlight-cascade-010.html @@ -0,0 +1,29 @@ + + +CSS Pseudo-Elements Test: highlight styling: late property registration updates highlights + + + + + + +
Text wth a spelling error
+ diff --git a/tests/wpt/tests/css/css-rhythm/computedstyle/block-level-replaced-elements-affected-by-block-step-size.html b/tests/wpt/tests/css/css-rhythm/computedstyle/block-level-replaced-elements-affected-by-block-step-size.html new file mode 100644 index 00000000000..fdbd0da1208 --- /dev/null +++ b/tests/wpt/tests/css/css-rhythm/computedstyle/block-level-replaced-elements-affected-by-block-step-size.html @@ -0,0 +1,57 @@ + + + + + + + + + + + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ + + diff --git a/tests/wpt/tests/css/css-rhythm/computedstyle/inline-level-replaced-elements-not-affected-by-block-step-size.html b/tests/wpt/tests/css/css-rhythm/computedstyle/inline-level-replaced-elements-not-affected-by-block-step-size.html new file mode 100644 index 00000000000..0531c7edbdc --- /dev/null +++ b/tests/wpt/tests/css/css-rhythm/computedstyle/inline-level-replaced-elements-not-affected-by-block-step-size.html @@ -0,0 +1,57 @@ + + + + + + + + + + + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+ + + diff --git a/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-canvas-margins-affected-by-block-step-size.html b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-canvas-margins-affected-by-block-step-size.html new file mode 100644 index 00000000000..e51a0135353 --- /dev/null +++ b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-canvas-margins-affected-by-block-step-size.html @@ -0,0 +1,26 @@ + + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
+ + diff --git a/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-embed-margins-affected-by-block-step-size.html b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-embed-margins-affected-by-block-step-size.html new file mode 100644 index 00000000000..d82f466d086 --- /dev/null +++ b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-embed-margins-affected-by-block-step-size.html @@ -0,0 +1,26 @@ + + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
+ + diff --git a/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-iframe-margins-affected-by-block-step-size.html b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-iframe-margins-affected-by-block-step-size.html new file mode 100644 index 00000000000..b591b896ab2 --- /dev/null +++ b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-iframe-margins-affected-by-block-step-size.html @@ -0,0 +1,27 @@ + + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
+ + diff --git a/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-img-margins-affected-by-block-step-size.html b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-img-margins-affected-by-block-step-size.html new file mode 100644 index 00000000000..d6177987cc9 --- /dev/null +++ b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-img-margins-affected-by-block-step-size.html @@ -0,0 +1,26 @@ + + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
+ + diff --git a/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-object-margins-affected-by-block-step-size.html b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-object-margins-affected-by-block-step-size.html new file mode 100644 index 00000000000..b9a0f0ef4a3 --- /dev/null +++ b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-object-margins-affected-by-block-step-size.html @@ -0,0 +1,26 @@ + + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
+ + diff --git a/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-svg-margins-affected-by-block-step-size.html b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-svg-margins-affected-by-block-step-size.html new file mode 100644 index 00000000000..cbdabeaff54 --- /dev/null +++ b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-svg-margins-affected-by-block-step-size.html @@ -0,0 +1,26 @@ + + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
+ + diff --git a/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-video-margins-affected-by-block-step-size.html b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-video-margins-affected-by-block-step-size.html new file mode 100644 index 00000000000..8d822cfcd5c --- /dev/null +++ b/tests/wpt/tests/css/css-rhythm/replaced-elements/block-level-video-margins-affected-by-block-step-size.html @@ -0,0 +1,26 @@ + + + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
+ + diff --git a/tests/wpt/tests/css/css-ruby/ruby-body-element-crash.html b/tests/wpt/tests/css/css-ruby/ruby-body-element-crash.html new file mode 100644 index 00000000000..c1487ab6162 --- /dev/null +++ b/tests/wpt/tests/css/css-ruby/ruby-body-element-crash.html @@ -0,0 +1,15 @@ + + + + diff --git a/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-computed.html b/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-computed.html index 1ebb5e78654..50dbcff2397 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-computed.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-computed.html @@ -3,8 +3,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target-* computed values - + CSS Scroll Snap 2 Test: scroll-initial-target-* computed values + @@ -13,8 +13,8 @@
diff --git a/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-invalid.html b/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-invalid.html index f2a60836d1d..dfcaaabdeed 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-invalid.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-invalid.html @@ -2,19 +2,19 @@ - CSS Scroll Snap 2 Test: scroll-start-target-* with invalid values - + CSS Scroll Snap 2 Test: scroll-initial-target-* with invalid values + diff --git a/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-valid.html b/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-valid.html index 9ff7055a81c..3397f19e50c 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-valid.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/parsing/scroll-start-target-valid.html @@ -3,8 +3,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target-* with valid values - + CSS Scroll Snap 2 Test: scroll-initial-target-* with valid values + @@ -12,8 +12,8 @@ diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-aligns-with-snap-align.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-aligns-with-snap-align.tentative.html similarity index 91% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-aligns-with-snap-align.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-aligns-with-snap-align.tentative.html index 3203e1e1a61..8dc76a657d7 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-aligns-with-snap-align.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-aligns-with-snap-align.tentative.html @@ -2,8 +2,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target* - + CSS Scroll Snap 2 Test: scroll-initial-target* + @@ -26,7 +26,7 @@ width: 100px; height: 100px; background-color: pink; - scroll-start-target: auto; + scroll-initial-target: nearest; position: absolute; top: 400px; left: 400px; @@ -68,7 +68,7 @@ "scroller is vertically aligned to target's top"); assert_equals(scroller.scrollLeft, 400, "scroller is horizontally aligned to target's left"); - }, "scroll-start-target aligns with scroll-snap-align"); + }, "scroll-initial-target aligns with scroll-snap-align"); diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-display-toggled.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-display-toggled.tentative.html similarity index 88% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-display-toggled.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-display-toggled.tentative.html index a0224a568e5..2f58e2393c7 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-display-toggled.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-display-toggled.tentative.html @@ -2,8 +2,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target* - + CSS Scroll Snap 2 Test: scroll-initial-target* + @@ -33,7 +33,7 @@ width: 100px; height: 100px; background-color: pink; - scroll-start-target: auto; + scroll-initial-target: nearest; }
@@ -89,7 +89,7 @@ let initial_expected_scroll_top = total_content_height - inner_scroller.clientHeight; assert_equals(inner_scroller.scrollTop, initial_expected_scroll_top, - "inner-scroller is scrolled to scroll-start-target"); + "inner-scroller is scrolled to scroll-initial-target"); let display_promise = waitForDisplay(target, "none"); target.style.display = "none"; @@ -98,14 +98,14 @@ let final_expected_scroll_top = initial_expected_scroll_top - target_height; assert_equals(inner_scroller.scrollTop, final_expected_scroll_top, "inner scroller is clamped to updated scroll range"); - }, "display:block scroll-start-target becomes display: none"); + }, "display:block scroll-initial-target becomes display: none"); promise_test(async (t) => { await resetDisplay(); let initial_expected_scroll_top = total_content_height - inner_scroller.clientHeight; assert_equals(inner_scroller.scrollTop, initial_expected_scroll_top, - "inner-scroller is scrolled to scroll-start-target"); + "inner-scroller is scrolled to scroll-initial-target"); let display_promise = waitForDisplay(target, "none"); target.style.display = "none"; @@ -118,8 +118,8 @@ target.style.display = "block"; await display_promise; assert_equals(inner_scroller.scrollTop, initial_expected_scroll_top, - "inner scroller is updated as scroll-start-target reappears"); - }, "display:none scroll-start-target becomes display: block"); + "inner scroller is updated as scroll-initial-target reappears"); + }, "display:none scroll-initial-target becomes display: block"); diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-nested-container.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-nested-container.tentative.html similarity index 82% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-nested-container.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-nested-container.tentative.html index e3a1df6e6a1..cd2717ed88c 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-nested-container.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-nested-container.tentative.html @@ -2,8 +2,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target* - + CSS Scroll Snap 2 Test: scroll-initial-target* + @@ -49,7 +49,7 @@ width: 100px; height: 100px; background-color: pink; - scroll-start-target: auto; + scroll-initial-target: nearest; }
@@ -96,7 +96,7 @@ promise_test(async (t) => { await resetDisplay(); assert_equals(outer_container.scrollTop, outer_to_target_scrolltop, - "outer-container is scrolled to scroll-start-target"); + "outer-container is scrolled to scroll-initial-target"); // Remove large_space_outer so we can observe outer-container adjust to // its new content height. @@ -113,14 +113,14 @@ await waitForAnimationFrames(2); assert_equals(outer_container.scrollTop, outer_to_target_scrolltop, - "outer-scroller is updated as scroll-start-target reappears"); - }, "display:none scroll-start-target becomes display:block"); + "outer-scroller is updated as scroll-initial-target reappears"); + }, "display:none scroll-initial-target becomes display:block"); promise_test(async (t) => { await waitForCompositorCommit(); await resetDisplay(); assert_equals(outer_container.scrollTop, outer_to_target_scrolltop, - "outer-container is scrolled to scroll-start-target"); + "outer-container is scrolled to scroll-initial-target"); // Remove large_space_outer so we can observe outer-container adjust to // its new content height. @@ -129,7 +129,7 @@ await waitForAnimationFrames(2); // inner-container has become a scroller and should be scrolled to - // scroll-start-target. + // scroll-initial-target. assert_equals(inner_container.scrollTop, inner_to_target_scrolltop, "inner-container is fully scrolled to target"); @@ -152,21 +152,21 @@ promise_test(async (t) => { // This test verifies that: - // 1. when both the child and grandchild are scroll-start-targets, the + // 1. when both the child and grandchild are scroll-initial-targets, the // first-in-tree-order (i.e. the child) wins/is scrolled to. - // 2. if/when the grandchild stops being a scroll-start-target, the + // 2. if/when the grandchild stops being a scroll-initial-target, the // child (inner container) is scrolled to. await waitForCompositorCommit(); await resetDisplay(); t.add_cleanup(async () => { - inner_container.style.scrollStartTarget = "none"; + inner_container.style.scrollInitialTarget = "none"; await waitForAnimationFrames(2); }); assert_equals(outer_container.scrollTop, outer_to_target_scrolltop, - "outer-container is scrolled to scroll-start-target"); - // Make the inner container a scroll-start-target. - inner_container.style.scrollStartTarget = "auto"; + "outer-container is scrolled to scroll-initial-target"); + // Make the inner container a scroll-initial-target. + inner_container.style.scrollInitialTarget = "nearest"; await waitForAnimationFrames(2); // The inner container has overflow: visible, so it's not the scroll @@ -174,33 +174,33 @@ assert_equals(outer_container.scrollTop, outer_to_inner_scrolltop, "outer-container is scrolled to inner-container (which is before the" + - "inner scroll-start-target in tree order)"); - }, "outer scroll-start-target takes precedence over inner"); + "inner scroll-initial-target in tree order)"); + }, "outer scroll-initial-target takes precedence over inner"); promise_test(async (t) => { // This test verifies that a child which is a scroller, is a - // scroll-start-target, and has a scroll-start-target is scrolled to by - // its scrolling container, and also scrolls to its own - // scroll-start-target. + // scroll-initial-target, and has a scroll-initial-target is scrolled to + // by its scrolling container, and also scrolls to its own + // scroll-initial-target. await waitForCompositorCommit(); await resetDisplay(); t.add_cleanup(async () => { inner_container.style.overflow = "visible"; - inner_container.style.scrollStartTarget = "none"; + inner_container.style.scrollInitialTarget = "none"; await waitForAnimationFrames(2); }); assert_equals(outer_container.scrollTop, outer_to_target_scrolltop, - "outer-container is scrolled to scroll-start-target"); + "outer-container is scrolled to scroll-initial-target"); - // Make the inner container a scroll-start-target. - inner_container.style.scrollStartTarget = "auto"; + // Make the inner container a scroll-initial-target. + inner_container.style.scrollInitialTarget = "nearest"; await waitForAnimationFrames(2); assert_equals(outer_container.scrollTop, outer_to_inner_scrolltop, "outer-container is still scrolled to inner scroll-container" + - "as it is a scroll-start-target and comes before #target in " + + "as it is a scroll-initial-target and comes before #target in " + "tree-order"); // Make the inner container a scroller. @@ -213,7 +213,7 @@ assert_equals(inner_container.scrollTop, inner_to_target_scrolltop, "inner-container is scrolled to target"); - }, "scroll containers can also be scroll-start-targets"); + }, "scroll containers can also be scroll-initial-targets"); diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-root.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-root.tentative.html similarity index 83% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-root.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-root.tentative.html index 860a592bb10..5cb9e744733 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-root.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-root.tentative.html @@ -3,8 +3,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target* - + CSS Scroll Snap 2 Test: scroll-initial-target* + @@ -32,7 +32,7 @@ top: 60vh; left: 60vw; background-color: purple; - scroll-start-target: auto; + scroll-initial-target: nearest; } .bottom_right { @@ -54,9 +54,9 @@ const expected_scroll_left = top_left_box.getBoundingClientRect().width; assert_approx_equals(scroller.scrollTop, expected_scroll_top, 1, - "scroll-start-target sets initial vertical scroll position"); + "scroll-initial-target sets initial vertical scroll position"); assert_approx_equals(scroller.scrollLeft, expected_scroll_left, 1, - "scroll-start-target sets initial horizontal scroll position"); + "scroll-initial-target sets initial horizontal scroll position"); }); diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-rtl.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-rtl.tentative.html similarity index 78% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-rtl.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-rtl.tentative.html index e7766cc07a2..7cb0f93c495 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-rtl.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-rtl.tentative.html @@ -3,8 +3,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target* - + CSS Scroll Snap 2 Test: scroll-initial-target* + @@ -34,7 +34,7 @@ .center { top: 60%; background-color: purple; - scroll-start-target: auto; + scroll-initial-target: nearest; } .bottom_left { @@ -53,10 +53,10 @@ test((t) => { assert_equals(scroller.scrollTop, initial_expected_scroll_top, - "scroller is vertically scrolled to scroll-start-target"); + "scroller is vertically scrolled to scroll-initial-target"); assert_equals(scroller.scrollLeft, initial_expected_scroll_left, - "scroller is horizontally scrolled to scroll-start-target"); - }, "scroll-start-target reflects vertical rtl writing mode."); + "scroller is horizontally scrolled to scroll-initial-target"); + }, "scroll-initial-target reflects vertical rtl writing mode."); diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-span.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-span.tentative.html similarity index 80% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-span.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-span.tentative.html index 0985dcc2ee9..e7fe0479089 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-span.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-span.tentative.html @@ -2,8 +2,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target with a <span> element - + CSS Scroll Snap 2 Test: scroll-initial-target with a <span> element + @@ -24,7 +24,7 @@ background-color: turquoise; } .target { - scroll-start-target: auto; + scroll-initial-target: nearest; } .scroller { overflow: scroll; @@ -46,8 +46,8 @@ const target = document.getElementById("target"); assert_equals(scroller.scrollTop, target.offsetTop, - "scroller is initially scrolled to it scroll-start-target"); - }, " scroll-start-target is honored"); + "scroller is initially scrolled to it scroll-initial-target"); + }, " scroll-initial-target is honored"); diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-anchor-navigation-inner-frame.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-anchor-navigation-inner-frame.html similarity index 94% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-anchor-navigation-inner-frame.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-anchor-navigation-inner-frame.html index de02dcf00f6..c363961add7 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-anchor-navigation-inner-frame.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-anchor-navigation-inner-frame.html @@ -23,7 +23,7 @@ #middle_box { width: 100px; height: 60vh; - scroll-start-target: auto; + scroll-initial-target: nearest; background-color: purple; } #bottom_box { diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-anchor-navigation.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-anchor-navigation.tentative.html similarity index 81% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-anchor-navigation.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-anchor-navigation.tentative.html index bc5b75f75f1..8c6d02a1c7d 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-anchor-navigation.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-anchor-navigation.tentative.html @@ -3,8 +3,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target interaction with anchor navigation - + CSS Scroll Snap 2 Test: scroll-initial-target interaction with anchor navigation + @@ -15,7 +15,7 @@ - + diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-hash-fragment-navigation-inner-frame.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-hash-fragment-navigation-inner-frame.html similarity index 95% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-hash-fragment-navigation-inner-frame.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-hash-fragment-navigation-inner-frame.html index 90629c4990f..1c81212e216 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-hash-fragment-navigation-inner-frame.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-hash-fragment-navigation-inner-frame.html @@ -23,7 +23,7 @@ #middle_box { width: 100px; height: 60vh; - scroll-start-target: auto; + scroll-initial-target: nearest; background-color: purple; } #bottom_box { diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-hash-fragment-navigation.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-hash-fragment-navigation.tentative.html similarity index 70% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-hash-fragment-navigation.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-hash-fragment-navigation.tentative.html index 2d291c2ef9f..80b3a0af9f1 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-hash-fragment-navigation.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-hash-fragment-navigation.tentative.html @@ -3,14 +3,14 @@ - CSS Scroll Snap 2 Test: scroll-start-target interaction with fragment-navigation - + CSS Scroll Snap 2 Test: scroll-initial-target interaction with fragment-navigation + - \ No newline at end of file diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-scroll-snap.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-scroll-snap.tentative.html similarity index 87% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-scroll-snap.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-scroll-snap.tentative.html index 28bea40d7a0..dfdb8b02772 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-scroll-snap.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-scroll-snap.tentative.html @@ -3,8 +3,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target* - + CSS Scroll Snap 2 Test: scroll-initial-target* + @@ -42,7 +42,7 @@ top: 200px; left: 200px; background-color: purple; - scroll-start-target: auto; + scroll-initial-target: nearest; } .bottom_right { @@ -71,9 +71,9 @@ centerbox.getBoundingClientRect().width; assert_approx_equals(scroller.scrollTop, expected_scroll_top, 1, - "scroll-start-target sets initial vertical scroll position"); + "scroll-initial-target sets initial vertical scroll position"); assert_approx_equals(scroller.scrollLeft, expected_scroll_left, 1, - "scroll-start-target sets initial horizontal scroll position"); + "scroll-initial-target sets initial horizontal scroll position"); }); \ No newline at end of file diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-scroll-start-root.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-scroll-start-root.tentative.html similarity index 83% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-scroll-start-root.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-scroll-start-root.tentative.html index daf664aa7fb..2405334540f 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-scroll-start-root.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-scroll-start-root.tentative.html @@ -3,8 +3,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target* - + CSS Scroll Snap 2 Test: scroll-initial-target* + @@ -36,7 +36,7 @@ top: 60vh; left: 60vw; background-color: purple; - scroll-start-target: auto; + scroll-initial-target: nearest; } .bottom_right { @@ -58,9 +58,9 @@ const expected_scroll_left = top_left_box.getBoundingClientRect().width; assert_approx_equals(scroller.scrollTop, expected_scroll_top, 1, - "scroll-start-target sets initial vertical scroll position"); + "scroll-initial-target sets initial vertical scroll position"); assert_approx_equals(scroller.scrollLeft, expected_scroll_left, 1, - "scroll-start-target sets initial horizontal scroll position"); + "scroll-initial-target sets initial horizontal scroll position"); }); \ No newline at end of file diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-scroll-start.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-scroll-start.tentative.html similarity index 82% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-scroll-start.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-scroll-start.tentative.html index a08daad76db..9c0f58ddbfb 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-scroll-start.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-scroll-start.tentative.html @@ -3,8 +3,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target* - + CSS Scroll Snap 2 Test: scroll-initial-target* + @@ -24,7 +24,7 @@ margin: 0px; position: absolute; scroll-start: end end; - /* This should be overriden by scroll-start-target. */ + /* This should be overriden by scroll-initial-target. */ } .box { @@ -43,7 +43,7 @@ top: 200px; left: 200px; background-color: purple; - scroll-start-target: auto; + scroll-initial-target: nearest; } .bottom_right { @@ -67,9 +67,9 @@ const expected_scroll_left = top_left_box.getBoundingClientRect().width; assert_approx_equals(scroller.scrollTop, expected_scroll_top, 1, - "scroll-start-target sets initial vertical scroll position"); + "scroll-initial-target sets initial vertical scroll position"); assert_approx_equals(scroller.scrollLeft, expected_scroll_left, 1, - "scroll-start-target sets initial horizontal scroll position"); + "scroll-initial-target sets initial horizontal scroll position"); }); \ No newline at end of file diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-text-fragment-navigation-target.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-text-fragment-navigation-target.html similarity index 93% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-text-fragment-navigation-target.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-text-fragment-navigation-target.html index 80cbb55fb27..4cad10e0b3e 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target-with-text-fragment-navigation-target.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-with-text-fragment-navigation-target.html @@ -20,7 +20,7 @@ #middle_box { width: 100px; height: 60vh; - scroll-start-target: auto; + scroll-initial-target: nearest; background-color: purple; } #bottom_box { @@ -42,7 +42,7 @@
Target
@@ -16,7 +16,7 @@ @@ -45,7 +45,7 @@ top: 200px; left: 200px; background-color: purple; - scroll-start-target: auto; + scroll-initial-target: nearest; } .bottom_right { @@ -78,7 +78,7 @@ scroller.scrollTo(target_offset.x, target_offset.y); } - async function test_scroll_start_target(test, scroller, msg, scrolling_function) { + async function test_scroll_initial_target(test, scroller, msg, scrolling_function) { await waitForCompositorCommit(); let top_left_box = document.getElementById("user_top_left_box"); @@ -86,9 +86,9 @@ let expected_scroll_left = top_left_box.getBoundingClientRect().width; assert_approx_equals(scroller.scrollTop, expected_scroll_top, 1, - "scroll-start-target sets initial vertical scroll position"); + "scroll-initial-target sets initial vertical scroll position"); assert_approx_equals(scroller.scrollLeft, expected_scroll_left, 1, - "scroll-start-target sets initial horizontal scroll position"); + "scroll-initial-target sets initial horizontal scroll position"); let scrollend_promise = new Promise((resolve) => { scroller.addEventListener("scrollend", resolve); @@ -112,14 +112,15 @@ promise_test(async (t) => { let scroller = document.getElementById("user_scroller"); - const msg = "user scroll is not overriden in by scroll-start-target"; - await test_scroll_start_target(t, scroller, msg, user_scroll); - }, "scroll-start-target does not override user scroll"); + const msg = "user scroll is not overriden in by scroll-initial-target"; + await test_scroll_initial_target(t, scroller, msg, user_scroll); + }, "scroll-initial-target does not override user scroll"); promise_test(async (t) => { let scroller = document.getElementById("programmatic_scroller"); - const msg = "programmatic scroll is not overriden in by scroll-start-target"; - await test_scroll_start_target(t, scroller, msg, programmatic_scroll); - }, "scroll-start-target does not override programmatic scroll"); + const msg = + "programmatic scroll is not overriden in by scroll-initial-target"; + await test_scroll_initial_target(t, scroller, msg, programmatic_scroll); + }, "scroll-initial-target does not override programmatic scroll"); \ No newline at end of file diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target.tentative.html similarity index 85% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target.tentative.html rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target.tentative.html index 1fcb3cbbe40..13e9e20e3e2 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/scroll-start-target.tentative.html +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target.tentative.html @@ -3,8 +3,8 @@ - CSS Scroll Snap 2 Test: scroll-start-target* - + CSS Scroll Snap 2 Test: scroll-initial-target* + @@ -38,7 +38,7 @@ } .target { - scroll-start-target: auto; + scroll-initial-target: nearest; } .center { @@ -68,9 +68,9 @@ const expected_scroll_left = top_left_box.getBoundingClientRect().width; assert_approx_equals(scroller.scrollTop, expected_scroll_top, 1, - "scroll-start-target sets initial vertical scroll position"); + "scroll-initial-target sets initial vertical scroll position"); assert_approx_equals(scroller.scrollLeft, expected_scroll_left, 1, - "scroll-start-target sets initial horizontal scroll position"); + "scroll-initial-target sets initial horizontal scroll position"); }); \ No newline at end of file diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/stash.py b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/stash.py similarity index 68% rename from tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/stash.py rename to tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/stash.py index 3c65e2b59b3..1b1800d30ef 100644 --- a/tests/wpt/tests/css/css-scroll-snap-2/scroll-start-target/stash.py +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/stash.py @@ -3,11 +3,11 @@ # found in the LICENSE file. """ This file allows the different windows created by -css/css-scroll-snap-2/scroll-start-target-with-text-fragment-navigation.html +css/css-scroll-snap-2/scroll-initial-target-with-text-fragment-navigation.html to store and retrieve data. -scroll-start-target-with-text-fragment-navigation.html (test file) opens a window to -scroll-start-target-with-text-fragment-navigation-target.html which writes some data +scroll-initial-target-with-text-fragment-navigation.html (test file) opens a window to +scroll-initial-target-with-text-fragment-navigation-target.html which writes some data which the test file will eventually read. This file handles the requests from both windows. """ @@ -19,9 +19,9 @@ def main(request, response): if request.method == u"POST": # Received result data from target page - request.server.stash.put(key, request.body, u'/css/css-scroll-snap-2/scroll-start-target/') + request.server.stash.put(key, request.body, u'/css/css-scroll-snap-2/scroll-initial-target/') return u"ok" else: # Request for result data from test page - value = request.server.stash.take(key, u'/css/css-scroll-snap-2/scroll-start-target/') + value = request.server.stash.take(key, u'/css/css-scroll-snap-2/scroll-initial-target/') return value diff --git a/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-001.html b/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-001.html new file mode 100644 index 00000000000..b729e6ff7c5 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-001.html @@ -0,0 +1,31 @@ + + + + + + + +

Test passes if there is a filled green square.

+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-002.html b/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-002.html new file mode 100644 index 00000000000..856b9607fa2 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-002.html @@ -0,0 +1,31 @@ + + + + + + + +

Test passes if there is a filled green square.

+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-003.html b/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-003.html new file mode 100644 index 00000000000..b872ca162b3 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-003.html @@ -0,0 +1,31 @@ + + + + + + + +

Test passes if there is a filled green square.

+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-004.html b/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-004.html new file mode 100644 index 00000000000..1d05d96f431 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/abspos-auto-sizing-fit-content-percentage-004.html @@ -0,0 +1,31 @@ + + + + + + + +

Test passes if there is a filled green square.

+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-sizing/stretch/block-height-1.html b/tests/wpt/tests/css/css-sizing/stretch/block-height-001.html similarity index 100% rename from tests/wpt/tests/css/css-sizing/stretch/block-height-1.html rename to tests/wpt/tests/css/css-sizing/stretch/block-height-001.html diff --git a/tests/wpt/tests/css/css-sizing/stretch/block-height-002.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/block-height-002.tentative.html new file mode 100644 index 00000000000..2b906985da1 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/stretch/block-height-002.tentative.html @@ -0,0 +1,62 @@ + + + + + + + + + +

This test asserts the behavior seemingly agreed upon through + https://github.com/w3c/csswg-drafts/issues/11044#issuecomment-2486935794. This + is unlikely to be the final specified behavior, hence the test is marked + tentative.

+ +
+ +
+
+
+ + +
+
+
+ + +
+
+ text +
+ some more text +
+ +
+ + +
+ lorem ipsum
+ cats +
dogs
+
+ +
+ + diff --git a/tests/wpt/tests/css/css-sizing/stretch/block-height-003-ref.html b/tests/wpt/tests/css/css-sizing/stretch/block-height-003-ref.html new file mode 100644 index 00000000000..76e2bc35cb7 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/stretch/block-height-003-ref.html @@ -0,0 +1,16 @@ + + + + +
+
+
+
+
diff --git a/tests/wpt/tests/css/css-sizing/stretch/block-height-003.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/block-height-003.tentative.html new file mode 100644 index 00000000000..a469f8d5df2 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/stretch/block-height-003.tentative.html @@ -0,0 +1,29 @@ + + + + + + + + + +
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-sizing/stretch/block-height-004.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/block-height-004.tentative.html new file mode 100644 index 00000000000..1aa12ca0dcc --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/stretch/block-height-004.tentative.html @@ -0,0 +1,99 @@ + + + + + + + + + + +

This test asserts the behavior seemingly agreed upon through + https://github.com/w3c/csswg-drafts/issues/11044#issuecomment-2486935794. This + is unlikely to be the final specified behavior, hence the test is marked + tentative.

+ +

Basic case: treat margins as 0.

+
+
+
+
+ +

+ When resolving stretch, don't treat margins as 0 if there is a sibling on that + side. (Hand-wavy: we don't collapse margins through siblings for the purpose + of resolving stretched heights.)

+

+ Then when actually doing margin collapsing, .inner's margins DON'T collapse + with .outer's because of the usual rule that margins don't collapse through + new formatting contexts. +

+
+
+
+
+
+
+ +

When resolving stretch, don't treat margins as 0 if there is a sibling on + that side. (Hand-wavy: we don't collapse margins through siblings for the + purpose of resolving stretched heights.)

+

+ Then when actually doing margin collapsing, .inner's margins DO collapse with + .outer's because they collapse through the empty siblings. +

+
+
+
+
+
+
+ +

Only treat the BOTTOM margin as 0. Margins do collapse, so top edges touch. +

+
+
+
+
+
+ +

Only treat the TOP margin as 0. Margins do collapse, so top edges touch.

+
+
+
+
+
+ +

Account for the margins when parent establishes a BFC.

+
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-sizing/stretch/block-height-005.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/block-height-005.tentative.html new file mode 100644 index 00000000000..28756c339f3 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/stretch/block-height-005.tentative.html @@ -0,0 +1,77 @@ + + + + + + + + + + +

This test asserts the behavior seemingly agreed upon through + https://github.com/w3c/csswg-drafts/issues/11044#issuecomment-2486935794. This + is unlikely to be the final specified behavior, hence the test is marked + tentative.

+ +

New BFC fits next to float, so top margins will collapse, so we want the + stretched height to match .outer's height.

+
+
+
+
+
+ +

New BFC does not fit next to float, so margins DON'T collapse, but for + simplicity we still ignore margins when stretch sizing

+
+
+
+
+
+ +

In-flow child overlaps the float, so margins DO collapse, so we want the + stretched height to match .outer's height.

+
+
+
+
+
+ +

In-flow child clears the float, so margins DON'T collapse, but for + simplicity we still ignore margins when stretch sizing

+
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-sizing/stretch/block-height-006.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/block-height-006.tentative.html new file mode 100644 index 00000000000..a25c415b87f --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/stretch/block-height-006.tentative.html @@ -0,0 +1,36 @@ + + + + + + + + + + +

Test passes if there is a filled green square and no red. +

+
+ +
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-sizing/stretch/block-height-2.html b/tests/wpt/tests/css/css-sizing/stretch/block-height-2.html deleted file mode 100644 index 7028adf9054..00000000000 --- a/tests/wpt/tests/css/css-sizing/stretch/block-height-2.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - -
-
-
- - -
-
-
diff --git a/tests/wpt/tests/css/css-sizing/stretch/content-contribution-001.html b/tests/wpt/tests/css/css-sizing/stretch/content-contribution-001.html new file mode 100644 index 00000000000..5f3706953c9 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/stretch/content-contribution-001.html @@ -0,0 +1,58 @@ + + + + + + + + + + +
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-view-transitions/empty-render-target-crash.html b/tests/wpt/tests/css/css-view-transitions/empty-render-target-crash.html new file mode 100644 index 00000000000..38c32b1efb8 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/empty-render-target-crash.html @@ -0,0 +1,19 @@ + +We shouldn't crash if the composited parents are empty + + + + { ; false; + diff --git a/tests/wpt/tests/css/css-view-transitions/navigation/at-rule-opt-in-change-with-script.html b/tests/wpt/tests/css/css-view-transitions/navigation/at-rule-opt-in-change-with-script.html index 12452f67634..c06f28ce1de 100644 --- a/tests/wpt/tests/css/css-view-transitions/navigation/at-rule-opt-in-change-with-script.html +++ b/tests/wpt/tests/css/css-view-transitions/navigation/at-rule-opt-in-change-with-script.html @@ -14,22 +14,33 @@ function optIn() { document.querySelector("#vt-style").innerHTML = `@view-transition { navigation: auto }`; } const params = new URLSearchParams(location.search); -const is_new_page = params.has('new'); -if (!is_new_page) { - onload = () => requestAnimationFrame(() => requestAnimationFrame(() => { - optIn(); - location.replace(location.href + '?new'); - })); -} else { - promise_test(() => { - optIn(); - return new Promise((resolve) => { - addEventListener('pagereveal', resolve); - }).then(event => { - assert_not_equals(event.viewTransition, null, - "ViewTransition must be triggered."); +optIn(); + +// This file includes 3 modes: test, old, new. +// "test" is where testharness runs. "old" -> "new" is where the view transition takes place. +switch (params.get("mode") || "test") { +case "test": + promise_test(async t => { + const event = await new Promise(resolve => { + window.did_reveal = e => { resolve(e) }; + const popup = window.open("?mode=old"); + t.add_cleanup(() => popup.close()); }); + + assert_not_equals(event.viewTransition, null, "ViewTransition must be triggered."); }); + break; +case "old": + onload = () => requestAnimationFrame(() => requestAnimationFrame(() => { + location.replace('?mode=new'); + })); + break; +case "new": + onpagereveal = e => window.opener.did_reveal(e); } + + + Lorem ipsum dolor sit amet consectetur adipisicing elit. Alias quis assumenda doloremque, repellat quidem quia blanditiis harum animi corrupti totam sunt provident sapiente at eius sequi labore repellendus velit fugit! + \ No newline at end of file diff --git a/tests/wpt/tests/css/css-view-transitions/navigation/chromium-paint-holding-timeout.html b/tests/wpt/tests/css/css-view-transitions/navigation/chromium-paint-holding-timeout.html index 83596940fa4..cb3984695fd 100644 --- a/tests/wpt/tests/css/css-view-transitions/navigation/chromium-paint-holding-timeout.html +++ b/tests/wpt/tests/css/css-view-transitions/navigation/chromium-paint-holding-timeout.html @@ -6,6 +6,7 @@ + +
+
+
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht b/tests/wpt/tests/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht index 8eb08d55203..463d31772eb 100644 --- a/tests/wpt/tests/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht +++ b/tests/wpt/tests/css/cssom-view/scrollWidthHeightWhenNotScrollable.xht @@ -79,7 +79,7 @@ test(function(){ assert_equals(elemOverflow.scrollHeight, 200); - }, "elemOverflow.scrollHeight is the height of its scrolled contents (ignoring padding, since we overflowed)"); + }, "elemOverflow.scrollHeight is the height of its scrolled contents (plus padding, since we overflowed)"); test(function(){ assert_equals(elemOverflow.clientWidth, 240); diff --git a/tests/wpt/tests/css/cssom/serialize-values.html b/tests/wpt/tests/css/cssom/serialize-values.html index 2d20f263f4f..539052afaff 100644 --- a/tests/wpt/tests/css/cssom/serialize-values.html +++ b/tests/wpt/tests/css/cssom/serialize-values.html @@ -106,7 +106,7 @@ function attr_fallback() { var values = ['attr(foo-bar, "fallback")', 'attr(foo_bar, "fallback")', {actual: 'attr(|bar, "fallback")', serialized: 'attr(bar, "fallback")'}, - {actual: 'attr(foo, "")', serialized: 'attr(foo)'}, + {actual: 'attr(foo, "")', serialized: 'attr(foo, "")'}, {actual: 'attr( |foo , "" )', serialized: 'attr(foo)'}]; return iterable(values); } diff --git a/tests/wpt/tests/css/filter-effects/fecolormatrix-negative-ref.html b/tests/wpt/tests/css/filter-effects/fecolormatrix-negative-ref.html new file mode 100644 index 00000000000..95a0051c18a --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/fecolormatrix-negative-ref.html @@ -0,0 +1,18 @@ + + + + Filter Effects: Test feColorMatrix with negative matrix entries + + + + + +

You should see a cyan colored rectangle.

+ + + + + + + + diff --git a/tests/wpt/tests/css/filter-effects/fecolormatrix-negative.html b/tests/wpt/tests/css/filter-effects/fecolormatrix-negative.html new file mode 100644 index 00000000000..eddec862154 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/fecolormatrix-negative.html @@ -0,0 +1,35 @@ + + + + Filter Effects: Test feColorMatrix with negative matrix entries + + + + + + + + + +

You should see a cyan colored rectangle.

+ + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-importNode.tentative.html b/tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-importNode.tentative.html new file mode 100644 index 00000000000..dc5ef24bd80 --- /dev/null +++ b/tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-importNode.tentative.html @@ -0,0 +1,82 @@ + + + +Tests ShadowRoot.importNode APIs work with scoped custom element registries + + + + + + + + + diff --git a/tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-innerHTML.tentative.html b/tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-innerHTML.tentative.html new file mode 100644 index 00000000000..bee3f18a96d --- /dev/null +++ b/tests/wpt/tests/custom-elements/scoped-registry/ShadowRoot-innerHTML.tentative.html @@ -0,0 +1,107 @@ + + + +Tests innerHTML should use the scoped custom element registry used to create the context object + + + + + + + + + diff --git a/tests/wpt/tests/docs/writing-tests/testdriver.md b/tests/wpt/tests/docs/writing-tests/testdriver.md index 462c7b85503..cdf081ef318 100644 --- a/tests/wpt/tests/docs/writing-tests/testdriver.md +++ b/tests/wpt/tests/docs/writing-tests/testdriver.md @@ -13,8 +13,12 @@ written purely using web platform APIs. Outside of automation contexts, it allows human operators to provide expected input manually (for operations which may be described in simple terms). -It is currently supported only for [testharness.js](testharness) -tests. +testdriver.js supports the following test types: +* [testharness.js](testharness) tests +* [reftests](reftests) and [print-reftests](print-reftests) that use the + `class=reftest-wait` attribute on the root element to control completion +* [crashtests](crashtest) that use the `class=test-wait` attribute to control + completion ## Markup ## diff --git a/tests/wpt/tests/dom/nodes/moveBefore/tentative/Node-moveBefore.html b/tests/wpt/tests/dom/nodes/moveBefore/tentative/Node-moveBefore.html index 22586d169c0..bfee97b4459 100644 --- a/tests/wpt/tests/dom/nodes/moveBefore/tentative/Node-moveBefore.html +++ b/tests/wpt/tests/dom/nodes/moveBefore/tentative/Node-moveBefore.html @@ -87,8 +87,8 @@ test(t => { }, "moveBefore() on a cross-document target node throws a HierarchyRequestError"); // Pre-move validity, step 3: -// "If parent is not an Element node, then throw a "HierarchyRequestError" -// DOMException." +// "If parent is not a Document, DocumentFragment, or Element node, then throw a +// "HierarchyRequestError" DOMException." // // https://whatpr.org/dom/1307.html#concept-node-ensure-pre-move-validity test(t => { @@ -97,10 +97,20 @@ test(t => { assert_throws_dom("HIERARCHY_REQUEST_ERR", iframe.contentWindow.DOMException, () => { // Moving the body into the same place that it already is, which is a valid - // action in the normal case, when moving a node into an Element. + // action in the normal case, when moving an Element directly under the + // document. This is not `moveBefore()`-specific behavior; it is consistent + // with traditional Document insertion rules, just like `insertBefore()`. iframe.contentDocument.moveBefore(innerBody, null); }); }, "moveBefore() into a Document throws a HierarchyRequestError"); +test(t => { + const iframe = document.body.appendChild(document.createElement('iframe')); + const comment = iframe.contentDocument.createComment("comment"); + iframe.contentDocument.body.append(comment); + + iframe.contentDocument.moveBefore(comment, null); + assert_equals(comment.parentNode, iframe.contentDocument); +}, "moveBefore() CharacterData into a Document"); test(t => { const comment = document.body.appendChild(document.createComment("comment")); const child = document.body.appendChild(document.createElement('p')); @@ -243,10 +253,34 @@ test(() => { const disconnectedDestination = document.createElement('div'); const p = disconnectedOrigin.appendChild(document.createElement('p')); + assert_throws_dom("HIERARCHY_REQUEST_ERR", () => { + disconnectedDestination.moveBefore(p, null); + }); +}, "Moving a node from a disconnected container to a disconnected new parent " + + "without a shared ancestor throws a HIERARCHY_REQUEST_ERR"); + +test(() => { + const disconnectedOrigin = document.createElement('div'); + const disconnectedDestination = disconnectedOrigin.appendChild(document.createElement('div')); + const p = disconnectedOrigin.appendChild(document.createElement('p')); + disconnectedDestination.moveBefore(p, null); assert_equals(disconnectedDestination.firstChild, p, "

Was successfully moved"); -}, "Moving a node from a disconnected container to a disconnected new parent succeeds"); +}, "Moving a node from a disconnected container to a disconnected new parent in the same tree succeeds"); + +test(() => { + const disconnectedOrigin = document.createElement('div'); + const disconnectedHost = disconnectedOrigin.appendChild(document.createElement('div')); + const p = disconnectedOrigin.appendChild(document.createElement('p')); + const shadow = disconnectedHost.attachShadow({mode: "closed"}); + const disconnectedDestination = shadow.appendChild(document.createElement('div')); + + disconnectedDestination.moveBefore(p, null); + + assert_equals(disconnectedDestination.firstChild, p, "

Was successfully moved"); +}, "Moving a node from a disconnected container to a disconnected new parent in the same tree succeeds," + + "also across shadow-roots"); test(() => { const disconnectedOrigin = document.createElement('div'); @@ -275,7 +309,7 @@ promise_test(async t => { }); const oldParent = document.createElement('div'); - const newParent = document.createElement('div'); + const newParent = oldParent.appendChild(document.createElement('div')); const element = oldParent.appendChild(document.createElement(element_name)); t.add_cleanup(() => { element.remove(); diff --git a/tests/wpt/tests/dom/observable/tentative/observable-inspect.any.js b/tests/wpt/tests/dom/observable/tentative/observable-inspect.any.js index 2b67dd9f3d3..24a7a5c8d48 100644 --- a/tests/wpt/tests/dom/observable/tentative/observable-inspect.any.js +++ b/tests/wpt/tests/dom/observable/tentative/observable-inspect.any.js @@ -20,20 +20,20 @@ test(() => { results.push(`inspect() subscribe ${inspectSubscribeCall}`); }, next: (value) => results.push(`inspect() next ${value}`), - error: (e) => results.push(`inspect() error ${e.message}`), - complete: () => results.push(`inspect() complete`), + error: () => results.push('inspect() error'), + complete: () => results.push('inspect() complete'), }); result.subscribe({ next: (value) => results.push(`result next ${value}`), - error: (e) => results.push(`result error ${e.message}`), - complete: () => results.push(`result complete`), + error: () => results.push('result error'), + complete: () => results.push('result complete'), }); result.subscribe({ next: (value) => results.push(`result next ${value}`), - error: (e) => results.push(`result error ${e.message}`), - complete: () => results.push(`result complete`), + error: () => results.push('result error'), + complete: () => results.push('result complete'), }); assert_array_equals(results, @@ -267,21 +267,22 @@ test(() => { test(() => { const source = new Observable(subscriber => {}); + const error = new Error("error from do subscribe handler"); const result = source.inspect({ subscribe: () => { - throw new Error("error from do subscribe handler"); + throw error; }, }); const results = []; result.subscribe({ next: () => results.push("next"), - error: (e) => results.push(e.message), + error: (e) => results.push(e), complete: () => results.push("complete"), }); - assert_array_equals(results, ["error from do subscribe handler"]); + assert_array_equals(results, [error]); }, "inspect(): Errors thrown in subscribe() Inspector handler subscribe " + "handler are caught and sent to error callback"); @@ -306,7 +307,7 @@ test(() => { results.push(`inspect() abort ${doUnsubscribeCall} ${reason}`); }, next: (value) => results.push(`inspect() next ${value}`), - error: (e) => results.push(`inspect() error ${e.message}`), + error: () => results.push('inspect() error'), complete: () => results.push(`inspect() complete`), }); @@ -318,7 +319,7 @@ test(() => { controller.abort("abort reason"); } }, - error: (e) => results.push(`result error ${e.message}`), + error: () => results.push('result error'), complete: () => results.push(`result complete`), }, { signal: controller.signal }); @@ -381,32 +382,39 @@ test(() => { }); const results = []; + const error = new Error("error from inspect() subscribe handler"); const result = source.inspect({ abort: () => { - results.push('abort() handler run'); - throw new Error("error from inspect() subscribe handler"); + results.push("abort() handler run"); + throw error; }, }); const controller = new AbortController(); - self.when('error').take(1).subscribe(e => - results.push(e.message + ', from report exception')); + self.when("error").take(1).subscribe((e) => { + results.push("from report exception"); + results.push(e.error); + }); result.subscribe({ next: (value) => { results.push(value); controller.abort(); }, - // This should not be invoked at all!! - error: (e) => results.push(e.message + ', from Observer#error()'), + error: () => { + assert_unreached("This should not be invoked at all!!"); + }, complete: () => results.push("complete"), - }, {signal: controller.signal}); + }, { signal: controller.signal }); - assert_array_equals(results, [1, "abort() handler run", - "Uncaught Error: error from inspect() subscribe handler, from report " + - "exception"]); + assert_array_equals(results, [ + 1, + "abort() handler run", + "from report exception", + error, + ]); }, "inspect(): Errors thrown from inspect()'s abort() handler are caught " + "and reported to the global, because the subscription is already closed " + "by the time the handler runs"); diff --git a/tests/wpt/tests/dom/observable/tentative/observable-reduce.any.js b/tests/wpt/tests/dom/observable/tentative/observable-reduce.any.js index 7c54aa1e8ff..18f91e34fca 100644 --- a/tests/wpt/tests/dom/observable/tentative/observable-reduce.any.js +++ b/tests/wpt/tests/dom/observable/tentative/observable-reduce.any.js @@ -1,4 +1,4 @@ -promise_test(async t => { +promise_test(async (t) => { const source = new Observable(subscriber => { subscriber.next(1); subscriber.next(2); @@ -24,24 +24,17 @@ promise_test(async t => { }, "reduce(): Reduces the values of the Observable, starting with the " + "initial seed value"); -promise_test(async () => { +promise_test(async (t) => { let error = new Error('from the source'); const source = new Observable(subscriber => { subscriber.next(1); subscriber.error(error); }); - let thrownError = null; - try { - await source.reduce((acc, value) => acc + value, 0); - } catch (error) { - thrownError = error; - } - - assert_equals(thrownError, error); + return promise_rejects_exactly(t, error, source.reduce((acc, value) => acc + value, 0)); }, "reduce(): Rejects if the source observable emits an error"); -promise_test(async t => { +promise_test(async (t) => { const source = new Observable(subscriber => { subscriber.next(1); subscriber.next(2); @@ -66,7 +59,7 @@ promise_test(async t => { }, "reduce(): Seeds with the first value of the source, if no initial value " + "is provided"); -promise_test(async () => { +promise_test(async (t) => { const logs = []; const source = new Observable(subscriber => { @@ -82,21 +75,16 @@ promise_test(async () => { }); const error = new Error('from the reducer'); - let thrownError = null; - try { - await source.reduce((acc, value) => { - if (value === 2) { - logs.push('throw error'); - throw error; - } - return acc + value; - }, 0); - } catch (error) { - thrownError = error; - } + const promiseToResult = source.reduce((acc, value) => { + if (value === 2) { + logs.push('throw error'); + throw error; + } + return acc + value; + }, 0); - assert_equals(thrownError, error); + await promise_rejects_exactly(t, error, promiseToResult); assert_array_equals(logs, [ 'next 1', @@ -118,7 +106,7 @@ promise_test(async () => { assert_equals(result, 'seed'); }, "reduce(): When source is empty, promise resolves with initial value"); -promise_test(async () => { +promise_test(async (t) => { // This tests behavior that is analogous to `[].reduce(() => 'reduced')`, // which throws a TypeError. @@ -126,18 +114,11 @@ promise_test(async () => { subscriber.complete(); }); - let thrownError = null; - try { - await source.reduce(() => 'reduced'); - } catch (error) { - thrownError = error; - } - - assert_true(thrownError instanceof TypeError); + return promise_rejects_js(t, TypeError, source.reduce(() => 'reduced')); }, "reduce(): When source is empty, AND no seed value is provided, the " + "promise rejects with a TypeError"); -promise_test(async t => { +promise_test(async (t) => { let tornDown = false; const source = new Observable((subscriber) => { subscriber.addTeardown(() => { @@ -153,14 +134,19 @@ promise_test(async t => { assert_true(tornDown); }, 0); - let thrownError = null; - try { - await source.reduce(() => 'reduced', 'seed', { signal: abortController.signal }); - } catch (error) { - thrownError = error; - } - - assert_true(thrownError instanceof DOMException); - assert_equals(thrownError.name, 'AbortError'); + return promise_rejects_dom(t, 'AbortError', source.reduce(() => 'reduced', 'seed', { signal: abortController.signal })); }, "reduce(): Reject with an AbortError if the subscription is aborted " + "before the source completes"); + +promise_test(async () => { + const source = new Observable(subscriber => { + subscriber.complete(); + }); + + const values = [{}, [], new Error("some error")]; + + for (let value of values) { + const result = await source.reduce(() => {}, value); + assert_equals(result, value); + } +}, "reduce(): Reduces the values for different objects"); diff --git a/tests/wpt/tests/editing/data/delete.js b/tests/wpt/tests/editing/data/delete.js index c4d1225ef35..dcb3a6a28df 100644 --- a/tests/wpt/tests/editing/data/delete.js +++ b/tests/wpt/tests/editing/data/delete.js @@ -3101,4 +3101,26 @@ var browserTests = [ "

ab

", [true], {}], +// Delete only first
to make 2 empty lines to only one line. +["
abc

{}
def
", + [["delete",""]], + "
abc

def
", + [true], + {}], +["
a

{}
b
", + [["delete",""]], + "
a

b
", + [true], + {}], +// Cells shouldn't be joined, but new empty inline ancestors should be deleted. +["
a[bcd]e
", + [["delete",""]], + "
a


e
", + [true], + {}], +["
a[bcd]e
", + [["delete",""]], + "
a


e
", + [true], + {}], ] diff --git a/tests/wpt/tests/editing/data/forwarddelete.js b/tests/wpt/tests/editing/data/forwarddelete.js index a881fb6ccf4..66d978c73de 100644 --- a/tests/wpt/tests/editing/data/forwarddelete.js +++ b/tests/wpt/tests/editing/data/forwarddelete.js @@ -2981,4 +2981,26 @@ var browserTests = [ "

ab

", [true], {}], +// Delete only first
to make 2 empty lines to only one line. +["
abc
{}

def
", + [["forwarddelete",""]], + "
abc

def
", + [true], + {}], +["
a
{}

b
", + [["forwarddelete",""]], + "
a

b
", + [true], + {}], +// Cells shouldn't be joined, but new empty inline ancestors should be deleted. +["
a[bcd]e
", + [["forwarddelete",""]], + "
a


e
", + [true], + {}], +["
a[bcd]e
", + [["forwarddelete",""]], + "
a


e
", + [true], + {}], ] diff --git a/tests/wpt/tests/editing/data/inserttext.js b/tests/wpt/tests/editing/data/inserttext.js index 568b467f153..7e9dd05fe46 100644 --- a/tests/wpt/tests/editing/data/inserttext.js +++ b/tests/wpt/tests/editing/data/inserttext.js @@ -1527,4 +1527,15 @@ var browserTests = [ "
abcgh
", [true,true], {}], + +["
a[bcd]e
", + [["inserttext","B"]], + "
aB

e
", + [true], + {}], +["
a[bcd]e
", + [["inserttext","B"]], + "
aB

e
", + [true], + {}], ] diff --git a/tests/wpt/tests/editing/data/multitest.js b/tests/wpt/tests/editing/data/multitest.js index e85f54addfc..2d5404ba898 100644 --- a/tests/wpt/tests/editing/data/multitest.js +++ b/tests/wpt/tests/editing/data/multitest.js @@ -2417,8 +2417,7 @@ var browserTests = [ {"delete":[false,false,"",false,false,""],"inserttext":[false,false,"",false,false,""]}], ["
[abc]
", [["styleWithCSS", "false"],["delete",""],["inserttext","a"]], - ["a", - "a
"], // The
should be deleted by "delete" + "a", // The
should be deleted by "delete" [true,true,true], {"bold":[false,true,"",false,true,""]}], ["
abc[def]
", @@ -2429,30 +2428,22 @@ var browserTests = [ {"bold":[false,true,"",false,true,""]}], ["
[abc]
", [["styleWithCSS", "false"],["delete",""],["insertparagraph",""],["inserttext","a"]], - ["
a
", - "
a
"], // The
should be deleted by "delete", but new text should be in new
+ "
a
", // The
should be deleted by "delete", but new text should be in new
[true,true,true,true], {"bold":[false,true,"",false,true,""]}], ["
abc[def]
", [["styleWithCSS", "false"], ["delete",""],["insertparagraph",""],["inserttext","d"]], - ["
abc
d
", - "
abc
d
", - "
abc
d
", - "
abc
d
"], + "
abc
d
", [true,true,true,true], {"bold":[false,true,"",false,true,""]}], ["
[abc]
", [["styleWithCSS", "false"],["insertparagraph",""],["inserttext","a"]], - ["
a
", - "
a
"], // The
should be deleted by "insertparagraph", but new text should be in new
+ "
a
", // The
should be deleted by "insertparagraph", but new text should be in new
[true,true,true], {"bold":[false,true,"",false,true,""]}], ["
abc[def]
", [["styleWithCSS", "false"],["insertparagraph",""],["inserttext","d"]], - ["
abc
d
", - "
abc
d
", - "
abc
d
", - "
abc
d
"], + "
abc
d
", [true,true,true], {"bold":[false,true,"",false,true,""]}], @@ -2466,29 +2457,22 @@ var browserTests = [ {"bold":[false,true,"",false,false,""]}], ["
abc[]
", [["styleWithCSS", "false"],["bold",""],["inserttext","d"]], - ["
abcd
", - "
abcd
", - "
abcd
"], + "
abcd
", [true,true,true], {"bold":[false,true,"",false,false,""]}], ["
abc[]
", [["styleWithCSS", "false"],["bold",""],["inserttext","d"]], - ["
abcd
", - "
abcd
"], + "
abcd
", [true,true,true], {"bold":[false,true,"",false,false,""]}], ["
abc[]
", [["styleWithCSS", "false"],["bold",""],["inserttext","d"]], - ["
abcd
", - "
abcd
", - "
abcd
"], + "
abcd
", [true,true,true], {"bold":[false,true,"",false,false,""]}], ["
abc[]
", [["styleWithCSS", "false"],["bold",""],["inserttext","d"]], - ["
abcd
", - "
abcd
", - "
abcd
"], + "
abcd
", [true,true,true], {"bold":[false,true,"",false,false,""]}], // In this case, second line text should be keep bold style. @@ -2862,8 +2846,7 @@ var browserTests = [ {"fontsize":[false,false,"7",false,false,"4"]}], ["{}
", [["stylewithcss","true"],["italic",""],["insertText","a"]], - ["a[]
", - "a[]"], + "a[]", [true,true,true], {}], @@ -3244,4 +3227,27 @@ var browserTests = [ "abcYdef"], [true,true], {}], + +["
a[bcd]e
", + [["delete",""],["inserttext","B"]], + "
aB

e
", + [true,true], + {}], +["
a[bcd]e
", + [["delete",""],["inserttext","B"]], + "
aB

e
", + [true,true], + {}], +["
a[bcd]e
", + [["forwarddelete",""],["inserttext","B"]], + ["
aB

e
", + "
a

Be
"], + [true,true], + {}], +["
a[bcd]e
", + [["forwarddelete",""],["inserttext","B"]], + ["
aB

e
", + "
a

Be
"], + [true,true], + {}], ] diff --git a/tests/wpt/tests/editing/include/editor-test-utils.js b/tests/wpt/tests/editing/include/editor-test-utils.js index b302d19a117..b2e53515e0f 100644 --- a/tests/wpt/tests/editing/include/editor-test-utils.js +++ b/tests/wpt/tests/editing/include/editor-test-utils.js @@ -109,6 +109,15 @@ class EditorTestUtils { ); } + sendCutShortcutKey() { + return this.sendKey( + "x", + this.window.navigator.platform.includes("Mac") + ? this.kMeta + : this.kControl + ); + } + sendPasteShortcutKey() { return this.sendKey( "v", diff --git a/tests/wpt/tests/editing/run/delete-chars-following-collapsible-white-space.html b/tests/wpt/tests/editing/run/delete-chars-following-collapsible-white-space.html new file mode 100644 index 00000000000..7340a9ebf72 --- /dev/null +++ b/tests/wpt/tests/editing/run/delete-chars-following-collapsible-white-space.html @@ -0,0 +1,284 @@ + + + + + +Test Backspace to delete following character(s) of collapsible white-space + + + + + + + + + +
+ + diff --git a/tests/wpt/tests/editing/run/delete-to-make-editing-host-empty.html b/tests/wpt/tests/editing/run/delete-to-make-editing-host-empty.html new file mode 100644 index 00000000000..d16bb88d6b0 --- /dev/null +++ b/tests/wpt/tests/editing/run/delete-to-make-editing-host-empty.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + +
+ + diff --git a/tests/wpt/tests/editing/run/forwarddelete-chars-following-collapsible-white-space.html b/tests/wpt/tests/editing/run/forwarddelete-chars-following-collapsible-white-space.html new file mode 100644 index 00000000000..9cfdd9879ec --- /dev/null +++ b/tests/wpt/tests/editing/run/forwarddelete-chars-following-collapsible-white-space.html @@ -0,0 +1,284 @@ + + + + + +Test (forward) Delete to delete following character(s) of collapsible white-space + + + + + + + + + +
+ + diff --git a/tests/wpt/tests/element-timing/resources/element-timing-helpers.js b/tests/wpt/tests/element-timing/resources/element-timing-helpers.js index 8175b0f3850..2c1bd195ea7 100644 --- a/tests/wpt/tests/element-timing/resources/element-timing-helpers.js +++ b/tests/wpt/tests/element-timing/resources/element-timing-helpers.js @@ -16,6 +16,15 @@ function checkElementInternal(entry, expectedUrl, expectedIdentifier, expectedID assert_equals(entry.duration, 0, 'duration should be 0'); assert_equals(entry.id, expectedID, 'id does not match'); assert_greater_than_equal(entry.renderTime, beforeRender, 'renderTime greater than beforeRender'); + assert_greater_than_equal(entry.paintTime, beforeRender, 'paintTime should represent the time when the UA started painting'); + + // PaintTimingMixin + if ("presentationTime" in entry) { + assert_greater_than(entry.presentationTime, entry.paintTime); + assert_equals(entry.presentationTime, entry.renderTime); + } else { + assert_equals(entry.renderTime, entry.paintTime); + } assert_greater_than_equal(performance.now(), entry.renderTime, 'renderTime bounded by now()'); if (expectedElement !== null) { assert_equals(entry.element, expectedElement, 'element does not match'); diff --git a/tests/wpt/tests/fetch/metadata/generated/audioworklet.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/audioworklet.https.sub.html index 64fb7607e26..5ea1cdc8bc9 100644 --- a/tests/wpt/tests/fetch/metadata/generated/audioworklet.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/audioworklet.https.sub.html @@ -266,6 +266,32 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/javascript'}), + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite'], {mime: 'text/javascript'}), + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/css-font-face.https.sub.tentative.html b/tests/wpt/tests/fetch/metadata/generated/css-font-face.https.sub.tentative.html index 332effeb1f8..481355c0a6c 100644 --- a/tests/wpt/tests/fetch/metadata/generated/css-font-face.https.sub.tentative.html +++ b/tests/wpt/tests/fetch/metadata/generated/css-font-face.https.sub.tentative.html @@ -225,6 +225,26 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpsCrossSite'])) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpsSameSite'])) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/css-font-face.sub.tentative.html b/tests/wpt/tests/fetch/metadata/generated/css-font-face.sub.tentative.html index 8a0b90cee10..a0d2a06fed3 100644 --- a/tests/wpt/tests/fetch/metadata/generated/css-font-face.sub.tentative.html +++ b/tests/wpt/tests/fetch/metadata/generated/css-font-face.sub.tentative.html @@ -160,6 +160,36 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpOrigin'])) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpSameSite'])) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpCrossSite'])) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/css-images.https.sub.tentative.html b/tests/wpt/tests/fetch/metadata/generated/css-images.https.sub.tentative.html index 3fa24019289..63dcb4bf027 100644 --- a/tests/wpt/tests/fetch/metadata/generated/css-images.https.sub.tentative.html +++ b/tests/wpt/tests/fetch/metadata/generated/css-images.https.sub.tentative.html @@ -1374,6 +1374,151 @@ Sources: .then(t.step_func_done(), t.unreached_func()); }, 'list-style-image sec-fetch-user'); + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite']); + + declarations.push(`background-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_equals(headers['sec-fetch-storage-access'], 'none'); + }) + .then(t.step_func_done(), (error) => t.unreached_func()); + }, 'background-image sec-fetch-storage-access - Cross-site'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite']); + + declarations.push(`border-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'border-image sec-fetch-storage-access - Cross-site'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite']); + + declarations.push(`content: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'content sec-fetch-storage-access - Cross-site'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite']); + + declarations.push(`cursor: url("${url}"), auto;`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'cursor sec-fetch-storage-access - Cross-site'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite']); + + declarations.push(`list-style-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'list-style-image sec-fetch-storage-access - Cross-site'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite']); + + declarations.push(`background-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), (error) => t.unreached_func()); + }, 'background-image sec-fetch-storage-access - Same site'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite']); + + declarations.push(`border-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'border-image sec-fetch-storage-access - Same site'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite']); + + declarations.push(`content: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'content sec-fetch-storage-access - Same site'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite']); + + declarations.push(`cursor: url("${url}"), auto;`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'cursor sec-fetch-storage-access - Same site'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite']); + + declarations.push(`list-style-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'list-style-image sec-fetch-storage-access - Same site'); + iframe.srcdoc = declarations.map((declaration, index) => `
` ).join(''); diff --git a/tests/wpt/tests/fetch/metadata/generated/css-images.sub.tentative.html b/tests/wpt/tests/fetch/metadata/generated/css-images.sub.tentative.html index f1ef27cf087..2f6f2f75f1b 100644 --- a/tests/wpt/tests/fetch/metadata/generated/css-images.sub.tentative.html +++ b/tests/wpt/tests/fetch/metadata/generated/css-images.sub.tentative.html @@ -869,6 +869,216 @@ Sources: .then(t.step_func_done(), t.unreached_func()); }, 'list-style-image sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin']); + + declarations.push(`background-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), (error) => t.unreached_func()); + }, 'background-image sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin']); + + declarations.push(`border-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'border-image sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin']); + + declarations.push(`content: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'content sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin']); + + declarations.push(`cursor: url("${url}"), auto;`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'cursor sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin']); + + declarations.push(`list-style-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'list-style-image sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite']); + + declarations.push(`background-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), (error) => t.unreached_func()); + }, 'background-image sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite']); + + declarations.push(`border-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'border-image sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite']); + + declarations.push(`content: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'content sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite']); + + declarations.push(`cursor: url("${url}"), auto;`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'cursor sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite']); + + declarations.push(`list-style-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'list-style-image sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite']); + + declarations.push(`background-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), (error) => t.unreached_func()); + }, 'background-image sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite']); + + declarations.push(`border-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'border-image sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite']); + + declarations.push(`content: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'content sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite']); + + declarations.push(`cursor: url("${url}"), auto;`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'cursor sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + + async_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite']); + + declarations.push(`list-style-image: url("${url}");`); + + whenIframeReady + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }) + .then(t.step_func_done(), t.unreached_func()); + }, 'list-style-image sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + async_test((t) => { const key = '{{uuid()}}'; const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin']); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-a.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-a.https.sub.html index dffd36c73ee..6bc50692761 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-a.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-a.https.sub.html @@ -477,6 +477,46 @@ Sources: assert_array_equals(headers['sec-fetch-user'], ['?1']); }); }, 'sec-fetch-user - no attributes with user activation'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/html'}), + { + test: t, + userActivated: false, + attributes: {} + } + ); + + // `induceRequest` does not necessarily trigger a navigation, so the Python + // handler must be polled until it has received the initial request. + return retrieve(key, {poll: true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site - no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + makeRequestURL(key, ['httpsSameSite'], {mime: 'text/html'}), + { + test: t, + userActivated: false, + attributes: {} + } + ); + + // `induceRequest` does not necessarily trigger a navigation, so the Python + // handler must be polled until it has received the initial request. + return retrieve(key, {poll: true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site - no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-a.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-a.sub.html index 0661de3c871..389d3393b64 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-a.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-a.sub.html @@ -276,6 +276,66 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination - no attributes'); + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + makeRequestURL(key, ['httpOrigin'], {mime: 'text/html'}), + { + test: t, + userActivated: false, + attributes: {} + } + ); + + // `induceRequest` does not necessarily trigger a navigation, so the Python + // handler must be polled until it has received the initial request. + return retrieve(key, {poll: true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination - no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + makeRequestURL(key, ['httpSameSite'], {mime: 'text/html'}), + { + test: t, + userActivated: false, + attributes: {} + } + ); + + // `induceRequest` does not necessarily trigger a navigation, so the Python + // handler must be polled until it has received the initial request. + return retrieve(key, {poll: true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination - no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + makeRequestURL(key, ['httpCrossSite'], {mime: 'text/html'}), + { + test: t, + userActivated: false, + attributes: {} + } + ); + + // `induceRequest` does not necessarily trigger a navigation, so the Python + // handler must be polled until it has received the initial request. + return retrieve(key, {poll: true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination - no attributes'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-area.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-area.https.sub.html index be3f5f9b621..2355cceda09 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-area.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-area.https.sub.html @@ -477,6 +477,46 @@ Sources: assert_array_equals(headers['sec-fetch-user'], ['?1']); }); }, 'sec-fetch-user - no attributes with user activation'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/html'}), + { + test: t, + userActivated: false, + attributes: {} + } + ); + + // `induceRequest` does not necessarily trigger a navigation, so the Python + // handler must be polled until it has received the initial request. + return retrieve(key, {poll: true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site - no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + makeRequestURL(key, ['httpsSameSite'], {mime: 'text/html'}), + { + test: t, + userActivated: false, + attributes: {} + } + ); + + // `induceRequest` does not necessarily trigger a navigation, so the Python + // handler must be polled until it has received the initial request. + return retrieve(key, {poll: true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site - no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-area.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-area.sub.html index 5f5c338324f..1932a66cc09 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-area.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-area.sub.html @@ -276,6 +276,66 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination - no attributes'); + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + makeRequestURL(key, ['httpOrigin'], {mime: 'text/html'}), + { + test: t, + userActivated: false, + attributes: {} + } + ); + + // `induceRequest` does not necessarily trigger a navigation, so the Python + // handler must be polled until it has received the initial request. + return retrieve(key, {poll: true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination - no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + makeRequestURL(key, ['httpSameSite'], {mime: 'text/html'}), + { + test: t, + userActivated: false, + attributes: {} + } + ); + + // `induceRequest` does not necessarily trigger a navigation, so the Python + // handler must be polled until it has received the initial request. + return retrieve(key, {poll: true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination - no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + makeRequestURL(key, ['httpCrossSite'], {mime: 'text/html'}), + { + test: t, + userActivated: false, + attributes: {} + } + ); + + // `induceRequest` does not necessarily trigger a navigation, so the Python + // handler must be polled until it has received the initial request. + return retrieve(key, {poll: true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination - no attributes'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-audio.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-audio.https.sub.html index a9d951233e2..f0ce53cbd15 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-audio.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-audio.https.sub.html @@ -320,6 +320,33 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site, no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-audio.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-audio.sub.html index 2b62632ac2e..efe9164c6d2 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-audio.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-audio.sub.html @@ -184,6 +184,45 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test(() => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-embed.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-embed.https.sub.html index 819bed888ee..2aea58d0b4d 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-embed.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-embed.https.sub.html @@ -219,6 +219,27 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpsCrossSite'], params)) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpsSameSite'], params)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-embed.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-embed.sub.html index b6e14a55e4a..e394d4d7f9a 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-embed.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-embed.sub.html @@ -154,6 +154,36 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpOrigin'], params)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpSameSite'], params)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpCrossSite'], params)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-frame.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-frame.https.sub.html index 17504ff5635..7df86fb7b4b 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-frame.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-frame.https.sub.html @@ -304,6 +304,35 @@ Sources: assert_array_equals(headers['sec-fetch-user'], ['?1']); }); }, 'sec-fetch-user with user activation'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/html'}), + t, + false + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite'], {mime: 'text/html'}), + t, + false + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-frame.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-frame.sub.html index 2d9a7ec97d7..6a10ca2b34d 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-frame.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-frame.sub.html @@ -202,6 +202,48 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin'], {mime: 'text/html'}), + t, + false + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite'], {mime: 'text/html'}), + t, + false + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite'], {mime: 'text/html'}), + t, + false + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-iframe.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-iframe.https.sub.html index fba1c8b9e02..10de0061480 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-iframe.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-iframe.https.sub.html @@ -304,6 +304,35 @@ Sources: assert_array_equals(headers['sec-fetch-user'], ['?1']); }); }, 'sec-fetch-user with user activation'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/html'}), + t, + false + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite'], {mime: 'text/html'}), + t, + false + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-iframe.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-iframe.sub.html index 6f71cc0d254..5d2f096a3fa 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-iframe.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-iframe.sub.html @@ -202,6 +202,48 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin'], {mime: 'text/html'}), + t, + false + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite'], {mime: 'text/html'}), + t, + false + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite'], {mime: 'text/html'}), + t, + false + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-img-environment-change.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-img-environment-change.https.sub.html index a19aa117c4f..9e9c3723e9a 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-img-environment-change.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-img-environment-change.https.sub.html @@ -352,6 +352,35 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpsCrossSite'], params), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site, no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpsSameSite'], params), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site, no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-img-environment-change.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-img-environment-change.sub.html index 96658726ba0..0d99cb3171b 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-img-environment-change.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-img-environment-change.sub.html @@ -222,6 +222,48 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpOrigin'], params), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination, no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpSameSite'], params), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination, no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpCrossSite'], params), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-img.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-img.https.sub.html index 51d6e082b0e..5a0f2e4e200 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-img.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-img.https.sub.html @@ -640,6 +640,64 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - srcset - no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite']), + 'src', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - src - Cross-site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite']), + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - srcset - Cross-site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite']), + 'src', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - src - Same site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite']), + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - srcset - Same site, no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-img.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-img.sub.html index 5a4b152c552..23008791d7f 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-img.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-img.sub.html @@ -364,6 +364,90 @@ Sources: }); }, 'sec-fetch-user - srcset - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin']), + 'src', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - src - Not sent to non-trustworthy same-origin destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin']), + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - srcset - Not sent to non-trustworthy same-origin destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite']), + 'src', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - src - Not sent to non-trustworthy same-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite']), + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - srcset - Not sent to non-trustworthy same-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite']), + 'src', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - src - Not sent to non-trustworthy cross-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite']), + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - srcset - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test(() => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-input-image.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-input-image.https.sub.html index 7fa674043e2..b5537eec60e 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-input-image.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-input-image.https.sub.html @@ -224,6 +224,27 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(makeRequestURL(key, ['httpsCrossSite']), t) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site, no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(makeRequestURL(key, ['httpsSameSite']), t) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site, no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-input-image.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-input-image.sub.html index fb2a146b199..6f8743633fa 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-input-image.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-input-image.sub.html @@ -148,6 +148,36 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(makeRequestURL(key, ['httpOrigin']), t) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination, no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(makeRequestURL(key, ['httpSameSite']), t) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination, no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(makeRequestURL(key, ['httpCrossSite']), t) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-link-icon.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-link-icon.https.sub.html index b2449607553..b41f0afe4a8 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-link-icon.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-link-icon.https.sub.html @@ -366,6 +366,37 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + t, + makeRequestURL(key, ['httpsCrossSite'], params), + {} + ); + + return retrieve(key, {poll:true}) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + t, + makeRequestURL(key, ['httpsSameSite'], params), + {} + ); + + return retrieve(key, {poll:true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-link-icon.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-link-icon.sub.html index e9226c190a5..ea9ecb4ffe0 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-link-icon.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-link-icon.sub.html @@ -228,6 +228,51 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination no attributes'); + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + t, + makeRequestURL(key, ['httpOrigin'], params), + {} + ); + + return retrieve(key, {poll:true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + t, + makeRequestURL(key, ['httpSameSite'], params), + {} + ); + + return retrieve(key, {poll:true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + t, + makeRequestURL(key, ['httpCrossSite'], params), + {} + ); + + return retrieve(key, {poll:true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination no attributes'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-link-prefetch.https.optional.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-link-prefetch.https.optional.sub.html index bdd684a2679..16347abc825 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-link-prefetch.https.optional.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-link-prefetch.https.optional.sub.html @@ -553,6 +553,37 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + t, + makeRequestURL(key, ['httpsCrossSite']), + {} + ); + + return retrieve(key, {poll:true}) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + t, + makeRequestURL(key, ['httpsSameSite']), + {} + ); + + return retrieve(key, {poll:true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-link-prefetch.optional.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-link-prefetch.optional.sub.html index c2244883cc9..c9386717602 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-link-prefetch.optional.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-link-prefetch.optional.sub.html @@ -223,6 +223,51 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination no attributes'); + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + t, + makeRequestURL(key, ['httpOrigin']), + {} + ); + + return retrieve(key, {poll:true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + t, + makeRequestURL(key, ['httpSameSite']), + {} + ); + + return retrieve(key, {poll:true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + induceRequest( + t, + makeRequestURL(key, ['httpCrossSite']), + {} + ); + + return retrieve(key, {poll:true}) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination no attributes'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html index 3a1a8eb49af..7f763d630a3 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-meta-refresh.https.optional.sub.html @@ -271,6 +271,30 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite'], responseParams), t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite'], responseParams), t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-meta-refresh.optional.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-meta-refresh.optional.sub.html index df3e92e2c8f..c1f3ecbbf86 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-meta-refresh.optional.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-meta-refresh.optional.sub.html @@ -183,6 +183,42 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin'], responseParams), t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite'], responseParams), t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite'], responseParams), t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-picture.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-picture.https.sub.html index ba6636a019a..2de087218ac 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-picture.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-picture.https.sub.html @@ -991,6 +991,99 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - source[srcset] - no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite']), + 'img', + 'src', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - img[src] - Cross-site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite']), + 'img', + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - img[srcset] - Cross-site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite']), + 'source', + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - source[srcset] - Cross-site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite']), + 'img', + 'src', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - img[src] - Same site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite']), + 'img', + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - img[srcset] - Same site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite']), + 'source', + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - source[srcset] - Same site, no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-picture.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-picture.sub.html index 64f851c682b..f0e087483d5 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-picture.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-picture.sub.html @@ -575,6 +575,141 @@ Sources: }); }, 'sec-fetch-user - source[srcset] - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin']), + 'img', + 'src', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - img[src] - Not sent to non-trustworthy same-origin destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin']), + 'img', + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - img[srcset] - Not sent to non-trustworthy same-origin destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin']), + 'source', + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - source[srcset] - Not sent to non-trustworthy same-origin destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite']), + 'img', + 'src', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - img[src] - Not sent to non-trustworthy same-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite']), + 'img', + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - img[srcset] - Not sent to non-trustworthy same-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite']), + 'source', + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - source[srcset] - Not sent to non-trustworthy same-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite']), + 'img', + 'src', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - img[src] - Not sent to non-trustworthy cross-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite']), + 'img', + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - img[srcset] - Not sent to non-trustworthy cross-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite']), + 'source', + 'srcset', + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - source[srcset] - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test(() => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-script.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-script.https.sub.html index dcdcba2792d..e52b165b747 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-script.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-script.https.sub.html @@ -589,5 +589,36 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpsCrossSite'], { mime: 'application/javascript' } + ); + + return induceRequest(url, + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpsSameSite'], { mime: 'application/javascript' } + ); + + return induceRequest(url, + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site, no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-script.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-script.sub.html index a2526698fbd..47ed5fa9f8f 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-script.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-script.sub.html @@ -391,6 +391,96 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination, attributes: type=module'); + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpOrigin'], { mime: 'application/javascript' } + ); + + return induceRequest(url, + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpOrigin'], { mime: 'application/javascript' } + ); + + return induceRequest(url, + {"type": "module"} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination, attributes: type=module'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpSameSite'], { mime: 'application/javascript' } + ); + + return induceRequest(url, + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpSameSite'], { mime: 'application/javascript' } + ); + + return induceRequest(url, + {"type": "module"} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination, attributes: type=module'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpCrossSite'], { mime: 'application/javascript' } + ); + + return induceRequest(url, + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpCrossSite'], { mime: 'application/javascript' } + ); + + return induceRequest(url, + {"type": "module"} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination, attributes: type=module'); + promise_test(() => { const key = '{{uuid()}}'; const url = makeRequestURL( diff --git a/tests/wpt/tests/fetch/metadata/generated/element-video-poster.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-video-poster.https.sub.html index 5805b46bd0c..ddd870af7c2 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-video-poster.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-video-poster.https.sub.html @@ -238,6 +238,27 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpsCrossSite'], params)) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpsSameSite'], params)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-video-poster.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-video-poster.sub.html index e6cc5ee7e06..aeb3d4f9b5e 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-video-poster.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-video-poster.sub.html @@ -162,6 +162,36 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpOrigin'], params)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpSameSite'], params)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest(t, makeRequestURL(key, ['httpCrossSite'], params)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/element-video.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-video.https.sub.html index 971360dceea..c900807820c 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-video.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-video.https.sub.html @@ -320,6 +320,33 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site, no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/element-video.sub.html b/tests/wpt/tests/fetch/metadata/generated/element-video.sub.html index 9707413ab68..bf357e9da0e 100644 --- a/tests/wpt/tests/fetch/metadata/generated/element-video.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/element-video.sub.html @@ -184,6 +184,45 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination, no attributes'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination, no attributes'); + promise_test(() => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/fetch-via-serviceworker.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/fetch-via-serviceworker.https.sub.html index 22f930960d6..c3b0599b9da 100644 --- a/tests/wpt/tests/fetch/metadata/generated/fetch-via-serviceworker.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/fetch-via-serviceworker.https.sub.html @@ -678,6 +678,68 @@ Sources: }); }, 'sec-fetch-user - no init - fallback'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpsCrossSite']), + {"credentials": "include", "mode": "no-cors"}, + 'respondWith' + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site, init: mode=no-cors, credentials=include - respondWith'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpsCrossSite']), + {"credentials": "include", "mode": "no-cors"}, + 'fallback' + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site, init: mode=no-cors, credentials=include - fallback'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpsSameSite']), + {"credentials": "include", "mode": "no-cors"}, + 'respondWith' + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site, init: mode=no-cors, credentials=include - respondWith'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpsSameSite']), + {"credentials": "include", "mode": "no-cors"}, + 'fallback' + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site, init: mode=no-cors, credentials=include - fallback'); + diff --git a/tests/wpt/tests/fetch/metadata/generated/fetch.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/fetch.https.sub.html index dde1daede4e..486f404d4bd 100644 --- a/tests/wpt/tests/fetch/metadata/generated/fetch.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/fetch.https.sub.html @@ -297,6 +297,33 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - no init'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite']), + {"credentials": "include", "mode": "no-cors"} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site, init: mode=no-cors, credentials=include'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite']), + {"credentials": "include", "mode": "no-cors"} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site, init: mode=no-cors, credentials=include'); diff --git a/tests/wpt/tests/fetch/metadata/generated/fetch.sub.html b/tests/wpt/tests/fetch/metadata/generated/fetch.sub.html index d28ea9bb900..7d9536efcfb 100644 --- a/tests/wpt/tests/fetch/metadata/generated/fetch.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/fetch.sub.html @@ -175,6 +175,45 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination, no init'); + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination, no init'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination, no init'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite']), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination, no init'); + promise_test(() => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/form-submission.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/form-submission.https.sub.html index 988b07c74a9..0935f846111 100644 --- a/tests/wpt/tests/fetch/metadata/generated/form-submission.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/form-submission.https.sub.html @@ -517,6 +517,50 @@ Sources: assert_array_equals(headers['sec-fetch-user'], ['?1']); }); }, 'sec-fetch-user - POST with user activation'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); + const userActivated = false; + return induceRequest('GET', url, userActivated) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site - GET'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); + const userActivated = false; + return induceRequest('POST', url, userActivated) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site - POST'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite'], responseParams); + const userActivated = false; + return induceRequest('GET', url, userActivated) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site - GET'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite'], responseParams); + const userActivated = false; + return induceRequest('POST', url, userActivated) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site - POST'); diff --git a/tests/wpt/tests/fetch/metadata/generated/form-submission.sub.html b/tests/wpt/tests/fetch/metadata/generated/form-submission.sub.html index f862062aebc..b0f56f60942 100644 --- a/tests/wpt/tests/fetch/metadata/generated/form-submission.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/form-submission.sub.html @@ -326,6 +326,72 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination - POST'); + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin'], responseParams); + const userActivated = false; + return induceRequest('GET', url, userActivated) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination - GET'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin'], responseParams); + const userActivated = false; + return induceRequest('POST', url, userActivated) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination - POST'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite'], responseParams); + const userActivated = false; + return induceRequest('GET', url, userActivated) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination - GET'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite'], responseParams); + const userActivated = false; + return induceRequest('POST', url, userActivated) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination - POST'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite'], responseParams); + const userActivated = false; + return induceRequest('GET', url, userActivated) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination - GET'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite'], responseParams); + const userActivated = false; + return induceRequest('POST', url, userActivated) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination - POST'); + promise_test(() => { const key = '{{uuid()}}'; const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin'], responseParams); diff --git a/tests/wpt/tests/fetch/metadata/generated/header-link.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/header-link.https.sub.html index 09f01138955..8e7d029dc25 100644 --- a/tests/wpt/tests/fetch/metadata/generated/header-link.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/header-link.https.sub.html @@ -524,6 +524,64 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user rel=stylesheet'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/html'}), + 'icon', + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access rel=icon - Cross-site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite'], {mime: 'text/html'}), + 'stylesheet', + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access rel=stylesheet - Cross-site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite'], {mime: 'text/html'}), + 'icon', + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access rel=icon - Same site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite'], {mime: 'text/html'}), + 'stylesheet', + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access rel=stylesheet - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/header-link.sub.html b/tests/wpt/tests/fetch/metadata/generated/header-link.sub.html index 8b6cdae0eda..b0823071345 100644 --- a/tests/wpt/tests/fetch/metadata/generated/header-link.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/header-link.sub.html @@ -368,6 +368,90 @@ Sources: }); }, 'sec-fetch-user rel=stylesheet - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin'], {mime: 'text/html'}), + 'icon', + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access rel=icon - Not sent to non-trustworthy same-origin destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin'], {mime: 'text/html'}), + 'stylesheet', + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access rel=stylesheet - Not sent to non-trustworthy same-origin destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite'], {mime: 'text/html'}), + 'icon', + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access rel=icon - Not sent to non-trustworthy same-site destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite'], {mime: 'text/html'}), + 'stylesheet', + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access rel=stylesheet - Not sent to non-trustworthy same-site destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite'], {mime: 'text/html'}), + 'icon', + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access rel=icon - Not sent to non-trustworthy cross-site destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite'], {mime: 'text/html'}), + 'stylesheet', + t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access rel=stylesheet - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/header-refresh.https.optional.sub.html b/tests/wpt/tests/fetch/metadata/generated/header-refresh.https.optional.sub.html index e63ee423cd7..0f7e9e42b79 100644 --- a/tests/wpt/tests/fetch/metadata/generated/header-refresh.https.optional.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/header-refresh.https.optional.sub.html @@ -268,6 +268,30 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsCrossSite'], responseParams), t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpsSameSite'], responseParams), t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/header-refresh.optional.sub.html b/tests/wpt/tests/fetch/metadata/generated/header-refresh.optional.sub.html index 4674ada9c6d..873013e821c 100644 --- a/tests/wpt/tests/fetch/metadata/generated/header-refresh.optional.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/header-refresh.optional.sub.html @@ -180,6 +180,42 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpOrigin'], responseParams), t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpSameSite'], responseParams), t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL(key, ['httpCrossSite'], responseParams), t + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/script-module-import-dynamic.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/script-module-import-dynamic.https.sub.html index 72d60fc30cb..94ef41b9228 100644 --- a/tests/wpt/tests/fetch/metadata/generated/script-module-import-dynamic.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/script-module-import-dynamic.https.sub.html @@ -250,5 +250,31 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpsCrossSite'], { mime: 'application/javascript' } + ); + + return import(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpsSameSite'], { mime: 'application/javascript' } + ); + + return import(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/script-module-import-dynamic.sub.html b/tests/wpt/tests/fetch/metadata/generated/script-module-import-dynamic.sub.html index 088720c23e0..16aefa11176 100644 --- a/tests/wpt/tests/fetch/metadata/generated/script-module-import-dynamic.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/script-module-import-dynamic.sub.html @@ -170,6 +170,45 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpOrigin'], { mime: 'application/javascript' } + ); + + return import(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpSameSite'], { mime: 'application/javascript' } + ); + + return import(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpCrossSite'], { mime: 'application/javascript' } + ); + + return import(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + promise_test(() => { const key = '{{uuid()}}'; const url = makeRequestURL( diff --git a/tests/wpt/tests/fetch/metadata/generated/script-module-import-static.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/script-module-import-static.https.sub.html index cea3464f807..62968f318f5 100644 --- a/tests/wpt/tests/fetch/metadata/generated/script-module-import-static.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/script-module-import-static.https.sub.html @@ -284,5 +284,33 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL( + key, ['httpsCrossSite'], { mime: 'application/javascript' } + ) + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL( + key, ['httpsSameSite'], { mime: 'application/javascript' } + ) + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/script-module-import-static.sub.html b/tests/wpt/tests/fetch/metadata/generated/script-module-import-static.sub.html index 0f94f71cf6f..c4da1576606 100644 --- a/tests/wpt/tests/fetch/metadata/generated/script-module-import-static.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/script-module-import-static.sub.html @@ -199,6 +199,48 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL( + key, ['httpOrigin'], { mime: 'application/javascript' } + ) + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL( + key, ['httpSameSite'], { mime: 'application/javascript' } + ) + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + promise_test(() => { + const key = '{{uuid()}}'; + + return induceRequest( + makeRequestURL( + key, ['httpCrossSite'], { mime: 'application/javascript' } + ) + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + promise_test(() => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/svg-image.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/svg-image.https.sub.html index b059eb31456..9dd0da15f9d 100644 --- a/tests/wpt/tests/fetch/metadata/generated/svg-image.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/svg-image.https.sub.html @@ -362,6 +362,35 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpsCrossSite'], params), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpsSameSite'], params), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site no attributes'); diff --git a/tests/wpt/tests/fetch/metadata/generated/svg-image.sub.html b/tests/wpt/tests/fetch/metadata/generated/svg-image.sub.html index a28bbb12eb7..56427bedaa6 100644 --- a/tests/wpt/tests/fetch/metadata/generated/svg-image.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/svg-image.sub.html @@ -217,6 +217,48 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination no attributes'); + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpOrigin'], params), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpSameSite'], params), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination no attributes'); + + promise_test((t) => { + const key = '{{uuid()}}'; + + return induceRequest( + t, + makeRequestURL(key, ['httpCrossSite'], params), + {} + ) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination no attributes'); + promise_test((t) => { const key = '{{uuid()}}'; diff --git a/tests/wpt/tests/fetch/metadata/generated/window-history.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/window-history.https.sub.html index c2b3079a6d3..64e282e7789 100644 --- a/tests/wpt/tests/fetch/metadata/generated/window-history.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/window-history.https.sub.html @@ -232,6 +232,50 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - history.forward'); + + promise_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); + + return induceBackRequest(url, t, () => retrieve(key)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site - history.back'); + + promise_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); + + return induceForwardRequest(url, t, () => retrieve(key)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site - history.forward'); + + promise_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite'], responseParams); + + return induceBackRequest(url, t, () => retrieve(key)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site - history.back'); + + promise_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite'], responseParams); + + return induceForwardRequest(url, t, () => retrieve(key)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site - history.forward'); diff --git a/tests/wpt/tests/fetch/metadata/generated/window-history.sub.html b/tests/wpt/tests/fetch/metadata/generated/window-history.sub.html index 333d90c2860..83670496477 100644 --- a/tests/wpt/tests/fetch/metadata/generated/window-history.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/window-history.sub.html @@ -355,6 +355,72 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination - history.forward'); + + promise_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin'], responseParams); + + return induceBackRequest(url, t, () => retrieve(key)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination - history.back'); + + promise_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin'], responseParams); + + return induceForwardRequest(url, t, () => retrieve(key)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination - history.forward'); + + promise_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite'], responseParams); + + return induceBackRequest(url, t, () => retrieve(key)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination - history.back'); + + promise_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite'], responseParams); + + return induceForwardRequest(url, t, () => retrieve(key)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination - history.forward'); + + promise_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite'], responseParams); + + return induceBackRequest(url, t, () => retrieve(key)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination - history.back'); + + promise_test((t) => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite'], responseParams); + + return induceForwardRequest(url, t, () => retrieve(key)) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination - history.forward'); diff --git a/tests/wpt/tests/fetch/metadata/generated/window-location.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/window-location.https.sub.html index 4a0d2fdc068..387039bcf25 100644 --- a/tests/wpt/tests/fetch/metadata/generated/window-location.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/window-location.https.sub.html @@ -1179,6 +1179,118 @@ Sources: assert_array_equals(headers['sec-fetch-user'], ['?1']); }); }, 'sec-fetch-user - location.replace with user activation'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); + + const navigate = (win, path) => { + win.location = path; + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site - location'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); + + const navigate = (win, path) => { + win.location.href = path; + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site - location.href'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); + + const navigate = (win, path) => { + win.location.assign(path); + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site - location.assign'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsCrossSite'], responseParams); + + const navigate = (win, path) => { + win.location.replace(path); + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Cross-site - location.replace'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite'], responseParams); + + const navigate = (win, path) => { + win.location = path; + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site - location'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite'], responseParams); + + const navigate = (win, path) => { + win.location.href = path; + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site - location.href'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite'], responseParams); + + const navigate = (win, path) => { + win.location.assign(path); + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site - location.assign'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpsSameSite'], responseParams); + + const navigate = (win, path) => { + win.location.replace(path); + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site - location.replace'); diff --git a/tests/wpt/tests/fetch/metadata/generated/window-location.sub.html b/tests/wpt/tests/fetch/metadata/generated/window-location.sub.html index bb3e6805cb0..e307b909dce 100644 --- a/tests/wpt/tests/fetch/metadata/generated/window-location.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/window-location.sub.html @@ -714,6 +714,174 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination - location.replace'); + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin'], responseParams); + + const navigate = (win, path) => { + win.location = path; + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination - location'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin'], responseParams); + + const navigate = (win, path) => { + win.location.href = path; + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination - location.href'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin'], responseParams); + + const navigate = (win, path) => { + win.location.assign(path); + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination - location.assign'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpOrigin'], responseParams); + + const navigate = (win, path) => { + win.location.replace(path); + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination - location.replace'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite'], responseParams); + + const navigate = (win, path) => { + win.location = path; + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination - location'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite'], responseParams); + + const navigate = (win, path) => { + win.location.href = path; + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination - location.href'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite'], responseParams); + + const navigate = (win, path) => { + win.location.assign(path); + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination - location.assign'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpSameSite'], responseParams); + + const navigate = (win, path) => { + win.location.replace(path); + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination - location.replace'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite'], responseParams); + + const navigate = (win, path) => { + win.location = path; + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination - location'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite'], responseParams); + + const navigate = (win, path) => { + win.location.href = path; + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination - location.href'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite'], responseParams); + + const navigate = (win, path) => { + win.location.assign(path); + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination - location.assign'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL(key, ['httpCrossSite'], responseParams); + + const navigate = (win, path) => { + win.location.replace(path); + }; + return induceRequest(url, navigate, false) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination - location.replace'); + promise_test(() => { const key = '{{uuid()}}'; const url = makeRequestURL(key, ['httpsOrigin', 'httpOrigin'], responseParams); diff --git a/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-constructor.sub.html b/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-constructor.sub.html index 65b1837c636..e05e12df395 100644 --- a/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-constructor.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-constructor.sub.html @@ -80,5 +80,20 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user - Not sent to non-trustworthy same-origin destination, no options'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, + ['httpOrigin'], + { mime: 'application/javascript', body: 'postMessage("")' } + ); + + return induceRequest(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination, no options'); diff --git a/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-importscripts.https.sub.html b/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-importscripts.https.sub.html index 0cd9f35d582..5b48e59e716 100644 --- a/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-importscripts.https.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-importscripts.https.sub.html @@ -264,5 +264,32 @@ Sources: assert_not_own_property(headers, 'sec-fetch-user'); }); }, 'sec-fetch-user'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpsCrossSite'], { mime: 'application/javascript' } + ); + + return induceRequest(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_own_property(headers, 'sec-fetch-storage-access'); + assert_array_equals(headers['sec-fetch-storage-access'], ['none']); + }); + }, 'sec-fetch-storage-access - Cross-site'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpsSameSite'], { mime: 'application/javascript' } + ); + + return induceRequest(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Same site'); diff --git a/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-importscripts.sub.html b/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-importscripts.sub.html index 0555bbaf432..ad4792b8a60 100644 --- a/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-importscripts.sub.html +++ b/tests/wpt/tests/fetch/metadata/generated/worker-dedicated-importscripts.sub.html @@ -184,6 +184,45 @@ Sources: }); }, 'sec-fetch-user - Not sent to non-trustworthy cross-site destination'); + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpOrigin'], { mime: 'application/javascript' } + ); + + return induceRequest(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpSameSite'], { mime: 'application/javascript' } + ); + + return induceRequest(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy same-site destination'); + + promise_test(() => { + const key = '{{uuid()}}'; + const url = makeRequestURL( + key, ['httpCrossSite'], { mime: 'application/javascript' } + ); + + return induceRequest(url) + .then(() => retrieve(key)) + .then((headers) => { + assert_not_own_property(headers, 'sec-fetch-storage-access'); + }); + }, 'sec-fetch-storage-access - Not sent to non-trustworthy cross-site destination'); + promise_test(() => { const key = '{{uuid()}}'; const url = makeRequestURL( diff --git a/tests/wpt/tests/fetch/metadata/tools/fetch-metadata.conf.yml b/tests/wpt/tests/fetch/metadata/tools/fetch-metadata.conf.yml index b96bd2fd7b4..bc764aed02d 100644 --- a/tests/wpt/tests/fetch/metadata/tools/fetch-metadata.conf.yml +++ b/tests/wpt/tests/fetch/metadata/tools/fetch-metadata.conf.yml @@ -42,6 +42,15 @@ cases: - headerName: sec-fetch-user origins: [httpCrossSite] description: Not sent to non-trustworthy cross-site destination + - headerName: sec-fetch-storage-access + origins: [httpOrigin] + description: Not sent to non-trustworthy same-origin destination + - headerName: sec-fetch-storage-access + origins: [httpSameSite] + description: Not sent to non-trustworthy same-site destination + - headerName: sec-fetch-storage-access + origins: [httpCrossSite] + description: Not sent to non-trustworthy cross-site destination template_axes: # The `AudioWorklet` interface is only available in secure contexts # https://webaudio.github.io/web-audio-api/#AudioWorklet @@ -109,6 +118,9 @@ cases: - headerName: sec-fetch-user origins: [httpOrigin] description: Not sent to non-trustworthy same-origin destination + - headerName: sec-fetch-storage-access + origins: [httpOrigin] + description: Not sent to non-trustworthy same-origin destination template_axes: # All the templates in this block are unused with the exception of # `worker-dedicated-constructor` @@ -848,3 +860,72 @@ cases: expected: NULL worker-dedicated-importscripts.sub.html: - expected: NULL + # Sec-Fetch-Storage-Access + - all_subtests: + headerName: sec-fetch-storage-access + filename_flags: [https] + common_axis: + - description: Cross-site + origins: [httpsCrossSite] + expected: none + - description: Same site + origins: [httpsSameSite] + expected: NULL + template_axes: + # Service Workers' redirect mode is "error" + serviceworker.https.sub.html: [{}] + # Interstitial locations in an HTTP redirect chain are not added to the + # session history, so these requests cannot be initiated using the + # History API. + css-images.sub.html: + - filename_flags: [tentative] + element-audio.sub.html: [{}] + element-embed.sub.html: [{}] + element-frame.sub.html: [{}] + element-iframe.sub.html: [{}] + element-img.sub.html: + - sourceAttr: src + - sourceAttr: srcset + element-img-environment-change.sub.html: [{}] + element-input-image.sub.html: [{}] + element-link-icon.sub.html: [{}] + element-link-prefetch.optional.sub.html: [{}] + element-picture.sub.html: [{}] + element-script.sub.html: [{}] + element-video.sub.html: [{}] + element-video-poster.sub.html: [{}] + fetch.sub.html: [{ init: { mode: no-cors , credentials: include } }] + fetch-via-serviceworker.https.sub.html: [{ init: { mode: no-cors , credentials: include } }] + header-link.sub.html: + - rel: icon + - rel: stylesheet + svg-image.sub.html: [{}] + worker-dedicated-constructor.sub.html: [] + worker-dedicated-importscripts.sub.html: [{}] + # The following are cases where the Sec-Fetch-Storage-Access header should + # not be attached at all. + - all_subtests: + headerName: sec-fetch-storage-access + filename_flags: [https] + common_axis: + - description: Cross-site + origins: [httpsCrossSite] + expected: NULL + - description: Same site + origins: [httpsSameSite] + expected: NULL + template_axes: + audioworklet.https.sub.html: [{}] + css-font-face.sub.html: + - filename_flags: [tentative] + element-meta-refresh.optional.sub.html: [{}] + element-a.sub.html: [{}] + element-area.sub.html: [{}] + form-submission.sub.html: + - method: GET + - method: POST + header-refresh.optional.sub.html: [{}] + script-module-import-dynamic.sub.html: [{}] + script-module-import-static.sub.html: [{}] + window-history.sub.html: [{}] + window-location.sub.html: [{}] diff --git a/tests/wpt/tests/fledge/tentative/resources/ba-fledge-util.sub.js b/tests/wpt/tests/fledge/tentative/resources/ba-fledge-util.sub.js index d981e6a056e..3aef43d70d6 100644 --- a/tests/wpt/tests/fledge/tentative/resources/ba-fledge-util.sub.js +++ b/tests/wpt/tests/fledge/tentative/resources/ba-fledge-util.sub.js @@ -256,11 +256,11 @@ BA.decodeInterestGroupData = async function(igData) { // Only version 0 in use now. assert_equals(header.version, 0); - // Test config uses keyId = 0x12 only + // Test config uses keyId = 0x14 only // If the feature is not set up properly we may get a different, non-test key. // We can't use assert_equals because it includes the (random) non-test key // in the error message if testing support for this feature is not present. - assert_true(header.keyId === 0x12, "valid key Id"); + assert_true(header.keyId === 0x14, "valid key Id"); // Current cipher config. assert_equals(header.kemId, hpke.KemId.DhkemX25519HkdfSha256); diff --git a/tests/wpt/tests/fledge/tentative/resources/ba-public-keys b/tests/wpt/tests/fledge/tentative/resources/ba-public-keys index 60580a74d06..32b1c1babe5 100644 --- a/tests/wpt/tests/fledge/tentative/resources/ba-public-keys +++ b/tests/wpt/tests/fledge/tentative/resources/ba-public-keys @@ -1 +1 @@ -{"keys":[{"id":"12345678-9abc-def0-1234-56789abcdef0","key":"oV9AZYb6xHuZWXDxhdnYkcdNzx65Gn1QpYsBaD5gBS0="}]} +{"keys":[{"id":"14345678-9abc-def0-1234-56789abcdef0","key":"oV9AZYb6xHuZWXDxhdnYkcdNzx65Gn1QpYsBaD5gBS0="}]} diff --git a/tests/wpt/tests/fullscreen/crashtests/chrome-1312699.html b/tests/wpt/tests/fullscreen/crashtests/chrome-1312699.html new file mode 100644 index 00000000000..c783b0d9cc9 --- /dev/null +++ b/tests/wpt/tests/fullscreen/crashtests/chrome-1312699.html @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/tests/wpt/tests/fullscreen/crashtests/content-visibility-crash.html b/tests/wpt/tests/fullscreen/crashtests/content-visibility-crash.html new file mode 100644 index 00000000000..63111d03e3f --- /dev/null +++ b/tests/wpt/tests/fullscreen/crashtests/content-visibility-crash.html @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/tests/wpt/tests/fullscreen/rendering/backdrop-green-ref.html b/tests/wpt/tests/fullscreen/rendering/backdrop-green-ref.html new file mode 100644 index 00000000000..3126fe19426 --- /dev/null +++ b/tests/wpt/tests/fullscreen/rendering/backdrop-green-ref.html @@ -0,0 +1,2 @@ + + diff --git a/tests/wpt/tests/fullscreen/rendering/backdrop-iframe.html b/tests/wpt/tests/fullscreen/rendering/backdrop-iframe.html new file mode 100644 index 00000000000..dbdf9c841a4 --- /dev/null +++ b/tests/wpt/tests/fullscreen/rendering/backdrop-iframe.html @@ -0,0 +1,22 @@ + + +::backdrop for a fullscreen iframe element + + + + + + + + diff --git a/tests/wpt/tests/fullscreen/rendering/backdrop-inherit.html b/tests/wpt/tests/fullscreen/rendering/backdrop-inherit.html new file mode 100644 index 00000000000..3a38dc4c815 --- /dev/null +++ b/tests/wpt/tests/fullscreen/rendering/backdrop-inherit.html @@ -0,0 +1,27 @@ + + +::backdrop inherits style from the fullscreen element + + + + + +
+ diff --git a/tests/wpt/tests/fullscreen/rendering/backdrop-object-ref.html b/tests/wpt/tests/fullscreen/rendering/backdrop-object-ref.html new file mode 100644 index 00000000000..6c7071a727d --- /dev/null +++ b/tests/wpt/tests/fullscreen/rendering/backdrop-object-ref.html @@ -0,0 +1,14 @@ + + +
diff --git a/tests/wpt/tests/fullscreen/rendering/backdrop-object.html b/tests/wpt/tests/fullscreen/rendering/backdrop-object.html new file mode 100644 index 00000000000..01dc913a50d --- /dev/null +++ b/tests/wpt/tests/fullscreen/rendering/backdrop-object.html @@ -0,0 +1,23 @@ + + +::backdrop for a fullscreen object element + + + + + + + + diff --git a/tests/wpt/tests/fullscreen/rendering/fullscreen-root-fills-page-ref.html b/tests/wpt/tests/fullscreen/rendering/fullscreen-root-fills-page-ref.html new file mode 100644 index 00000000000..b2bf13557a2 --- /dev/null +++ b/tests/wpt/tests/fullscreen/rendering/fullscreen-root-fills-page-ref.html @@ -0,0 +1,18 @@ + + + + + + + diff --git a/tests/wpt/tests/fullscreen/rendering/fullscreen-root-fills-page.html b/tests/wpt/tests/fullscreen/rendering/fullscreen-root-fills-page.html new file mode 100644 index 00000000000..e2a6217346d --- /dev/null +++ b/tests/wpt/tests/fullscreen/rendering/fullscreen-root-fills-page.html @@ -0,0 +1,47 @@ + + + + + + + + + +
+ + + + + diff --git a/tests/wpt/tests/html/browsers/windows/auxiliary-browsing-contexts/named-lookup-scoped-to-browsing-context-group.html b/tests/wpt/tests/html/browsers/windows/auxiliary-browsing-contexts/named-lookup-scoped-to-browsing-context-group.html new file mode 100644 index 00000000000..0450d479196 --- /dev/null +++ b/tests/wpt/tests/html/browsers/windows/auxiliary-browsing-contexts/named-lookup-scoped-to-browsing-context-group.html @@ -0,0 +1,27 @@ + +Named lookup scoped to browsing context group + + + + + + + + + diff --git a/tests/wpt/tests/html/browsers/windows/auxiliary-browsing-contexts/no-proactive-swap-when-other-contexts-in-group.html b/tests/wpt/tests/html/browsers/windows/auxiliary-browsing-contexts/no-proactive-swap-when-other-contexts-in-group.html new file mode 100644 index 00000000000..5f4e0da690b --- /dev/null +++ b/tests/wpt/tests/html/browsers/windows/auxiliary-browsing-contexts/no-proactive-swap-when-other-contexts-in-group.html @@ -0,0 +1,38 @@ + +No proactive browsing context group changes when other contexts in group + + + + + + + + + diff --git a/tests/wpt/tests/html/browsers/windows/browsing-context-names/duplicate-name-order.html b/tests/wpt/tests/html/browsers/windows/browsing-context-names/duplicate-name-order.html new file mode 100644 index 00000000000..95b461d4edd --- /dev/null +++ b/tests/wpt/tests/html/browsers/windows/browsing-context-names/duplicate-name-order.html @@ -0,0 +1,55 @@ + +Duplicate name lookup order + + + + + + + + + diff --git a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html deleted file mode 100644 index 6628c939468..00000000000 --- a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -Canvas test: 2d.text.measure.caret-position-edge-cases.tentative - - - - - - - -

2d.text.measure.caret-position-edge-cases.tentative

-

Test the edge cases for caretPositionFromPoint, where the point is at the edge of glyph and at the midpoint.

- - -A -

Actual output:

-

FAIL (fallback content)

- -
    - - diff --git a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.index-from-offset-edge-cases.tentative.html b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.index-from-offset-edge-cases.tentative.html new file mode 100644 index 00000000000..b7a327aeaae --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.index-from-offset-edge-cases.tentative.html @@ -0,0 +1,59 @@ + + + +Canvas test: 2d.text.measure.index-from-offset-edge-cases.tentative + + + + + + + +

    2d.text.measure.index-from-offset-edge-cases.tentative

    +

    Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint.

    + + +A +

    Actual output:

    +

    FAIL (fallback content)

    + +
      + + diff --git a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.index-from-offset-edges.tentative.html similarity index 88% rename from tests/wpt/tests/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html rename to tests/wpt/tests/html/canvas/element/text/2d.text.measure.index-from-offset-edges.tentative.html index cd56e20bb98..842f50857cc 100644 --- a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html +++ b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.index-from-offset-edges.tentative.html @@ -1,13 +1,13 @@ -Canvas test: 2d.text.measure.caret-position-edges.tentative +Canvas test: 2d.text.measure.index-from-offset-edges.tentative -

      2d.text.measure.caret-position-edges.tentative

      +

      2d.text.measure.index-from-offset-edges.tentative

      diff --git a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.caret-position.tentative.html b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.index-from-offset.tentative.html similarity index 88% rename from tests/wpt/tests/html/canvas/element/text/2d.text.measure.caret-position.tentative.html rename to tests/wpt/tests/html/canvas/element/text/2d.text.measure.index-from-offset.tentative.html index 4b223c8a0a3..9893fcdc4c2 100644 --- a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.caret-position.tentative.html +++ b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.index-from-offset.tentative.html @@ -1,13 +1,13 @@ -Canvas test: 2d.text.measure.caret-position.tentative +Canvas test: 2d.text.measure.index-from-offset.tentative -

      2d.text.measure.caret-position.tentative

      +

      2d.text.measure.index-from-offset.tentative

      diff --git a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.text-clusters-rendering-options.tentative.html b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.text-clusters-rendering-options.tentative.html new file mode 100644 index 00000000000..10a433cc61b --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.text-clusters-rendering-options.tentative.html @@ -0,0 +1,81 @@ + + + +Canvas test: 2d.text.measure.text-clusters-rendering-options.tentative + + + + + + + +

      2d.text.measure.text-clusters-rendering-options.tentative

      +

      Test that fillTextCluster() correctly applies the options passed as a dictionary.

      + + +A +

      Actual output:

      +

      FAIL (fallback content)

      + +
        + + diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html deleted file mode 100644 index a9bf8b4de59..00000000000 --- a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -OffscreenCanvas test: 2d.text.measure.caret-position-edge-cases.tentative - - - - -

        2d.text.measure.caret-position-edge-cases.tentative

        -

        Test the edge cases for caretPositionFromPoint, where the point is at the edge of glyph and at the midpoint.

        - - - diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js deleted file mode 100644 index 83539222836..00000000000 --- a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js +++ /dev/null @@ -1,41 +0,0 @@ -// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -// OffscreenCanvas test in a worker:2d.text.measure.caret-position-edge-cases.tentative -// Description:Test the edge cases for caretPositionFromPoint, where the point is at the edge of glyph and at the midpoint. -// Note: - -importScripts("/resources/testharness.js"); -importScripts("/html/canvas/resources/canvas-tests.js"); - -promise_test(async t => { - var canvas = new OffscreenCanvas(100, 50); - var ctx = canvas.getContext('2d'); - - var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); - f.load(); - self.fonts.add(f); - await self.fonts.ready; - ctx.font = '50px CanvasTest'; - ctx.direction = 'ltr'; - ctx.align = 'left' - ctx.baseline = 'alphabetic' - tm = ctx.measureText('A'); - const a_width = tm.width; - tm = ctx.measureText('B'); - const b_width = tm.width; - tm = ctx.measureText('C'); - const c_width = tm.width; - const epsilon = 1.0e-4; - - tm = ctx.measureText('ABC'); - _assert(tm.caretPositionFromPoint(0) == 0, "tm.caretPositionFromPoint(0) == 0"); - _assert(tm.caretPositionFromPoint(a_width / 2) == 0, "tm.caretPositionFromPoint(a_width / 2) == 0"); - _assert(tm.caretPositionFromPoint(a_width / 2 + 1) == 1, "tm.caretPositionFromPoint(a_width / 2 + 1) == 1"); - _assert(tm.caretPositionFromPoint(a_width) == 1, "tm.caretPositionFromPoint(a_width) == 1"); - _assert(tm.caretPositionFromPoint(a_width + b_width / 2) == 1, "tm.caretPositionFromPoint(a_width + b_width / 2) == 1"); - _assert(tm.caretPositionFromPoint(a_width + b_width / 2 + 1) == 2, "tm.caretPositionFromPoint(a_width + b_width / 2 + 1) == 2"); - _assert(tm.caretPositionFromPoint(a_width + b_width) == 2, "tm.caretPositionFromPoint(a_width + b_width) == 2"); - _assert(tm.caretPositionFromPoint(a_width + b_width + c_width / 2) == 2, "tm.caretPositionFromPoint(a_width + b_width + c_width / 2) == 2"); - _assert(tm.caretPositionFromPoint(a_width + b_width + c_width / 2 + 1) == 3, "tm.caretPositionFromPoint(a_width + b_width + c_width / 2 + 1) == 3"); - _assert(tm.caretPositionFromPoint(a_width + b_width + c_width) == 3, "tm.caretPositionFromPoint(a_width + b_width + c_width) == 3"); -}, "Test the edge cases for caretPositionFromPoint, where the point is at the edge of glyph and at the midpoint."); -done(); diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.html b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.html new file mode 100644 index 00000000000..5f0236bfa87 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.html @@ -0,0 +1,48 @@ + + + +OffscreenCanvas test: 2d.text.measure.index-from-offset-edge-cases.tentative + + + + +

        2d.text.measure.index-from-offset-edge-cases.tentative

        +

        Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint.

        + + + diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.worker.js b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.worker.js new file mode 100644 index 00000000000..ae08c78d07a --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edge-cases.tentative.worker.js @@ -0,0 +1,41 @@ +// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. +// OffscreenCanvas test in a worker:2d.text.measure.index-from-offset-edge-cases.tentative +// Description:Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint. +// Note: + +importScripts("/resources/testharness.js"); +importScripts("/html/canvas/resources/canvas-tests.js"); + +promise_test(async t => { + var canvas = new OffscreenCanvas(100, 50); + var ctx = canvas.getContext('2d'); + + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + f.load(); + self.fonts.add(f); + await self.fonts.ready; + ctx.font = '50px CanvasTest'; + ctx.direction = 'ltr'; + ctx.align = 'left' + ctx.baseline = 'alphabetic' + tm = ctx.measureText('A'); + const a_width = tm.width; + tm = ctx.measureText('B'); + const b_width = tm.width; + tm = ctx.measureText('C'); + const c_width = tm.width; + const epsilon = 1.0e-4; + + tm = ctx.measureText('ABC'); + _assert(tm.getIndexFromOffset(0) == 0, "tm.getIndexFromOffset(0) == 0"); + _assert(tm.getIndexFromOffset(a_width / 2) == 0, "tm.getIndexFromOffset(a_width / 2) == 0"); + _assert(tm.getIndexFromOffset(a_width / 2 + 1) == 1, "tm.getIndexFromOffset(a_width / 2 + 1) == 1"); + _assert(tm.getIndexFromOffset(a_width) == 1, "tm.getIndexFromOffset(a_width) == 1"); + _assert(tm.getIndexFromOffset(a_width + b_width / 2) == 1, "tm.getIndexFromOffset(a_width + b_width / 2) == 1"); + _assert(tm.getIndexFromOffset(a_width + b_width / 2 + 1) == 2, "tm.getIndexFromOffset(a_width + b_width / 2 + 1) == 2"); + _assert(tm.getIndexFromOffset(a_width + b_width) == 2, "tm.getIndexFromOffset(a_width + b_width) == 2"); + _assert(tm.getIndexFromOffset(a_width + b_width + c_width / 2) == 2, "tm.getIndexFromOffset(a_width + b_width + c_width / 2) == 2"); + _assert(tm.getIndexFromOffset(a_width + b_width + c_width / 2 + 1) == 3, "tm.getIndexFromOffset(a_width + b_width + c_width / 2 + 1) == 3"); + _assert(tm.getIndexFromOffset(a_width + b_width + c_width) == 3, "tm.getIndexFromOffset(a_width + b_width + c_width) == 3"); +}, "Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint."); +done(); diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.html similarity index 88% rename from tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html rename to tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.html index a6e45274c73..fbefdd5804c 100644 --- a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.html @@ -1,12 +1,12 @@ -OffscreenCanvas test: 2d.text.measure.caret-position-edges.tentative +OffscreenCanvas test: 2d.text.measure.index-from-offset-edges.tentative -

        2d.text.measure.caret-position-edges.tentative

        +

        2d.text.measure.index-from-offset-edges.tentative

        diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.worker.js similarity index 88% rename from tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js rename to tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.worker.js index 2cef8432d2a..2ec89e84b51 100644 --- a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset-edges.tentative.worker.js @@ -1,5 +1,5 @@ // DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -// OffscreenCanvas test in a worker:2d.text.measure.caret-position-edges.tentative +// OffscreenCanvas test in a worker:2d.text.measure.index-from-offset-edges.tentative // Description: // Note: @@ -68,13 +68,13 @@ test(t => { text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, "for " + text + " multiple " + multiple); } -}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align left."); +}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align left."); test(t => { const canvas = new OffscreenCanvas(100, 50); @@ -138,13 +138,13 @@ test(t => { text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, "for " + text + " multiple " + multiple); } -}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align left."); +}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align left."); test(t => { const canvas = new OffscreenCanvas(100, 50); @@ -208,13 +208,13 @@ test(t => { text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, "for " + text + " multiple " + multiple); } -}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align center."); +}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align center."); test(t => { const canvas = new OffscreenCanvas(100, 50); @@ -278,13 +278,13 @@ test(t => { text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, "for " + text + " multiple " + multiple); } -}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align center."); +}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align center."); test(t => { const canvas = new OffscreenCanvas(100, 50); @@ -348,13 +348,13 @@ test(t => { text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, "for " + text + " multiple " + multiple); } -}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align right."); +}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align right."); test(t => { const canvas = new OffscreenCanvas(100, 50); @@ -418,13 +418,13 @@ test(t => { text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, "for " + text + " multiple " + multiple); } -}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align right."); +}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align right."); test(t => { const canvas = new OffscreenCanvas(100, 50); @@ -488,13 +488,13 @@ test(t => { text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, "for " + text + " multiple " + multiple); } -}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align start."); +}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align start."); test(t => { const canvas = new OffscreenCanvas(100, 50); @@ -558,13 +558,13 @@ test(t => { text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, "for " + text + " multiple " + multiple); } -}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align start."); +}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align start."); test(t => { const canvas = new OffscreenCanvas(100, 50); @@ -628,13 +628,13 @@ test(t => { text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, "for " + text + " multiple " + multiple); } -}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction ltr and text align end."); +}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction ltr and text align end."); test(t => { const canvas = new OffscreenCanvas(100, 50); @@ -698,12 +698,12 @@ test(t => { text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, "for " + text + " multiple " + multiple); } -}, "Check that TextMetrics::caretPositionFromPoint() gives correct edges when the requested point is outside the range, with direction rtl and text align end."); +}, "Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction rtl and text align end."); done(); diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset.tentative.html similarity index 88% rename from tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html rename to tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset.tentative.html index 3c1873aaf1f..18e42aff3c3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.index-from-offset.tentative.html @@ -1,12 +1,12 @@ -OffscreenCanvas test: 2d.text.measure.caret-position.tentative +OffscreenCanvas test: 2d.text.measure.index-from-offset.tentative -

        2d.text.measure.caret-position.tentative

        +

        2d.text.measure.index-from-offset.tentative

        diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.html b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.html new file mode 100644 index 00000000000..645013528e8 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.html @@ -0,0 +1,70 @@ + + + +OffscreenCanvas test: 2d.text.measure.text-clusters-rendering-options.tentative + + + + +

        2d.text.measure.text-clusters-rendering-options.tentative

        +

        Test that fillTextCluster() correctly applies the options passed as a dictionary.

        + + + diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.worker.js b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.worker.js new file mode 100644 index 00000000000..f55d2c46556 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-rendering-options.tentative.worker.js @@ -0,0 +1,63 @@ +// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. +// OffscreenCanvas test in a worker:2d.text.measure.text-clusters-rendering-options.tentative +// Description:Test that fillTextCluster() correctly applies the options passed as a dictionary. +// Note: + +importScripts("/resources/testharness.js"); +importScripts("/html/canvas/resources/canvas-tests.js"); + +promise_test(async t => { + var canvas = new OffscreenCanvas(100, 300); + var ctx = canvas.getContext('2d'); + + var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); + f.load(); + self.fonts.add(f); + await self.fonts.ready; + + ctx.font = '50px CanvasTest'; + ctx.textAlign = 'left'; + ctx.textBaseline = 'top'; + const text = 'E'; + const tm = ctx.measureText(text); + const cluster = tm.getTextClusters()[0]; + + // Background color. + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + + ctx.fillStyle = '#0f0'; + + // Override the align and baseline of the cluster. + ctx.fillTextCluster(cluster, 50, 50, {align: 'right', baseline: 'bottom'}); + _assertPixelApprox(canvas, 5,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 45,5, 0,255,0,255, 2); + _assertPixelApprox(canvas, 5,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 45,45, 0,255,0,255, 2); + _assertPixelApprox(canvas, 55,5, 255,0,0,255, 2); + _assertPixelApprox(canvas, 5,55, 255,0,0,255, 2); + _assertPixelApprox(canvas, 5,55, 255,0,0,255, 2); + _assertPixelApprox(canvas, 55,55, 255,0,0,255, 2); + + // Override the x and y values of the cluster. + ctx.fillTextCluster(cluster, 0, 100, {x: 10, y: 10}); + _assertPixelApprox(canvas, 15,115, 0,255,0,255, 2); + _assertPixelApprox(canvas, 55,115, 0,255,0,255, 2); + _assertPixelApprox(canvas, 15,155, 0,255,0,255, 2); + _assertPixelApprox(canvas, 55,155, 0,255,0,255, 2); + _assertPixelApprox(canvas, 65,115, 255,0,0,255, 2); + _assertPixelApprox(canvas, 15,165, 255,0,0,255, 2); + _assertPixelApprox(canvas, 65,165, 255,0,0,255, 2); + + // Override the align, baseline, x, and y values of the cluster. + ctx.fillTextCluster(cluster, 50, 250, + {align: 'right', baseline: 'bottom', x: 10, y: 10}); + _assertPixelApprox(canvas, 15,215, 0,255,0,255, 2); + _assertPixelApprox(canvas, 55,215, 0,255,0,255, 2); + _assertPixelApprox(canvas, 15,255, 0,255,0,255, 2); + _assertPixelApprox(canvas, 55,255, 0,255,0,255, 2); + _assertPixelApprox(canvas, 65,215, 255,0,0,255, 2); + _assertPixelApprox(canvas, 15,265, 255,0,0,255, 2); + _assertPixelApprox(canvas, 65,265, 255,0,0,255, 2); +}, "Test that fillTextCluster() correctly applies the options passed as a dictionary."); +done(); diff --git a/tests/wpt/tests/html/canvas/tools/yaml-new/text.yaml b/tests/wpt/tests/html/canvas/tools/yaml-new/text.yaml index 38630509bf2..42bf9a3c939 100644 --- a/tests/wpt/tests/html/canvas/tools/yaml-new/text.yaml +++ b/tests/wpt/tests/html/canvas/tools/yaml-new/text.yaml @@ -1719,9 +1719,9 @@ () => tm.getActualBoundingBox(text.length, text.length + 1) ); } -- name: 2d.text.measure.caret-position.tentative +- name: 2d.text.measure.index-from-offset.tentative desc: >- - Check that TextMetrics::caretPositionFromPoint() matches its DOM equivalent, + Check that TextMetrics::getIndexFromOffset() matches its DOM equivalent, where possible, with direction {{ text_direction }}, text align {{ text_align }}, {{ letter_spacing }} letter spacing and {{ variant_names[3] }}. @@ -1812,7 +1812,7 @@ offset = step; adjusted_offset = alignOffset(offset, text_width); - tm_position = tm.caretPositionFromPoint(adjusted_offset); + tm_position = tm.getIndexFromOffset(adjusted_offset); doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset); assert_equals(tm_position, doc_position, @@ -1820,7 +1820,7 @@ offset = text_width / 2 - 10; adjusted_offset = alignOffset(offset, text_width); - tm_position = tm.caretPositionFromPoint(adjusted_offset); + tm_position = tm.getIndexFromOffset(adjusted_offset); doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset); assert_equals(tm_position, doc_position, @@ -1828,7 +1828,7 @@ offset = text_width / 2 + 10; adjusted_offset = alignOffset(offset, text_width); - tm_position = tm.caretPositionFromPoint(adjusted_offset); + tm_position = tm.getIndexFromOffset(adjusted_offset); doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset); assert_equals(tm_position, doc_position, @@ -1836,7 +1836,7 @@ offset = text_width - step; adjusted_offset = alignOffset(offset, text_width); - tm_position = tm.caretPositionFromPoint(adjusted_offset); + tm_position = tm.getIndexFromOffset(adjusted_offset); doc_position = placeAndMeasureTextInDOM(text, text_width, adjusted_offset); assert_equals(tm_position, doc_position, @@ -1867,9 +1867,9 @@ directional-override: use_directional_override: true -- name: 2d.text.measure.caret-position-edges.tentative +- name: 2d.text.measure.index-from-offset-edges.tentative desc: >- - Check that TextMetrics::caretPositionFromPoint() gives correct edges when + Check that TextMetrics::getIndexFromOffset() gives correct edges when the requested point is outside the range, with direction {{ text_direction }} and text align {{ text_align }}. code: | @@ -1931,7 +1931,7 @@ text_width = tm.width; for (const multiple of kPoints) { offset = multiple * text_width; - tm_position = tm.caretPositionFromPoint(offset); + tm_position = tm.getIndexFromOffset(offset); expected_position = computeExpected(text, text_width, offset); assert_equals(tm_position, expected_position, @@ -1954,9 +1954,9 @@ align-end: text_align: end -- name: 2d.text.measure.caret-position-edge-cases.tentative +- name: 2d.text.measure.index-from-offset-edge-cases.tentative desc: >- - Test the edge cases for caretPositionFromPoint, where the point is at the + Test the edge cases for getIndexFromOffset, where the point is at the edge of glyph and at the midpoint. test_type: promise fonts: @@ -1976,16 +1976,16 @@ const epsilon = 1.0e-4; tm = ctx.measureText('ABC'); - @assert tm.caretPositionFromPoint(0) == 0; - @assert tm.caretPositionFromPoint(a_width / 2) == 0; - @assert tm.caretPositionFromPoint(a_width / 2 + 1) == 1; - @assert tm.caretPositionFromPoint(a_width) == 1; - @assert tm.caretPositionFromPoint(a_width + b_width / 2) == 1; - @assert tm.caretPositionFromPoint(a_width + b_width / 2 + 1) == 2; - @assert tm.caretPositionFromPoint(a_width + b_width) == 2; - @assert tm.caretPositionFromPoint(a_width + b_width + c_width / 2) == 2; - @assert tm.caretPositionFromPoint(a_width + b_width + c_width / 2 + 1) == 3; - @assert tm.caretPositionFromPoint(a_width + b_width + c_width) == 3; + @assert tm.getIndexFromOffset(0) == 0; + @assert tm.getIndexFromOffset(a_width / 2) == 0; + @assert tm.getIndexFromOffset(a_width / 2 + 1) == 1; + @assert tm.getIndexFromOffset(a_width) == 1; + @assert tm.getIndexFromOffset(a_width + b_width / 2) == 1; + @assert tm.getIndexFromOffset(a_width + b_width / 2 + 1) == 2; + @assert tm.getIndexFromOffset(a_width + b_width) == 2; + @assert tm.getIndexFromOffset(a_width + b_width + c_width / 2) == 2; + @assert tm.getIndexFromOffset(a_width + b_width + c_width / 2 + 1) == 3; + @assert tm.getIndexFromOffset(a_width + b_width + c_width) == 3; variants: - *load-font-variant-definition @@ -2300,6 +2300,64 @@ variants: - *load-font-variant-definition +- name: 2d.text.measure.text-clusters-rendering-options.tentative + desc: >- + Test that fillTextCluster() correctly applies the options passed as a + dictionary. + test_type: promise + fonts: + - CanvasTest + size: [100, 300] + code: | + {{ load_font }} + + ctx.font = '50px CanvasTest'; + ctx.textAlign = 'left'; + ctx.textBaseline = 'top'; + const text = 'E'; + const tm = ctx.measureText(text); + const cluster = tm.getTextClusters()[0]; + + // Background color. + ctx.fillStyle = '#f00'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + + ctx.fillStyle = '#0f0'; + + // Override the align and baseline of the cluster. + ctx.fillTextCluster(cluster, 50, 50, {align: 'right', baseline: 'bottom'}); + @assert pixel 5,5 ==~ 0,255,0,255; + @assert pixel 45,5 ==~ 0,255,0,255; + @assert pixel 5,45 ==~ 0,255,0,255; + @assert pixel 45,45 ==~ 0,255,0,255; + @assert pixel 55,5 ==~ 255,0,0,255; + @assert pixel 5,55 ==~ 255,0,0,255; + @assert pixel 5,55 ==~ 255,0,0,255; + @assert pixel 55,55 ==~ 255,0,0,255; + + // Override the x and y values of the cluster. + ctx.fillTextCluster(cluster, 0, 100, {x: 10, y: 10}); + @assert pixel 15,115 ==~ 0,255,0,255; + @assert pixel 55,115 ==~ 0,255,0,255; + @assert pixel 15,155 ==~ 0,255,0,255; + @assert pixel 55,155 ==~ 0,255,0,255; + @assert pixel 65,115 ==~ 255,0,0,255; + @assert pixel 15,165 ==~ 255,0,0,255; + @assert pixel 65,165 ==~ 255,0,0,255; + + // Override the align, baseline, x, and y values of the cluster. + ctx.fillTextCluster(cluster, 50, 250, + {align: 'right', baseline: 'bottom', x: 10, y: 10}); + @assert pixel 15,215 ==~ 0,255,0,255; + @assert pixel 55,215 ==~ 0,255,0,255; + @assert pixel 15,255 ==~ 0,255,0,255; + @assert pixel 55,255 ==~ 0,255,0,255; + @assert pixel 65,215 ==~ 255,0,0,255; + @assert pixel 15,265 ==~ 255,0,0,255; + @assert pixel 65,265 ==~ 255,0,0,255; + variants: + - *load-font-variant-definition + - name: 2d.text.drawing.style.absolute.spacing desc: Testing letter spacing and word spacing with absolute length code: | diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-001.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-001.html index 36567f9d54a..b166cbd23c8 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-001.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-001.html @@ -16,13 +16,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-002.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-002.html index 3c907597f7a..bfb75a5afd2 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-002.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-002.html @@ -17,21 +17,46 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-003.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-003.html index 2858798a35f..12fbb56b8b5 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-003.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-003.html @@ -21,13 +21,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-004.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-004.html index f45f5587204..3c908bfa2f3 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-004.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-004.html @@ -18,13 +18,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-005.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-005.html index 098a3c57676..4fdfd8877db 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-005.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-005.html @@ -18,13 +18,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-006.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-006.html index 223e42109e5..925a013d90d 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-006.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-006.html @@ -18,13 +18,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-007.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-007.html index 9aa0aeea798..4762d1259a9 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-007.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-007.html @@ -16,13 +16,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-008.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-008.html index e671dda19c4..4756cd4844d 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-008.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-008.html @@ -18,13 +18,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-009.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-009.html index 8498816ea5c..d2a0470ee03 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-009.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-009.html @@ -18,13 +18,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-010.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-010.html index ef6f709012e..2eb60dbef81 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-010.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-010.html @@ -18,13 +18,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-011.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-011.html index dee82d8c595..2ea63657247 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-011.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-011.html @@ -18,13 +18,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-012.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-012.html index 4110e54c5f2..65209cb667c 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-012.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-012.html @@ -18,13 +18,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-013.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-013.html index ecd97be86a6..27d724dc614 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-013.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-013.html @@ -18,13 +18,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-014.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-014.html index ea8948de42d..735f9ad86c7 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-014.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-014.html @@ -24,13 +24,28 @@ link.blocking = "render"; document.head.appendChild(link); -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-015.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-015.html index a775ee41740..da6e7660897 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-015.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-015.html @@ -20,13 +20,28 @@ async_test((t) => { link.remove(); -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-016.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-016.html index 8968c5dacd3..9d836dfafdd 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-016.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-016.html @@ -20,13 +20,28 @@ async_test((t) => { link.blocking = ""; -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-017.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-017.html index 2d3b5747216..fff6c48b581 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-017.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-017.html @@ -19,13 +19,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-018.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-018.html index 76e6394b5b1..896e6efbbf6 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-018.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-018.html @@ -20,13 +20,28 @@ async_test((t) => { link.media = "(min-width: 10px)"; -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-019.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-019.html index 80a7019edc4..709f8d05b06 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-019.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-019.html @@ -20,13 +20,28 @@ async_test((t) => { link.media = "(max-width: 10px)"; -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-020.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-020.html index 10019c943f4..054430b960c 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-020.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-020.html @@ -19,13 +19,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-021.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-021.html index 1ca2114689a..11126b869ad 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-021.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-021.html @@ -19,17 +19,37 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-022.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-022.html index 5dfbcac30a4..cecf88505fd 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-022.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-022.html @@ -20,13 +20,28 @@ async_test((t) => { link.href = "#last"; -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-023.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-023.html index 8fe8b6a8c8e..3b52dce4703 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-023.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-023.html @@ -19,13 +19,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-024.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-024.html index 19e4020fb76..fae9e81a28d 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-024.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-024.html @@ -16,21 +16,46 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-025.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-025.html index 689ae69f452..aebe11d9496 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-025.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-025.html @@ -17,22 +17,47 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-026.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-026.html index 6abfc43b8b2..5755ef302d1 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-026.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-026.html @@ -17,22 +17,47 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-027.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-027.html index 56f88e0fc2b..f7b2d65e7ea 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-027.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-027.html @@ -18,21 +18,46 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-028.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-028.html index a64d542c4ac..9ec14bf9d9a 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-028.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-028.html @@ -28,21 +28,46 @@ two.remove(); three.remove(); four.remove(); -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-029.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-029.html index 44dff3cb842..5e6ee8c88c0 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-029.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-029.html @@ -17,13 +17,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        - + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. + -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-030.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-030.html index 307c2d303d0..95c3cd20677 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-030.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-030.html @@ -17,18 +17,37 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-031.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-031.html index 2098483a060..0c061ad17a5 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-031.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-031.html @@ -17,16 +17,31 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        - + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. + -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-032.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-032.html index 307c2d303d0..95c3cd20677 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-032.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-032.html @@ -17,18 +17,37 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-033.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-033.html index 59d41c08c0a..c189dfd2b90 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-033.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-033.html @@ -18,13 +18,28 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-034.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-034.html index a505de48756..0824550fd30 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-034.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-034.html @@ -17,14 +17,28 @@ async_test((t) => { -
        - -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas.
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        + +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-035.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-035.html index 050244c7a69..3d05f729d44 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-035.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-035.html @@ -18,14 +18,28 @@ async_test((t) => { -
        - -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas.
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        + +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-036.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-036.html index 83637b3a08b..c0a18b62dc6 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-036.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-036.html @@ -18,14 +18,28 @@ async_test((t) => { -
        - -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas.
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        + +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-037.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-037.html index 5fe469a2fdd..f72daac4731 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-037.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-037.html @@ -18,14 +18,28 @@ async_test((t) => { -
        - -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas.
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        + +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-038.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-038.html index c7fabe7f320..8dad0a414ff 100644 --- a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-038.html +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-038.html @@ -17,19 +17,34 @@ async_test((t) => { -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        -
        +
        + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum augue + nibh, venenatis a ligula in, tempus pharetra urna. Fusce semper, velit + tincidunt lobortis sollicitudin, sapien velit fermentum odio, ultricies + tempor mi est eget ipsum egestas. +
        diff --git a/tests/wpt/tests/html/semantics/forms/the-button-element/button-click-resets-with-commandfor.tentative.html b/tests/wpt/tests/html/semantics/forms/the-button-element/button-click-resets-with-commandfor.tentative.html new file mode 100644 index 00000000000..a1e3669717e --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-button-element/button-click-resets-with-commandfor.tentative.html @@ -0,0 +1,64 @@ + + +Clicking a button should submit the form + + + + + +
        + +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-button-element/button-click-submits-with-commandfor.tentative.html b/tests/wpt/tests/html/semantics/forms/the-button-element/button-click-submits-with-commandfor.tentative.html new file mode 100644 index 00000000000..ced0d9ef152 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-button-element/button-click-submits-with-commandfor.tentative.html @@ -0,0 +1,110 @@ + + +Clicking a button should submit the form + + + + + +
        + +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/border-rendering-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/border-rendering-ref.html new file mode 100644 index 00000000000..2ecb3a06bfe --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/border-rendering-ref.html @@ -0,0 +1,12 @@ + + + +
        + Option 1 +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/border-rendering.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/border-rendering.tentative.html new file mode 100644 index 00000000000..c4025a153a6 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/border-rendering.tentative.html @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/native-popup-with-wrapper-div-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/native-popup-with-wrapper-div-ref.html new file mode 100644 index 00000000000..6540e324b5d --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/native-popup-with-wrapper-div-ref.html @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/native-popup-with-wrapper-div.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/native-popup-with-wrapper-div.tentative.html new file mode 100644 index 00000000000..608fbb86546 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/native-popup-with-wrapper-div.tentative.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/picker-and-slotted-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/picker-and-slotted-ref.html new file mode 100644 index 00000000000..8ae5c7978dd --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/picker-and-slotted-ref.html @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/picker-and-slotted.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/picker-and-slotted.tentative.html new file mode 100644 index 00000000000..3e57757eb01 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/picker-and-slotted.tentative.html @@ -0,0 +1,41 @@ + + + + + + + + +
        + +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css new file mode 100644 index 00000000000..65b3c39019a --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css @@ -0,0 +1,82 @@ +/* These are UA styles for select and customizable select. */ +/* TODO(crbug.com/41483940): These rules will probably change here: + * https://github.com/w3c/csswg-drafts/issues/10857 */ + +.customizable-select-button, .customizable-select-popover { + box-sizing: border-box; +} + +.customizable-select-popover { + box-sizing: border-box; + border: 1px solid; + padding: 0; + color: CanvasText; + background-color: Canvas; + margin: 0; + inset: auto; + min-inline-size: anchor-size(self-inline); + min-block-size: 1lh; + max-block-size: -webkit-fill-available; /* Can be removed when stretch ships */ + max-block-size: stretch; + overflow: auto; + position-area: block-end span-inline-end; + position-try-order: most-block-size; + position-try-fallbacks: + block-start span-inline-end, + block-end span-inline-start, + block-start span-inline-start; +} + +.customizable-select-option { + min-inline-size: 24px; + min-block-size: max(24px, 1lh); + padding-inline: 0.5em; + padding-block-end: 0; + display: flex; + place-items: center; + gap: 0.5em; + white-space: nowrap; +} + +.customizable-select-option.disabled { + color: color-mix(in lab, currentColor 50%, transparent); +} + +.customizable-select-option::before { + content: '\2713' / ''; +} +.customizable-select-option:not(.selected)::before { + visibility: hidden; +} + +.customizable-select-button { + color: inherit; + background-color: color-mix(in lab, currentColor 10%, transparent); + appearance: none; + padding-block: 0.25em; + padding-inline: 0.5em; + border: 1px solid currentColor; + border-radius: 0.25em; + cursor: default; + text-align: inherit; + /* TODO(crbug.com/41483940): Make display match the UA stylesheet. */ + display: inline-flex; + gap: 0.5em; + overflow-x: hidden; + overflow-y: hidden; + /* min-size rules ensure that we meet accessibility guidelines for minimum target size. + * https://github.com/openui/open-ui/issues/1026 + * https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html */ + min-inline-size: 24px; + min-block-size: max(24px, 1lh); +} + +.customizable-select-button::after { + content: counter(fake-counter-name, disclosure-open); +} + +.customizable-select-legend { + font-weight: bolder; + padding-inline: 0.5em; + min-block-size: 1lh; +} diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-utils.js b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-utils.js new file mode 100644 index 00000000000..ed3f9642a86 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-utils.js @@ -0,0 +1,8 @@ +function populateFallbackButtonIcon() { + document.querySelectorAll('.customizable-select-button-icon').forEach(element => { + element.innerHTML = + ` + + `; + }); +} diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/fallback-helper.js b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/fallback-helper.js new file mode 100644 index 00000000000..d2b9343e8d3 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/fallback-helper.js @@ -0,0 +1,102 @@ +const testSelectOptionText = `Long options, wider than select`; +const frameWidth = 500; +const frameHeight = 300; + +async function createFrameWithContent(content) { + const frame = document.createElement('iframe'); + frame.width = frameWidth; + frame.height = frameHeight; + frame.srcdoc = content; + const loaded = new Promise(resolve => frame.addEventListener('load',resolve)); + document.body.appendChild(frame); + await loaded; + return frame.contentDocument; +} + +async function wait2Frames(doc) { + await new Promise(resolve => doc.defaultView.requestAnimationFrame(resolve)); + await new Promise(resolve => doc.defaultView.requestAnimationFrame(resolve)); +} + +async function scroll(doc,x,y) { + await wait2Frames(doc); + doc.defaultView.scrollTo({left: x, top: y, behavior: "instant"}); + await wait2Frames(doc); +} + +async function capture(doc) { + await wait2Frames(doc); + document.documentElement.classList.remove('reftest-wait'); +} + +const commonStyleBlock = ` + html { + scrollbar-width: none; + } + body { + width: 2000px; + height: 2000px; + /* Workaround for crbug.com/364669904. Shouldn't negatively affect other + implementations or the validity of this test. */ + background: white; + } + .select { + position: relative; + top: 1000px; + left: 600px; + } + .select,::picker(select) { + appearance:base-select; + } +`; + +async function generateTestFrame(numOptions,initialx,initialy) { + const singleOption = `` + const options = Array(numOptions).fill(singleOption).join('\n'); + const content = ` + + + + + + + `; + const doc = await createFrameWithContent(content); + + await scroll(doc,initialx,initialy); + await test_driver.bless(); + doc.querySelector('select').showPicker(); + await capture(doc); +} + +async function generateReferenceFrame(numOptions,initialx,initialy,extraStyleRules) { + const singleOption = `
        ${testSelectOptionText}
        ` + const options = Array(numOptions).fill(singleOption).join('\n'); + const content = ` + + + + + + +
        + Select +
        +
        +
        Select
        + ${options} +
        + `; + const doc = await createFrameWithContent(content); + await scroll(doc,initialx,initialy); + doc.getElementById('popover').showPopover(); + await capture(doc); +} diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-active-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-active-ref.html new file mode 100644 index 00000000000..9c62188a493 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-active-ref.html @@ -0,0 +1,19 @@ + + + +
        + option +
        +
        +
        option
        +
        + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-active.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-active.tentative.html new file mode 100644 index 00000000000..3873969a287 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-active.tentative.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-button-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-button-ref.html new file mode 100644 index 00000000000..7b6a075237e --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-button-ref.html @@ -0,0 +1,14 @@ + + + +
        + one +
        +
        +
        one
        +
        two
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-custom-button.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-custom-button.tentative.html new file mode 100644 index 00000000000..89683d29f6e --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-custom-button.tentative.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-dark-mode-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-dark-mode-ref.html new file mode 100644 index 00000000000..9d80e27d86d --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-dark-mode-ref.html @@ -0,0 +1,20 @@ + + + + + +
        + one +
        +
        +
        one
        +
        two
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-dark-mode.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-dark-mode.tentative.html new file mode 100644 index 00000000000..d2ea44a20e4 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-dark-mode.tentative.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-default-button.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-default-button.tentative.html new file mode 100644 index 00000000000..f0e17ff349b --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-default-button.tentative.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-option-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-option-ref.html new file mode 100644 index 00000000000..0b59f2839b5 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-option-ref.html @@ -0,0 +1,14 @@ + + + +
        + option +
        +
        +
        option
        +
        disabled option
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-option.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-option.tentative.html new file mode 100644 index 00000000000..b4cd7ba67e0 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-option.tentative.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-ref.html new file mode 100644 index 00000000000..fbc1b25e72b --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-ref.html @@ -0,0 +1,15 @@ + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller-ref.html new file mode 100644 index 00000000000..687e64da292 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller-ref.html @@ -0,0 +1,17 @@ + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller.tentative.html new file mode 100644 index 00000000000..77f97efab21 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left-scroller.tentative.html @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left.tentative.html new file mode 100644 index 00000000000..c8fa2f60d24 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-left.tentative.html @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-ref.html new file mode 100644 index 00000000000..ba9867ddd51 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-ref.html @@ -0,0 +1,15 @@ + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller-ref.html new file mode 100644 index 00000000000..97af58d6d38 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller-ref.html @@ -0,0 +1,18 @@ + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller.tentative.html new file mode 100644 index 00000000000..b7eefc25585 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right-scroller.tentative.html @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right.tentative.html new file mode 100644 index 00000000000..9ce12bc20e7 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-bottom-right.tentative.html @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-ref.html new file mode 100644 index 00000000000..e325f74ef99 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-ref.html @@ -0,0 +1,15 @@ + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller-ref.html new file mode 100644 index 00000000000..3822fb30f28 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller-ref.html @@ -0,0 +1,17 @@ + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller.tentative.html new file mode 100644 index 00000000000..3f8358f6540 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left-scroller.tentative.html @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left.tentative.html new file mode 100644 index 00000000000..6e276aef8d2 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-left.tentative.html @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-ref.html new file mode 100644 index 00000000000..3b1260427f7 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-ref.html @@ -0,0 +1,15 @@ + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller-ref.html new file mode 100644 index 00000000000..54884616095 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller-ref.html @@ -0,0 +1,18 @@ + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller.tentative.html new file mode 100644 index 00000000000..4d04a7caa9c --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right-scroller.tentative.html @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right.tentative.html new file mode 100644 index 00000000000..b0c4c510e7d --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-fallback-top-right.tentative.html @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-font-inheriting-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-font-inheriting-ref.html new file mode 100644 index 00000000000..6321281fa8f --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-font-inheriting-ref.html @@ -0,0 +1,24 @@ + + + +
        + one +
        +
        +
        one
        +
        two
        +
        + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-font-inheriting.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-font-inheriting.tentative.html new file mode 100644 index 00000000000..f90e7c8896f --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-font-inheriting.tentative.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-hover-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-hover-ref.html new file mode 100644 index 00000000000..fc658306da3 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-hover-ref.html @@ -0,0 +1,12 @@ + + + +
        + option +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-hover.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-hover.tentative.html new file mode 100644 index 00000000000..b5e24d07947 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-hover.tentative.html @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-and-label.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-and-label.tentative.html new file mode 100644 index 00000000000..666dde2f60e --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-and-label.tentative.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-ref.html new file mode 100644 index 00000000000..6d75f62efcd --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-ref.html @@ -0,0 +1,17 @@ + + + +
        + one +
        +
        +
        one
        +
        +
        legend
        +
        two
        +
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend.tentative.html new file mode 100644 index 00000000000..6b973bc84ec --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend.tentative.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-rendering-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-rendering-ref.html new file mode 100644 index 00000000000..25bb73492a8 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-rendering-ref.html @@ -0,0 +1,33 @@ + + + + + +
        + one +
        +
        +
        one
        +
        +
        labelattribute
        +
        two
        +
        +
        three
        +
        +
        +
        four
        +
        + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-rendering.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-rendering.tentative.html new file mode 100644 index 00000000000..fd48e61731d --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-rendering.tentative.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-option-with-label.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-option-with-label.tentative.html new file mode 100644 index 00000000000..c5abc14c386 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-option-with-label.tentative.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-picker-select-border-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-picker-select-border-ref.html new file mode 100644 index 00000000000..d09f9bc4216 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-picker-select-border-ref.html @@ -0,0 +1,19 @@ + + + +
        + option +
        +
        +
        option
        +
        + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-picker-select-border.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-picker-select-border.tentative.html new file mode 100644 index 00000000000..c708af4db1f --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-picker-select-border.tentative.html @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-switching-invalidation-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-switching-invalidation-ref.html new file mode 100644 index 00000000000..29365305555 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-switching-invalidation-ref.html @@ -0,0 +1,24 @@ + + + + + +
        + button +
        +
        +
        + option one +
        +
        + option two +
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-switching-invalidation.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-switching-invalidation.tentative.html new file mode 100644 index 00000000000..fd67d013a56 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-switching-invalidation.tentative.html @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-lr-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-lr-ref.html new file mode 100644 index 00000000000..2e36e0a6c8e --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-lr-ref.html @@ -0,0 +1,20 @@ + + + + + +
        +
        one
        +
        +
        +
        one
        +
        two
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-lr.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-lr.tentative.html new file mode 100644 index 00000000000..4932ea37f72 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-lr.tentative.html @@ -0,0 +1,29 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-rl-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-rl-ref.html new file mode 100644 index 00000000000..e24aec5ad23 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-rl-ref.html @@ -0,0 +1,20 @@ + + + + + +
        + one +
        +
        +
        one
        +
        two
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-rl.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-rl.tentative.html new file mode 100644 index 00000000000..4b532a6f025 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-writing-mode-vertical-rl.tentative.html @@ -0,0 +1,29 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-wrong-picker-argument.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-wrong-picker-argument.tentative.html new file mode 100644 index 00000000000..a5ca3faea25 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-wrong-picker-argument.tentative.html @@ -0,0 +1,29 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-events.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-events.tentative.html index fcf53233f18..a1f98bc0530 100644 --- a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-events.tentative.html +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-events.tentative.html @@ -142,14 +142,18 @@ eventList = []; // Click on an option, with preventDefault - wrapper.addEventListener('click',(e) => e.preventDefault(),{once:true}); + wrapper.addEventListener('mouseup',(e) => e.preventDefault(),{once:true}); assert_equals(select.selectedOptions[0].innerText,'two'); await test_driver.click(option1); assert_true(select.matches(':open'),'click should be cancelled'); assert_events([ 'pointerdown on option1 at select', 'pointerdown on option1 at wrapper', 'mousedown on option1 at select', 'mousedown on option1 at wrapper', - 'click on option1 at select', 'click on option1 at wrapper', + 'focusout on option2 at select', 'focusout on option2 at wrapper', + 'focusin on select at select', 'focusin on select at wrapper', + 'pointerup on option1 at select', 'pointerup on option1 at wrapper', + 'mouseup on option1 at select', 'mouseup on option1 at wrapper', + 'click on option1 at select', 'click on option1 at wrapper' ],'click option, with preventDefault'); // Click on an option, no preventDefault @@ -159,11 +163,11 @@ assert_events([ 'pointerdown on option1 at select', 'pointerdown on option1 at wrapper', 'mousedown on option1 at select', 'mousedown on option1 at wrapper', - 'click on option1 at select', 'click on option1 at wrapper', + 'pointerup on option1 at select', 'pointerup on option1 at wrapper', + 'mouseup on option1 at select', 'mouseup on option1 at wrapper', 'input on select at select', 'input on select at wrapper', 'change on select at select', 'change on select at wrapper', - 'focusout on option2 at select', 'focusout on option2 at wrapper', - 'focusin on select at select', 'focusin on select at wrapper' + 'click on option1 at select', 'click on option1 at wrapper' ],'click option, no preventDefault'); },`Events, ${wrapper.dataset.description}`); }); diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-explicit-size-ref.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-explicit-size-ref.tentative.html new file mode 100644 index 00000000000..91066653a30 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-explicit-size-ref.tentative.html @@ -0,0 +1,17 @@ + + + +
        + option +
        +
        +
        one
        +
        two
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-explicit-size.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-explicit-size.tentative.html new file mode 100644 index 00000000000..4fefc96c2be --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-explicit-size.tentative.html @@ -0,0 +1,17 @@ + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-font-size-ref.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-font-size-ref.tentative.html new file mode 100644 index 00000000000..eb7867b554d --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-font-size-ref.tentative.html @@ -0,0 +1,13 @@ + + +
        + option +
        +
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-font-size.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-font-size.tentative.html new file mode 100644 index 00000000000..3b6b65db071 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-font-size.tentative.html @@ -0,0 +1,20 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-icon-color-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-icon-color-ref.html new file mode 100644 index 00000000000..b351c80c273 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-icon-color-ref.html @@ -0,0 +1,12 @@ + + + + + +
        + option +
        diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-icon-color.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-icon-color.tentative.html new file mode 100644 index 00000000000..59f015b86b4 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-icon-color.tentative.html @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html new file mode 100644 index 00000000000..18ad4ecc3fa --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance-ref.html @@ -0,0 +1,11 @@ + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html new file mode 100644 index 00000000000..5304ce8aa9a --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-multiple-base-appearance.html @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-button-opt-in.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-button-opt-in.tentative.html new file mode 100644 index 00000000000..b010d15e8ad --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-button-opt-in.tentative.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-picker-opt-in-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-picker-opt-in-ref.html new file mode 100644 index 00000000000..67a0abe43f2 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-picker-opt-in-ref.html @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-picker-opt-in.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-picker-opt-in.tentative.html new file mode 100644 index 00000000000..51cdabe18b4 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-only-picker-opt-in.tentative.html @@ -0,0 +1,25 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-open-invalidation-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-open-invalidation-ref.html new file mode 100644 index 00000000000..e0631712ef7 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-open-invalidation-ref.html @@ -0,0 +1,20 @@ + + + + + +
        + button +
        +
        +
        one
        +
        two
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-open-invalidation.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-open-invalidation.tentative.html new file mode 100644 index 00000000000..10a441703be --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-open-invalidation.tentative.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-option-images-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-option-images-ref.html new file mode 100644 index 00000000000..9c675e4f210 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-option-images-ref.html @@ -0,0 +1,14 @@ + + + +
        + button +
        +
        +
        green-16x16
        +
        red-16x16
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-option-images.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-option-images.tentative.html new file mode 100644 index 00000000000..b0c8f279b70 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-option-images.tentative.html @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-popover-exit-animation-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-popover-exit-animation-ref.html new file mode 100644 index 00000000000..994d3a5fb21 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-popover-exit-animation-ref.html @@ -0,0 +1,15 @@ + + + +
        hover target
        +
        + option +
        +
        +
        option
        +
        + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-popover-exit-animation.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-popover-exit-animation.tentative.html new file mode 100644 index 00000000000..f047474d9b3 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-popover-exit-animation.tentative.html @@ -0,0 +1,40 @@ + + + + + + + + + +
        hover target
        + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-second-child-button-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-second-child-button-ref.html new file mode 100644 index 00000000000..636d0514c45 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-second-child-button-ref.html @@ -0,0 +1,14 @@ + + + +
        + option +
        +
        +
        option
        + +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-second-child-button.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-second-child-button.tentative.html new file mode 100644 index 00000000000..ae216294ee5 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-second-child-button.tentative.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-selected-value-behavior-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-selected-value-behavior-ref.html new file mode 100644 index 00000000000..7260b242743 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-selected-value-behavior-ref.html @@ -0,0 +1,13 @@ + + +
        + option +
        +
        +
        + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-selected-value-behavior.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-selected-value-behavior.tentative.html new file mode 100644 index 00000000000..a55fbce7393 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-selected-value-behavior.tentative.html @@ -0,0 +1,14 @@ + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-text-only-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-text-only-ref.html new file mode 100644 index 00000000000..154fbad9ca3 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-text-only-ref.html @@ -0,0 +1,7 @@ + + +
        + option +
        +
        +
        diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-text-only.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-text-only.tentative.html new file mode 100644 index 00000000000..a27ef3d1636 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-text-only.tentative.html @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/selectedcontent.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/selectedcontent.tentative.html index 77ff46a3b33..eef68a9237f 100644 --- a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/selectedcontent.tentative.html +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/selectedcontent.tentative.html @@ -40,28 +40,32 @@ promise_test(async () => { 'The innerHTML of should initially match the innerHTML of the selected