aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.flake818
-rw-r--r--.vscode/extensions.json4
-rw-r--r--components/config/prefs.rs5
-rw-r--r--components/script/dom/urlpattern.rs182
-rw-r--r--components/script_bindings/interface.rs18
-rw-r--r--components/script_bindings/record.rs10
-rw-r--r--components/script_bindings/webidls/URLPattern.webidl40
-rw-r--r--etc/profilicate.py2
-rw-r--r--python/README.md2
-rw-r--r--python/requirements.txt6
-rw-r--r--python/tidy/tidy.py24
-rw-r--r--python/tox.ini3
-rw-r--r--ruff.toml27
-rw-r--r--tests/wpt/meta/MANIFEST.json3162
-rw-r--r--tests/wpt/meta/__dir__.ini1
-rw-r--r--tests/wpt/meta/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed-from-longhands.html.ini24
-rw-r--r--tests/wpt/meta/custom-elements/revamped-scoped-registry/idlharness.tentative.window.js.ini42
-rw-r--r--tests/wpt/meta/dom/idlharness.window.js.ini84
-rw-r--r--tests/wpt/meta/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior-request-close.tentative.html.ini90
-rw-r--r--tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-lt-gt.tentative.html.ini6
-rw-r--r--tests/wpt/meta/subresource-integrity/tentative/integrity-policy/parsing.html.ini8
-rw-r--r--tests/wpt/meta/subresource-integrity/tentative/integrity-policy/script.https.html.ini15
-rw-r--r--tests/wpt/meta/urlpattern/urlpattern.any.js.ini1788
-rw-r--r--tests/wpt/meta/urlpattern/urlpattern.https.any.js.ini1788
-rw-r--r--tests/wpt/meta/webidl/ecmascript-binding/interface-prototype-object.html.ini3
-rw-r--r--tests/wpt/mozilla/meta/__dir__.ini1
-rw-r--r--tests/wpt/tests/.github/workflows/docker.yml2
-rw-r--r--tests/wpt/tests/accname/name/comp_name_from_content.html10
-rw-r--r--tests/wpt/tests/accname/name/comp_name_from_content_alt_counter_invalidation.html38
-rw-r--r--tests/wpt/tests/ai/language_detection/detector.optional.https.window.js12
-rw-r--r--tests/wpt/tests/ai/rewriter/rewriter-abort.tentative.https.window.js8
-rw-r--r--tests/wpt/tests/ai/rewriter/rewriter-create-available.tentative.https.window.js102
-rw-r--r--tests/wpt/tests/ai/rewriter/rewriter-create.tentative.https.window.js24
-rw-r--r--tests/wpt/tests/ai/rewriter/rewriter-from-detached-iframe.tentative.https.window.js3
-rw-r--r--tests/wpt/tests/ai/rewriter/rewriter-measureInputUsage.tentative.https.window.js12
-rw-r--r--tests/wpt/tests/ai/rewriter/rewriter-rewrite-streaming.tentative.https.window.js46
-rw-r--r--tests/wpt/tests/ai/rewriter/rewriter-rewrite.tentative.https.window.js43
-rw-r--r--tests/wpt/tests/ai/rewriter/rewriter.tentative.https.window.js173
-rw-r--r--tests/wpt/tests/ai/summarizer/summarizer-abort.tentative.https.window.js22
-rw-r--r--tests/wpt/tests/ai/summarizer/summarizer-availability-available.tentative.https.window.js4
-rw-r--r--tests/wpt/tests/ai/summarizer/summarizer-availability.tentative.https.window.js2
-rw-r--r--tests/wpt/tests/ai/summarizer/summarizer-create-available.tentative.https.window.js8
-rw-r--r--tests/wpt/tests/ai/summarizer/summarizer-create.tentative.https.window.js2
-rw-r--r--tests/wpt/tests/ai/summarizer/summarizer-from-detached-iframe.tentative.https.window.js57
-rw-r--r--tests/wpt/tests/ai/summarizer/summarizer-summarize-streaming.tentative.https.window.js28
-rw-r--r--tests/wpt/tests/ai/summarizer/summarizer-summarize.tentative.https.window.js26
-rw-r--r--tests/wpt/tests/ai/translator/translator-locale.https.window.js50
-rw-r--r--tests/wpt/tests/ai/writer/writer-abort.tentative.https.window.js14
-rw-r--r--tests/wpt/tests/ai/writer/writer-create-available.tentative.https.window.js97
-rw-r--r--tests/wpt/tests/ai/writer/writer-create.tentative.https.window.js24
-rw-r--r--tests/wpt/tests/ai/writer/writer-from-detached-iframe.tentative.https.window.js13
-rw-r--r--tests/wpt/tests/ai/writer/writer-measureInputUsage.tentative.https.window.js12
-rw-r--r--tests/wpt/tests/ai/writer/writer-write-streaming.tentative.https.window.js45
-rw-r--r--tests/wpt/tests/ai/writer/writer-write.tentative.https.window.js41
-rw-r--r--tests/wpt/tests/ai/writer/writer.tentative.https.window.js175
-rw-r--r--tests/wpt/tests/clipboard-apis/async-navigator-clipboard-change-event.tentative.https.html99
-rw-r--r--tests/wpt/tests/close-watcher/iframes/dialog-same-origin-nn.html1
-rw-r--r--tests/wpt/tests/close-watcher/iframes/dialog-same-origin-ynn.html1
-rw-r--r--tests/wpt/tests/close-watcher/iframes/dialog-same-origin-ynyn.html1
-rw-r--r--tests/wpt/tests/cookie-store/resources/cookie-test-helpers.js7
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-ident-function.html74
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-in-multicol-crash.html46
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-in-multicol-inherit-crash.html53
-rw-r--r--tests/wpt/tests/css/css-anchor-position/chrome-419501749-crash.html12
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-ident-function.html23
-rw-r--r--tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html27
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-ident-function.html24
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html31
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/scroll-state/scroll-state-snapped-snap-changing.html1
-rw-r--r--tests/wpt/tests/css/css-contain/contain-layout-stacking-context-001.html96
-rw-r--r--tests/wpt/tests/css/css-exclusions/wrap-flow-001.html5
-rw-r--r--tests/wpt/tests/css/css-exclusions/wrap-flow-002.html5
-rw-r--r--tests/wpt/tests/css/css-exclusions/wrap-flow-003.html5
-rw-r--r--tests/wpt/tests/css/css-exclusions/wrap-flow-004.html5
-rw-r--r--tests/wpt/tests/css/css-exclusions/wrap-flow-005.html5
-rw-r--r--tests/wpt/tests/css/css-exclusions/wrap-flow-006.html5
-rw-r--r--tests/wpt/tests/css/css-exclusions/wrap-through-001.html6
-rw-r--r--tests/wpt/tests/css/css-flexbox/flex-aspect-ratio-img-vert-lr.html34
-rw-r--r--tests/wpt/tests/css/css-flexbox/flex-container-max-content-002.tentative.html2
-rw-r--r--tests/wpt/tests/css/css-flexbox/flex-container-min-content-002.tentative.html2
-rw-r--r--tests/wpt/tests/css/css-fonts/font-face-range-order.html2
-rw-r--r--tests/wpt/tests/css/css-fonts/font-face-style-normal.html8
-rw-r--r--tests/wpt/tests/css/css-fonts/generic-family-keywords-001.html7
-rw-r--r--tests/wpt/tests/css/css-fonts/generic-family-keywords-003.html6
-rw-r--r--tests/wpt/tests/css/css-fonts/test-synthetic-bold-2-notref.html24
-rw-r--r--tests/wpt/tests/css/css-fonts/test-synthetic-bold-2.html32
-rw-r--r--tests/wpt/tests/css/css-fonts/test-synthetic-italic-4-notref.html24
-rw-r--r--tests/wpt/tests/css/css-fonts/test-synthetic-italic-4.html32
-rw-r--r--tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-004-ref.html32
-rw-r--r--tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-004.html51
-rw-r--r--tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-006-ref.html52
-rw-r--r--tests/wpt/tests/css/css-gaps/flex/flex-gap-decorations-023.html57
-rw-r--r--tests/wpt/tests/css/css-gaps/flex/flex-gap-decorations-024.html38
-rw-r--r--tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-039.html63
-rw-r--r--tests/wpt/tests/css/css-gaps/multicol/multicol-gap-decorations-018-ref.html50
-rw-r--r--tests/wpt/tests/css/css-gaps/multicol/multicol-gap-decorations-019.html55
-rw-r--r--tests/wpt/tests/css/css-gaps/multicol/multicol-gap-intersections-018.html60
-rw-r--r--tests/wpt/tests/css/css-gaps/parsing/gap-decorations-bidirectional-shorthands.html8
-rw-r--r--tests/wpt/tests/css/css-gaps/parsing/gap-decorations-important.html20
-rw-r--r--tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed.html3
-rw-r--r--tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-from-longhands.tentative.html (renamed from tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed-from-longhands.html)29
-rw-r--r--tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-invalid.html3
-rw-r--r--tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-roundtrip.tentative.html21
-rw-r--r--tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-valid.html59
-rw-r--r--tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand.html252
-rw-r--r--tests/wpt/tests/css/css-grid/grid-extrinsically-sized-mutations.html22
-rw-r--r--tests/wpt/tests/css/css-images/tiled-gradients.html37
-rw-r--r--tests/wpt/tests/css/css-multicol/getclientrects-000.html33
-rw-r--r--tests/wpt/tests/css/css-multicol/getclientrects-001.html48
-rw-r--r--tests/wpt/tests/css/css-multicol/offsetProps-001.html16
-rw-r--r--tests/wpt/tests/css/css-multicol/parsing/column-rule-computed.html4
-rw-r--r--tests/wpt/tests/css/css-properties-values-api/registered-property-ident-function.html25
-rw-r--r--tests/wpt/tests/css/css-ruby/line-spacing.html240
-rw-r--r--tests/wpt/tests/css/css-scroll-snap/input/paged.html179
-rw-r--r--tests/wpt/tests/css/css-shapes/shape-outside/values/shape-margin-001.html2
-rw-r--r--tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-circle-004.html2
-rw-r--r--tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-circle-005.html2
-rw-r--r--tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-004.html2
-rw-r--r--tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-005.html2
-rw-r--r--tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-inset-003.html2
-rw-r--r--tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-polygon-004.html2
-rw-r--r--tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html2
-rw-r--r--tests/wpt/tests/css/css-sizing/keyword-sizes-for-intrinsic-contributions.html2
-rw-r--r--tests/wpt/tests/css/css-sizing/keyword-sizes-on-flex-item-001.html18
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-alias-block-size-001.tentative.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-alias-inline-size-001.tentative.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-alias-max-block-size-001.tentative.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-alias-max-inline-size-001.tentative.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-alias-min-block-size-001.tentative.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-alias-min-inline-size-001.tentative.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-block-size-001.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-inline-size-001.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-max-block-size-001.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-max-inline-size-001.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-min-block-size-001.html5
-rw-r--r--tests/wpt/tests/css/css-sizing/stretch/stretch-min-inline-size-001.html5
-rw-r--r--tests/wpt/tests/css/css-tables/tentative/baseline-table.html2
-rw-r--r--tests/wpt/tests/css/css-tables/tentative/baseline-td.html2
-rw-r--r--tests/wpt/tests/css/css-tables/tentative/colgroup-col.html2
-rw-r--r--tests/wpt/tests/css/css-tables/tentative/table-quirks.html2
-rw-r--r--tests/wpt/tests/css/css-text/text-autospace/text-autospace-mixed-001-ref.html21
-rw-r--r--tests/wpt/tests/css/css-text/text-autospace/text-autospace-mixed-001.html41
-rw-r--r--tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-word-spacing-001-ref.html47
-rw-r--r--tests/wpt/tests/css/css-text/white-space/text-wrap-balance-word-spacing-001.html49
-rw-r--r--tests/wpt/tests/css/css-text/white-space/trailing-space-position-001.html16
-rw-r--r--tests/wpt/tests/css/css-text/white-space/white-space-intrinsic-size-021.html2
-rw-r--r--tests/wpt/tests/css/css-ui/caret-shape-parsing.html22
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-attachment-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-clip-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-image-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-origin-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-position-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-size-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-outset-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-repeat-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-slice-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-source-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-end-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-color-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-left-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-style-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-width-001.html2
-rw-r--r--tests/wpt/tests/css/css-ui/tools/build-compute-kind-widget-fallback-props.py2
-rw-r--r--tests/wpt/tests/css/css-values/attr-security.html10
-rw-r--r--tests/wpt/tests/css/css-values/cap-invalidation.html12
-rw-r--r--tests/wpt/tests/css/css-values/ch-unit-019.html51
-rw-r--r--tests/wpt/tests/css/css-values/ident-function-computed.html29
-rw-r--r--tests/wpt/tests/css/css-values/ident-function-parsing.html34
-rw-r--r--tests/wpt/tests/css/css-values/reference/ch-unit-019-ref.html16
-rw-r--r--tests/wpt/tests/css/css-values/sign-in-keyframes-with-relative-units.html47
-rw-r--r--tests/wpt/tests/css/css-values/tree-counting/sibling-index-keyframe-transform-dynamic.html34
-rw-r--r--tests/wpt/tests/css/css-view-transitions/content-with-overflow-zoomed-ref.html2
-rw-r--r--tests/wpt/tests/css/css-view-transitions/group-animation-for-root-transition.html6
-rw-r--r--tests/wpt/tests/css/css-view-transitions/new-content-with-overflow-zoomed.html2
-rw-r--r--tests/wpt/tests/css/css-view-transitions/no-crash-set-exception.html2
-rw-r--r--tests/wpt/tests/css/css-view-transitions/no-raf-while-render-blocked.html4
-rw-r--r--tests/wpt/tests/css/css-view-transitions/old-content-with-overflow-zoomed.html2
-rw-r--r--tests/wpt/tests/css/css-view-transitions/paused-animation-at-end.html3
-rw-r--r--tests/wpt/tests/css/css-view-transitions/pseudo-get-computed-style-clean-style.html51
-rw-r--r--tests/wpt/tests/css/css-view-transitions/root-reconstruct-frame-tree-crash.html14
-rw-r--r--tests/wpt/tests/css/css-view-transitions/scoped/auto-name.html1
-rw-r--r--tests/wpt/tests/css/css-view-transitions/scoped/document-element-start-view-transition.html3
-rw-r--r--tests/wpt/tests/css/css-view-transitions/scoped/nested-scope-ref.html28
-rw-r--r--tests/wpt/tests/css/css-view-transitions/scoped/nested-scope.html50
-rw-r--r--tests/wpt/tests/css/css-view-transitions/transition-skipped-after-animation-started.html2
-rw-r--r--tests/wpt/tests/css/css-view-transitions/view-transition-name-on-removed-element.html2
-rw-r--r--tests/wpt/tests/css/css-writing-modes/forms/text-input-block-size.optional.html52
-rw-r--r--tests/wpt/tests/css/cssom-view/getBoundingClientRect-shy.html106
-rw-r--r--tests/wpt/tests/css/cssom/getComputedStyle-insets-relpos-inline.html51
-rw-r--r--tests/wpt/tests/css/filter-effects/crashtests/external-reference-in-interleaved-oof-crash.html21
-rw-r--r--tests/wpt/tests/css/motion/offset-path-shape-polygon-003.html2
-rw-r--r--tests/wpt/tests/css/visited-nested-ref.html8
-rw-r--r--tests/wpt/tests/css/visited-nested.html12
-rw-r--r--tests/wpt/tests/custom-elements/registries/idlharness.window.js (renamed from tests/wpt/tests/custom-elements/revamped-scoped-registry/idlharness.tentative.window.js)3
-rw-r--r--tests/wpt/tests/fedcm/lfedcm-identity.create-store-collect.tentative.sub.https.html64
-rw-r--r--tests/wpt/tests/fetch/local-network-access/fetch.tentative.https.html36
-rw-r--r--tests/wpt/tests/fetch/local-network-access/resources/fetch-private-http.html41
-rw-r--r--tests/wpt/tests/fetch/local-network-access/resources/fetch-public-http-wrong-address-space.html43
-rw-r--r--tests/wpt/tests/fetch/local-network-access/resources/support.sub.js7
-rw-r--r--tests/wpt/tests/fetch/private-network-access/resources/support.sub.js4
-rw-r--r--tests/wpt/tests/html-aam/roles-minimum.tentative.html55
-rw-r--r--tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.fillText-FontFace.html29
-rw-r--r--tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.fillText.html21
-rw-r--r--tests/wpt/tests/html/canvas/offscreen/manual/text/empty-ref.html0
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/blob-popup.https.html30
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html17
-rw-r--r--tests/wpt/tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html17
-rw-r--r--tests/wpt/tests/html/dom/elements/global-attributes/the-translate-attribute-012.html2
-rw-r--r--tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-closedby-corner-cases.html35
-rw-r--r--tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html78
-rw-r--r--tests/wpt/tests/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior-request-close.tentative.html267
-rw-r--r--tests/wpt/tests/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior.html282
-rw-r--r--tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-lt-gt.html (renamed from tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-lt-gt.tentative.html)0
-rw-r--r--tests/wpt/tests/html/syntax/serializing-html-fragments/serializing.html6
-rw-r--r--tests/wpt/tests/infrastructure/assumptions/non-local-ports.sub.window.js26
-rw-r--r--tests/wpt/tests/interfaces/html.idl44
-rw-r--r--tests/wpt/tests/interfaces/media-capabilities.idl4
-rw-r--r--tests/wpt/tests/interfaces/paint-timing.idl4
-rw-r--r--tests/wpt/tests/interfaces/privacy-preserving-attribution.idl (renamed from tests/wpt/tests/interfaces/ppa.idl)6
-rw-r--r--tests/wpt/tests/interfaces/scoped-custom-elements-registry.tentative.idl38
-rw-r--r--tests/wpt/tests/interfaces/sri.idl13
-rw-r--r--tests/wpt/tests/interfaces/webrtc-encoded-transform.idl32
-rw-r--r--tests/wpt/tests/interfaces/webtransport.idl1
-rw-r--r--tests/wpt/tests/lint.ignore1
-rw-r--r--tests/wpt/tests/mathml/presentation-markup/mrow/merror-001.html13
-rw-r--r--tests/wpt/tests/mathml/presentation-markup/mrow/mphantom-001.html13
-rw-r--r--tests/wpt/tests/media-playback-quality/WEB_FEATURES.yml3
-rw-r--r--tests/wpt/tests/paint-timing/paint-timing-mixin-to-json.html56
-rw-r--r--tests/wpt/tests/pointerevents/pointerevent_lostpointercapture_remove_setcapture_node.html7
-rw-r--r--tests/wpt/tests/pointerevents/pointerevent_pointer_boundary_events_after_removing_last_over_element.html14
-rw-r--r--tests/wpt/tests/pointerevents/pointerevent_pointerout_no_pointer_movement.html22
-rw-r--r--tests/wpt/tests/preload/preload-referrer-policy-subresource-header.tentative.html85
-rw-r--r--tests/wpt/tests/preload/preload-referrer-policy.html1
-rw-r--r--tests/wpt/tests/preload/resources/link-header-referrer-policy.py6
-rw-r--r--tests/wpt/tests/preload/resources/stash-referrer.py18
-rw-r--r--tests/wpt/tests/resize-observer/svg.html4
-rw-r--r--tests/wpt/tests/resources/chromium/webxr-test.js366
-rw-r--r--tests/wpt/tests/sanitizer-api/sanitizer-parseHTML.tentative.html55
-rw-r--r--tests/wpt/tests/scheduler/tentative/yield/resources/test-helper.js8
-rw-r--r--tests/wpt/tests/scheduler/tentative/yield/yield-inherit-across-promises.any.js73
-rw-r--r--tests/wpt/tests/scheduler/tentative/yield/yield-scheduling-state-cleared.any.js21
-rw-r--r--tests/wpt/tests/scheduler/tentative/yield/yield-scripted-subframe-propagation.html65
-rw-r--r--tests/wpt/tests/scroll-animations/css/timeline-names-ident-function.html40
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/back.tentative.html9
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/detection/tentative/racing-soft-navigations.html77
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/disabled.html31
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/image-lcp-before-detection-second-softnav.tentative.html60
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/image-lcp-before-detection.tentative.html54
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/interaction-with-paint-before-back.tentative.html31
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js58
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-test-helper.js92
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/lcp.html153
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/task-attribution.html17
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/text-lcp-before-detection-second-softnav.tentative.html62
-rw-r--r--tests/wpt/tests/soft-navigation-heuristics/text-lcp-before-detection.tentative.html55
-rw-r--r--tests/wpt/tests/speculation-rules/prefetch/resources/basic-service-worker.js52
-rw-r--r--tests/wpt/tests/speculation-rules/prefetch/resources/counting-executor.py30
-rw-r--r--tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html2
-rw-r--r--tests/wpt/tests/speculation-rules/prefetch/resources/utils.sub.js7
-rw-r--r--tests/wpt/tests/speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html67
-rw-r--r--tests/wpt/tests/subresource-integrity/integrity-policy/parsing.html (renamed from tests/wpt/tests/subresource-integrity/tentative/integrity-policy/parsing.html)0
-rw-r--r--tests/wpt/tests/subresource-integrity/integrity-policy/script.https.html (renamed from tests/wpt/tests/subresource-integrity/tentative/integrity-policy/script.https.html)0
-rw-r--r--tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.parser-inserted.html20
-rw-r--r--tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js22
-rw-r--r--tests/wpt/tests/subresource-integrity/signatures/tentative/helper.js4
-rw-r--r--tests/wpt/tests/svg/animations/mpath-zero-radius-crash.html18
-rw-r--r--tests/wpt/tests/svg/interact/scripted/svg-pointer-events-bbox.html38
-rw-r--r--tests/wpt/tests/svg/text/reftests/first-letter-ref.svg3
-rw-r--r--tests/wpt/tests/svg/text/reftests/opacity-ref.svg6
-rw-r--r--tests/wpt/tests/svg/text/scripted/getcharnumatposition.html86
-rw-r--r--tests/wpt/tests/tools/serve/serve.py8
-rw-r--r--tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browser.py17
-rw-r--r--tests/wpt/tests/tools/wpt/run.py3
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/android_webview.py12
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/base.py11
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py23
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome_android.py26
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox.py36
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py100
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/safari.py15
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/sauce.py2
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/servodriver.py16
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/wktr.py2
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/environment.py4
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/executors/base.py5
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py26
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py14
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py15
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/formatters/wptreport.py6
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py36
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/tests/browsers/test_base.py2
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/wptcommandline.py4
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/wptrunner.py1
-rw-r--r--tests/wpt/tests/tools/wptserve/wptserve/server.py29
-rw-r--r--tests/wpt/tests/wasm/core/js/binary.wast.js12
-rw-r--r--tests/wpt/tests/wasm/core/js/data.wast.js122
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/accept_insecure_certs.py14
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/invalid.py68
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/proxy.py74
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_cached.py24
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/response_completed/response_completed_cached.py24
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/response_started/response_started_cached.py24
-rw-r--r--tests/wpt/tests/webdriver/tests/classic/new_session/merge.py49
-rw-r--r--tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py6
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/abs.https.any.js28
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/arg_min_max.https.any.js332
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/expand.https.any.js622
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gather.https.any.js751
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gatherElements.https.any.js166
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gatherND.https.any.js229
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/neg.https.any.js28
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/pad.https.any.js369
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/prelu.https.any.js30
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/qdq_subgraph.https.any.js252
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/reduce_l1.https.any.js58
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/relu.https.any.js28
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js1047
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/reverse.https.any.js114
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/scatterElements.https.any.js154
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/scatterND.https.any.js93
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/slice.https.any.js291
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/split.https.any.js412
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js238
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/tile.https.any.js51
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/transpose.https.any.js206
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/triangular.https.any.js541
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/where.https.any.js835
-rw-r--r--tests/wpt/tests/webnn/validation_tests/pad.https.any.js44
-rw-r--r--tests/wpt/tests/webrtc/RTCPeerConnection-addTransceiver-renegotiation.https.html75
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https.html2
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https.html2
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewDepthData.https.html92
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html20
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_pauseResume.https.html2
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https.html2
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/dataUnavailableTests.js97
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/depth_type_request_respected.https.html56
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https.html2
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_inactiveFrame.https.html2
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html20
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_pauseResume.https.html2
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https.html2
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/inactiveFrameTests.js66
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/matchDepthViewValues.js18
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/pauseResumeTests.js174
-rw-r--r--tests/wpt/tests/webxr/depth-sensing/staleViewsTests.js73
-rw-r--r--tests/wpt/tests/webxr/resources/webxr_test_asserts.js219
-rw-r--r--tests/wpt/tests/webxr/resources/webxr_test_constants.js25
-rw-r--r--tests/wpt/tests/webxr/resources/webxr_test_constants_fake_depth.js9
-rw-r--r--tests/wpt/tests/xhr/formdata/append.any.js4
1138 files changed, 17209 insertions, 7809 deletions
diff --git a/.flake8 b/.flake8
deleted file mode 100644
index d4fb3a318ee..00000000000
--- a/.flake8
+++ /dev/null
@@ -1,18 +0,0 @@
-[flake8]
-ignore =
- # trailing whitespace; the standard tidy process will enforce no trailing whitespace
- W291,
- # linebreak before binary operator; replaced by W504 - linebreak after binary operator
- W503,
- # 80 character line length; the standard tidy process will enforce line length
- E501
-exclude =
- # temporary local files
- target
- __pycache__
- python/_venv*
- # upstream
- third_party
- python/mach
- components
- tests
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index d776261927d..7bf53b27bf2 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -16,6 +16,8 @@
// IDL language support
"mythmon.idl",
// TOML files
- "tamasfe.even-better-toml"
+ "tamasfe.even-better-toml",
+ // Python files
+ "charliermarsh.ruff"
]
} \ No newline at end of file
diff --git a/components/config/prefs.rs b/components/config/prefs.rs
index 64dd9659e56..896a4fe0bc4 100644
--- a/components/config/prefs.rs
+++ b/components/config/prefs.rs
@@ -116,10 +116,6 @@ pub struct Preferences {
// https://testutils.spec.whatwg.org#availability
pub dom_testutils_enabled: bool,
pub dom_trusted_types_enabled: bool,
- /// Enable the [URLPattern] API.
- ///
- /// [URLPattern]: https://developer.mozilla.org/en-US/docs/Web/API/URLPattern
- pub dom_urlpattern_enabled: bool,
pub dom_xpath_enabled: bool,
/// Enable WebGL2 APIs.
pub dom_webgl2_enabled: bool,
@@ -292,7 +288,6 @@ impl Preferences {
dom_testperf_enabled: false,
dom_testutils_enabled: false,
dom_trusted_types_enabled: false,
- dom_urlpattern_enabled: false,
dom_webgl2_enabled: false,
dom_webgpu_enabled: false,
dom_webgpu_wgpu_backend: String::new(),
diff --git a/components/script/dom/urlpattern.rs b/components/script/dom/urlpattern.rs
index c811d3a9a70..63665f6df0b 100644
--- a/components/script/dom/urlpattern.rs
+++ b/components/script/dom/urlpattern.rs
@@ -4,6 +4,7 @@
use dom_struct::dom_struct;
use js::rust::HandleObject;
+use script_bindings::codegen::GenericBindings::URLPatternBinding::URLPatternResult;
use script_bindings::codegen::GenericUnionTypes::USVStringOrURLPatternInit;
use script_bindings::error::{Error, Fallible};
use script_bindings::reflector::Reflector;
@@ -46,7 +47,7 @@ impl URLPattern {
) -> Fallible<DomRoot<URLPattern>> {
// The section below converts from servos types to the types used in the urlpattern crate
let base_url = base_url.map(|usv_string| usv_string.0);
- let input = bindings_to_third_party::map_urlpattern_input(input, base_url.clone());
+ let input = bindings_to_third_party::map_urlpattern_input(input);
let options = urlpattern::UrlPatternOptions {
ignore_case: options.ignoreCase,
};
@@ -94,6 +95,50 @@ impl URLPatternMethods<crate::DomTypeHolder> for URLPattern {
URLPattern::initialize(global, proto, input, None, options, can_gc)
}
+ /// <https://urlpattern.spec.whatwg.org/#dom-urlpattern-test>
+ fn Test(
+ &self,
+ input: USVStringOrURLPatternInit,
+ base_url: Option<USVString>,
+ ) -> Fallible<bool> {
+ let input = bindings_to_third_party::map_urlpattern_input(input);
+ let inputs = urlpattern::quirks::process_match_input(input, base_url.as_deref())
+ .map_err(|error| Error::Type(format!("{error}")))?;
+ let Some((match_input, _)) = inputs else {
+ return Ok(false);
+ };
+
+ self.associated_url_pattern
+ .test(match_input)
+ .map_err(|error| Error::Type(format!("{error}")))
+ }
+
+ /// <https://urlpattern.spec.whatwg.org/#dom-urlpattern-exec>
+ fn Exec(
+ &self,
+ input: USVStringOrURLPatternInit,
+ base_url: Option<USVString>,
+ ) -> Fallible<Option<URLPatternResult>> {
+ let input = bindings_to_third_party::map_urlpattern_input(input);
+ let inputs = urlpattern::quirks::process_match_input(input, base_url.as_deref())
+ .map_err(|error| Error::Type(format!("{error}")))?;
+ let Some((match_input, inputs)) = inputs else {
+ return Ok(None);
+ };
+
+ let result = self
+ .associated_url_pattern
+ .exec(match_input)
+ .map_err(|error| Error::Type(format!("{error}")))?;
+ let Some(result) = result else {
+ return Ok(None);
+ };
+
+ Ok(Some(third_party_to_bindings::map_urlpattern_result(
+ result, inputs,
+ )))
+ }
+
/// <https://urlpattern.spec.whatwg.org/#dom-urlpattern-protocol>
fn Protocol(&self) -> USVString {
// Step 1. Return this’s associated URL pattern’s protocol component’s pattern string.
@@ -151,54 +196,115 @@ impl URLPatternMethods<crate::DomTypeHolder> for URLPattern {
}
mod bindings_to_third_party {
+ use script_bindings::codegen::GenericBindings::URLPatternBinding::URLPatternInit;
+
use crate::dom::urlpattern::USVStringOrURLPatternInit;
+ fn map_urlpatterninit(pattern_init: URLPatternInit) -> urlpattern::quirks::UrlPatternInit {
+ urlpattern::quirks::UrlPatternInit {
+ protocol: pattern_init.protocol.map(|protocol| protocol.0),
+ username: pattern_init.username.map(|username| username.0),
+ password: pattern_init.password.map(|password| password.0),
+ hostname: pattern_init.hostname.map(|hostname| hostname.0),
+ port: pattern_init.port.map(|hash| hash.0),
+ pathname: pattern_init
+ .pathname
+ .as_ref()
+ .map(|usv_string| usv_string.to_string()),
+ search: pattern_init.search.map(|search| search.0),
+ hash: pattern_init.hash.map(|hash| hash.0),
+ base_url: pattern_init.baseURL.map(|base_url| base_url.0),
+ }
+ }
+
pub(super) fn map_urlpattern_input(
input: USVStringOrURLPatternInit,
- base_url: Option<String>,
) -> urlpattern::quirks::StringOrInit {
match input {
USVStringOrURLPatternInit::USVString(usv_string) => {
urlpattern::quirks::StringOrInit::String(usv_string.0)
},
USVStringOrURLPatternInit::URLPatternInit(pattern_init) => {
- let pattern_init = urlpattern::quirks::UrlPatternInit {
- protocol: pattern_init
- .protocol
- .as_ref()
- .map(|usv_string| usv_string.to_string()),
- username: pattern_init
- .username
- .as_ref()
- .map(|usv_string| usv_string.to_string()),
- password: pattern_init
- .password
- .as_ref()
- .map(|usv_string| usv_string.to_string()),
- hostname: pattern_init
- .hostname
- .as_ref()
- .map(|usv_string| usv_string.to_string()),
- port: pattern_init
- .port
- .as_ref()
- .map(|usv_string| usv_string.to_string()),
- pathname: pattern_init
- .pathname
- .as_ref()
- .map(|usv_string| usv_string.to_string()),
- search: pattern_init
- .search
- .as_ref()
- .map(|usv_string| usv_string.to_string()),
- hash: pattern_init
- .hash
- .as_ref()
- .map(|usv_string| usv_string.to_string()),
- base_url,
- };
- urlpattern::quirks::StringOrInit::Init(pattern_init)
+ urlpattern::quirks::StringOrInit::Init(map_urlpatterninit(pattern_init))
+ },
+ }
+ }
+}
+
+mod third_party_to_bindings {
+ use script_bindings::codegen::GenericBindings::URLPatternBinding::{
+ URLPatternComponentResult, URLPatternInit, URLPatternResult,
+ };
+ use script_bindings::codegen::GenericUnionTypes::USVStringOrUndefined;
+ use script_bindings::record::Record;
+ use script_bindings::str::USVString;
+
+ use crate::dom::bindings::codegen::UnionTypes::USVStringOrURLPatternInit;
+
+ // FIXME: For some reason codegen puts a lot of options into these types that don't make sense
+
+ fn map_component_result(
+ component_result: urlpattern::UrlPatternComponentResult,
+ ) -> URLPatternComponentResult {
+ let mut groups = Record::new();
+ for (key, value) in component_result.groups.iter() {
+ let value = match value {
+ Some(value) => USVStringOrUndefined::USVString(USVString(value.to_owned())),
+ None => USVStringOrUndefined::Undefined(()),
+ };
+
+ groups.insert(USVString(key.to_owned()), value);
+ }
+
+ URLPatternComponentResult {
+ input: Some(component_result.input.into()),
+ groups: Some(groups),
+ }
+ }
+
+ fn map_urlpatterninit(pattern_init: urlpattern::quirks::UrlPatternInit) -> URLPatternInit {
+ URLPatternInit {
+ baseURL: pattern_init.base_url.map(USVString),
+ protocol: pattern_init.protocol.map(USVString),
+ username: pattern_init.username.map(USVString),
+ password: pattern_init.password.map(USVString),
+ hostname: pattern_init.hostname.map(USVString),
+ port: pattern_init.port.map(USVString),
+ pathname: pattern_init.pathname.map(USVString),
+ search: pattern_init.search.map(USVString),
+ hash: pattern_init.hash.map(USVString),
+ }
+ }
+
+ pub(super) fn map_urlpattern_result(
+ result: urlpattern::UrlPatternResult,
+ (string_or_init, base_url): urlpattern::quirks::Inputs,
+ ) -> URLPatternResult {
+ let string_or_init = match string_or_init {
+ urlpattern::quirks::StringOrInit::String(string) => {
+ USVStringOrURLPatternInit::USVString(USVString(string))
+ },
+ urlpattern::quirks::StringOrInit::Init(pattern_init) => {
+ USVStringOrURLPatternInit::URLPatternInit(map_urlpatterninit(pattern_init))
},
+ };
+
+ let mut inputs = vec![string_or_init];
+
+ if let Some(base_url) = base_url {
+ inputs.push(USVStringOrURLPatternInit::USVString(USVString(base_url)));
+ }
+
+ URLPatternResult {
+ inputs: Some(inputs),
+ protocol: Some(map_component_result(result.protocol)),
+ username: Some(map_component_result(result.username)),
+ password: Some(map_component_result(result.password)),
+ hostname: Some(map_component_result(result.hostname)),
+ port: Some(map_component_result(result.port)),
+ pathname: Some(map_component_result(result.pathname)),
+ search: Some(map_component_result(result.search)),
+ hash: Some(map_component_result(result.hash)),
}
}
}
diff --git a/components/script_bindings/interface.rs b/components/script_bindings/interface.rs
index 08ee0a4f420..e185cfe9cfd 100644
--- a/components/script_bindings/interface.rs
+++ b/components/script_bindings/interface.rs
@@ -16,11 +16,11 @@ use js::jsapi::{
GetFunctionRealm, GetNonCCWObjectGlobal, GetRealmGlobalOrNull, GetWellKnownSymbol,
HandleObject as RawHandleObject, IsSharableCompartment, IsSystemCompartment,
JS_AtomizeAndPinString, JS_GetFunctionObject, JS_GetProperty, JS_IterateCompartments,
- JS_NewFunction, JS_NewGlobalObject, JS_NewObject, JS_NewPlainObject, JS_NewStringCopyN,
- JS_SetReservedSlot, JS_WrapObject, JSAutoRealm, JSClass, JSClassOps, JSContext,
- JSFUN_CONSTRUCTOR, JSFunctionSpec, JSObject, JSPROP_PERMANENT, JSPROP_READONLY,
- JSPROP_RESOLVING, JSPropertySpec, JSString, JSTracer, ObjectOps, OnNewGlobalHookOption,
- SymbolCode, TrueHandleValue, Value, jsid,
+ JS_NewFunction, JS_NewGlobalObject, JS_NewObject, JS_NewStringCopyN, JS_SetReservedSlot,
+ JS_WrapObject, JSAutoRealm, JSClass, JSClassOps, JSContext, JSFUN_CONSTRUCTOR, JSFunctionSpec,
+ JSObject, JSPROP_ENUMERATE, JSPROP_PERMANENT, JSPROP_READONLY, JSPROP_RESOLVING,
+ JSPropertySpec, JSString, JSTracer, ObjectOps, OnNewGlobalHookOption, SymbolCode,
+ TrueHandleValue, Value, jsid,
};
use js::jsval::{JSVal, NullValue, PrivateValue};
use js::rust::wrappers::{
@@ -473,7 +473,11 @@ fn create_unscopable_object(cx: SafeJSContext, names: &[&CStr], mut rval: Mutabl
assert!(!names.is_empty());
assert!(rval.is_null());
unsafe {
- rval.set(JS_NewPlainObject(*cx));
+ rval.set(JS_NewObjectWithGivenProto(
+ *cx,
+ ptr::null(),
+ HandleObject::null(),
+ ));
assert!(!rval.is_null());
for &name in names {
assert!(JS_DefineProperty(
@@ -481,7 +485,7 @@ fn create_unscopable_object(cx: SafeJSContext, names: &[&CStr], mut rval: Mutabl
rval.handle(),
name.as_ptr(),
HandleValue::from_raw(TrueHandleValue),
- JSPROP_READONLY as u32,
+ JSPROP_ENUMERATE as u32,
));
}
}
diff --git a/components/script_bindings/record.rs b/components/script_bindings/record.rs
index 2668a84f42c..d469faefaf2 100644
--- a/components/script_bindings/record.rs
+++ b/components/script_bindings/record.rs
@@ -7,7 +7,7 @@
use std::cmp::Eq;
use std::hash::Hash;
use std::marker::Sized;
-use std::ops::Deref;
+use std::ops::{Deref, DerefMut};
use indexmap::IndexMap;
use js::conversions::{ConversionResult, FromJSValConvertible, ToJSValConvertible};
@@ -94,11 +94,17 @@ impl<K: RecordKey, V> Record<K, V> {
impl<K: RecordKey, V> Deref for Record<K, V> {
type Target = IndexMap<K, V>;
- fn deref(&self) -> &IndexMap<K, V> {
+ fn deref(&self) -> &Self::Target {
&self.map
}
}
+impl<K: RecordKey, V> DerefMut for Record<K, V> {
+ fn deref_mut(&mut self) -> &mut Self::Target {
+ &mut self.map
+ }
+}
+
impl<K, V, C> FromJSValConvertible for Record<K, V>
where
K: RecordKey,
diff --git a/components/script_bindings/webidls/URLPattern.webidl b/components/script_bindings/webidls/URLPattern.webidl
index f61b65702bc..a29cb650c23 100644
--- a/components/script_bindings/webidls/URLPattern.webidl
+++ b/components/script_bindings/webidls/URLPattern.webidl
@@ -6,14 +6,14 @@
typedef (USVString or URLPatternInit) URLPatternInput;
-[Exposed=(Window,Worker), Pref="dom_urlpattern_enabled"]
+[Exposed=(Window,Worker)]
interface URLPattern {
[Throws] constructor(URLPatternInput input, USVString baseURL, optional URLPatternOptions options = {});
[Throws] constructor(optional URLPatternInput input = {}, optional URLPatternOptions options = {});
- // [Throws] boolean test(optional URLPatternInput input = {}, optional USVString baseURL);
+ [Throws] boolean test(optional URLPatternInput input = {}, optional USVString baseURL);
- // [Throws] URLPatternResult? exec(optional URLPatternInput input = {}, optional USVString baseURL);
+ [Throws] URLPatternResult? exec(optional URLPatternInput input = {}, optional USVString baseURL);
readonly attribute USVString protocol;
readonly attribute USVString username;
@@ -43,20 +43,20 @@ dictionary URLPatternOptions {
boolean ignoreCase = false;
};
-// dictionary URLPatternResult {
-// sequence<URLPatternInput> inputs;
-
-// URLPatternComponentResult protocol;
-// URLPatternComponentResult username;
-// URLPatternComponentResult password;
-// URLPatternComponentResult hostname;
-// URLPatternComponentResult port;
-// URLPatternComponentResult pathname;
-// URLPatternComponentResult search;
-// URLPatternComponentResult hash;
-// };
-
-// dictionary URLPatternComponentResult {
-// USVString input;
-// record<USVString, (USVString or undefined)> groups;
-// };
+dictionary URLPatternResult {
+ sequence<URLPatternInput> inputs;
+
+ URLPatternComponentResult protocol;
+ URLPatternComponentResult username;
+ URLPatternComponentResult password;
+ URLPatternComponentResult hostname;
+ URLPatternComponentResult port;
+ URLPatternComponentResult pathname;
+ URLPatternComponentResult search;
+ URLPatternComponentResult hash;
+};
+
+dictionary URLPatternComponentResult {
+ USVString input;
+ record<USVString, (USVString or undefined)> groups;
+};
diff --git a/etc/profilicate.py b/etc/profilicate.py
index 3fa35b5ba77..5112497d4bb 100644
--- a/etc/profilicate.py
+++ b/etc/profilicate.py
@@ -79,7 +79,7 @@ for (name, raw_samples) in sorted(iter(thread_data.items()), key=lambda x: threa
for frame in sample[1]:
if not frame['name']:
continue
- if not frame['name'] in frameMap:
+ if frame['name'] not in frameMap:
frameMap[frame['name']] = len(frames)
frame_index = string_table.get(frame['name'])
frames.append([frame_index])
diff --git a/python/README.md b/python/README.md
index b79a4b2e8ea..d97dc6d6ddd 100644
--- a/python/README.md
+++ b/python/README.md
@@ -8,7 +8,7 @@ is the canonical repository for this code.
# `tidy`
-servo-tidy is used to check licenses, line lengths, whitespace, flake8 on
+servo-tidy is used to check licenses, line lengths, whitespace, ruff on
Python files, lock file versions, and more.
# `wpt`
diff --git a/python/requirements.txt b/python/requirements.txt
index d64f33add3c..c5e1a0c9bbb 100644
--- a/python/requirements.txt
+++ b/python/requirements.txt
@@ -8,10 +8,8 @@ mozlog == 8.0.0
setuptools == 78.1.1
toml == 0.9.2
-# For Python linting
-flake8 == 7.0.0
-pep8 == 1.5.7
-pyflakes == 3.2.0
+# For Python linting and formatting
+ruff == 0.11.10
# For test-webidl
ply == 3.8
diff --git a/python/tidy/tidy.py b/python/tidy/tidy.py
index fe44be23df8..98062e77683 100644
--- a/python/tidy/tidy.py
+++ b/python/tidy/tidy.py
@@ -356,19 +356,18 @@ def check_by_line(file_name: str, lines: list[bytes]):
yield error
-def check_flake8(file_name, contents):
- if not file_name.endswith(".py"):
- return
-
- output = ""
+def check_ruff_lints():
try:
- args = ["flake8", file_name]
+ args = ["ruff", "check", "--output-format", "json"]
subprocess.check_output(args, universal_newlines=True)
except subprocess.CalledProcessError as e:
- output = e.output
- for error in output.splitlines():
- _, line_num, _, message = error.split(":", 3)
- yield line_num, message.strip()
+ for error in json.loads(e.output):
+ yield (
+ os.path.join(".", os.path.relpath(error["filename"])),
+ error["location"]["row"],
+ f"[{error['code']}] {error['message']} ({error['url']})",
+ )
+
def run_cargo_deny_lints():
@@ -976,17 +975,18 @@ def scan(only_changed_files=False, progress=False):
directory_errors = check_directory_files(config['check_ext'])
# standard checks
files_to_check = filter_files('.', only_changed_files, progress)
- checking_functions = (check_flake8, check_webidl_spec)
+ checking_functions = (check_webidl_spec,)
line_checking_functions = (check_license, check_by_line, check_toml, check_shell,
check_rust, check_spec, check_modeline)
file_errors = collect_errors_for_files(files_to_check, checking_functions, line_checking_functions)
+ python_errors = check_ruff_lints()
cargo_lock_errors = run_cargo_deny_lints()
wpt_errors = run_wpt_lints(only_changed_files)
# chain all the iterators
errors = itertools.chain(config_errors, directory_errors, file_errors,
- wpt_errors, cargo_lock_errors)
+ python_errors, wpt_errors, cargo_lock_errors)
colorama.init()
error = None
diff --git a/python/tox.ini b/python/tox.ini
deleted file mode 100644
index e684cc63d8b..00000000000
--- a/python/tox.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[flake8]
-filename = *.py
-max-line-length = 120
diff --git a/ruff.toml b/ruff.toml
new file mode 100644
index 00000000000..2bc8ee0f250
--- /dev/null
+++ b/ruff.toml
@@ -0,0 +1,27 @@
+line-length = 120
+
+extend-exclude = [
+ # temporary local files
+ "target/**",
+ "__pycache__/**",
+ "python/_venv*/**",
+ # upstream
+ "third_party/**",
+ "python/mach/**",
+ "components/**",
+ "tests/**",
+]
+
+[lint]
+select = [
+ "E",
+ "W",
+ "F",
+]
+
+ignore = [
+ # Trailing whitespace; the standard tidy process will enforce no trailing whitespace
+ "W291",
+ # 80 character line length; the standard tidy process will enforce line length
+ "E501",
+]
diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json
index 59a4cc1cfd8..6a424312a93 100644
--- a/tests/wpt/meta/MANIFEST.json
+++ b/tests/wpt/meta/MANIFEST.json
@@ -642,6 +642,20 @@
{}
]
],
+ "anchor-in-multicol-crash.html": [
+ "8a4206630a17a3ddd5c7607367c685454a598852",
+ [
+ null,
+ {}
+ ]
+ ],
+ "anchor-in-multicol-inherit-crash.html": [
+ "233f8382e8a479e95c235dac2854a355d3341ad3",
+ [
+ null,
+ {}
+ ]
+ ],
"anchor-scroll-composited-scrolling-001-crash.html": [
"e8ecde3a3e36702d8833c6caa0c94782243edba4",
[
@@ -740,6 +754,13 @@
{}
]
],
+ "chrome-419501749-crash.html": [
+ "2ab29fc87f5e354b4523e0fc0e9d7f8528ddfe6e",
+ [
+ null,
+ {}
+ ]
+ ],
"grid-anchor-center-crash.html": [
"bab4eed6b66dfb846ef451f14ced6eb2a0867cc1",
[
@@ -5916,6 +5937,13 @@
{}
]
],
+ "root-reconstruct-frame-tree-crash.html": [
+ "bff9a1629a1cdcdc2aac2bd5c961a47823e3f5a7",
+ [
+ null,
+ {}
+ ]
+ ],
"root-replace-crash.html": [
"165eec41b6bc56db131cc7fc19f23701bc291b8c",
[
@@ -6196,6 +6224,13 @@
{}
]
],
+ "external-reference-in-interleaved-oof-crash.html": [
+ "a1aad3a77a43de923ddab1d673b95f531ab25576",
+ [
+ null,
+ {}
+ ]
+ ],
"felighting-display-none-mutation-crash.html": [
"bc3e2333bf6ebb7abd064d4f02ff084198204b2e",
[
@@ -9875,6 +9910,13 @@
{}
]
],
+ "mpath-zero-radius-crash.html": [
+ "a0528a27f5dbecc3ba08ad9c8710dd4fabcbc034",
+ [
+ null,
+ {}
+ ]
+ ],
"svg-style-animate-crash.html": [
"0ed2140617d2ef6dd0edd1f821de8410664e7bca",
[
@@ -136946,7 +136988,7 @@
]
],
"corner-shape-render-fuzzy.html": [
- "590e960830f595c7bc6f730d12d69e19c2ba0453",
+ "12cd2546bf484282a8cab7163c610b5b88d0b9f8",
[
"css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html?border-radius=30%&corner-shape=superellipse(-1.5)&box-shadow=10px%2010px%200%2010px%20black",
[
@@ -137078,32 +137120,6 @@
}
],
[
- "css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html?corner-shape=scoop&border-radius=20%&border-width=20px&border-top-color=rebeccapurple&border-bottom-color=blue",
- [
- [
- "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-shape=scoop&border-radius=20%&border-width=20px&border-top-color=rebeccapurple&border-bottom-color=blue",
- "=="
- ]
- ],
- {
- "fuzzy": [
- [
- null,
- [
- [
- 0,
- 200
- ],
- [
- 0,
- 550
- ]
- ]
- ]
- ]
- }
- ],
- [
"css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html?corner-shape=squircle&border-radius=25%&border-width=20px",
[
[
@@ -137364,32 +137380,6 @@
}
],
[
- "css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html?corner-top-left-shape=notch&border-radius=40px&border-width=10px&border-color=blue&border-left-color=yellow",
- [
- [
- "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=notch&border-radius=40px&border-width=10px&border-color=blue&border-left-color=yellow",
- "=="
- ]
- ],
- {
- "fuzzy": [
- [
- null,
- [
- [
- 0,
- 200
- ],
- [
- 0,
- 550
- ]
- ]
- ]
- ]
- }
- ],
- [
"css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html?corner-top-left-shape=scoop&corner-top-right-shape=scoop&border-radius=50%",
[
[
@@ -158634,7 +158624,7 @@
]
],
"contain-layout-stacking-context-001.html": [
- "4ec3bcee6fdf7d46f076ddf460c8081d9b19e8ee",
+ "5724fa1feac59c1aad1073f533c4d19645075a17",
[
null,
[
@@ -171964,6 +171954,19 @@
{}
]
],
+ "flex-aspect-ratio-img-vert-lr.html": [
+ "c8075af6798c1a89d120da9a865443ae7c894466",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square-only.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"flex-basis-001.html": [
"85e3bc69c435da542f520bc0e5b9b0afe911f0ad",
[
@@ -186266,6 +186269,19 @@
{}
]
],
+ "test-synthetic-bold-2.html": [
+ "b7930c172c2ad57e370aa576c10befb0ff59b404",
+ [
+ null,
+ [
+ [
+ "/css/css-fonts/test-synthetic-bold-2-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
"test-synthetic-bold.html": [
"c2337c0a3ce538a573eddec7e75ea191bc394ae0",
[
@@ -186305,6 +186321,19 @@
{}
]
],
+ "test-synthetic-italic-4.html": [
+ "fa1f815b4219dbfa355e0f9f67a54382af6a46bc",
+ [
+ null,
+ [
+ [
+ "/css/css-fonts/test-synthetic-italic-4-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
"test-synthetic-italic.html": [
"3f6764ecfa3696310b1395037afbd6aa9c38b853",
[
@@ -186543,6 +186572,19 @@
],
{}
]
+ ],
+ "gap-decorations-004.html": [
+ "c5d1e3f99cc2b0df01bfc364befb9288c619fc12",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/agnostic/gap-decorations-003-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
]
},
"flex": {
@@ -186831,6 +186873,32 @@
],
{}
]
+ ],
+ "flex-gap-decorations-023.html": [
+ "9a7c429a1a15719e3b4f799570e7789c18eafe4a",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/agnostic/gap-decorations-006-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "flex-gap-decorations-024.html": [
+ "66cb0e86062b6f218a1c3a14a114639d6858a222",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/agnostic/gap-decorations-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
]
},
"grid": {
@@ -187302,6 +187370,19 @@
{}
]
],
+ "grid-gap-decorations-039.html": [
+ "c03d482ac495fc6b29d742fda8682d2bb8060174",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/agnostic/gap-decorations-006-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"grid-gap-decorations-38.html": [
"8b87bcd4860ac50a1c2f3de98cec9599bebb77a3",
[
@@ -187537,6 +187618,32 @@
],
{}
]
+ ],
+ "multicol-gap-decorations-019.html": [
+ "c4f81bb95ea74e49f30f86fb5cf452094c801a4f",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/agnostic/gap-decorations-003-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "multicol-gap-intersections-018.html": [
+ "b8f8e1619a0dc25c6824cb2cd441635d93885e06",
+ [
+ null,
+ [
+ [
+ "/css/css-gaps/multicol/multicol-gap-decorations-018-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
]
}
},
@@ -206200,7 +206307,7 @@
]
],
"tiled-gradients.html": [
- "46cc842648138b30274b5ee3f18ce7c636e37462",
+ "b41dd70c9a9136123792caf02a0ea00dca03773d",
[
null,
[
@@ -206216,11 +206323,11 @@
[
[
0,
- 1
+ 255
],
[
0,
- 40000
+ 564
]
]
]
@@ -263418,6 +263525,19 @@
{}
]
],
+ "text-autospace-mixed-001.html": [
+ "9e35ce0f7299f28c4dd39b18a930ecfbffbc1d3b",
+ [
+ null,
+ [
+ [
+ "/css/css-text/text-autospace/text-autospace-mixed-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"text-autospace-no-001.html": [
"1ae62651be9de80c82525a3f845e29c5479f42be",
[
@@ -269566,6 +269686,19 @@
{}
]
],
+ "text-wrap-balance-word-spacing-001.html": [
+ "db27bba1285bfbbb7fd5382b3f08c813c1e9fe79",
+ [
+ null,
+ [
+ [
+ "/css/css-text/white-space/reference/text-wrap-balance-word-spacing-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"text-wrap-nowrap-001.html": [
"94437df6deeb3ddcf73d7732c046901cb4b3842d",
[
@@ -289992,7 +290125,7 @@
],
"compute-kind-widget-generated": {
"grouped-kind-of-widget-fallback-background-attachment-001.html": [
- "9014d18d1c26d859c7eb8af3d2e944978951ff70",
+ "a0fb71e50f6c6c2a316d61b31223ee237cd0a61d",
[
null,
[
@@ -290005,7 +290138,7 @@
]
],
"grouped-kind-of-widget-fallback-background-color-001.html": [
- "fe0383d668b5a72d87cd84ab25833e38ba2f8a55",
+ "bbd3adc955a59b1abd28a69dd2ee29d88dea8e6d",
[
null,
[
@@ -290018,7 +290151,7 @@
]
],
"grouped-kind-of-widget-fallback-border-block-start-color-001.html": [
- "4fff7054554ce860e4bd0fbf2d4211df12e57009",
+ "20dcf1ed2dc492847cd1640c1d5abee9d9375096",
[
null,
[
@@ -290031,7 +290164,7 @@
]
],
"grouped-kind-of-widget-fallback-border-block-start-style-001.html": [
- "fa5755115e1faae2eea320f5cb1e74a577944bea",
+ "04ab97e88178773044c33f9018988ddc9edba675",
[
null,
[
@@ -290044,7 +290177,7 @@
]
],
"grouped-kind-of-widget-fallback-border-block-start-width-001.html": [
- "971dedafecb1305cfd2937a45421921ca16331ce",
+ "af07f9d4832599986bd5317ad9b46dfc283228a9",
[
null,
[
@@ -290057,7 +290190,7 @@
]
],
"grouped-kind-of-widget-fallback-border-image-source-001.html": [
- "41750e4640448d0a6700820d9a2810f0879b56de",
+ "b16ee1c59b78191a2dca33c6637fe6a8ad3e9148",
[
null,
[
@@ -290070,7 +290203,7 @@
]
],
"grouped-kind-of-widget-fallback-border-top-color-001.html": [
- "297a9b002ff0a491fe0d058ef99710d93fe5a92a",
+ "ff636a3215afe8ce83e865e8eab92c73e708c9ca",
[
null,
[
@@ -290083,7 +290216,7 @@
]
],
"grouped-kind-of-widget-fallback-border-top-left-radius-001.html": [
- "d7cb20035a1dcfe0036000b5c3efbf121665b548",
+ "a8a8475d48c004427c3a240646985f444b85db8a",
[
null,
[
@@ -290096,7 +290229,7 @@
]
],
"grouped-kind-of-widget-fallback-border-top-style-001.html": [
- "79f00d03f99c05b399eb6459799a55ab5fdfdce4",
+ "1aeb5b4ac50a550dd22815f5ebd8062443762f57",
[
null,
[
@@ -290109,7 +290242,7 @@
]
],
"grouped-kind-of-widget-fallback-border-top-width-001.html": [
- "c5f91b24fdf451bc6b9d16ffa984ec1c534ff608",
+ "15f86e0fc0dfa22e8f9901355325dfb5bfca7487",
[
null,
[
@@ -290122,7 +290255,7 @@
]
],
"kind-of-widget-fallback-button-background-attachment-001.html": [
- "943bffb8116cc57c3b10d80ccbaf73a4e9c2cb5a",
+ "b59b8a498723d5835f1a791a8c3c9587eb978c7e",
[
null,
[
@@ -290135,7 +290268,7 @@
]
],
"kind-of-widget-fallback-button-background-clip-001.html": [
- "c7ca359bbe8a08af63c8f50e0a614dbc827b63c2",
+ "749baf0000bb1ad8b4d30e2ad5444ed21210261b",
[
null,
[
@@ -290148,7 +290281,7 @@
]
],
"kind-of-widget-fallback-button-background-color-001.html": [
- "8c47e5181e9a2e66c1d461d90e4864bd4bbab5a0",
+ "b1f20c6fa937f7f732eff297443c5c1800078fa6",
[
null,
[
@@ -290161,7 +290294,7 @@
]
],
"kind-of-widget-fallback-button-background-image-001.html": [
- "a42c425aa43966a6bc1266a152ff9cb8c5f95ede",
+ "f73c8fd2ef10c53e307eed6524734aaa0c2c644b",
[
null,
[
@@ -290174,7 +290307,7 @@
]
],
"kind-of-widget-fallback-button-background-origin-001.html": [
- "f0779d6c215537be1a6572eaaa7b67bbfda1af4d",
+ "6a534187ea55ff10bc590bcc614b65d62bb4b301",
[
null,
[
@@ -290187,7 +290320,7 @@
]
],
"kind-of-widget-fallback-button-background-position-001.html": [
- "f2b7cdb8fd23df42d7571573703a7fcb1b721335",
+ "124a9ddb563681cb51bcb4e73f6c4c5bc2dc2444",
[
null,
[
@@ -290200,7 +290333,7 @@
]
],
"kind-of-widget-fallback-button-background-size-001.html": [
- "434d6d1fa1583a9dc468f019c9e134b226b82c51",
+ "63d16c78b7505e6490e4e399b923d41c93f8773d",
[
null,
[
@@ -290213,7 +290346,7 @@
]
],
"kind-of-widget-fallback-button-border-block-end-color-001.html": [
- "093a8183cc695819dd67600f3d402ab75f0651a2",
+ "a7f75e5b60a37508d64bbc18b1b30b9ff5f711e7",
[
null,
[
@@ -290226,7 +290359,7 @@
]
],
"kind-of-widget-fallback-button-border-block-end-style-001.html": [
- "15489226d57c303ded6ab4765de9de3ecbeb9efc",
+ "89ab31d8c1f7f4d434e5e3d40608f19632d3bc5e",
[
null,
[
@@ -290239,7 +290372,7 @@
]
],
"kind-of-widget-fallback-button-border-block-end-width-001.html": [
- "788ad5d823a1ee3f53dab5def0ec64d681ee48dd",
+ "1cdc63c28f44dd6589e5ffdc4f6d36ff6b84a595",
[
null,
[
@@ -290252,7 +290385,7 @@
]
],
"kind-of-widget-fallback-button-border-block-start-color-001.html": [
- "55c6a9aa2b910c260a77572d6f05eaa8fb306e7e",
+ "8c55466fe0dd95d55d951a00a85d584e5d548ad2",
[
null,
[
@@ -290265,7 +290398,7 @@
]
],
"kind-of-widget-fallback-button-border-block-start-style-001.html": [
- "0ef69490551a02188ebb8ff796c2611092547d8e",
+ "7a11a855156cf8181ebd8c9bf9099c583bd6a149",
[
null,
[
@@ -290278,7 +290411,7 @@
]
],
"kind-of-widget-fallback-button-border-block-start-width-001.html": [
- "488f42da90da952d3cabe6bd4109174e863fae07",
+ "645d5a0eb3f0820e8fda87b9f9e6eb1d7a8ec353",
[
null,
[
@@ -290291,7 +290424,7 @@
]
],
"kind-of-widget-fallback-button-border-bottom-color-001.html": [
- "aa5278fb0670f27af0ff56b3bb36c56651cbf54f",
+ "d6bdf7f48b03196347ccfc4a4e7781ad01b7b22b",
[
null,
[
@@ -290304,7 +290437,7 @@
]
],
"kind-of-widget-fallback-button-border-bottom-left-radius-001.html": [
- "a0951f1640bbbcbbefc1ad8e99d6a8f8764aac6c",
+ "0900c217206e3b422cb389bb6aac55ebb9cf58a2",
[
null,
[
@@ -290317,7 +290450,7 @@
]
],
"kind-of-widget-fallback-button-border-bottom-right-radius-001.html": [
- "2835ac0e871e8310e944ea94478cb916577e8803",
+ "a366d93b6dc703e95a13b1d761955bcf693c562e",
[
null,
[
@@ -290330,7 +290463,7 @@
]
],
"kind-of-widget-fallback-button-border-bottom-style-001.html": [
- "dc30308780743f1fcf83269821acceb334593d19",
+ "3192d84b780ca026e3677f60a2d1b9a57ad23623",
[
null,
[
@@ -290343,7 +290476,7 @@
]
],
"kind-of-widget-fallback-button-border-bottom-width-001.html": [
- "2791471aace0ff5ecf543760ab780c447694f701",
+ "6ef714d07796055d5cc09ae04c073db79b6f80e2",
[
null,
[
@@ -290356,7 +290489,7 @@
]
],
"kind-of-widget-fallback-button-border-end-end-radius-001.html": [
- "47772cbd97d86646e4113d75e95f1065279d1a0b",
+ "3134736fe77e1d15692cb531ca77479c729b4d6a",
[
null,
[
@@ -290369,7 +290502,7 @@
]
],
"kind-of-widget-fallback-button-border-end-start-radius-001.html": [
- "f7760382a5c08021e2b3f809d10d54264a7fe627",
+ "e36c2bc0d90feffa54462b5de0eafa30c9009193",
[
null,
[
@@ -290382,7 +290515,7 @@
]
],
"kind-of-widget-fallback-button-border-image-outset-001.html": [
- "a7e8f830efc7bbaa846e499effb33024b1036b08",
+ "9bad5ec484e3914c481610049c2c6a3cfbdd17c1",
[
null,
[
@@ -290395,7 +290528,7 @@
]
],
"kind-of-widget-fallback-button-border-image-repeat-001.html": [
- "1a10a8ccee0e38f1cf4ded06d94c8af6cf037066",
+ "6479d01400f65ab8f8eef3db7bdb1a0e7478a79f",
[
null,
[
@@ -290408,7 +290541,7 @@
]
],
"kind-of-widget-fallback-button-border-image-slice-001.html": [
- "08a04755158bb1b91252e91ff8bed98e3cd49eb8",
+ "33a1733a316ae7ef6da4cd2ed52bc344ead7e4a3",
[
null,
[
@@ -290421,7 +290554,7 @@
]
],
"kind-of-widget-fallback-button-border-image-source-001.html": [
- "be16caf13d1598ae20056be7b8b6ddd68b683275",
+ "2a207f4fb684e79ab5458fc44a9cb09018fc571b",
[
null,
[
@@ -290434,7 +290567,7 @@
]
],
"kind-of-widget-fallback-button-border-image-width-001.html": [
- "808dae71b153fbeb57a4630c8ebcd3c4298dc882",
+ "723a93ee0e549da0ae536c78022fe67191ae9576",
[
null,
[
@@ -290447,7 +290580,7 @@
]
],
"kind-of-widget-fallback-button-border-inline-end-color-001.html": [
- "311edddcb71f0a4f03497eeb7003f0ad0d8dcae0",
+ "615d50da7cdcb01e9fc9ca945ff96a0d1c62e486",
[
null,
[
@@ -290460,7 +290593,7 @@
]
],
"kind-of-widget-fallback-button-border-inline-end-style-001.html": [
- "f744477d42c6550efe64e17ef9c4d6a480198351",
+ "f0fabab2c4999c21714b57ca889cffb42e248128",
[
null,
[
@@ -290473,7 +290606,7 @@
]
],
"kind-of-widget-fallback-button-border-inline-end-width-001.html": [
- "da133c031ea20a3c98bbb74ba3a9ceb795631d84",
+ "3349d4b09867c44cd45084f518485fc3c2eb03f0",
[
null,
[
@@ -290486,7 +290619,7 @@
]
],
"kind-of-widget-fallback-button-border-inline-start-color-001.html": [
- "a43218bc4664680bff4f0e5a1ed7838eaf5005e8",
+ "fc32cd80c382a1d1c62e4941654a3e28fff7adf0",
[
null,
[
@@ -290499,7 +290632,7 @@
]
],
"kind-of-widget-fallback-button-border-inline-start-style-001.html": [
- "92c9b6415408d724b56f91ceabe76da5f1d05af8",
+ "8875f5028d06bffe6e645676886c4ccf08b82873",
[
null,
[
@@ -290512,7 +290645,7 @@
]
],
"kind-of-widget-fallback-button-border-inline-start-width-001.html": [
- "1ee0c7bd7ddba3c34329fe7ef64901da7c1259a3",
+ "a3aa86edb0e37c0916448034a33b02ad076e4879",
[
null,
[
@@ -290525,7 +290658,7 @@
]
],
"kind-of-widget-fallback-button-border-left-color-001.html": [
- "017e7873a06d12294f43aec5b72f814e05ed0d83",
+ "3a2c50174035a3d2c0c2ae9acd789985002e944a",
[
null,
[
@@ -290538,7 +290671,7 @@
]
],
"kind-of-widget-fallback-button-border-left-style-001.html": [
- "48b4938c20be126b6af85eaaf2e78fb2d0311e2d",
+ "baeafa8acb7d065c7bf69d6076295c3435b01b34",
[
null,
[
@@ -290551,7 +290684,7 @@
]
],
"kind-of-widget-fallback-button-border-left-width-001.html": [
- "3f5432895680af77a4f0e74200668bbfe4dac078",
+ "a307b22b0b070bf7bccfa35464174f47fbc0afb0",
[
null,
[
@@ -290564,7 +290697,7 @@
]
],
"kind-of-widget-fallback-button-border-right-color-001.html": [
- "88b7c63c38c4f58c84f9ba28dc513ce27c2bcdae",
+ "706938b0b8ae7a18be635435e62fd20c59f5337b",
[
null,
[
@@ -290577,7 +290710,7 @@
]
],
"kind-of-widget-fallback-button-border-right-style-001.html": [
- "40d2d96386fdd7c8f946c8a31128c497ba4bf00f",
+ "ed70f909eb6759ed5210d6f818588f5fa79bb806",
[
null,
[
@@ -290590,7 +290723,7 @@
]
],
"kind-of-widget-fallback-button-border-right-width-001.html": [
- "32f15a8d97dbcb7c3bb20f87851b7b672e1b2529",
+ "a6c35bbb4e78b8704257b99ab73aa796e547bf39",
[
null,
[
@@ -290603,7 +290736,7 @@
]
],
"kind-of-widget-fallback-button-border-start-end-radius-001.html": [
- "3ce0ac5b6155726f88e0ce2bbb4022fe19a8fb25",
+ "a7d24a5dec23a0bd1a8aaef31efa23cc0b685c20",
[
null,
[
@@ -290616,7 +290749,7 @@
]
],
"kind-of-widget-fallback-button-border-start-start-radius-001.html": [
- "5b036a7d90f1bf10e3baaf4b42dec6df7ec702a7",
+ "952fea0b5fc0156ac6507c6c431d8f321b452128",
[
null,
[
@@ -290629,7 +290762,7 @@
]
],
"kind-of-widget-fallback-button-border-top-color-001.html": [
- "010779fb9c2e07f16689a4ef42b62ad0a3eeda7b",
+ "33f948ddca4dd91a06ec24528970a98b0adbb2c8",
[
null,
[
@@ -290642,7 +290775,7 @@
]
],
"kind-of-widget-fallback-button-border-top-left-radius-001.html": [
- "d3aa164c7b5927894e36f83f8813f6053e502e3b",
+ "4006c8917f967c63504b1fb33c558401114067f6",
[
null,
[
@@ -290655,7 +290788,7 @@
]
],
"kind-of-widget-fallback-button-border-top-right-radius-001.html": [
- "5396a1fa40cd9c9d42051aab3d015c6805c9bb1e",
+ "81bb03a7c160d2a89ea2dfe53663d19e55633377",
[
null,
[
@@ -290668,7 +290801,7 @@
]
],
"kind-of-widget-fallback-button-border-top-style-001.html": [
- "f998ab7c543ea579338b53c163e523fc1c3a9ab6",
+ "01e9012502b19961d69861eab8ac6d5fd3372dcd",
[
null,
[
@@ -290681,7 +290814,7 @@
]
],
"kind-of-widget-fallback-button-border-top-width-001.html": [
- "e6d9bc4dc8960c610d3358d42bae121b58153ba4",
+ "7f799fc7ce8fc9cbe34d99105e4bb16f100e2e98",
[
null,
[
@@ -290694,7 +290827,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-background-attachment-001.html": [
- "41549f7e02fddc39e51fbfeda4b02f4873e6b202",
+ "4b6bfe15dd3ff98de9442f52f424246a5c813df4",
[
null,
[
@@ -290707,7 +290840,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-background-clip-001.html": [
- "fa58286bad3d7fb3883cf6c36f263e14baff9f3e",
+ "bfc5774456042fa00901843374064d3a0237642d",
[
null,
[
@@ -290720,7 +290853,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-background-color-001.html": [
- "10fa53aefc89900c6a19567e8dca0e738d847562",
+ "d2317af36b9ad6e45bdad3c3297de56681086c8b",
[
null,
[
@@ -290733,7 +290866,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-background-image-001.html": [
- "2bed1e06f189524bdaeeae60608dbe6531020628",
+ "f31504cbe8301973e7779b765a45cf8178671af5",
[
null,
[
@@ -290746,7 +290879,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-background-origin-001.html": [
- "eef434bdfc8933e2b35250fb52cc91eb983380d3",
+ "f8db8f0ea9cf6409fa24d15dab869abc6b7bbb19",
[
null,
[
@@ -290759,7 +290892,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-background-position-001.html": [
- "574b0bbf497e8a388b562fb03bcf7fdd8d20eff9",
+ "acf6b88c742e7aab7ec5635358f8d8d9ea568eac",
[
null,
[
@@ -290772,7 +290905,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-background-size-001.html": [
- "969cc0945547181a0ef823bd0233e02bdf5377ad",
+ "8971c872a12e86e1e9e5b7a12d70fd934d85f4ee",
[
null,
[
@@ -290785,7 +290918,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-block-end-color-001.html": [
- "753e38989dd3a49fd5c0c4041064174d1b08975b",
+ "4c1ae3fbeceaa89114343663803c599d92270776",
[
null,
[
@@ -290798,7 +290931,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-block-end-style-001.html": [
- "be017cfad6515bf6e98bb731d0a2dce5c28701e2",
+ "38eb8fb219a006d828630150b666a5c3389c4b1f",
[
null,
[
@@ -290811,7 +290944,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-block-end-width-001.html": [
- "9945ba9e88a00ff851f18904bb9afcd4d751a8b5",
+ "ab789f98a9fa85fcd8c62fd145a9bf537f6a77ee",
[
null,
[
@@ -290824,7 +290957,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-block-start-color-001.html": [
- "9083e43b58c1ebdc2d9858288baf3ec47912af8c",
+ "837391fee6ce7e0bb96d4bf9998519d0bc5175f6",
[
null,
[
@@ -290837,7 +290970,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-block-start-style-001.html": [
- "c8cc1c48ef28d96917a234258b908552b0795542",
+ "9f3b2486662da72edb15e8a4d2db56c99f92a60b",
[
null,
[
@@ -290850,7 +290983,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-block-start-width-001.html": [
- "b9b2c17871cc9010e9f0405c58d4d71850ccd260",
+ "261d57a435ce81abecdbd700add283da8b8e553f",
[
null,
[
@@ -290863,7 +290996,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-bottom-color-001.html": [
- "3ba810605bd7362d2573ee9aa4893028df3eb567",
+ "6fa99c298c038da2e152ec7bf5c8a4db6f954b79",
[
null,
[
@@ -290876,7 +291009,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-bottom-left-radius-001.html": [
- "4ff233528925edba2be696344629bf1e96de9d0a",
+ "2cab5c01b6f2025a3f88a117eae51136a830371e",
[
null,
[
@@ -290889,7 +291022,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-bottom-right-radius-001.html": [
- "23b160fecbca239dbf8782928270dc346dc51c0f",
+ "846c25b3098a0cbd05701b26b8fcfd0b8caffcc1",
[
null,
[
@@ -290902,7 +291035,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-bottom-style-001.html": [
- "802009a38fbc3fb73d43f46852041d52652b919a",
+ "e8ebec731484bb9ec5afb84e7b332034329af332",
[
null,
[
@@ -290915,7 +291048,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-bottom-width-001.html": [
- "a2fed807a6778ba1833efb7fdebcba7238a41631",
+ "fb3a8a6d45016fcacf87d4fe0c5aa6246f9ab5c8",
[
null,
[
@@ -290928,7 +291061,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-end-end-radius-001.html": [
- "4dc6faa7ba95e86ae3450555a5a7f6737e556b85",
+ "76145df1290c835c16b0fe1b56d0bdd1ee364f85",
[
null,
[
@@ -290941,7 +291074,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-end-start-radius-001.html": [
- "214b378c6a6e7290cb70937cec278dc90d44a831",
+ "4ea4e523118ffd583944190fad375f1fa9d53ad5",
[
null,
[
@@ -290954,7 +291087,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-image-outset-001.html": [
- "5b81f19906289c9a74acc2e46187169876e0f1b5",
+ "8297811253d1dc39c1177f4c740cae15a7978ca6",
[
null,
[
@@ -290967,7 +291100,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-image-repeat-001.html": [
- "63a5dd35d963ee7e6e441b642a5030fc0567008a",
+ "db6b736bcc9d4f47e55cf6ed17838bd1daae21ee",
[
null,
[
@@ -290980,7 +291113,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-image-slice-001.html": [
- "28e187c0bf84406a01a07754609f95d5a6b72ed4",
+ "cb7a595109372c30c93c6af973e366307726105a",
[
null,
[
@@ -290993,7 +291126,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-image-source-001.html": [
- "aa8973edc321d9ac38cda186d6aea3c5f183b521",
+ "7cce9eae3aa1123d171987b48d3acbaad6cbbadd",
[
null,
[
@@ -291006,7 +291139,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-image-width-001.html": [
- "96d97f2b79a06717efc8ea950e2117c9a1cb3a14",
+ "4093ae6826dbc391a56d2592423be31c27171a76",
[
null,
[
@@ -291019,7 +291152,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-inline-end-color-001.html": [
- "6d321bb670b8ee1676add0af51447c7ffa225ea5",
+ "af6ff54551f8756213a7562f5dda5171fa3b9bfe",
[
null,
[
@@ -291032,7 +291165,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-inline-end-style-001.html": [
- "9662479817a0fa5ec7dfd46b86af0d45f4cdcca5",
+ "dabae07bc88860aabe1f1c6e87f79196a3fe52ca",
[
null,
[
@@ -291045,7 +291178,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-inline-end-width-001.html": [
- "471f545d3f15ac3475d34ef35278a80443f2cc34",
+ "c1c18c54019578478e0a0a4c8ff2e727f0161e52",
[
null,
[
@@ -291058,7 +291191,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-inline-start-color-001.html": [
- "581e177b9c921288aa6d2b8915a7e05b61ef9048",
+ "db19d600fc007b29ffb928feefa508c1d3e5fee4",
[
null,
[
@@ -291071,7 +291204,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-inline-start-style-001.html": [
- "f7e520bae422a465c7fd05c110c3c85bf030d157",
+ "accda3495d737a6a610cbbfd0045b100bc3a37fa",
[
null,
[
@@ -291084,7 +291217,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-inline-start-width-001.html": [
- "60cac2496ffd0c7cc58e532037a344a0a2d74c72",
+ "23fb94dab34bfc95b6f1f22e741496b434ab7af5",
[
null,
[
@@ -291097,7 +291230,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-left-color-001.html": [
- "7480e04004cb38a9ec1f1b8ffeefbac515c7e58f",
+ "d509c32a88da59a46904ed0d424e974dcbb627b8",
[
null,
[
@@ -291110,7 +291243,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-left-style-001.html": [
- "18bc6285232eed6f679d669c1165176722c6f149",
+ "45b1d507a1ef0bf8366038766517955b61ac7ee2",
[
null,
[
@@ -291123,7 +291256,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-left-width-001.html": [
- "dc72fa476dfaa90f307a8275fa3ea68018bc1fef",
+ "2c5157c27a42b9d4c556acacda7233b134e71b04",
[
null,
[
@@ -291136,7 +291269,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-right-color-001.html": [
- "c5e7c37c9e72a0b88adc60091b1c9f7fd168879b",
+ "30336fbf90f3ffb0fc6233004e2dc707da1d9e46",
[
null,
[
@@ -291149,7 +291282,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-right-style-001.html": [
- "0475f21ea1609e482c177e227cd26ffc3f1a555d",
+ "c5d06a8bb6a1d50ff59f89cf32301f72f6214a8f",
[
null,
[
@@ -291162,7 +291295,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-right-width-001.html": [
- "fac3bd44642b0a8898c5332a0ce08f2b3539f6c9",
+ "9a7cc1ea8d595027e399aaa7cd1b97dbc4802897",
[
null,
[
@@ -291175,7 +291308,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-start-end-radius-001.html": [
- "ae1f56cb3c2f47ca37a136150f28ab001cdc165f",
+ "8e9b9a16fb24e3b2473b1b5456861b2538532260",
[
null,
[
@@ -291188,7 +291321,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-start-start-radius-001.html": [
- "248d5d1fa7bd47cc8388456c1422943ecbd301ef",
+ "83cbefd70caaeecdefe4000c36fb7bcfeaeee57a",
[
null,
[
@@ -291201,7 +291334,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-top-color-001.html": [
- "f2ff51f59a04e43735e6194e4ad2b5b7b46040d4",
+ "6b655ccbd50ea6ca10fbcb3afa69d960f8ccfa08",
[
null,
[
@@ -291214,7 +291347,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-top-left-radius-001.html": [
- "7fb186ad4e06d1a6c0eb432a4610828367ce56e3",
+ "18eef6e7545e4b51c938d5fe345b02a71fd7da89",
[
null,
[
@@ -291227,7 +291360,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-top-right-radius-001.html": [
- "1ca05f1d71044bdf8936d12fe7ef83253c3ccf30",
+ "82912edcce452a5f813bcea10184f8b2903df97c",
[
null,
[
@@ -291240,7 +291373,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-top-style-001.html": [
- "2d32236ac2efaa63695872fc6b9f828593cf9cbd",
+ "3d7cbc9ae0e955eba7bc0684d36768b20ed365b7",
[
null,
[
@@ -291253,7 +291386,7 @@
]
],
"kind-of-widget-fallback-checkbox-input-border-top-width-001.html": [
- "5b00a003babbf7313b0d0bcaa9df471c5cb1ae5f",
+ "14a73fe4087c5ec9c76158eb3269b1d44f1cfea2",
[
null,
[
@@ -291266,7 +291399,7 @@
]
],
"kind-of-widget-fallback-color-input-background-attachment-001.html": [
- "037ddd59690596ab6b6b5d0ebf0206aedad96de2",
+ "5c9fb8b536850ece4eae55d919113ece47f1611c",
[
null,
[
@@ -291279,7 +291412,7 @@
]
],
"kind-of-widget-fallback-color-input-background-clip-001.html": [
- "94e61e2aad3e74b3e3e3c5dfb3aa0d0b1daa4c94",
+ "0599ffb11a3c9faf2acd45274ab1a04c165aec91",
[
null,
[
@@ -291292,7 +291425,7 @@
]
],
"kind-of-widget-fallback-color-input-background-color-001.html": [
- "1b0db18cbc4b15e4d7bab9a10f9552192b6b3324",
+ "e88d1bffe08ddbb5bbee62b204185a244dce1724",
[
null,
[
@@ -291305,7 +291438,7 @@
]
],
"kind-of-widget-fallback-color-input-background-image-001.html": [
- "f97373e565593b27caf2323ba31e6f48ee4b17f5",
+ "0fa3b0db39841303ef78e6dd0d5a53f78a30deb3",
[
null,
[
@@ -291318,7 +291451,7 @@
]
],
"kind-of-widget-fallback-color-input-background-origin-001.html": [
- "47696508af73d908645a1e42c0456ee186f3fed7",
+ "3a9a135a19d231ecdfc6ec481ba044d2456d9200",
[
null,
[
@@ -291331,7 +291464,7 @@
]
],
"kind-of-widget-fallback-color-input-background-position-001.html": [
- "af721240bec45704b109f4626c01d58e45173aff",
+ "87c3a46f33e6610a1de97ddbcadb15b15c1f2afe",
[
null,
[
@@ -291344,7 +291477,7 @@
]
],
"kind-of-widget-fallback-color-input-background-size-001.html": [
- "4bb65c7407699027965cf6e6ebdfbc8d3cfdc888",
+ "f3ca4f40ce75999745836b9de6f09b935e4fd26b",
[
null,
[
@@ -291357,7 +291490,7 @@
]
],
"kind-of-widget-fallback-color-input-border-block-end-color-001.html": [
- "8ff350e9f1cdb408483f401d688ee02c8a31262a",
+ "5c6d2f80463aa7973b1a086d4914f5e2ef2c7614",
[
null,
[
@@ -291370,7 +291503,7 @@
]
],
"kind-of-widget-fallback-color-input-border-block-end-style-001.html": [
- "bea3ff80c7db07be3b012c2818a8cf2b4224769e",
+ "45779263bc49a2daf017ce846fcdf7bb742c885a",
[
null,
[
@@ -291383,7 +291516,7 @@
]
],
"kind-of-widget-fallback-color-input-border-block-end-width-001.html": [
- "59acffe2d36673764218b68db9e2c2013d4221c4",
+ "06e66332b16564d864dbfeaae8d4881c29fecc5b",
[
null,
[
@@ -291396,7 +291529,7 @@
]
],
"kind-of-widget-fallback-color-input-border-block-start-color-001.html": [
- "0b5b3795a0325552f7db94ea336cf517b8a3294d",
+ "85415ce666b5f23504f930d0de69e8e467340c10",
[
null,
[
@@ -291409,7 +291542,7 @@
]
],
"kind-of-widget-fallback-color-input-border-block-start-style-001.html": [
- "829a843774928d3487dae7ff7ef15242759e9817",
+ "3524a34d9f25ec6e3f1b47a6c3cab2e7aad863e0",
[
null,
[
@@ -291422,7 +291555,7 @@
]
],
"kind-of-widget-fallback-color-input-border-block-start-width-001.html": [
- "ac9400cd1cf2c9756a057e115e9f3b7103ed8d0a",
+ "4570e2c756406407f994e76b86f544429caed4b4",
[
null,
[
@@ -291435,7 +291568,7 @@
]
],
"kind-of-widget-fallback-color-input-border-bottom-color-001.html": [
- "faebedab7028f6c5a3b49fc17b9633efe63ac4aa",
+ "0df9897da15c4ca05fb43920f33b4482cbf2699f",
[
null,
[
@@ -291448,7 +291581,7 @@
]
],
"kind-of-widget-fallback-color-input-border-bottom-left-radius-001.html": [
- "806ecc50f475efdf6421b741bb8e36a4ec476afb",
+ "86cfa777847e5f174ffea4c38e01eb9322cfa1e2",
[
null,
[
@@ -291461,7 +291594,7 @@
]
],
"kind-of-widget-fallback-color-input-border-bottom-right-radius-001.html": [
- "c87d1346b4604fe8e9cf4cb34c708d0dbe7f5539",
+ "6b42ce1d9e6b6cf9066307a83dd052cf71d3a866",
[
null,
[
@@ -291474,7 +291607,7 @@
]
],
"kind-of-widget-fallback-color-input-border-bottom-style-001.html": [
- "fba2865ffc31a1e8487e78b8c6a1433f8e70a519",
+ "f7f36d1c1f20d48a3b07691e84133d51500f074a",
[
null,
[
@@ -291487,7 +291620,7 @@
]
],
"kind-of-widget-fallback-color-input-border-bottom-width-001.html": [
- "2a2a8bfe5a9d20e19d2c736449b8a1685a55bec4",
+ "645760c38ece307ce25a054c2e59751a64bff99e",
[
null,
[
@@ -291500,7 +291633,7 @@
]
],
"kind-of-widget-fallback-color-input-border-end-end-radius-001.html": [
- "5c010e62bf4dcecd770ff8bed4dfc386a08ef58f",
+ "62c42401ec08496507c537df9e4718a24266e1a6",
[
null,
[
@@ -291513,7 +291646,7 @@
]
],
"kind-of-widget-fallback-color-input-border-end-start-radius-001.html": [
- "68bfbce543283ba2976b277f88a863360f024b05",
+ "8ceccb56cfcb810e94995c8d99ef01e8e8596b84",
[
null,
[
@@ -291526,7 +291659,7 @@
]
],
"kind-of-widget-fallback-color-input-border-image-outset-001.html": [
- "bca778b71d03a2f5861dcb994b62bd5fcd82b1b9",
+ "38ca4ba2bd5aea11e085fd9f94e8a6020875f91c",
[
null,
[
@@ -291539,7 +291672,7 @@
]
],
"kind-of-widget-fallback-color-input-border-image-repeat-001.html": [
- "85e1d882a04437bd3b82c5e2ca582bcfff691ea0",
+ "f3520c0992de0638cfa56352395011bc8fde1472",
[
null,
[
@@ -291552,7 +291685,7 @@
]
],
"kind-of-widget-fallback-color-input-border-image-slice-001.html": [
- "30e474d0c063ded5e5b6a0b15d8fa3b22d50a885",
+ "afdacffc080e92e457d86261c4d8feaf12b72672",
[
null,
[
@@ -291565,7 +291698,7 @@
]
],
"kind-of-widget-fallback-color-input-border-image-source-001.html": [
- "c216ae2b225a9ce6507f0d79da82d44080078315",
+ "20a2c2e4efbcaa04d015bad43bc692b07dc3a6da",
[
null,
[
@@ -291578,7 +291711,7 @@
]
],
"kind-of-widget-fallback-color-input-border-image-width-001.html": [
- "3df9737837b9377e42b80cdf9d2ee4109165f8e2",
+ "1db93d94af2a1ad53f1cbe6ee0ddae444cd2826a",
[
null,
[
@@ -291591,7 +291724,7 @@
]
],
"kind-of-widget-fallback-color-input-border-inline-end-color-001.html": [
- "83be04c2f972bf45a1acb25b22a678175d9b8e2f",
+ "bd72810a849d24807e330fd59385c978f9960dba",
[
null,
[
@@ -291604,7 +291737,7 @@
]
],
"kind-of-widget-fallback-color-input-border-inline-end-style-001.html": [
- "1c5535abcda0ba0616d890c72810986aa883201d",
+ "6977d876243666a383f065724ebea519c567eef1",
[
null,
[
@@ -291617,7 +291750,7 @@
]
],
"kind-of-widget-fallback-color-input-border-inline-end-width-001.html": [
- "6391197f2456d762e9b850406dd9601fbb9cdf54",
+ "da8498a9e8053d5ed81e635f888dabb3d79711b1",
[
null,
[
@@ -291630,7 +291763,7 @@
]
],
"kind-of-widget-fallback-color-input-border-inline-start-color-001.html": [
- "cebbf7d982eae0449695209394e09a1460d056ab",
+ "5f3991350b78f3fbfc00a77b04c5f5e8a647f0b6",
[
null,
[
@@ -291643,7 +291776,7 @@
]
],
"kind-of-widget-fallback-color-input-border-inline-start-style-001.html": [
- "a440fd8d95bc43f65e50bb8dfd6d01e17d420002",
+ "244f5a6033fa95719ec3e28af67cd43c843b1271",
[
null,
[
@@ -291656,7 +291789,7 @@
]
],
"kind-of-widget-fallback-color-input-border-inline-start-width-001.html": [
- "655d24e5da52f428e8c66ceaf3834505aa8e21db",
+ "31519748c3c61af518ecf5d42f4def054f6f2b9f",
[
null,
[
@@ -291669,7 +291802,7 @@
]
],
"kind-of-widget-fallback-color-input-border-left-color-001.html": [
- "8abbbf03bc385f820f86e77663219289c42288ef",
+ "fa21d8ed0e9a181f11e97d423d92df8a2f758543",
[
null,
[
@@ -291682,7 +291815,7 @@
]
],
"kind-of-widget-fallback-color-input-border-left-style-001.html": [
- "dde7f7f98adc46ff1182e1db1e20b6f37b216b0a",
+ "43fec0cd2124b437e2e9a0cedc74e67fd41ab9b7",
[
null,
[
@@ -291695,7 +291828,7 @@
]
],
"kind-of-widget-fallback-color-input-border-left-width-001.html": [
- "3c27b2b477816a9c0fb9112d248c4b69dd0a3854",
+ "4bb8fea629681b3edae9c1955eee4df32e0c5f9e",
[
null,
[
@@ -291708,7 +291841,7 @@
]
],
"kind-of-widget-fallback-color-input-border-right-color-001.html": [
- "1b79863409c9b116cf18c49692e5ea73ab359276",
+ "f3a3bb73d58c8e189d9eeaadbd372f56c1aec16b",
[
null,
[
@@ -291721,7 +291854,7 @@
]
],
"kind-of-widget-fallback-color-input-border-right-style-001.html": [
- "c6b385361db2e4da0bb2f16b32500a4a5e87fc24",
+ "64b9845b015c8b41fd64d0c89ba6247037855ca8",
[
null,
[
@@ -291734,7 +291867,7 @@
]
],
"kind-of-widget-fallback-color-input-border-right-width-001.html": [
- "bf5acce4fa37ac7438f149613dea57ba8b16e512",
+ "ab157332555a55aa0a783dd45739ba34f6734614",
[
null,
[
@@ -291747,7 +291880,7 @@
]
],
"kind-of-widget-fallback-color-input-border-start-end-radius-001.html": [
- "c82d6b00904e87acb2569366717bd6fc9f6a04de",
+ "d19cc74987d450c998f00858198950d92fd3d84e",
[
null,
[
@@ -291760,7 +291893,7 @@
]
],
"kind-of-widget-fallback-color-input-border-start-start-radius-001.html": [
- "b450d99db8b2272a98874a4fd1067033f991c269",
+ "b48e6eefda10a59f784d53edf23f22a4d43259d0",
[
null,
[
@@ -291773,7 +291906,7 @@
]
],
"kind-of-widget-fallback-color-input-border-top-color-001.html": [
- "77f24f2cd3ae725c43622152e6efb3e6de5b534b",
+ "cf2fd34e0c4f8d2c603babce95e7841b460d51d6",
[
null,
[
@@ -291786,7 +291919,7 @@
]
],
"kind-of-widget-fallback-color-input-border-top-left-radius-001.html": [
- "fcc1482c2beafe464114518f7155c7931310bec6",
+ "e2a435a75e42736decd461203fdd893a962fe305",
[
null,
[
@@ -291799,7 +291932,7 @@
]
],
"kind-of-widget-fallback-color-input-border-top-right-radius-001.html": [
- "0e94f1831d2e04079cc71c5d75fddc5045976e1e",
+ "205878bb65a20d82f978b139cfaad095e8f63bd2",
[
null,
[
@@ -291812,7 +291945,7 @@
]
],
"kind-of-widget-fallback-color-input-border-top-style-001.html": [
- "668c961b3b4f1f4e251938155a6b6941cd7d94d9",
+ "600a3b4437ef25ed322b856acf9b91e5d8dde771",
[
null,
[
@@ -291825,7 +291958,7 @@
]
],
"kind-of-widget-fallback-color-input-border-top-width-001.html": [
- "b2f9bce5383001ebe9a2ad604597dda3fe8fda1b",
+ "5bf3a5d709f877fad0617e69ddecbcb103ea61ac",
[
null,
[
@@ -291838,7 +291971,7 @@
]
],
"kind-of-widget-fallback-input-button-background-attachment-001.html": [
- "05e6a848344f162c7ee4c151181cfbd4669de581",
+ "a8b4be34510e807e94b703ee0508f1e467c12b95",
[
null,
[
@@ -291851,7 +291984,7 @@
]
],
"kind-of-widget-fallback-input-button-background-clip-001.html": [
- "e75d29b5a619ed4e99ec2a5782f9fc3f520f7614",
+ "f9d9a6401554e7f8604dcea9ac45e0fdc6439b7b",
[
null,
[
@@ -291864,7 +291997,7 @@
]
],
"kind-of-widget-fallback-input-button-background-color-001.html": [
- "304d71b2347bb66e2443b27d0b4688ba5cd02634",
+ "140b3ffdf5653ae59e2ef4ae2cc92dbde5dba4a6",
[
null,
[
@@ -291877,7 +292010,7 @@
]
],
"kind-of-widget-fallback-input-button-background-image-001.html": [
- "9b316f28309978f390ea8d276ddb4a8824e10e06",
+ "1f4bb847e2d882447e9c098a931d60ee0d8ecd4a",
[
null,
[
@@ -291890,7 +292023,7 @@
]
],
"kind-of-widget-fallback-input-button-background-origin-001.html": [
- "c43c1a570aa92deb81eefad46b0422333bbeda15",
+ "d15cd394e37c22009d56c789cf6490c074c9828c",
[
null,
[
@@ -291903,7 +292036,7 @@
]
],
"kind-of-widget-fallback-input-button-background-position-001.html": [
- "6c1a4e6a5e1a7ab6b65177d774b6f8828c14fc56",
+ "f2224b8fa14ff5be505634a51b25a56b3816d544",
[
null,
[
@@ -291916,7 +292049,7 @@
]
],
"kind-of-widget-fallback-input-button-background-size-001.html": [
- "d449b0ffbbeed8f7bcc9fd4bfae95c6718588448",
+ "388dddfc88b85a68aecc02a3889467b345b2450b",
[
null,
[
@@ -291929,7 +292062,7 @@
]
],
"kind-of-widget-fallback-input-button-border-block-end-color-001.html": [
- "606af2926ffe81e2ba934a6e49846a60394f3e0c",
+ "3ed119028a980756bcfbfd753d17157cd0a36e35",
[
null,
[
@@ -291942,7 +292075,7 @@
]
],
"kind-of-widget-fallback-input-button-border-block-end-style-001.html": [
- "74d1a5b72bc910d632a8176d3b5c1b1e43ecb963",
+ "00dd504da33b4c4323e9d818466bc75c0a530b35",
[
null,
[
@@ -291955,7 +292088,7 @@
]
],
"kind-of-widget-fallback-input-button-border-block-end-width-001.html": [
- "6e2a7238b6c064e61264b35f1f46685f7f4dbb01",
+ "c7ef2f5015ea243a5ec617ac7eb3817e392225a4",
[
null,
[
@@ -291968,7 +292101,7 @@
]
],
"kind-of-widget-fallback-input-button-border-block-start-color-001.html": [
- "ad65e9ebf9b8d80f98cf9b43932a8d3b6d542e2e",
+ "e42d79814a3496ecd517f9e472645ad87e2af139",
[
null,
[
@@ -291981,7 +292114,7 @@
]
],
"kind-of-widget-fallback-input-button-border-block-start-style-001.html": [
- "4919f98f82b2292e4230bc2cf35312ee328d788a",
+ "a45cd4d22735609ede559e2c1252a8b3e6adcd6b",
[
null,
[
@@ -291994,7 +292127,7 @@
]
],
"kind-of-widget-fallback-input-button-border-block-start-width-001.html": [
- "83f2233984fc43d60da5ac160a284da4ee8129de",
+ "8c29d21349164af83d23ef7bdcbb29650bab03fc",
[
null,
[
@@ -292007,7 +292140,7 @@
]
],
"kind-of-widget-fallback-input-button-border-bottom-color-001.html": [
- "714dc1d0e3c207ee7c55c116ac3cd3a0fff0cbae",
+ "27d31c73b22d53178edc52147c98600bc2e852fe",
[
null,
[
@@ -292020,7 +292153,7 @@
]
],
"kind-of-widget-fallback-input-button-border-bottom-left-radius-001.html": [
- "3c0a765f0b92899c124177cf2d3ab5fbc7ad8ff8",
+ "163c35255f14b56752779c2565dad6a319355b93",
[
null,
[
@@ -292033,7 +292166,7 @@
]
],
"kind-of-widget-fallback-input-button-border-bottom-right-radius-001.html": [
- "24f945a598e0449deb9d826488105e157f03e926",
+ "cb6140cd6bf877ea8c555d416f239eefe1cc567c",
[
null,
[
@@ -292046,7 +292179,7 @@
]
],
"kind-of-widget-fallback-input-button-border-bottom-style-001.html": [
- "cfa81219bfe268c7d9c1105244e98a7ac146bf50",
+ "f764b51c226d044ac7cabb378fe8ea6fa922a4e8",
[
null,
[
@@ -292059,7 +292192,7 @@
]
],
"kind-of-widget-fallback-input-button-border-bottom-width-001.html": [
- "8ecabf69b45e7fb7b1fc752a9d5662b0e265a24a",
+ "ce72d35fd6eea894d8ffe0e9acb42cdc577a972b",
[
null,
[
@@ -292072,7 +292205,7 @@
]
],
"kind-of-widget-fallback-input-button-border-end-end-radius-001.html": [
- "6ab5c8900cf33dc968c83f2b24dc17f60949ffb1",
+ "83ed19a015b605403d8ea7db9ddbbef211ef6e76",
[
null,
[
@@ -292085,7 +292218,7 @@
]
],
"kind-of-widget-fallback-input-button-border-end-start-radius-001.html": [
- "a72a92fd716341724a063a57c887fa7cbe924993",
+ "1736dc02522516210aa96983eef87bb270e564dd",
[
null,
[
@@ -292098,7 +292231,7 @@
]
],
"kind-of-widget-fallback-input-button-border-image-outset-001.html": [
- "639467f8db262598d1a7d27926deeff55f33345b",
+ "edba9a7f6def497a22ead388f005d3c65a00f103",
[
null,
[
@@ -292111,7 +292244,7 @@
]
],
"kind-of-widget-fallback-input-button-border-image-repeat-001.html": [
- "838fac9a23d0d995c1f67efe23d664220094d97a",
+ "82435bc62fb576e87b4af2147b965fca6f87520b",
[
null,
[
@@ -292124,7 +292257,7 @@
]
],
"kind-of-widget-fallback-input-button-border-image-slice-001.html": [
- "61c619784685200175f2c0131ed921d307b7ec3d",
+ "fc186f8f696a2c9f5153769e61915f4baf0cec89",
[
null,
[
@@ -292137,7 +292270,7 @@
]
],
"kind-of-widget-fallback-input-button-border-image-source-001.html": [
- "4489b64db6786038d1a561490425531b8b93b446",
+ "68d086ad08ba2f39ea853998f3176c645d898504",
[
null,
[
@@ -292150,7 +292283,7 @@
]
],
"kind-of-widget-fallback-input-button-border-image-width-001.html": [
- "678061664c7e90e7267eff920b2bc6c9cbfd05c0",
+ "7ead8364937571f6ebb8b8c00c6a189e284189d3",
[
null,
[
@@ -292163,7 +292296,7 @@
]
],
"kind-of-widget-fallback-input-button-border-inline-end-color-001.html": [
- "380bcb13f1cd5020459e9d9fc97c6fa31f5f8476",
+ "3fed4e14e334e7a32eafe58063c1c38d89992afe",
[
null,
[
@@ -292176,7 +292309,7 @@
]
],
"kind-of-widget-fallback-input-button-border-inline-end-style-001.html": [
- "872b41571c2c36ae8aa39d5adfdc69d72cd3bef9",
+ "a30c9afc06e7fa16dbf25f8474a6c4586e2b1b05",
[
null,
[
@@ -292189,7 +292322,7 @@
]
],
"kind-of-widget-fallback-input-button-border-inline-end-width-001.html": [
- "38219fddb46ff79c2ec53a4e57d22a0d8ceb7b84",
+ "a0ce8df191f5d2cb3fd0826a3af8af7bb84ca07b",
[
null,
[
@@ -292202,7 +292335,7 @@
]
],
"kind-of-widget-fallback-input-button-border-inline-start-color-001.html": [
- "38a3236a834f367d8228f44e08bf88a5e32a2285",
+ "7b59f6e1a7f6517cf20dbfb7c726858e7b33fa2a",
[
null,
[
@@ -292215,7 +292348,7 @@
]
],
"kind-of-widget-fallback-input-button-border-inline-start-style-001.html": [
- "06ab7d7d78d0fc76cc5ed4b6b63225e3b4b2c664",
+ "0103a4c18decdf77c6e00b545b0a91f7f51c1611",
[
null,
[
@@ -292228,7 +292361,7 @@
]
],
"kind-of-widget-fallback-input-button-border-inline-start-width-001.html": [
- "0c60632f21c0627bc866e1ab7cb394d072b15a62",
+ "cc260fa2f0517ca8486221060c3e7c5e7120bfcf",
[
null,
[
@@ -292241,7 +292374,7 @@
]
],
"kind-of-widget-fallback-input-button-border-left-color-001.html": [
- "f93deb35766e4d1d7255586a14da84222debfa6c",
+ "151d1f0895ad583a21cbd6a12e93ce6d094f5944",
[
null,
[
@@ -292254,7 +292387,7 @@
]
],
"kind-of-widget-fallback-input-button-border-left-style-001.html": [
- "108eeddada3e4c8d03d1b612ceefb4bd9873fb4b",
+ "78f19fbe711de2c2b3de1ec43e1d37b30d46596b",
[
null,
[
@@ -292267,7 +292400,7 @@
]
],
"kind-of-widget-fallback-input-button-border-left-width-001.html": [
- "7974b08208eaf3a0cb3bbaa1f90f39824f26dd37",
+ "d5859229d88473417dd4d3f675fa64859cefc3fb",
[
null,
[
@@ -292280,7 +292413,7 @@
]
],
"kind-of-widget-fallback-input-button-border-right-color-001.html": [
- "a17eeb60e0a589f9e5e8e0aa3a42fe155a9f2250",
+ "52e35938f88fda1b7d69f943d49f44c9c6a9a7dc",
[
null,
[
@@ -292293,7 +292426,7 @@
]
],
"kind-of-widget-fallback-input-button-border-right-style-001.html": [
- "1986e476ec9934c12f9519fa7be2500006672511",
+ "2b786e6c6fb0c00ffdccde68ba6b5777fe93745d",
[
null,
[
@@ -292306,7 +292439,7 @@
]
],
"kind-of-widget-fallback-input-button-border-right-width-001.html": [
- "c8bcc9d81b3ecfd3cd2dfcb850f1c360e77cf04e",
+ "a6b7334b6127e5b4560c24d16e849809241499eb",
[
null,
[
@@ -292319,7 +292452,7 @@
]
],
"kind-of-widget-fallback-input-button-border-start-end-radius-001.html": [
- "3b0be6f40fd0d960bc3a7c8a4cab6bf27d982541",
+ "49c5351496b84990a24cdda5843a187547fd60d7",
[
null,
[
@@ -292332,7 +292465,7 @@
]
],
"kind-of-widget-fallback-input-button-border-start-start-radius-001.html": [
- "b82cda0208e4795012f2496d1fd8423a807f4326",
+ "2233464f32cc0ee5dacbef4646d4234fe66963e3",
[
null,
[
@@ -292345,7 +292478,7 @@
]
],
"kind-of-widget-fallback-input-button-border-top-color-001.html": [
- "4fca510a4221cae5aa12234c60af59513d77f5a7",
+ "f359ba37989ec20e4d7deb479d6ce6ae531deead",
[
null,
[
@@ -292358,7 +292491,7 @@
]
],
"kind-of-widget-fallback-input-button-border-top-left-radius-001.html": [
- "dfd4c6629b664c1f0835b35e5b3710f419c2a0df",
+ "6beb44fb4b5c736f1afe573fec56ad41764d9bf7",
[
null,
[
@@ -292371,7 +292504,7 @@
]
],
"kind-of-widget-fallback-input-button-border-top-right-radius-001.html": [
- "1933b74a298e63f56f21135c467cb9b44bd59c19",
+ "ab1fdf0b3fda10aeabe2f86cb2cb8cd2139f4678",
[
null,
[
@@ -292384,7 +292517,7 @@
]
],
"kind-of-widget-fallback-input-button-border-top-style-001.html": [
- "6980ca830216c21250d116831e5c4cce4e41c08f",
+ "dcd086965bd46cd2cdd756bef89f70958dd21227",
[
null,
[
@@ -292397,7 +292530,7 @@
]
],
"kind-of-widget-fallback-input-button-border-top-width-001.html": [
- "6b2e1cf068a3c98f70ccfed88d116e1a5e4d007d",
+ "299119e313fc3ae5eb4f4591f5780d96f6d3c9dd",
[
null,
[
@@ -292410,7 +292543,7 @@
]
],
"kind-of-widget-fallback-input-reset-background-attachment-001.html": [
- "b9fb6febf930d093a7ef5028c445808486faa247",
+ "43ebed337e4da36aa61d29a0c5bff12c4a3897c1",
[
null,
[
@@ -292423,7 +292556,7 @@
]
],
"kind-of-widget-fallback-input-reset-background-clip-001.html": [
- "90462d775da9c308581ad505922a0ecf7292a54d",
+ "39d5a3b637d5b6557a4239242f0f3b1e53625056",
[
null,
[
@@ -292436,7 +292569,7 @@
]
],
"kind-of-widget-fallback-input-reset-background-color-001.html": [
- "c0a5da0b8251c38f28f357812be08f4e624c874a",
+ "995daf855ae5ce35daad937cf72b0ba52ffdf65f",
[
null,
[
@@ -292449,7 +292582,7 @@
]
],
"kind-of-widget-fallback-input-reset-background-image-001.html": [
- "0a100c7c0cf88faf84a97ddc3c99780d69a0ced5",
+ "0961af41c3e67f79b4a76b3d4239aef5fbd8970f",
[
null,
[
@@ -292462,7 +292595,7 @@
]
],
"kind-of-widget-fallback-input-reset-background-origin-001.html": [
- "154d9ab34b66628bf140deda4799babc818ec400",
+ "e56f1fb356275eb3b943a1133bd1fd786a534d0a",
[
null,
[
@@ -292475,7 +292608,7 @@
]
],
"kind-of-widget-fallback-input-reset-background-position-001.html": [
- "33a3dd00bcb21d19150a983a0bd99ae3f2da3e42",
+ "c93c42f0f2c70e55c07b50da54ae0832c3aa4b07",
[
null,
[
@@ -292488,7 +292621,7 @@
]
],
"kind-of-widget-fallback-input-reset-background-size-001.html": [
- "d03d5134531fe0dd0cd0d3018317ff547d0974b6",
+ "b18105e0d98f90d4ce98b71b3cf417d83c24e532",
[
null,
[
@@ -292501,7 +292634,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-block-end-color-001.html": [
- "63fdf45922618862da26c1efe75d24d444eb4963",
+ "538dd9c72a32b2a8a438e76ca3e00f02b3b0ddb3",
[
null,
[
@@ -292514,7 +292647,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-block-end-style-001.html": [
- "3a853e4e749dd4f83abf11801ba8cb229d4b7878",
+ "a8f293833421b3ba412cae3d0fd319377a720ad0",
[
null,
[
@@ -292527,7 +292660,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-block-end-width-001.html": [
- "3a6f44ef6e89970a81153c383cf9c10cd995c8ab",
+ "2cfb7d91d2cc683944ba9a0fa620ad30daa3ad36",
[
null,
[
@@ -292540,7 +292673,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-block-start-color-001.html": [
- "4f2fbfe0d4197376453d6cd4dcab4d73678b6b37",
+ "88fd4be0c2ff4ff2e096a2001defde8cdc658e25",
[
null,
[
@@ -292553,7 +292686,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-block-start-style-001.html": [
- "1987c725c79c0985436e254454d48f7d0619531a",
+ "cf8c0a1f2ed5533c394643a2d9a40f4b83ff437b",
[
null,
[
@@ -292566,7 +292699,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-block-start-width-001.html": [
- "a72230de5f052daf1e9712b60200015850c18b61",
+ "addf41480640c6adde5c16a25e434e76d22f4abf",
[
null,
[
@@ -292579,7 +292712,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-bottom-color-001.html": [
- "927bf0aa4d13cd954f6cff6aa19fcd62fa85757c",
+ "8fbb4bcebf4da19f63cc4c834e4c67a233bb841b",
[
null,
[
@@ -292592,7 +292725,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-bottom-left-radius-001.html": [
- "9614696277d42f16cbaeaf1433425c83911173e7",
+ "d46f1ba70cfff11eb922f0e3142d5b45bec4a605",
[
null,
[
@@ -292605,7 +292738,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-bottom-right-radius-001.html": [
- "4e89aa5254f9b4b9623389b35dffea063e644b06",
+ "88f0626e24612076e61c09ee2fc9b7ba32f7b0d1",
[
null,
[
@@ -292618,7 +292751,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-bottom-style-001.html": [
- "f8182df09ca15374d913ae2275a441ffcf5e567c",
+ "2f51dee2e54b0ff50cbe512577198d6fb4f49724",
[
null,
[
@@ -292631,7 +292764,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-bottom-width-001.html": [
- "cfbb9045a8407c0799d7ac495d3176407665fb79",
+ "ccd5bc2f1ccdfd897e5d3cd185ba31ab42f3b712",
[
null,
[
@@ -292644,7 +292777,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-end-end-radius-001.html": [
- "964a2a4364f7bd2d0a6bf2245ff0293b60db7a46",
+ "27fbc42c818cc8a64bcf67ce5fd87698c9050a9c",
[
null,
[
@@ -292657,7 +292790,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-end-start-radius-001.html": [
- "64f6c522713c1692d3b06b4b077a6c0343937fc7",
+ "073968152f70b42328a24f0004e0bc2b6c82865d",
[
null,
[
@@ -292670,7 +292803,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-image-outset-001.html": [
- "8dd06a6bb8dbbb90f2b86b72c5533c82fec99a61",
+ "2feb3a30627719fcd43dada2ebec73f30b36f948",
[
null,
[
@@ -292683,7 +292816,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-image-repeat-001.html": [
- "c736c0095fc76184eada9e38f978dcb30b94e773",
+ "d85aed6e4bc95de84fafdc67dc961e7d01a1487b",
[
null,
[
@@ -292696,7 +292829,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-image-slice-001.html": [
- "efb6806e4903f2b7ea5cbfc905ec5a470f520256",
+ "d4cc3e531a5d5713bd8eaaba150ebf8c3ce29728",
[
null,
[
@@ -292709,7 +292842,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-image-source-001.html": [
- "bcd7eb12d662c5b21320ba3239631bd2dadf915f",
+ "d8c6c10090978c06522a70e19d6c6cd10ea73c66",
[
null,
[
@@ -292722,7 +292855,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-image-width-001.html": [
- "f895ef4087a9de4d352c881a46d2bbe2202ef67f",
+ "bacf3c746403cb0f1fdea7642b646eb027bd1762",
[
null,
[
@@ -292735,7 +292868,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-inline-end-color-001.html": [
- "5159892dfb7608b150d9e73b210feda38d306d1c",
+ "97cf2d688b98ea0dd3ee1940bd8a8bcce21bd308",
[
null,
[
@@ -292748,7 +292881,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-inline-end-style-001.html": [
- "8936f7f284c84d6e491876b4af3203ccbbdb8ed1",
+ "dd336d4a7c617491cfb37a25afb72eb65ba20699",
[
null,
[
@@ -292761,7 +292894,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-inline-end-width-001.html": [
- "cc3ea2d302ac80887c0e3641c297166042bc4747",
+ "fc8972a5fa72769bf203343d986a976e67654b48",
[
null,
[
@@ -292774,7 +292907,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-inline-start-color-001.html": [
- "54b7b6f9343ab9d985b54a7426dae161cedb36cb",
+ "5de402c8823a45a37a4f76967dd9ba4b5fae8a52",
[
null,
[
@@ -292787,7 +292920,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-inline-start-style-001.html": [
- "30160971492ec694e3fcb6171d46fc58e42e4c3a",
+ "537913dc3c4e7c54c19327a1b4b1a759420bbac4",
[
null,
[
@@ -292800,7 +292933,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-inline-start-width-001.html": [
- "79e99fd4ea4e6a65dc5f2e706c9484848f1d6cea",
+ "10bf633bd062092a7139e075c75b16345b0f88fc",
[
null,
[
@@ -292813,7 +292946,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-left-color-001.html": [
- "853a5c69e4ac8b8b01ca71a3a72db5121b843f80",
+ "ca26f45ce392a1bb8cfed3327e5adf6a0db62b34",
[
null,
[
@@ -292826,7 +292959,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-left-style-001.html": [
- "05d021252e00a1d4b6e19ef351932f8707b8da64",
+ "5519b40c7af433b6b62e185c3bb4986af6c99595",
[
null,
[
@@ -292839,7 +292972,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-left-width-001.html": [
- "d21376e9d99bf9d17a27291fe4a0eb7b034f13a5",
+ "927914f4ec7668604eb62e702eaa0a97d794d994",
[
null,
[
@@ -292852,7 +292985,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-right-color-001.html": [
- "5e3f926f296f10f2cc85755e71c1bb5c88acd08f",
+ "7bee834f1ebaee18ddb1b5e8cf5bca027d522d77",
[
null,
[
@@ -292865,7 +292998,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-right-style-001.html": [
- "40ccb52ce91f95c0f14da643bc4bb4f0759489bb",
+ "a29929b4b29eb37911374df7ca027f73ada2dd11",
[
null,
[
@@ -292878,7 +293011,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-right-width-001.html": [
- "12efb162693553c63377738b99d2a2723c51c2d4",
+ "5ef459ce0c26710ee677cdd206233998f16ce2c3",
[
null,
[
@@ -292891,7 +293024,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-start-end-radius-001.html": [
- "b16e23ec6ad77a869ff4d25fd92a9d63dc9b44f7",
+ "9aa137351ded50f06456a27ca92f1675ef64bf33",
[
null,
[
@@ -292904,7 +293037,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-start-start-radius-001.html": [
- "1c0808fe06475f1b5a8b4cbbc0cf6411faaaff5d",
+ "95f9b2b0429578bbd72b53bf810c5dc4aa41cbec",
[
null,
[
@@ -292917,7 +293050,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-top-color-001.html": [
- "7aed5db0f803ecc5d8a42ef2fa3fc8d3e9774c57",
+ "8a816f55bffa7a752b8274dff9975b74c99e1213",
[
null,
[
@@ -292930,7 +293063,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-top-left-radius-001.html": [
- "ea0bf0cccc4e1b05a428b2069df4173c469af3a3",
+ "05c81a48e92a7769c233e4c60c64df7b1cdcc18c",
[
null,
[
@@ -292943,7 +293076,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-top-right-radius-001.html": [
- "c1412c8770ebec9acc96c2da5ccf096f8db0ad5d",
+ "5b07ed2576b91d162a10a65a525797de1c6228c6",
[
null,
[
@@ -292956,7 +293089,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-top-style-001.html": [
- "0f1bf8d0d86514457220697942f8e1408e16e1f2",
+ "c926b488e06139d74b599413340db3e41e4143d4",
[
null,
[
@@ -292969,7 +293102,7 @@
]
],
"kind-of-widget-fallback-input-reset-border-top-width-001.html": [
- "386cf7dda43182b3cdd6c0a39805d862a0a5cddf",
+ "1e3a31a2e9c2390442eb03bb34604e9bccdb71ec",
[
null,
[
@@ -292982,7 +293115,7 @@
]
],
"kind-of-widget-fallback-input-search-background-attachment-001.html": [
- "d53b0a0dfac2b408c6b5d9fe373cb38d20992107",
+ "911dca9f8815a70cd5e2e4652408c2f260861186",
[
null,
[
@@ -292995,7 +293128,7 @@
]
],
"kind-of-widget-fallback-input-search-background-clip-001.html": [
- "8064c69d3e4f4df6630de1e1a1813b7e8546beaf",
+ "284badd4c233b9f98529447525d860d70e26f501",
[
null,
[
@@ -293008,7 +293141,7 @@
]
],
"kind-of-widget-fallback-input-search-background-color-001.html": [
- "6e0015bfe51fbfb9bdf7c291f065b5b43270200e",
+ "325ead5b6e93bf9a7feb65f974d6c22b4c613ff2",
[
null,
[
@@ -293021,7 +293154,7 @@
]
],
"kind-of-widget-fallback-input-search-background-image-001.html": [
- "329d5d585dcd6212725c7e5f3185e1615318ef1f",
+ "06b8e4e04f1fd5ca1f9c7360c14a8b7760b98f4b",
[
null,
[
@@ -293034,7 +293167,7 @@
]
],
"kind-of-widget-fallback-input-search-background-origin-001.html": [
- "f1c6d7a70ab9ffe5f896b1c5fd70ce65b719409c",
+ "74b380faabdf4436e83cf992eedaa5fb9dba1769",
[
null,
[
@@ -293047,7 +293180,7 @@
]
],
"kind-of-widget-fallback-input-search-background-position-001.html": [
- "2a017ebf548fea36ade2040f39363991c923387f",
+ "57b65113b23b08f6d07268b1266d5abff1a12c10",
[
null,
[
@@ -293060,7 +293193,7 @@
]
],
"kind-of-widget-fallback-input-search-background-size-001.html": [
- "9ca67c3143d89d1259317a49de57e6f9b5e4ac98",
+ "d648568f55330eda99e9ef5582bfd5b82a890e13",
[
null,
[
@@ -293073,7 +293206,7 @@
]
],
"kind-of-widget-fallback-input-search-border-block-end-color-001.html": [
- "ae5949952a050547d2230c17086e7027892cc084",
+ "2860496498ef44aa45811f3f5e06f16b736d4f7d",
[
null,
[
@@ -293086,7 +293219,7 @@
]
],
"kind-of-widget-fallback-input-search-border-block-end-style-001.html": [
- "178fa9ecc5426edd2628f190693c4e4a29c4a5c3",
+ "15a63a8957bb0d4c4b97119d9df783909669798c",
[
null,
[
@@ -293099,7 +293232,7 @@
]
],
"kind-of-widget-fallback-input-search-border-block-end-width-001.html": [
- "c002ceb94c5f63e6331202e4a306e2d998115f39",
+ "ad17089560906d1e61444f7dd5c2b557ff0f7b1d",
[
null,
[
@@ -293112,7 +293245,7 @@
]
],
"kind-of-widget-fallback-input-search-border-block-start-color-001.html": [
- "f3e080bce4e7d07e7aaa96fb9b2fdaa56553726d",
+ "8c9e63b0541c051d0c51b4a633707d0b7d071fea",
[
null,
[
@@ -293125,7 +293258,7 @@
]
],
"kind-of-widget-fallback-input-search-border-block-start-style-001.html": [
- "c3e19726c169534676d9cc66bb66eb7c8b80d748",
+ "48adb0e78f9df4362b2fcbca220c33e7139f7679",
[
null,
[
@@ -293138,7 +293271,7 @@
]
],
"kind-of-widget-fallback-input-search-border-block-start-width-001.html": [
- "5fd9d3db76d7b3860cbcc0571038d44a43c1d02c",
+ "8b313231e42f7ddae81848d1d337d95f19666d57",
[
null,
[
@@ -293151,7 +293284,7 @@
]
],
"kind-of-widget-fallback-input-search-border-bottom-color-001.html": [
- "ab1537b86a2945570ed24185532af8af38a81136",
+ "1347c458314a834bc1b3d28a14e98a25ac276a6a",
[
null,
[
@@ -293164,7 +293297,7 @@
]
],
"kind-of-widget-fallback-input-search-border-bottom-left-radius-001.html": [
- "aefa937afa1dfe089fccb7f67d3dcceb7c9a7bbd",
+ "1cd42ac8eb4ebd47fa2b05c4adceb2246f01fc13",
[
null,
[
@@ -293177,7 +293310,7 @@
]
],
"kind-of-widget-fallback-input-search-border-bottom-right-radius-001.html": [
- "4b3d8a9e634a2551e341d81678ca0201f405788e",
+ "7d0d64ea9954320638425e4fb5ec0eed2e18a148",
[
null,
[
@@ -293190,7 +293323,7 @@
]
],
"kind-of-widget-fallback-input-search-border-bottom-style-001.html": [
- "16dd06bbbdf7f6532d72c65379826f6137005710",
+ "2037b56abb3aebe810a82fa9e3e87c6e45422b48",
[
null,
[
@@ -293203,7 +293336,7 @@
]
],
"kind-of-widget-fallback-input-search-border-bottom-width-001.html": [
- "c80db6d7d9e4d70ab2590c86a7ca5e843c0efe59",
+ "31f98720f4aff79ff1611d58af1961f29170ed29",
[
null,
[
@@ -293216,7 +293349,7 @@
]
],
"kind-of-widget-fallback-input-search-border-end-end-radius-001.html": [
- "f8bc199302bd1d2a6c7b1f72ee8e8fc383b11700",
+ "ad7f35eb2107d99998c6ded9fc36c1a145a25569",
[
null,
[
@@ -293229,7 +293362,7 @@
]
],
"kind-of-widget-fallback-input-search-border-end-start-radius-001.html": [
- "42160f62a5256452f6f16c852fd285fde948ecbb",
+ "08fa61827b89f54787c960451729e8befd4096ab",
[
null,
[
@@ -293242,7 +293375,7 @@
]
],
"kind-of-widget-fallback-input-search-border-image-outset-001.html": [
- "40d25b1edff9f82084b0c094ab1cb4db52b261be",
+ "fa178302057a223be4531e01192a8217b2818a2b",
[
null,
[
@@ -293255,7 +293388,7 @@
]
],
"kind-of-widget-fallback-input-search-border-image-repeat-001.html": [
- "230f25ae17948052647c53b3686cd5a8d0459d6d",
+ "e14d0311a83aba3d84073124d45378d91a166e4b",
[
null,
[
@@ -293268,7 +293401,7 @@
]
],
"kind-of-widget-fallback-input-search-border-image-slice-001.html": [
- "94da0fbf880c43b6312ee448bcc4a5ef7d0cf47d",
+ "f7d29c1f7880b6ca49eed432c763a238b61a7311",
[
null,
[
@@ -293281,7 +293414,7 @@
]
],
"kind-of-widget-fallback-input-search-border-image-source-001.html": [
- "3cb7e337d65e9d5b33604a682f835fa1190e78e9",
+ "657e730fe48d7aaca1ba712912563849b565f4c2",
[
null,
[
@@ -293294,7 +293427,7 @@
]
],
"kind-of-widget-fallback-input-search-border-image-width-001.html": [
- "46701af4a6cd15ea285ee8cb7858917637a919ca",
+ "e9589f5472c0cb33ef85ced654794d4f11698bbe",
[
null,
[
@@ -293307,7 +293440,7 @@
]
],
"kind-of-widget-fallback-input-search-border-inline-end-color-001.html": [
- "71a3b84d238d93a0492cad1c07a8f16d9aa87af0",
+ "33d69fcd061c5ad359794684ae9d03dcda5b52f1",
[
null,
[
@@ -293320,7 +293453,7 @@
]
],
"kind-of-widget-fallback-input-search-border-inline-end-style-001.html": [
- "1b8b5ec9b94f1a687737f2d0af280992d37b0e5c",
+ "8ca3ff6298ec0e89136e0bfa8180ca7a20d65086",
[
null,
[
@@ -293333,7 +293466,7 @@
]
],
"kind-of-widget-fallback-input-search-border-inline-end-width-001.html": [
- "de872e42b2b9f1c7cad341686c5b7426f5d3ed1a",
+ "5c462d268f686ac30b940d63e9d83bb95b9cffe6",
[
null,
[
@@ -293346,7 +293479,7 @@
]
],
"kind-of-widget-fallback-input-search-border-inline-start-color-001.html": [
- "da6adf0fe6d97925e2f19e2afa390d504b0bab37",
+ "8c58c105a290608f52ef77da12d5cb069f8b3c8a",
[
null,
[
@@ -293359,7 +293492,7 @@
]
],
"kind-of-widget-fallback-input-search-border-inline-start-style-001.html": [
- "f59675121b3393b05389a33a792959df503d6582",
+ "245907128ab01e0da97a85b6ad373572ec3052aa",
[
null,
[
@@ -293372,7 +293505,7 @@
]
],
"kind-of-widget-fallback-input-search-border-inline-start-width-001.html": [
- "3ebe95ac585d30556c71f9764faa80525c588467",
+ "a2784d9eaea63c35fcf017c8618c3a3c9fd78ded",
[
null,
[
@@ -293385,7 +293518,7 @@
]
],
"kind-of-widget-fallback-input-search-border-left-color-001.html": [
- "e726b2c7bcc16bff7e810599424446e257e1023a",
+ "bf21a38cd42dd6b6281c049bd684e41acfa40b48",
[
null,
[
@@ -293398,7 +293531,7 @@
]
],
"kind-of-widget-fallback-input-search-border-left-style-001.html": [
- "d2a5ecc473b1e33e69ff35e44dcf7557b220ece0",
+ "2a5417d4b620a25060bc5f10722f5a13230ec6a3",
[
null,
[
@@ -293411,7 +293544,7 @@
]
],
"kind-of-widget-fallback-input-search-border-left-width-001.html": [
- "69d28457bf091e46a7a49b066be96fe218389012",
+ "fd7a1f6b6a25229f288d6c8b39668a303741f69a",
[
null,
[
@@ -293424,7 +293557,7 @@
]
],
"kind-of-widget-fallback-input-search-border-right-color-001.html": [
- "b43d4bf967b610ce94b6ea420b8017bdea9af1df",
+ "a84754ba7304c8d3d5c1a0e8a936d0a052b8af1b",
[
null,
[
@@ -293437,7 +293570,7 @@
]
],
"kind-of-widget-fallback-input-search-border-right-style-001.html": [
- "ca417688ec2ec8a31c39c1379a859cc25784d26f",
+ "de6f10484754e1b8b26aa0f0228d399f2b172583",
[
null,
[
@@ -293450,7 +293583,7 @@
]
],
"kind-of-widget-fallback-input-search-border-right-width-001.html": [
- "2bc8eeebc30a523e01901c28d97480068d698d4c",
+ "4762bc153d78324690a8392121a83682af2c6241",
[
null,
[
@@ -293463,7 +293596,7 @@
]
],
"kind-of-widget-fallback-input-search-border-start-end-radius-001.html": [
- "2ac01619970ea99a12d2971c7d9592eb21b68948",
+ "11889b394c0dff13f64f4c78cb6fc86e990e354c",
[
null,
[
@@ -293476,7 +293609,7 @@
]
],
"kind-of-widget-fallback-input-search-border-start-start-radius-001.html": [
- "3f8b4b0543cf6a01169e3c643a0e0629350debbb",
+ "fb207f19a824a7a5fa839cb82061bdaae7e08387",
[
null,
[
@@ -293489,7 +293622,7 @@
]
],
"kind-of-widget-fallback-input-search-border-top-color-001.html": [
- "8b5297848fcce3af96e4d40f3a6434102e514680",
+ "38c07c7703ca5a644e59ae4293bac2aeffbaf9f5",
[
null,
[
@@ -293502,7 +293635,7 @@
]
],
"kind-of-widget-fallback-input-search-border-top-left-radius-001.html": [
- "dd8e0dfce982cbf443a4fd6e1a52e069fcf43036",
+ "1cd441266a1abf5821eba2537812da536b1e1e93",
[
null,
[
@@ -293515,7 +293648,7 @@
]
],
"kind-of-widget-fallback-input-search-border-top-right-radius-001.html": [
- "c927e0e2d6a86345181d515381c492f9e1abe97f",
+ "e244b8de925c6f1496060a3fc6a137ab0df1c27c",
[
null,
[
@@ -293528,7 +293661,7 @@
]
],
"kind-of-widget-fallback-input-search-border-top-style-001.html": [
- "589890cfa7f924db8e2f2ffbb555f1523b819209",
+ "4414a847781bda62cce3d9303551dc05bd5de5ff",
[
null,
[
@@ -293541,7 +293674,7 @@
]
],
"kind-of-widget-fallback-input-search-border-top-width-001.html": [
- "eeddc094005b643b14685ee06606ec9666e0b055",
+ "cb018429848d23bb60e9ec72421e85480236e32c",
[
null,
[
@@ -293554,7 +293687,7 @@
]
],
"kind-of-widget-fallback-input-search-text-background-attachment-001.html": [
- "486ce905afd9cc590d473b29d2585923372c2196",
+ "40f2da5082e711c61bdbc7f99d5bc3ca9b6d57ee",
[
null,
[
@@ -293567,7 +293700,7 @@
]
],
"kind-of-widget-fallback-input-search-text-background-clip-001.html": [
- "53cedda191010f74219ae9d669d73c11bb0a9c79",
+ "290511b0e229104b78d8f7c80aceb3f93df66dbe",
[
null,
[
@@ -293580,7 +293713,7 @@
]
],
"kind-of-widget-fallback-input-search-text-background-color-001.html": [
- "6f8a67cc3872881cbb78f6bdffd07222d2606bf3",
+ "97305b34fca31a9bf39d399f0db0187125073b89",
[
null,
[
@@ -293593,7 +293726,7 @@
]
],
"kind-of-widget-fallback-input-search-text-background-image-001.html": [
- "1c10148b1a82a709061507ff5c42c12e872e0949",
+ "3efa1ab29b99d04d6c52023c1aada8e4fba0557a",
[
null,
[
@@ -293606,7 +293739,7 @@
]
],
"kind-of-widget-fallback-input-search-text-background-origin-001.html": [
- "3e00d61eafb4bc5060586bded107f985db527361",
+ "1e13905038fb8505b8902cee4e826948c0797947",
[
null,
[
@@ -293619,7 +293752,7 @@
]
],
"kind-of-widget-fallback-input-search-text-background-position-001.html": [
- "f9840aa3457d1b3b9bcc94b5dd46af52fde11661",
+ "f0cf01dd2009708eaf60328acb19a3299e5e4e90",
[
null,
[
@@ -293632,7 +293765,7 @@
]
],
"kind-of-widget-fallback-input-search-text-background-size-001.html": [
- "c302576ca6cd0f3e5f75375d6072f3c6fd79ec8e",
+ "3e3632c737b5ac3b031beb145659480cf3ba61ee",
[
null,
[
@@ -293645,7 +293778,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-block-end-color-001.html": [
- "abc70b93d4ca84de9354c7060f64c3b5139020d3",
+ "0f5968ef409f972238eb8fc288df46128591b8e3",
[
null,
[
@@ -293658,7 +293791,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-block-end-style-001.html": [
- "f11cfdf5842ee1b0802733652225dcc1becc4394",
+ "f6f5f0f2e0014efe66cd84ba63a47f82f5f6543e",
[
null,
[
@@ -293671,7 +293804,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-block-end-width-001.html": [
- "8e62dd67eb2a53d6d7ad983e7718eec6d742f868",
+ "f028f5576c34ee6eb3d316d372c99a8bd066fb60",
[
null,
[
@@ -293684,7 +293817,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-block-start-color-001.html": [
- "b9bd3c77f82be35b4dbdff44ed6a12cd1b966ed0",
+ "992f334d72674bde86c9043aac68f6f08e309824",
[
null,
[
@@ -293697,7 +293830,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-block-start-style-001.html": [
- "3efa0dd44e9987ea2d64fb1f995246df8a077cea",
+ "ccb08a77fc636422493423f2ef5f7c4708219cd3",
[
null,
[
@@ -293710,7 +293843,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-block-start-width-001.html": [
- "0dac444494d2943f08172fe8a89032bad35ff3e4",
+ "5bb9c235e83cc3db0261f05b1676bc5bd800b632",
[
null,
[
@@ -293723,7 +293856,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-bottom-color-001.html": [
- "f2ccaeff67a7c4c45bdf83580132ec9ce5f233b8",
+ "a1656b36a59cf33e8c50f22c6b14a46456718b95",
[
null,
[
@@ -293736,7 +293869,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-bottom-left-radius-001.html": [
- "bfc1309921e29f7d3f7a7ca0602c05986e07e8b7",
+ "bbbbe8ccd1944680c73bd6f58af559085b41c9d0",
[
null,
[
@@ -293749,7 +293882,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-bottom-right-radius-001.html": [
- "0c483b257087003aa37ef533f7a5fb7254ebcfea",
+ "33221a62bec27929a0abe21a8fb0c8f6e322e2c1",
[
null,
[
@@ -293762,7 +293895,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-bottom-style-001.html": [
- "1def857d9358b1c83032edb555990a905de0fe0b",
+ "5313555002abac81dfa1c35a18821d52f7392f16",
[
null,
[
@@ -293775,7 +293908,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-bottom-width-001.html": [
- "09c8a87044f75651d9a8f28c573c72d71e0e5c9e",
+ "fa493f2893956a2850877fe1d13c86c05465e7d3",
[
null,
[
@@ -293788,7 +293921,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-end-end-radius-001.html": [
- "bf7e28e8521f77034891967a94d24f2d23f2b765",
+ "ebc5a8e4fe82e0447160c41a1458d3bd5eb43346",
[
null,
[
@@ -293801,7 +293934,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-end-start-radius-001.html": [
- "0eff3fbe0a3dc7fbfb4a2ad43e1c776647f39f98",
+ "f73e0869847c64a14e1cf44e8a8955b37a590ab5",
[
null,
[
@@ -293814,7 +293947,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-image-outset-001.html": [
- "d9650e66315fae792a16f477d5be048c3d0176b2",
+ "7a403153d5fb4f1a6a2682a8177b763b38934266",
[
null,
[
@@ -293827,7 +293960,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-image-repeat-001.html": [
- "243e767b321061a252947b6f04809a246cbc6167",
+ "31d1505117f1fb3c4d05765437f712603959f49e",
[
null,
[
@@ -293840,7 +293973,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-image-slice-001.html": [
- "f31b493d31043531f49d22c2a2d3bcf0fa1feac0",
+ "e6f1dc7b8c2a226a4c68f26b8fb57e1ab8855e65",
[
null,
[
@@ -293853,7 +293986,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-image-source-001.html": [
- "83470516ba7e587afff7dc0136999b0a2633b20d",
+ "123b675a41022cb62fbc8101f7cc49978f6e18a9",
[
null,
[
@@ -293866,7 +293999,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-image-width-001.html": [
- "eb21200046e6536aba04f32603cab6fe3b09d853",
+ "9fc8c9fa38d85a38f72ed8d0edc20b8f8b5e8ee9",
[
null,
[
@@ -293879,7 +294012,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-inline-end-color-001.html": [
- "5f85e5f4edab4e73e10c3de7ee12d248d882ceb4",
+ "b96306b95c6ca579b607f41db833e463200a6ae3",
[
null,
[
@@ -293892,7 +294025,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-inline-end-style-001.html": [
- "c2194d2dca61d8651c496df3c461131280d69df0",
+ "9b3b9e7e9a0a0cb0c6b206a7e2d3d7e6250d2bd4",
[
null,
[
@@ -293905,7 +294038,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-inline-end-width-001.html": [
- "c14fb780ae1ac5d66859e7d247c771a472208bb6",
+ "0ba901e8d9093ba37700b60533a0a5fc923ae180",
[
null,
[
@@ -293918,7 +294051,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-inline-start-color-001.html": [
- "b71a6139b533ddcc05941ec2785954b42efd834b",
+ "00d50757af3b9a83ec8767364dd0796a98548e17",
[
null,
[
@@ -293931,7 +294064,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-inline-start-style-001.html": [
- "a8c8774a1e96de1a5f3129725814ec95840d0ed5",
+ "a94a906667180e455e45a048b7763076dc7839d6",
[
null,
[
@@ -293944,7 +294077,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-inline-start-width-001.html": [
- "819e9a59f00e797271f6beb8bfdc5d5a8e1e8efd",
+ "50363c0e6c3791462768ab83258747330b40ef58",
[
null,
[
@@ -293957,7 +294090,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-left-color-001.html": [
- "c3b471b1e57fb8c3edc7bc1b2751b6bf4476b6e8",
+ "a5ceb9a0ff3f0b04acb19fcfe42f1a5335e9e6c0",
[
null,
[
@@ -293970,7 +294103,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-left-style-001.html": [
- "c4e2e052139ed5bede1fbb98ef7d459559bcc82b",
+ "d6272f64cc933912510616c620c5db0b01604a52",
[
null,
[
@@ -293983,7 +294116,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-left-width-001.html": [
- "3a1ae1222c4188858130833a1050a5d266b136dd",
+ "4e40302c1ade00798ee8bce808afb5052c2da889",
[
null,
[
@@ -293996,7 +294129,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-right-color-001.html": [
- "2e060fb348368763f42630392b6c33cf4d45b14a",
+ "997ae97cd896d45ce3037804c4e300c9daa91053",
[
null,
[
@@ -294009,7 +294142,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-right-style-001.html": [
- "83edfc0db112ab8b27937d299268832dfcd080b6",
+ "68ac37ad6e56919017958fe11f5f4653040a2fad",
[
null,
[
@@ -294022,7 +294155,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-right-width-001.html": [
- "9ee39c21e9431f08487fa638c1d97b2eef53aa3e",
+ "791ae9fd279a80e29b104dbfbdc9f0d38cbc0b9b",
[
null,
[
@@ -294035,7 +294168,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-start-end-radius-001.html": [
- "c757447008ea4f61d18d21fbfc8a9a5718a22ed6",
+ "68abb7d7acdb1647d60964755c1dc4b08ade5b62",
[
null,
[
@@ -294048,7 +294181,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-start-start-radius-001.html": [
- "3e5aa5bbf2c1cd7027015cbfa2a486cb6b2a4926",
+ "81e4b50f9b792256c88322efc612a9598556bfcd",
[
null,
[
@@ -294061,7 +294194,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-top-color-001.html": [
- "4c4649efe5f423b05b6ffc9db6030d6b6dbe3faa",
+ "d8699b0859322ffb43c3f64ef6cc0733ffcfa43a",
[
null,
[
@@ -294074,7 +294207,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-top-left-radius-001.html": [
- "92920351a2cb281e3539dde5d409a64322128c67",
+ "2f3b9c8a3978dadedff6662e2ec9f4b334f766d2",
[
null,
[
@@ -294087,7 +294220,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-top-right-radius-001.html": [
- "87950497ae32ed5f6d912b6a7dbb89dbb3e27a7a",
+ "afaf8984158e5199869ded238bd217fe18be7866",
[
null,
[
@@ -294100,7 +294233,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-top-style-001.html": [
- "a4ebf221a230094e3f378661111f4133036c8751",
+ "3452dd0eb99861954962e0c22ba91058e9f8746f",
[
null,
[
@@ -294113,7 +294246,7 @@
]
],
"kind-of-widget-fallback-input-search-text-border-top-width-001.html": [
- "68ce10c8cd4c7fed2f5679dd79805a143175d114",
+ "6f9a1536a055736d4f639cea0f98728a49035661",
[
null,
[
@@ -294126,7 +294259,7 @@
]
],
"kind-of-widget-fallback-input-submit-background-attachment-001.html": [
- "7e8ec3a65c5253050008d3bc03c910638adfd9a6",
+ "71bec2840c937d9933b2ea50364d764aa8926bd7",
[
null,
[
@@ -294139,7 +294272,7 @@
]
],
"kind-of-widget-fallback-input-submit-background-clip-001.html": [
- "cb4535bde03328fc4878b5a28ae97963caa53e1b",
+ "dc0a349173bac1552d2750be90e8c5736df0e901",
[
null,
[
@@ -294152,7 +294285,7 @@
]
],
"kind-of-widget-fallback-input-submit-background-color-001.html": [
- "2b1c68bdb264e92f7aa9035294122c3cd9605391",
+ "e4a4f8b755b5d9b1c4ee068e45c142666165ca5f",
[
null,
[
@@ -294165,7 +294298,7 @@
]
],
"kind-of-widget-fallback-input-submit-background-image-001.html": [
- "7eb82beccc482600a28991c4bc12d310586e1fd7",
+ "9b3ea10643a716bf07d2148ac63a83f8e1c3be5b",
[
null,
[
@@ -294178,7 +294311,7 @@
]
],
"kind-of-widget-fallback-input-submit-background-origin-001.html": [
- "79d86020bc1dd314760965431ddf27e5b942f41b",
+ "e706b20f2803cde3f68a91eecd30fc632c77910d",
[
null,
[
@@ -294191,7 +294324,7 @@
]
],
"kind-of-widget-fallback-input-submit-background-position-001.html": [
- "b4c0e49ee34669c403dd15d1fcc7064313915318",
+ "20ddf83fae578579d0c0710b8e57a60526437faa",
[
null,
[
@@ -294204,7 +294337,7 @@
]
],
"kind-of-widget-fallback-input-submit-background-size-001.html": [
- "3e8b21ee4c88004e35b1ac9c52837f094b2c8411",
+ "5b8425b72957fe4c666a3b47aad01916fa9313da",
[
null,
[
@@ -294217,7 +294350,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-block-end-color-001.html": [
- "d148c7825480d2d1d73d411e46dba8e504264527",
+ "164ded5c0032becee4e070eb36c2c2e56927caa4",
[
null,
[
@@ -294230,7 +294363,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-block-end-style-001.html": [
- "656613f4f08d328a0c45813abdb250d3072e9150",
+ "2b77013140dc7a4b580e55adfd8ea2e7c41eba89",
[
null,
[
@@ -294243,7 +294376,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-block-end-width-001.html": [
- "ed35fb1cbc3fc99895253a83038db62254bfe7c9",
+ "808183d9fa2596f88874591bf6c9007a03d3db05",
[
null,
[
@@ -294256,7 +294389,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-block-start-color-001.html": [
- "1860fa1fb9ac00f211f2e64a84f6ae0d0bb36132",
+ "91a9c27984aa5d8fd9c8869ac9a5aee986999add",
[
null,
[
@@ -294269,7 +294402,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-block-start-style-001.html": [
- "86d867026af44ee5bb04040c2b1a12396e715eca",
+ "27096129a31a1c25c27e4ecb6ce9efbcaa65732f",
[
null,
[
@@ -294282,7 +294415,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-block-start-width-001.html": [
- "0fa8dd0d3f96990f05b080016b0657334aeddb97",
+ "f21031e5b10be67add0eea752283d71ff202268d",
[
null,
[
@@ -294295,7 +294428,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-bottom-color-001.html": [
- "172ccbca4350fb260677d9be2969b02cd992b776",
+ "8fc8b3a6aecbf0b2ce9432bb3273cbdafd65cb01",
[
null,
[
@@ -294308,7 +294441,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-bottom-left-radius-001.html": [
- "8bd52be507e167efed6a0ec5efcbf49ed88ba179",
+ "abbe12a48f30943106a1bf6d9ca0f1a78dcc810e",
[
null,
[
@@ -294321,7 +294454,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-bottom-right-radius-001.html": [
- "7ff561f409b80ea0c60992d938b749bf619fba6f",
+ "707eca09ac9ca432efd0e50094d6ce2d7fbb0931",
[
null,
[
@@ -294334,7 +294467,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-bottom-style-001.html": [
- "c1f06d9ec314f34a3e3e109bef6e1ad88fdb8c01",
+ "e211b431a42d62af814dadb30841c70b104ac754",
[
null,
[
@@ -294347,7 +294480,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-bottom-width-001.html": [
- "fe07047c511fe5edfce05ce8cffb8c3ad0f07f45",
+ "1ab71d427434ed5f292261e35d5f67e4915e8da7",
[
null,
[
@@ -294360,7 +294493,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-end-end-radius-001.html": [
- "68e9c9eb58b92079cfd80e09838f11e1f47e0413",
+ "1cea605878f907abd5f223bba9a7521549949672",
[
null,
[
@@ -294373,7 +294506,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-end-start-radius-001.html": [
- "55520a5ebccd6dde858330357ad5ea8369caf3ae",
+ "64c0d1640c2f455d195e259fe68b4eb9d294f10d",
[
null,
[
@@ -294386,7 +294519,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-image-outset-001.html": [
- "5230e24c3a91b7e1e886fbbde9772a9189a4c774",
+ "5118af1a2c1211ac20caebdd813f91cf21711fba",
[
null,
[
@@ -294399,7 +294532,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-image-repeat-001.html": [
- "e0595efab406153550f889e271a6deea3a83a71e",
+ "7478c76d4cfded4e2dea79c359df7b24df0c5049",
[
null,
[
@@ -294412,7 +294545,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-image-slice-001.html": [
- "0df5e39e557f20fa86216e73b8f48af55729adbb",
+ "ee10bd33b58819fe36b8b7167eab3aebfa927ef5",
[
null,
[
@@ -294425,7 +294558,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-image-source-001.html": [
- "ebb6dabff21a7aa3ddc100180234b12eaea2567c",
+ "f9d964821c7af89356016d99916485b12674132c",
[
null,
[
@@ -294438,7 +294571,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-image-width-001.html": [
- "b47aae74547089fa0285621c1fb8c9c066de6fea",
+ "d9ae1abdcdc9475f5c4dba3f3c735602d32e3fbd",
[
null,
[
@@ -294451,7 +294584,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-inline-end-color-001.html": [
- "74719f4798412a020718aa12850c38b208e0427b",
+ "8b19051764c4af5f43f3fb7e5105791143bb8c25",
[
null,
[
@@ -294464,7 +294597,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-inline-end-style-001.html": [
- "b9f40915217a21cd4676a56f604ceb7c29a260c4",
+ "66f81d49f490864e1f8f1ad27ccd5b5c9c13115d",
[
null,
[
@@ -294477,7 +294610,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-inline-end-width-001.html": [
- "8d12396f794a582beba085866905301becc2277f",
+ "466b9f7721cdda23fb1cddf0612b64851608a4c1",
[
null,
[
@@ -294490,7 +294623,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-inline-start-color-001.html": [
- "4fb4c2c01a1088fb5eb8184125eea1518186efe7",
+ "56f3cf63a56b2e432a533b3370b5f405d5b40046",
[
null,
[
@@ -294503,7 +294636,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-inline-start-style-001.html": [
- "3efc630402a130037a11b55f1db04be956938326",
+ "b7a6499d7a4ed3d70b2b21ebb618af24e1505544",
[
null,
[
@@ -294516,7 +294649,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-inline-start-width-001.html": [
- "636044e06f62ba9ac9fd2c1f0ccbcd412d8039ac",
+ "371ce7a8eef44f2bc5c99f766d1b9c5fcdb24a82",
[
null,
[
@@ -294529,7 +294662,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-left-color-001.html": [
- "549f3fc2a52ebbe942e8332b419c2ef9dd472833",
+ "2d22261a18df3c84e0faa0cce82b9c198ca56c58",
[
null,
[
@@ -294542,7 +294675,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-left-style-001.html": [
- "49683432dfd4dfb077b4842a82a7093ba3250306",
+ "5546e84f6694d10c4174b066344d4e71943b4c68",
[
null,
[
@@ -294555,7 +294688,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-left-width-001.html": [
- "55f59b45be36aa62efe83351bdc78bdc40cfbbc3",
+ "a2e46d309909a25bae9cbaf0d75f01e7d3b7ad6f",
[
null,
[
@@ -294568,7 +294701,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-right-color-001.html": [
- "f91cfa5e153aade93ddb6edf41de799dd5fbdf8f",
+ "a51dea52cece6bd4b14affc1783725d6ce4ee043",
[
null,
[
@@ -294581,7 +294714,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-right-style-001.html": [
- "e4bbf6bd12eb6caef818d1214f157521d8243d7f",
+ "6097d630724ade74b1cc28f6507be53450c0bccf",
[
null,
[
@@ -294594,7 +294727,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-right-width-001.html": [
- "d6cf830addb228b0045cee479a3d266545c89613",
+ "b9e3aa3830ac1b858b9f960e151bfd707bf17dc2",
[
null,
[
@@ -294607,7 +294740,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-start-end-radius-001.html": [
- "413461895fe5164544671ea9a45fc89452be95f2",
+ "c9a1a3837964c755b7aa14c5f9479277380179b9",
[
null,
[
@@ -294620,7 +294753,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-start-start-radius-001.html": [
- "6686abe4dff9dc0565c0837c9ae9290494a6b3f8",
+ "6e4d0486c9667782d4304fa506a9871a6f7a7430",
[
null,
[
@@ -294633,7 +294766,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-top-color-001.html": [
- "3e2a5883c2e21d390b1366039df1d78747d8d75e",
+ "8245107854af2d969284c48aefe45af798e3f625",
[
null,
[
@@ -294646,7 +294779,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-top-left-radius-001.html": [
- "5cd1efc1054029059ef7c5bf51e774955366382d",
+ "904098660eb03cb457247972cb3ca89545ae37f2",
[
null,
[
@@ -294659,7 +294792,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-top-right-radius-001.html": [
- "91efca1cc9a9f3e8af5310eb975b06efef869e23",
+ "345f1798f6b5504204f76f8559e4c1b754c5b0b1",
[
null,
[
@@ -294672,7 +294805,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-top-style-001.html": [
- "edbaec7f677fae0502952a67404816df657cb3af",
+ "b69b684779c691e92592942b395aff3c76190f14",
[
null,
[
@@ -294685,7 +294818,7 @@
]
],
"kind-of-widget-fallback-input-submit-border-top-width-001.html": [
- "6ac89022a1ce179b0578a67110a0026586d049fd",
+ "710eb424b92ff050736535920739c9dab10a0e7e",
[
null,
[
@@ -294698,7 +294831,7 @@
]
],
"kind-of-widget-fallback-input-text-background-attachment-001.html": [
- "5c77ea4dbe445ac4769a4023208a503adc61ab99",
+ "8fde2c8380162eab5723f5d9602e65bd9f8efbdc",
[
null,
[
@@ -294711,7 +294844,7 @@
]
],
"kind-of-widget-fallback-input-text-background-clip-001.html": [
- "8afadaad750f5caaa8fdba41eafc97dbea2542f5",
+ "a53001aa1564ab172e5d66f4ba09c9a3af50fa40",
[
null,
[
@@ -294724,7 +294857,7 @@
]
],
"kind-of-widget-fallback-input-text-background-color-001.html": [
- "ea100876c05d654b0896766031ea76343b832eab",
+ "bf818385f8f7fb35d0224f6ff842169f2d33c002",
[
null,
[
@@ -294737,7 +294870,7 @@
]
],
"kind-of-widget-fallback-input-text-background-image-001.html": [
- "7ba20264d9503563cb75c474e69ab2b21a890635",
+ "31b3a859a2f08a22de2e3c150a18d269005b9818",
[
null,
[
@@ -294750,7 +294883,7 @@
]
],
"kind-of-widget-fallback-input-text-background-origin-001.html": [
- "2830b5977323b4cf936931c458681d1f621d9c45",
+ "e6825707da55dc36b3c8cba7bb11df030f0f2cdc",
[
null,
[
@@ -294763,7 +294896,7 @@
]
],
"kind-of-widget-fallback-input-text-background-position-001.html": [
- "3520996d2bf061c4e11d0d100323550e6f09b79d",
+ "36373729e0d58f9b76856968285c292e514cacc3",
[
null,
[
@@ -294776,7 +294909,7 @@
]
],
"kind-of-widget-fallback-input-text-background-size-001.html": [
- "f75c52eaab6746b96d013898e307228605feda2e",
+ "df9a813f3ea0753481abced5de6624f68a1b4133",
[
null,
[
@@ -294789,7 +294922,7 @@
]
],
"kind-of-widget-fallback-input-text-border-block-end-color-001.html": [
- "30ff66b9eade2554459a120e86e24c075ff0db6c",
+ "793cb4bcb24efdecd2c8d81731aa7e37b32279cb",
[
null,
[
@@ -294802,7 +294935,7 @@
]
],
"kind-of-widget-fallback-input-text-border-block-end-style-001.html": [
- "b5f974254018d43d07f90e3eed322e080cfbd13a",
+ "c5f80cd45551984bd3ffa423e78b5402c20497d8",
[
null,
[
@@ -294815,7 +294948,7 @@
]
],
"kind-of-widget-fallback-input-text-border-block-end-width-001.html": [
- "420b8ae989f7f87640ae09e2d05fcc2b8fd805a5",
+ "6facf5b884c3ac18ca029fa053e095f78ee8da5c",
[
null,
[
@@ -294828,7 +294961,7 @@
]
],
"kind-of-widget-fallback-input-text-border-block-start-color-001.html": [
- "1a66939ff8eff77290f1f49570dbd0bddcc49d59",
+ "bb09c9f1954acec776a06622f3c1d3c3085ce047",
[
null,
[
@@ -294841,7 +294974,7 @@
]
],
"kind-of-widget-fallback-input-text-border-block-start-style-001.html": [
- "135ccabc82baba5bde6c5fc303a9c5b433392b9d",
+ "f1682c4f1e546caac9bbbbd431f5a9eca179cf54",
[
null,
[
@@ -294854,7 +294987,7 @@
]
],
"kind-of-widget-fallback-input-text-border-block-start-width-001.html": [
- "8a34a3e06602f37929b44583e71fd29782c054ed",
+ "ea9dc0e55db654b38c776de20fc987a7cb94df4a",
[
null,
[
@@ -294867,7 +295000,7 @@
]
],
"kind-of-widget-fallback-input-text-border-bottom-color-001.html": [
- "1fed2144706d5abb3ec0342f193dddc6f823f999",
+ "a7683f0973e6304e97e893fdc0006e0858f2e1b7",
[
null,
[
@@ -294880,7 +295013,7 @@
]
],
"kind-of-widget-fallback-input-text-border-bottom-left-radius-001.html": [
- "e28ae94821ec41a90a4ffcec0388a5a9ccdca9db",
+ "9f5fe6bcf66319d6ddd96056c2b50dce46694e2f",
[
null,
[
@@ -294893,7 +295026,7 @@
]
],
"kind-of-widget-fallback-input-text-border-bottom-right-radius-001.html": [
- "aa550007b6e328698454b6086e0099ea2a6d3dd7",
+ "46c27aef0c98b73d2245279a9c3e5c9984ddf71a",
[
null,
[
@@ -294906,7 +295039,7 @@
]
],
"kind-of-widget-fallback-input-text-border-bottom-style-001.html": [
- "3eb87975be38edc7c6f9eee9d1116e3270443518",
+ "b1f375c060c3f1809322cd1820cfeb4da23f6a8f",
[
null,
[
@@ -294919,7 +295052,7 @@
]
],
"kind-of-widget-fallback-input-text-border-bottom-width-001.html": [
- "ed8393310eab1ceba0ff114fdd7740b282ddc8d6",
+ "c82c078cbd612b8f2993c81c3f62d0eb1a4f0db6",
[
null,
[
@@ -294932,7 +295065,7 @@
]
],
"kind-of-widget-fallback-input-text-border-end-end-radius-001.html": [
- "c1788c844e21190fe3a09015ba16574411e9cb1e",
+ "2b6ccdd2104f40f59361a2368dc7c8da9ae5d55a",
[
null,
[
@@ -294945,7 +295078,7 @@
]
],
"kind-of-widget-fallback-input-text-border-end-start-radius-001.html": [
- "8bf58a365069b05362b9fee9ca921d493742bd87",
+ "162ad6de9efd516719a1e51d83f62f52d905b7d1",
[
null,
[
@@ -294958,7 +295091,7 @@
]
],
"kind-of-widget-fallback-input-text-border-image-outset-001.html": [
- "19b1519042bf3a64d291eafad653ed5eb46cfd87",
+ "e7b092c093a807181eac515969281a30e266b03a",
[
null,
[
@@ -294971,7 +295104,7 @@
]
],
"kind-of-widget-fallback-input-text-border-image-repeat-001.html": [
- "614cf751b829ce4a2166bf4e61552f98b335ab88",
+ "475d6ffcd063a55e98248e58fa91c362c08c65f5",
[
null,
[
@@ -294984,7 +295117,7 @@
]
],
"kind-of-widget-fallback-input-text-border-image-slice-001.html": [
- "81775121ea52c83f34c44ab429ecbbdc5adfd3e0",
+ "cf337cf28e5f811856035e0fbf6ec3a033853835",
[
null,
[
@@ -294997,7 +295130,7 @@
]
],
"kind-of-widget-fallback-input-text-border-image-source-001.html": [
- "478ec2b8d80b978dbc45e87be0c898ec6ca169f4",
+ "a32955892ff13a32ecc519eea7d336d8b04b2660",
[
null,
[
@@ -295010,7 +295143,7 @@
]
],
"kind-of-widget-fallback-input-text-border-image-width-001.html": [
- "139453f9efed0777c064d1b8fe87fcdcbd39dd19",
+ "8c5601ac19325fb160578e51a74fe3c30af558bb",
[
null,
[
@@ -295023,7 +295156,7 @@
]
],
"kind-of-widget-fallback-input-text-border-inline-end-color-001.html": [
- "e7f3f12b7b7fa339ba9df2c051872188170aa9c6",
+ "d5282e49c56969d3252a5853eba94241df755871",
[
null,
[
@@ -295036,7 +295169,7 @@
]
],
"kind-of-widget-fallback-input-text-border-inline-end-style-001.html": [
- "a0c4a619de1fc0943eceb437459d06b0751dcab9",
+ "890db23946b6444af19b896564a17e6f2b998e4e",
[
null,
[
@@ -295049,7 +295182,7 @@
]
],
"kind-of-widget-fallback-input-text-border-inline-end-width-001.html": [
- "efa0fc6ea24c79347e6aaec4d18ad511efe84b4c",
+ "38bc4546bc3372f6a9dc7d08957561d552846e17",
[
null,
[
@@ -295062,7 +295195,7 @@
]
],
"kind-of-widget-fallback-input-text-border-inline-start-color-001.html": [
- "857c3dd64b69788e37e87697b07860e2ac8e54dd",
+ "3030db3740a97c5142875b5dce3a77caf18a8c2c",
[
null,
[
@@ -295075,7 +295208,7 @@
]
],
"kind-of-widget-fallback-input-text-border-inline-start-style-001.html": [
- "fffa837f4c4a606bca000c966d7bf8e81198354d",
+ "36834f9e6e40722f58bdba3633cc614451434385",
[
null,
[
@@ -295088,7 +295221,7 @@
]
],
"kind-of-widget-fallback-input-text-border-inline-start-width-001.html": [
- "b8a0daa45fc089d61b1ce7f81b23531f52904803",
+ "4e7c8e04f490600e4c939fa29c844ab1dea64015",
[
null,
[
@@ -295101,7 +295234,7 @@
]
],
"kind-of-widget-fallback-input-text-border-left-color-001.html": [
- "c1ed9a11d53d60e94d27298c00d9293ff0d7e04e",
+ "a4084fa5927a1f7d98649baa55992d20fc480fdb",
[
null,
[
@@ -295114,7 +295247,7 @@
]
],
"kind-of-widget-fallback-input-text-border-left-style-001.html": [
- "155d2ba0a3769af89ba02fde434f1da97e946ef5",
+ "7a01a511fddd5f1bc753d86a378a737161967fa1",
[
null,
[
@@ -295127,7 +295260,7 @@
]
],
"kind-of-widget-fallback-input-text-border-left-width-001.html": [
- "6a37771263d1d7418017018b4e92f276d1bb5193",
+ "4011facb5e85edb9dc28830822eb79c805bdcf8d",
[
null,
[
@@ -295140,7 +295273,7 @@
]
],
"kind-of-widget-fallback-input-text-border-right-color-001.html": [
- "6528f47fc3eebdebbb9baaa4b3df90f011d12e7a",
+ "6f5aa4c7ceb052ad0d33a8ea8ef01a3a4c1ee216",
[
null,
[
@@ -295153,7 +295286,7 @@
]
],
"kind-of-widget-fallback-input-text-border-right-style-001.html": [
- "faeda6e1c771bf85d46405e64f8623e979a2e187",
+ "11fe2956d69a3e42b3a6d5958f4e0d44432c7bd3",
[
null,
[
@@ -295166,7 +295299,7 @@
]
],
"kind-of-widget-fallback-input-text-border-right-width-001.html": [
- "7fdefd34057c06cb96fdeee86409bef3721ac3ee",
+ "c9987852a1db7e4b5079103ada57ad5bc6445bd5",
[
null,
[
@@ -295179,7 +295312,7 @@
]
],
"kind-of-widget-fallback-input-text-border-start-end-radius-001.html": [
- "c9eec0263c565a1643e48aeb6e896ff20bc5d24f",
+ "8ee81c4bf049dfcc94cd8f867b0ff62bd67c1446",
[
null,
[
@@ -295192,7 +295325,7 @@
]
],
"kind-of-widget-fallback-input-text-border-start-start-radius-001.html": [
- "d6fdbbf50e0898f55b1a191488c120aa810846f9",
+ "6eb2af09031f124d2b27e89374101f9004c9f521",
[
null,
[
@@ -295205,7 +295338,7 @@
]
],
"kind-of-widget-fallback-input-text-border-top-color-001.html": [
- "dcdac8ecaeb3eca4f306e69fb90f611b576060f0",
+ "ceb6bb0747713bba84be603fcaee24dc27a566e1",
[
null,
[
@@ -295218,7 +295351,7 @@
]
],
"kind-of-widget-fallback-input-text-border-top-left-radius-001.html": [
- "f19c3d6acba4079d643eaac44b648e5b147fecc0",
+ "bd6ec0ddf1fee262e35d6126adba50ccf0065607",
[
null,
[
@@ -295231,7 +295364,7 @@
]
],
"kind-of-widget-fallback-input-text-border-top-right-radius-001.html": [
- "b48acf0a3ef6d956c2ea23c9cd0df792fe7fdec4",
+ "3439c65fd16f6f7b4210a312a1088b17be69b737",
[
null,
[
@@ -295244,7 +295377,7 @@
]
],
"kind-of-widget-fallback-input-text-border-top-style-001.html": [
- "8446838c258f624298079607e9a967516d73cf29",
+ "40abbedb55d0d566924901aa4c3d5a39a42f19e7",
[
null,
[
@@ -295257,7 +295390,7 @@
]
],
"kind-of-widget-fallback-input-text-border-top-width-001.html": [
- "8392562aa4c905e3c3794750a67e1ec459a7e628",
+ "96233751ef755e9d61af1201cfb5bd3e7cdd5176",
[
null,
[
@@ -295270,7 +295403,7 @@
]
],
"kind-of-widget-fallback-link-background-attachment-001.html": [
- "04165162311c77f7ec2ae0267a6571a3776ef7fc",
+ "c1181e1321c678e30f1f6e63f5ff0ceeb038a339",
[
null,
[
@@ -295283,7 +295416,7 @@
]
],
"kind-of-widget-fallback-link-background-clip-001.html": [
- "7b7c5bd75acc6aed1640ebe92a2af4070a81b44c",
+ "d022fb3f06e0b6d6d2ec9aa6eaa0dae203ea22e4",
[
null,
[
@@ -295296,7 +295429,7 @@
]
],
"kind-of-widget-fallback-link-background-color-001.html": [
- "8db667f3eb606a924a6ebd9bbb2e35f842ac2488",
+ "0ed336df7532d249c6c39fcfc7711d8ac83b5ca3",
[
null,
[
@@ -295309,7 +295442,7 @@
]
],
"kind-of-widget-fallback-link-background-image-001.html": [
- "22af8f03263b3d741025f71e7bb52441430203fa",
+ "2592b12d9fd8363c429e29f41081b5961c7bbb8a",
[
null,
[
@@ -295322,7 +295455,7 @@
]
],
"kind-of-widget-fallback-link-background-origin-001.html": [
- "2c57cd1a19fd8474b5fe5ecda761b5ee5feff9ca",
+ "b87cebbb1c5102e55874c81c22f0fba698101b22",
[
null,
[
@@ -295335,7 +295468,7 @@
]
],
"kind-of-widget-fallback-link-background-position-001.html": [
- "5273198b303b0a79bc2ef1bab818fd0b0fb4e101",
+ "12f90ae0c98302eacdc3b5fa724c4f7bd69e006b",
[
null,
[
@@ -295348,7 +295481,7 @@
]
],
"kind-of-widget-fallback-link-background-size-001.html": [
- "039a5d0ae38a9448f17bbee0f572ccd0c3ee197a",
+ "6fc91bc4e415b048b40909dd1851433100e5e39e",
[
null,
[
@@ -295361,7 +295494,7 @@
]
],
"kind-of-widget-fallback-link-border-block-end-color-001.html": [
- "dac39a768ca4c0d13ea60adc4b609aca8086e517",
+ "327335ed6beadc331d68b10e4bf958d16344144c",
[
null,
[
@@ -295374,7 +295507,7 @@
]
],
"kind-of-widget-fallback-link-border-block-end-style-001.html": [
- "f8fb78d77753977d8e8cb40787d8a46bb0ea798e",
+ "99553401baa6430aed062e92b757c9089cda16a8",
[
null,
[
@@ -295387,7 +295520,7 @@
]
],
"kind-of-widget-fallback-link-border-block-end-width-001.html": [
- "35a9f6f05390209fc2b7d9627b53d6119e8ee59a",
+ "74811751aee683e0496c2908f5f2ec12568d3430",
[
null,
[
@@ -295400,7 +295533,7 @@
]
],
"kind-of-widget-fallback-link-border-block-start-color-001.html": [
- "1d7b1087eaf4ae185b6844339b0a08c93554b3d6",
+ "c552c28d06818f74215860ef29180c40c4d2f64a",
[
null,
[
@@ -295413,7 +295546,7 @@
]
],
"kind-of-widget-fallback-link-border-block-start-style-001.html": [
- "d8e435888f2054793506056645ed5915b58aa8ab",
+ "1e788197c09931ab5dafdd16ce649b80edfafff5",
[
null,
[
@@ -295426,7 +295559,7 @@
]
],
"kind-of-widget-fallback-link-border-block-start-width-001.html": [
- "b9202c7220d0df4ba37482a1c948367892ce39b2",
+ "62e3e5bf4895cf180af52be07f142a5f2778f4db",
[
null,
[
@@ -295439,7 +295572,7 @@
]
],
"kind-of-widget-fallback-link-border-bottom-color-001.html": [
- "4cfc12f7a309855018460001f20e07d3913ac65b",
+ "ce6d4d17091ab9c889831c0ad726bdd02f635835",
[
null,
[
@@ -295452,7 +295585,7 @@
]
],
"kind-of-widget-fallback-link-border-bottom-left-radius-001.html": [
- "2663b63865a714b5c729d7d7ca6e2378207759e3",
+ "12ca0fde9f63abe86fd78cee853212b756d6d90f",
[
null,
[
@@ -295465,7 +295598,7 @@
]
],
"kind-of-widget-fallback-link-border-bottom-right-radius-001.html": [
- "d1aba57e683af09cccad3d93600978a1adde86d8",
+ "817eb8692fe9f7b28853ccb3c617954e985ff5f5",
[
null,
[
@@ -295478,7 +295611,7 @@
]
],
"kind-of-widget-fallback-link-border-bottom-style-001.html": [
- "a20c1f7b83c7e1d2dfea94cdcfd32e1168f76e46",
+ "e4579d4171ecaadd3a6d9c6111806b584726c96c",
[
null,
[
@@ -295491,7 +295624,7 @@
]
],
"kind-of-widget-fallback-link-border-bottom-width-001.html": [
- "3a9135e22f5bd4edbf4b88bcce0d43f8a461d102",
+ "29a66a0fb3810b45b91dbea2e6f171c4c315c9b6",
[
null,
[
@@ -295504,7 +295637,7 @@
]
],
"kind-of-widget-fallback-link-border-end-end-radius-001.html": [
- "63a0379fdb1ef02a8123e347402b1cc8353f4af4",
+ "d8e20406ee2a00726da81ec5d6d7acaac4b82b04",
[
null,
[
@@ -295517,7 +295650,7 @@
]
],
"kind-of-widget-fallback-link-border-end-start-radius-001.html": [
- "46c66d3c0b928482ddceaffe88130d35f434d2a6",
+ "67562b2615b126e766e1d11b68a154548a5db58e",
[
null,
[
@@ -295530,7 +295663,7 @@
]
],
"kind-of-widget-fallback-link-border-image-outset-001.html": [
- "201d248bf6755f40acdd6ac896b8689e1ee6bbc2",
+ "10c019dfe471612c0872b8614fb3a8401f96f713",
[
null,
[
@@ -295543,7 +295676,7 @@
]
],
"kind-of-widget-fallback-link-border-image-repeat-001.html": [
- "1e2058f6ee881f939d249d33f499ffc3802c536f",
+ "19fa543da3f4b626f91d83874b2999121bb78523",
[
null,
[
@@ -295556,7 +295689,7 @@
]
],
"kind-of-widget-fallback-link-border-image-slice-001.html": [
- "52891a1ae993dcc8f52eb2cc22e783cb08aa3084",
+ "1c58c63013d964943b2ba5120be47b831cd94579",
[
null,
[
@@ -295569,7 +295702,7 @@
]
],
"kind-of-widget-fallback-link-border-image-source-001.html": [
- "03f3206b264fc8600f12f3655b7e8e0ffd295010",
+ "a612c22a6c3660aaa46119c438f9869e70adbaae",
[
null,
[
@@ -295582,7 +295715,7 @@
]
],
"kind-of-widget-fallback-link-border-image-width-001.html": [
- "98cf12b69a5b16be7496b14a22ad30911fcfee6b",
+ "df327670f7e4136eda9529da57a3afa6e4451035",
[
null,
[
@@ -295595,7 +295728,7 @@
]
],
"kind-of-widget-fallback-link-border-inline-end-color-001.html": [
- "0631735e644361cd545d583ce5f3ba9bcab3284d",
+ "7c57b1fc82cde8bdf9a8dc559608b970ecd5d051",
[
null,
[
@@ -295608,7 +295741,7 @@
]
],
"kind-of-widget-fallback-link-border-inline-end-style-001.html": [
- "ae2179d509f27f63b13e8bdc6e5624411a677bae",
+ "6a141c2cfafdd3b9aa5f4f80266034b7fa8e80ca",
[
null,
[
@@ -295621,7 +295754,7 @@
]
],
"kind-of-widget-fallback-link-border-inline-end-width-001.html": [
- "b4a0877492956ac22b90222bda2ce90f967c8374",
+ "e80933cc05f5d3b01addfd365e2ec8b989d0f1c9",
[
null,
[
@@ -295634,7 +295767,7 @@
]
],
"kind-of-widget-fallback-link-border-inline-start-color-001.html": [
- "4478447b7f617eec018e754ecd7f205d4535b5e2",
+ "92073f1cdb22a83bd9601d7ef4a8ae59c1947f53",
[
null,
[
@@ -295647,7 +295780,7 @@
]
],
"kind-of-widget-fallback-link-border-inline-start-style-001.html": [
- "888f08b7e9f3353c52bb44836da46294f30ffb59",
+ "2b6afb9a6e23a86013cfda0e91471b166197ca33",
[
null,
[
@@ -295660,7 +295793,7 @@
]
],
"kind-of-widget-fallback-link-border-inline-start-width-001.html": [
- "ec4b50310dbfa721924e3d2a24a6ed3e995c2372",
+ "811017088b25955e9916f59cbbb9dbf7be847e3f",
[
null,
[
@@ -295673,7 +295806,7 @@
]
],
"kind-of-widget-fallback-link-border-left-color-001.html": [
- "c781144c7f1e010480d6a467b1bfbbeac01910a7",
+ "75d993386e2573199fd66938cc3d330e1f47e42e",
[
null,
[
@@ -295686,7 +295819,7 @@
]
],
"kind-of-widget-fallback-link-border-left-style-001.html": [
- "442e9341cbe5ff90f955b21678cfcee676c18d9e",
+ "4410892b84986955e4a33826665af8115ed59a2a",
[
null,
[
@@ -295699,7 +295832,7 @@
]
],
"kind-of-widget-fallback-link-border-left-width-001.html": [
- "80fb94dbcba4d8bc92a24900752d0074eb0ff22b",
+ "6885bf7525147912d5d4fb8135461e7d0a632880",
[
null,
[
@@ -295712,7 +295845,7 @@
]
],
"kind-of-widget-fallback-link-border-right-color-001.html": [
- "05db69049f99eb7f0a12225fd1a3a83e908ae997",
+ "89f3dc1bf66e5304c236191149dead2dadefbc27",
[
null,
[
@@ -295725,7 +295858,7 @@
]
],
"kind-of-widget-fallback-link-border-right-style-001.html": [
- "a984511bb327add38986007ff97127158264c3cb",
+ "17e6733894f395d7749c562abc278cca56024c4e",
[
null,
[
@@ -295738,7 +295871,7 @@
]
],
"kind-of-widget-fallback-link-border-right-width-001.html": [
- "04b9d2381a235186f52fcdbaeddf090f28891626",
+ "f19a25e4acf5a6661ebd99dbbe12e5266671617d",
[
null,
[
@@ -295751,7 +295884,7 @@
]
],
"kind-of-widget-fallback-link-border-start-end-radius-001.html": [
- "ad95a34000febd6a462c59757d57bc54241f4d03",
+ "7fbdaeb1ee6bf38f3f446435b9bde6cf42482bea",
[
null,
[
@@ -295764,7 +295897,7 @@
]
],
"kind-of-widget-fallback-link-border-start-start-radius-001.html": [
- "a78e0730a956bd8a2650107500fa6567d32161c7",
+ "7844db7afb54a1f82de7347c17c021c2c5bad304",
[
null,
[
@@ -295777,7 +295910,7 @@
]
],
"kind-of-widget-fallback-link-border-top-color-001.html": [
- "9a3a915be2ae316750b9fabbfd3fbd44e9993870",
+ "29386df876c34a3ff102bf4bea8aaedc1cab05e5",
[
null,
[
@@ -295790,7 +295923,7 @@
]
],
"kind-of-widget-fallback-link-border-top-left-radius-001.html": [
- "9a16ea4be3e38a0564cc6800f8bc362ddb03c84b",
+ "7d985b6208a871b11f6f76ce18945040945e69a4",
[
null,
[
@@ -295803,7 +295936,7 @@
]
],
"kind-of-widget-fallback-link-border-top-right-radius-001.html": [
- "d88155deb565b5ae3d682cce59753024564e0229",
+ "a6e6a2bbd395a7db485a65c144501d8422d9af7c",
[
null,
[
@@ -295816,7 +295949,7 @@
]
],
"kind-of-widget-fallback-link-border-top-style-001.html": [
- "97c5739a07ed261899046211b10421214ae93417",
+ "62e77e1cceda2c02309a2248d949d3d34c3cb0ec",
[
null,
[
@@ -295829,7 +295962,7 @@
]
],
"kind-of-widget-fallback-link-border-top-width-001.html": [
- "7bc2799f810e2835a62dd0b0ac5a4804939c4d04",
+ "d0607e72b04d86652250238cdc147287689dbc86",
[
null,
[
@@ -295842,7 +295975,7 @@
]
],
"kind-of-widget-fallback-meter-background-attachment-001.html": [
- "13515eac8f2ae9728e33c8bafd02b82e4a727cc2",
+ "bc09c2ff345024d3a0dc1f28fac93651c8aabec5",
[
null,
[
@@ -295855,7 +295988,7 @@
]
],
"kind-of-widget-fallback-meter-background-clip-001.html": [
- "c05142e32e497b00ce5e3647e1fa797bc5332330",
+ "36ce0ba39ba18e6f2d9e0ea67edbaef5d111b85b",
[
null,
[
@@ -295868,7 +296001,7 @@
]
],
"kind-of-widget-fallback-meter-background-color-001.html": [
- "f6efa06fb047bde5635107a9d322536726a66044",
+ "862d1b868f56bdd6d72a281db72da794e4d4c9de",
[
null,
[
@@ -295881,7 +296014,7 @@
]
],
"kind-of-widget-fallback-meter-background-image-001.html": [
- "aa0421c691d58dde1cf13c65f2ff8aef87fb0aaa",
+ "fd9337eadd7b17b94118427b6cba1d140fd4a8aa",
[
null,
[
@@ -295894,7 +296027,7 @@
]
],
"kind-of-widget-fallback-meter-background-origin-001.html": [
- "3b6816c6b8ec29d729d68ee2ef0de73aabbe93a4",
+ "692714707fd20e79bb7a2a8378c1d704863944f3",
[
null,
[
@@ -295907,7 +296040,7 @@
]
],
"kind-of-widget-fallback-meter-background-position-001.html": [
- "200806ce1ab5067f5c9272cfb0ace5e15ab10619",
+ "eb98cb3b6135b3e632da956246e5d86a71338579",
[
null,
[
@@ -295920,7 +296053,7 @@
]
],
"kind-of-widget-fallback-meter-background-size-001.html": [
- "743c119348f6bea268351c59230b72eac1cb4940",
+ "507cf038a8fa26e76104ed3fb59049e1278d83f3",
[
null,
[
@@ -295933,7 +296066,7 @@
]
],
"kind-of-widget-fallback-meter-border-block-end-color-001.html": [
- "698a76c964ffa10b1ca91a17268fd47d8bb00ae5",
+ "22f81d3c74eeb5e33bc838eeee48d64a5f955a7c",
[
null,
[
@@ -295946,7 +296079,7 @@
]
],
"kind-of-widget-fallback-meter-border-block-end-style-001.html": [
- "44b0b52e0026452ba72be836ed7a319f8e5bb0d9",
+ "a7c45c4caf2b2a5988652c5827ff653f6edcf0cb",
[
null,
[
@@ -295959,7 +296092,7 @@
]
],
"kind-of-widget-fallback-meter-border-block-end-width-001.html": [
- "f6f95709b93a117edffd0baa7c64331ba8e36a5c",
+ "9c67019cea0599a5ec9b3a222cd7067e2a3e7289",
[
null,
[
@@ -295972,7 +296105,7 @@
]
],
"kind-of-widget-fallback-meter-border-block-start-color-001.html": [
- "acaad35dc93d83b959454d3d4b3a1ea220cb75eb",
+ "a1addab0643d9faf36db07cf369b203145607349",
[
null,
[
@@ -295985,7 +296118,7 @@
]
],
"kind-of-widget-fallback-meter-border-block-start-style-001.html": [
- "f316863f8587ba2d07e3370ae35646bba0f81d39",
+ "b7575b797fb3188b77034c64f9bf8f863fc4d501",
[
null,
[
@@ -295998,7 +296131,7 @@
]
],
"kind-of-widget-fallback-meter-border-block-start-width-001.html": [
- "4020d49f57e8c7e3335b3655caa8f9bdcda87f65",
+ "28ead7f5d728aba974b661f81b0a7bf926a1d5ca",
[
null,
[
@@ -296011,7 +296144,7 @@
]
],
"kind-of-widget-fallback-meter-border-bottom-color-001.html": [
- "dc9917548e4aad46b45710d40a63377be3455fb9",
+ "0fc35c36b89cf918a3dec0e5ad4503b3bc818eff",
[
null,
[
@@ -296024,7 +296157,7 @@
]
],
"kind-of-widget-fallback-meter-border-bottom-left-radius-001.html": [
- "f58a8cba1dcdab45c278649ea3def38f06a4c47d",
+ "92eefd9a66f08b5774aa37e2611a0f45f5ad082b",
[
null,
[
@@ -296037,7 +296170,7 @@
]
],
"kind-of-widget-fallback-meter-border-bottom-right-radius-001.html": [
- "adee92446206bdc750eb1cfdc5d881da84a03b3a",
+ "8e1c11322a75139bd2d41dbaf4f3e36b5bafae34",
[
null,
[
@@ -296050,7 +296183,7 @@
]
],
"kind-of-widget-fallback-meter-border-bottom-style-001.html": [
- "1df5d9104d6018caec30b55b91da961ca98eff7a",
+ "43237f0b777262c10c9d7d998e103582fc4988cc",
[
null,
[
@@ -296063,7 +296196,7 @@
]
],
"kind-of-widget-fallback-meter-border-bottom-width-001.html": [
- "071c56e85c48078d12610ed58eb8e5098eca01a9",
+ "ca26da93ba7b8f0fed03ae5809fb6e713a9b5692",
[
null,
[
@@ -296076,7 +296209,7 @@
]
],
"kind-of-widget-fallback-meter-border-end-end-radius-001.html": [
- "9408a916477bc3b89f8f54c64ead1ad3267e0f4a",
+ "95a2f8cfc1e0daab781cd81c39c378b1358de58f",
[
null,
[
@@ -296089,7 +296222,7 @@
]
],
"kind-of-widget-fallback-meter-border-end-start-radius-001.html": [
- "e2e276ba8e0eb19374785a5a4d177529fba7bc3f",
+ "0b80a86b3c1adfd1226a987f835989d5c19106b6",
[
null,
[
@@ -296102,7 +296235,7 @@
]
],
"kind-of-widget-fallback-meter-border-image-outset-001.html": [
- "fda9640bf3de59c653ff4d1352c264da8c7ac670",
+ "533cd5d8374adbf34d3845790515436d57f64712",
[
null,
[
@@ -296115,7 +296248,7 @@
]
],
"kind-of-widget-fallback-meter-border-image-repeat-001.html": [
- "9f758658b0d879efa50934716b218f34734c2b9c",
+ "a047d3ff380d2cb9986bfdb9f054e3afd03174f1",
[
null,
[
@@ -296128,7 +296261,7 @@
]
],
"kind-of-widget-fallback-meter-border-image-slice-001.html": [
- "adf8f91f915d5910066c9d78780a829bfd0a6222",
+ "ea96b8dcbad8b7ac10a03d1e571173d15c31965c",
[
null,
[
@@ -296141,7 +296274,7 @@
]
],
"kind-of-widget-fallback-meter-border-image-source-001.html": [
- "a8f7b6b2a4359fc315e0229b08614b760b517337",
+ "57d7819b8b1f839392bcd2980805c73ceacdcee5",
[
null,
[
@@ -296154,7 +296287,7 @@
]
],
"kind-of-widget-fallback-meter-border-image-width-001.html": [
- "b4c7a9670b15e8d5f2320c1226d9a66d0b8d96ca",
+ "53d9a4b66f866d1bc7c4d48544b40af18168bdca",
[
null,
[
@@ -296167,7 +296300,7 @@
]
],
"kind-of-widget-fallback-meter-border-inline-end-color-001.html": [
- "f2e7481ed7f2d9f899493a252f7d506b0d000e0c",
+ "477ad2d39baa833be821fbe2b236bd83d33582f4",
[
null,
[
@@ -296180,7 +296313,7 @@
]
],
"kind-of-widget-fallback-meter-border-inline-end-style-001.html": [
- "fb431c783c8977225f26ab1676eefbfa3283adc9",
+ "9f54aa468eb03ad8b235c1b52cd36da01556b245",
[
null,
[
@@ -296193,7 +296326,7 @@
]
],
"kind-of-widget-fallback-meter-border-inline-end-width-001.html": [
- "7413c0d211d0da27e8b1786dc01bbf2527017ceb",
+ "0b7edc7fb0f13094d563b86bc1b0906d636167c3",
[
null,
[
@@ -296206,7 +296339,7 @@
]
],
"kind-of-widget-fallback-meter-border-inline-start-color-001.html": [
- "5a8c4b6361f1dbc1831e6daf25274a9809754c73",
+ "a82c0b561ee1731fa3d5be037450eca30601bd04",
[
null,
[
@@ -296219,7 +296352,7 @@
]
],
"kind-of-widget-fallback-meter-border-inline-start-style-001.html": [
- "59f76146a0532d6a9efb6550f68fce6574c5e9e3",
+ "741f78f35193e5483589c84420cff188c398610b",
[
null,
[
@@ -296232,7 +296365,7 @@
]
],
"kind-of-widget-fallback-meter-border-inline-start-width-001.html": [
- "8ec1ccbcffd85c24498d57049e20564c51e2f56b",
+ "c0041380ef15f2c01c243868baf2198f3622b5c8",
[
null,
[
@@ -296245,7 +296378,7 @@
]
],
"kind-of-widget-fallback-meter-border-left-color-001.html": [
- "9f18ccebe030fdc2ada27bfec42e3eeb14db2731",
+ "ea22e4f1c30aef730869c5aaa38d049096c3b112",
[
null,
[
@@ -296258,7 +296391,7 @@
]
],
"kind-of-widget-fallback-meter-border-left-style-001.html": [
- "0911bc58b3d75fbf338b138df6188166b9bed404",
+ "eea3e1767969680116533cb551b43dcf9f4d031b",
[
null,
[
@@ -296271,7 +296404,7 @@
]
],
"kind-of-widget-fallback-meter-border-left-width-001.html": [
- "2459a9310a81d3c02a8c8f698ed292f6b8419903",
+ "b64ae5e089a376147e3711cc7a6d7ff47fe5ce43",
[
null,
[
@@ -296284,7 +296417,7 @@
]
],
"kind-of-widget-fallback-meter-border-right-color-001.html": [
- "ee786650bc80064ed3e48b0474dac965a9e60369",
+ "8dced5c1ae376d874e4b6693b8c88056075afb06",
[
null,
[
@@ -296297,7 +296430,7 @@
]
],
"kind-of-widget-fallback-meter-border-right-style-001.html": [
- "623f6bf844fd1a5dda0978c0efb1fa6e8ebbaca2",
+ "c1fe1f6e5e4e92002dab3cc7f97baa444ea9ea23",
[
null,
[
@@ -296310,7 +296443,7 @@
]
],
"kind-of-widget-fallback-meter-border-right-width-001.html": [
- "3e2fd9b4b1d0dec813751547f1b2805ecb450e21",
+ "04dd46d637f3f108908fe7662713bd79f2624a4e",
[
null,
[
@@ -296323,7 +296456,7 @@
]
],
"kind-of-widget-fallback-meter-border-start-end-radius-001.html": [
- "3aaf6f125e44b6f1e159db98b65547f7b1401e33",
+ "d5770f67e229d0c22c7c756852c9c666b5f9eb5e",
[
null,
[
@@ -296336,7 +296469,7 @@
]
],
"kind-of-widget-fallback-meter-border-start-start-radius-001.html": [
- "de9d873eeb3c2f181d67dbec6e601f4a6a21b566",
+ "3cffc8e16655bcf68c51190f8c1e62c7f5b86224",
[
null,
[
@@ -296349,7 +296482,7 @@
]
],
"kind-of-widget-fallback-meter-border-top-color-001.html": [
- "d868e94910d9d35e783a2fec37b2357cfdf2086a",
+ "65867b1d9d56ec029f43d7d1ef0ff47d350de99a",
[
null,
[
@@ -296362,7 +296495,7 @@
]
],
"kind-of-widget-fallback-meter-border-top-left-radius-001.html": [
- "8d894515882f8087aec2194d425a1e5ff754b387",
+ "6b2a7ec0117bfac418baaf6099dcd93b1846b00c",
[
null,
[
@@ -296375,7 +296508,7 @@
]
],
"kind-of-widget-fallback-meter-border-top-right-radius-001.html": [
- "e093a7213573c34bb76f8267d532ce33d0a16b98",
+ "c695b7dac076e794a3b58e3d5b171668e256077d",
[
null,
[
@@ -296388,7 +296521,7 @@
]
],
"kind-of-widget-fallback-meter-border-top-style-001.html": [
- "03e615f62c649f63cc81bfae2f249983c4c77d35",
+ "8e7ae9e7bf9883fdb5b479956a6e03100e121014",
[
null,
[
@@ -296401,7 +296534,7 @@
]
],
"kind-of-widget-fallback-meter-border-top-width-001.html": [
- "ef6b71b7092b272bf6a4620ff45dc7a5f27e3851",
+ "d750424093c1c7aa2e5c81f549a76d590b3c294b",
[
null,
[
@@ -296414,7 +296547,7 @@
]
],
"kind-of-widget-fallback-progress-background-attachment-001.html": [
- "dca234b1ab46a6b13ccb2853be77108293665b87",
+ "01510a184480360412fecb721c2e3dc0ef486f2a",
[
null,
[
@@ -296427,7 +296560,7 @@
]
],
"kind-of-widget-fallback-progress-background-clip-001.html": [
- "a576b2280f79aecd251b07a140b0d94cd1b0651a",
+ "972e1559ad2ec377bcc8fd51acb763b169f45f29",
[
null,
[
@@ -296440,7 +296573,7 @@
]
],
"kind-of-widget-fallback-progress-background-color-001.html": [
- "039a412298899dd8fa4032331fbfb83ad0edce3d",
+ "fac0a52f21beaa47f18b672b0659092780730758",
[
null,
[
@@ -296453,7 +296586,7 @@
]
],
"kind-of-widget-fallback-progress-background-image-001.html": [
- "623ddda764cbd511f4510cc568099485912a98d1",
+ "3ebd7985e0fc66c517bcf7f0d140251067facd4a",
[
null,
[
@@ -296466,7 +296599,7 @@
]
],
"kind-of-widget-fallback-progress-background-origin-001.html": [
- "aa5af7d9eef83366c7687282a09c6c593399e2fc",
+ "93cbca06fa140994006a513e3afe9ce95de43197",
[
null,
[
@@ -296479,7 +296612,7 @@
]
],
"kind-of-widget-fallback-progress-background-position-001.html": [
- "b4e0a85570db91e0f9848c68792ee9f38ce75b29",
+ "fdb879d340f49f4d76798642778e04cdf16bd1a0",
[
null,
[
@@ -296492,7 +296625,7 @@
]
],
"kind-of-widget-fallback-progress-background-size-001.html": [
- "c0b9e119a1bc74fa843f1d2a823b57b39207f3af",
+ "d0af64056c27c5f7b4d48942690274327d63c5d7",
[
null,
[
@@ -296505,7 +296638,7 @@
]
],
"kind-of-widget-fallback-progress-border-block-end-color-001.html": [
- "c25c0ab3610f300b6e3aa641c2209644be9df551",
+ "f4c1ec656edd98046c6ff145b224f42e3c3b4768",
[
null,
[
@@ -296518,7 +296651,7 @@
]
],
"kind-of-widget-fallback-progress-border-block-end-style-001.html": [
- "cca8ac1afdfaacc2c07a8de09ce7a2f747a47187",
+ "10ee9e221a8ddb9e0b4724d35d6ebbbbcc2e2e52",
[
null,
[
@@ -296531,7 +296664,7 @@
]
],
"kind-of-widget-fallback-progress-border-block-end-width-001.html": [
- "315bf97d7027c721b2cd4a266e261d720e875bb3",
+ "607a8eb52673ef229e478d0a4c0620b7d4828239",
[
null,
[
@@ -296544,7 +296677,7 @@
]
],
"kind-of-widget-fallback-progress-border-block-start-color-001.html": [
- "d60640b9f1a96fbc26546ff362141453a3cf7cdc",
+ "6567e996721834e0c361f577c560154b5731eea0",
[
null,
[
@@ -296557,7 +296690,7 @@
]
],
"kind-of-widget-fallback-progress-border-block-start-style-001.html": [
- "6f1428c16269358ab2f4c560d90b9239a19afb55",
+ "bcf7fa96520693725ce259ce4893af48e9a9728c",
[
null,
[
@@ -296570,7 +296703,7 @@
]
],
"kind-of-widget-fallback-progress-border-block-start-width-001.html": [
- "93b8cc8ef5971981931c487f2658894c57d93dd2",
+ "0713fee461b81175395095dab9446e80692359f2",
[
null,
[
@@ -296583,7 +296716,7 @@
]
],
"kind-of-widget-fallback-progress-border-bottom-color-001.html": [
- "9eceff4625c9b46f7c46bf41c6d3b19b576cc611",
+ "33c9ebc77d53b009890997568794538c7fbe6e47",
[
null,
[
@@ -296596,7 +296729,7 @@
]
],
"kind-of-widget-fallback-progress-border-bottom-left-radius-001.html": [
- "c0b211626c1300ef685f4d1b11168aa4d753b4c5",
+ "29ccc3ab50f154aac98ec95aef07d3b97c3bf63f",
[
null,
[
@@ -296609,7 +296742,7 @@
]
],
"kind-of-widget-fallback-progress-border-bottom-right-radius-001.html": [
- "faaa77f47f16dee17922cbf24dff7accc9b10333",
+ "d8c3ff6e3474adbec2e6aef5d8209d5987fbf12b",
[
null,
[
@@ -296622,7 +296755,7 @@
]
],
"kind-of-widget-fallback-progress-border-bottom-style-001.html": [
- "841ea1758ddae690f900421b8147531b7f474945",
+ "b622c413c6e13e9bebd790be58371408fda57a19",
[
null,
[
@@ -296635,7 +296768,7 @@
]
],
"kind-of-widget-fallback-progress-border-bottom-width-001.html": [
- "1e618f0a20745d33d01c6d9d8a18547a9e647db9",
+ "c4e176af4ed38f30bd9947dc6d30ff84db94e37c",
[
null,
[
@@ -296648,7 +296781,7 @@
]
],
"kind-of-widget-fallback-progress-border-end-end-radius-001.html": [
- "c0532a0d2a1998614de60ddc6890a1a5734fc96b",
+ "4e9f4b250ccb5bd0f85c578391243dc041b144f5",
[
null,
[
@@ -296661,7 +296794,7 @@
]
],
"kind-of-widget-fallback-progress-border-end-start-radius-001.html": [
- "739d496bc7373d0ef325d1a6dfa074221fbcc634",
+ "1392e7a2a2709dc99534b21856215721949b7ca2",
[
null,
[
@@ -296674,7 +296807,7 @@
]
],
"kind-of-widget-fallback-progress-border-image-outset-001.html": [
- "eec9d28f6e84e6b39f38b51df8a2c456b8c81a79",
+ "c88e8fc0e287806d8fefa2bb518b14846da322b9",
[
null,
[
@@ -296687,7 +296820,7 @@
]
],
"kind-of-widget-fallback-progress-border-image-repeat-001.html": [
- "1e97a40426e4bb84af687e99b327ece2fd588f00",
+ "389828f4a6d5bb434db1a11aaed4bc1c8b0eba4f",
[
null,
[
@@ -296700,7 +296833,7 @@
]
],
"kind-of-widget-fallback-progress-border-image-slice-001.html": [
- "3c7d38092e088d0716767014e33d85558a419026",
+ "bc3703872b8c61cb72153936e89c7de9a932b9f9",
[
null,
[
@@ -296713,7 +296846,7 @@
]
],
"kind-of-widget-fallback-progress-border-image-source-001.html": [
- "f89d84f96cba9c0b443ee88f1f445505741ca35e",
+ "ed03eb2b78492cafa96468a49cc399181bde3215",
[
null,
[
@@ -296726,7 +296859,7 @@
]
],
"kind-of-widget-fallback-progress-border-image-width-001.html": [
- "9ef2a5989a0ef484a6af468e81fba0a94f6810e8",
+ "60fa69a08f5d07195206d2656977a68843e9a88e",
[
null,
[
@@ -296739,7 +296872,7 @@
]
],
"kind-of-widget-fallback-progress-border-inline-end-color-001.html": [
- "7614185df761c7d0502f0c763bd0cbecc5468017",
+ "727be95d7d123e6b10a8b900321c552867f96d4c",
[
null,
[
@@ -296752,7 +296885,7 @@
]
],
"kind-of-widget-fallback-progress-border-inline-end-style-001.html": [
- "ed2e730b38ee3084c1f895c87998e504d9596018",
+ "d48d239923c6306892f732cfd5f308de744338f6",
[
null,
[
@@ -296765,7 +296898,7 @@
]
],
"kind-of-widget-fallback-progress-border-inline-end-width-001.html": [
- "0fcdd2004e8130eecf99b6ff321efe763171b11b",
+ "ade49956b7dba0863e12039a653cd216cd44beea",
[
null,
[
@@ -296778,7 +296911,7 @@
]
],
"kind-of-widget-fallback-progress-border-inline-start-color-001.html": [
- "d5cf86d3024bdd9f58e841f957ec63bb3c31fd32",
+ "a98de8f4c0a18806c74c91d3aa502b08c16d6f28",
[
null,
[
@@ -296791,7 +296924,7 @@
]
],
"kind-of-widget-fallback-progress-border-inline-start-style-001.html": [
- "a066d7b4913b625ab0c4ad6c7c2e8c0387d96df4",
+ "e3ec7eeb8ac6da71a32dcd80c93780c7d29191e9",
[
null,
[
@@ -296804,7 +296937,7 @@
]
],
"kind-of-widget-fallback-progress-border-inline-start-width-001.html": [
- "2d03988b8720437240dadaa4ecce0205b3b2f022",
+ "3d3d3cf67dc51e1adf545040951e81af9e50e022",
[
null,
[
@@ -296817,7 +296950,7 @@
]
],
"kind-of-widget-fallback-progress-border-left-color-001.html": [
- "9f387510d2508edbeddd74ea86255140db3f50c1",
+ "54bc48a3bdb0a5aa9acbd56887204bc0b4cc4317",
[
null,
[
@@ -296830,7 +296963,7 @@
]
],
"kind-of-widget-fallback-progress-border-left-style-001.html": [
- "289f8ef6eab9391711a6665fb548194b28459ffd",
+ "c6196d805e2448ec3ca5f7b9dfdca1e4287d026f",
[
null,
[
@@ -296843,7 +296976,7 @@
]
],
"kind-of-widget-fallback-progress-border-left-width-001.html": [
- "ac4648bf192ec0481788f96dacd63f156674644e",
+ "9edc7b239bc4a0aaab8b558a2d01169cab135e4c",
[
null,
[
@@ -296856,7 +296989,7 @@
]
],
"kind-of-widget-fallback-progress-border-right-color-001.html": [
- "66b525ef4634777d07296c3c886ff8ccea8dd092",
+ "0056fdb24b0bcaca06b7146382d34e2ed1e0c9f8",
[
null,
[
@@ -296869,7 +297002,7 @@
]
],
"kind-of-widget-fallback-progress-border-right-style-001.html": [
- "6c5475b5a33b781912dee275d875902e085d7bb3",
+ "06a176cc6535c261ae479e9466b11257d1790e4b",
[
null,
[
@@ -296882,7 +297015,7 @@
]
],
"kind-of-widget-fallback-progress-border-right-width-001.html": [
- "3254dc2aa1805ccd2dd09f2211324b211dc40f0f",
+ "cf9418a905e7260fb53a7488cba8cefe7c417733",
[
null,
[
@@ -296895,7 +297028,7 @@
]
],
"kind-of-widget-fallback-progress-border-start-end-radius-001.html": [
- "0134799c91dc8f3f12df4e8632cf5cc9663f81b1",
+ "c2e4468d05a2ec307c93874b1e38dea49cacb574",
[
null,
[
@@ -296908,7 +297041,7 @@
]
],
"kind-of-widget-fallback-progress-border-start-start-radius-001.html": [
- "0c12be7b3e1ca15b4d3c3c99233b8e3893b52fb9",
+ "5651ad5bfda4b342383829a36540dd560c2e1708",
[
null,
[
@@ -296921,7 +297054,7 @@
]
],
"kind-of-widget-fallback-progress-border-top-color-001.html": [
- "cf1b9b86c3142a36e227690b1b08882cf16fd1ce",
+ "e51bec1141b0845137e2aaa7abd19e57f9bc5818",
[
null,
[
@@ -296934,7 +297067,7 @@
]
],
"kind-of-widget-fallback-progress-border-top-left-radius-001.html": [
- "4444911cbc511c3cc0fe64979443363c676fc6fa",
+ "31829d05d4b6691bdcaa66f4fd5c2f6f7d601ee7",
[
null,
[
@@ -296947,7 +297080,7 @@
]
],
"kind-of-widget-fallback-progress-border-top-right-radius-001.html": [
- "5bfd629df0d199cd9376a8a5fbb0c19ab4c6bd8b",
+ "b4408935fd7d3a796de96412aae78fe1cdfe9b10",
[
null,
[
@@ -296960,7 +297093,7 @@
]
],
"kind-of-widget-fallback-progress-border-top-style-001.html": [
- "6ae50d34c985488e53c507f001f5f6f0514f9e9a",
+ "c50ce398d628c0544f7bf0929d0187d7dd16d090",
[
null,
[
@@ -296973,7 +297106,7 @@
]
],
"kind-of-widget-fallback-progress-border-top-width-001.html": [
- "ff5f7bc05809dc58f2a96120acf0cee44c8e165a",
+ "eafb134c4339d8b7b007bcd0005c2f4f538f331d",
[
null,
[
@@ -296986,7 +297119,7 @@
]
],
"kind-of-widget-fallback-radio-input-background-attachment-001.html": [
- "ed0256fd58a8b7662e08be6b80d97b9d561355c8",
+ "5a2a4ab2477681f49b213e01b3011b9f121c2ff6",
[
null,
[
@@ -296999,7 +297132,7 @@
]
],
"kind-of-widget-fallback-radio-input-background-clip-001.html": [
- "8fcd593f72498ec66c035f5de872fceb6dff2faf",
+ "8d688d17e49b0e31800253b5a5d6976a26c8b75b",
[
null,
[
@@ -297012,7 +297145,7 @@
]
],
"kind-of-widget-fallback-radio-input-background-color-001.html": [
- "92108bc500507669711ebc1e7e86b4a8a8e7b0d5",
+ "ebf50618166e72c87400d8bb2cf51e25efb6756b",
[
null,
[
@@ -297025,7 +297158,7 @@
]
],
"kind-of-widget-fallback-radio-input-background-image-001.html": [
- "1657bb46c78a195f78b91fac7de9867754425417",
+ "8f76f0f26096f5cb972e87ed15a42ee311b7fc53",
[
null,
[
@@ -297038,7 +297171,7 @@
]
],
"kind-of-widget-fallback-radio-input-background-origin-001.html": [
- "c6187a35740fae538051ef6c9a0f222170318907",
+ "c33584bf218e5750194036ea8d9554e2fedec772",
[
null,
[
@@ -297051,7 +297184,7 @@
]
],
"kind-of-widget-fallback-radio-input-background-position-001.html": [
- "0b1fd162d600a9a9785427499912ec7258c20a43",
+ "54bb8b56f82dd4b68f5e416e477f96c8730f878c",
[
null,
[
@@ -297064,7 +297197,7 @@
]
],
"kind-of-widget-fallback-radio-input-background-size-001.html": [
- "f059379c375ec3a672c5306dd75b57afcfb14a49",
+ "672a27a5f44968cf0f79aca4bb90076078b41463",
[
null,
[
@@ -297077,7 +297210,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-block-end-color-001.html": [
- "f016a4ce3a292abf00e25ceaf33cb4ce98041fa9",
+ "38d9ac514258c640d06f17822e91cc7df04044b6",
[
null,
[
@@ -297090,7 +297223,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-block-end-style-001.html": [
- "56181069a0b6b071a4fb95d6f593482899847ab6",
+ "91329b9e7dec9aebffd757f712a9cb8e2fe52a1f",
[
null,
[
@@ -297103,7 +297236,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-block-end-width-001.html": [
- "1734e26c1e91a36ab1e16abc2a333573ab31bd8d",
+ "29df551cab5940889913e30356c6e3b530c419c2",
[
null,
[
@@ -297116,7 +297249,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-block-start-color-001.html": [
- "4380db1e79176c652ea2640efc152467d1b8773f",
+ "181fcfea5f20006462918a8710a33130bd28a722",
[
null,
[
@@ -297129,7 +297262,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-block-start-style-001.html": [
- "1b8b689cc83f6f59c66bc0042532e9f9dcab5563",
+ "5e607f0adcb89588cfae31a22aba77de5bf6f687",
[
null,
[
@@ -297142,7 +297275,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-block-start-width-001.html": [
- "dea54baf56f429925fa176411e25aac5d11b0d05",
+ "0639fafd5291adfe86f716a24984b2559b5980eb",
[
null,
[
@@ -297155,7 +297288,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-bottom-color-001.html": [
- "acb3931a868551fd036070630a9fc6088b2529e4",
+ "c0b2e7f57671bf43cb3d5f539039878135b3bda9",
[
null,
[
@@ -297168,7 +297301,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-bottom-left-radius-001.html": [
- "07d00872fe3419de7b484056ecbd381cb8a2f9a7",
+ "df4b02673e7493faca2b1895262d9e8f090ce4cd",
[
null,
[
@@ -297181,7 +297314,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-bottom-right-radius-001.html": [
- "14d1efda7cb4d41963cf37069eea182786882e57",
+ "1b3915e29dac71383f56f8d1768f9be6ad6e2cb2",
[
null,
[
@@ -297194,7 +297327,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-bottom-style-001.html": [
- "cbbbf1b37e6c09deb3c7f785b6b1fcf6a392446a",
+ "eba98f7f33e0b789386cb45cbf7fe509237752b1",
[
null,
[
@@ -297207,7 +297340,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-bottom-width-001.html": [
- "393c6812db8b4f47f51bb75b19716d7cec322d68",
+ "a7c2fe72314a35149aee805b13a0288fd7de17b1",
[
null,
[
@@ -297220,7 +297353,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-end-end-radius-001.html": [
- "44df84a4624fcbbf9e85ba5f87b9f21e56bf1185",
+ "7181ba90aeecbb4b7f8467cf746d7051c1263663",
[
null,
[
@@ -297233,7 +297366,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-end-start-radius-001.html": [
- "30fd85f6925589f42c53f6c3983c0355743798cb",
+ "2abc8753ed6c0110ce44b4ca311431dc177de02e",
[
null,
[
@@ -297246,7 +297379,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-image-outset-001.html": [
- "da8bcd0e14e953d89a180fd31166a1b5563ce3b4",
+ "e1e17e0d796ee6cdb4db79c9a79338445e06a071",
[
null,
[
@@ -297259,7 +297392,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-image-repeat-001.html": [
- "63a4a35ea4c1b0f959cf6079071488b5b74a5767",
+ "ae84246d94b62ff560bbcd72508ec472b62d2e8c",
[
null,
[
@@ -297272,7 +297405,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-image-slice-001.html": [
- "080b9d7289984aa3a9303056391216d3ab3374e1",
+ "f5724d347488e0692c26319fe0b6f7dcf8358bdc",
[
null,
[
@@ -297285,7 +297418,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-image-source-001.html": [
- "61ebdbf3b32edf1f790994299e7532c6cb67d6fd",
+ "44371385a7758d2b300ef16759b22730c5434259",
[
null,
[
@@ -297298,7 +297431,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-image-width-001.html": [
- "125241bdeb6dd62a02eb3f61e0b703bf1cf7298e",
+ "18f3bc23dbef11e378cfee36d6d6236f5c4cb0ef",
[
null,
[
@@ -297311,7 +297444,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-inline-end-color-001.html": [
- "1b2e0db99780963cb75a6845e084964f3ea2017c",
+ "2040e2cf59fc08e9b87ba5dd275952c4186a00c2",
[
null,
[
@@ -297324,7 +297457,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-inline-end-style-001.html": [
- "c42ec5566ab8e04061895bface6dd08ee7573092",
+ "c767709d9dcaebf604d35f30d2a498641cfb50af",
[
null,
[
@@ -297337,7 +297470,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-inline-end-width-001.html": [
- "c85656cbc1da0b1915ecd1fa8dd867e080c0ad9f",
+ "5426dc496ac89980d48bfb0708d5c7e00f17527a",
[
null,
[
@@ -297350,7 +297483,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-inline-start-color-001.html": [
- "67f91df2dba4791b88556aef0a7682ab73377fdf",
+ "e32802ba333ffc8b70bffebf71c5aa088662c45b",
[
null,
[
@@ -297363,7 +297496,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-inline-start-style-001.html": [
- "501e0f57a1645ee6e703381025c8a8da66b47007",
+ "0a821af100a4a3f7f27ea101735824df42ebb067",
[
null,
[
@@ -297376,7 +297509,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-inline-start-width-001.html": [
- "049c355b9b3751fa23fa0a57c5169ad580b6c32a",
+ "ecc6162fa62629c3a0dd1cdf284485a769d9a009",
[
null,
[
@@ -297389,7 +297522,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-left-color-001.html": [
- "75247d7dd16e74406154822481370b76121819d0",
+ "45b783fcdfab9a1a463d81a76cb173c90455c5ae",
[
null,
[
@@ -297402,7 +297535,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-left-style-001.html": [
- "9b9e800a3ac95549f9b33180c448341e8b18fd36",
+ "70ab1f658b741a7376f4815c84b08f5f9f91b920",
[
null,
[
@@ -297415,7 +297548,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-left-width-001.html": [
- "21c04b62f624e9e83368fb1ba00df1e524d263fd",
+ "c626ef386a28e83a019a46950d82bf46a67faaa6",
[
null,
[
@@ -297428,7 +297561,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-right-color-001.html": [
- "d7229d066cba606b745d283d2a87b6ad1e89cde3",
+ "90e1f18b35a45d6cba084cecad2626aa466d14ed",
[
null,
[
@@ -297441,7 +297574,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-right-style-001.html": [
- "bb71d2067403ec277096420b3578ebbcbe7617d2",
+ "fabd171c48dd6130caa284ae5a8aa0a834ed3154",
[
null,
[
@@ -297454,7 +297587,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-right-width-001.html": [
- "c6b7ea15ceb7596faf8b27c0853768a6a4846e0e",
+ "74e3d4e768618fb1d626c4d1ddffc3df8a7604db",
[
null,
[
@@ -297467,7 +297600,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-start-end-radius-001.html": [
- "808f2e470dfe86cbcb0f0af75eabb1b3b1b9964f",
+ "66508d366f1a1a916763de3afe3f6d38f993a4e7",
[
null,
[
@@ -297480,7 +297613,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-start-start-radius-001.html": [
- "c175684291c73769b4d8dd382ce5b70e002e67b5",
+ "d0d8f5b6273dee74463b040aefda549dace4d9b0",
[
null,
[
@@ -297493,7 +297626,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-top-color-001.html": [
- "8b772fcbbae045e53fffd7dafe8eeb3014a040e5",
+ "4be96ac8e537c0827270912436a9db16fb548a50",
[
null,
[
@@ -297506,7 +297639,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-top-left-radius-001.html": [
- "4555f7bf9f7145f9d1f44a98ac06ca78f5038ae2",
+ "eb1851ff31cfc3dd517382645305c858a520f078",
[
null,
[
@@ -297519,7 +297652,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-top-right-radius-001.html": [
- "bdd2456717b439bbcc2a928916e87c3cb12b6cf7",
+ "6b9544b0057502ae4d5895ffb9582ae91d79535e",
[
null,
[
@@ -297532,7 +297665,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-top-style-001.html": [
- "d1b8925c99881592146167db13c3f985940f0501",
+ "286433ec3ef0c1331c2feb2635747b7458b99318",
[
null,
[
@@ -297545,7 +297678,7 @@
]
],
"kind-of-widget-fallback-radio-input-border-top-width-001.html": [
- "6754370665a43973ea38561e25543a7bdd783181",
+ "50fabc390e2899d4e0d35f4f752b63f94bcd692b",
[
null,
[
@@ -297558,7 +297691,7 @@
]
],
"kind-of-widget-fallback-range-background-attachment-001.html": [
- "eed5c36afd8c41d4dfc3340ad1a52068fc2d77a1",
+ "6fea7425745fea6076185a7627c5497a02495b0a",
[
null,
[
@@ -297571,7 +297704,7 @@
]
],
"kind-of-widget-fallback-range-background-clip-001.html": [
- "2425493ba7176ac17a3e8b0a30385faa6c350a99",
+ "4e9929b71862592af5a0c89e80639bd4f414835b",
[
null,
[
@@ -297584,7 +297717,7 @@
]
],
"kind-of-widget-fallback-range-background-color-001.html": [
- "f63d6c5e76940353eeba95a3be03e35dea4e84d2",
+ "69f57923acc275b27992f71c6dcf401798014174",
[
null,
[
@@ -297597,7 +297730,7 @@
]
],
"kind-of-widget-fallback-range-background-image-001.html": [
- "13e226fa7ff31ac13d00cd7b5c38c13fbbb321ad",
+ "123099800e6470368fe3e4ad767b7534d2bb32bc",
[
null,
[
@@ -297610,7 +297743,7 @@
]
],
"kind-of-widget-fallback-range-background-origin-001.html": [
- "4f4b117275ddeb49905eb09dc76d6302c4d28da7",
+ "6ec90d2eed7c1f491102c6e01765d6fee8af8c0c",
[
null,
[
@@ -297623,7 +297756,7 @@
]
],
"kind-of-widget-fallback-range-background-position-001.html": [
- "4ecaef70405b3dc62742e63637b9b120e2599315",
+ "50190d72d944e2b9660e96b19af4bf528418bfd7",
[
null,
[
@@ -297636,7 +297769,7 @@
]
],
"kind-of-widget-fallback-range-background-size-001.html": [
- "b4e354d9328afad550f17d1bf1d4d684b2ff1bc3",
+ "e447de7218487051482e0c253b36bc1e1fce8b5d",
[
null,
[
@@ -297649,7 +297782,7 @@
]
],
"kind-of-widget-fallback-range-border-block-end-color-001.html": [
- "f239bd18a492c772e092139974e64fc1ac2d4c29",
+ "5b1784f1e06d812089619f5b3ac68767a2ea9543",
[
null,
[
@@ -297662,7 +297795,7 @@
]
],
"kind-of-widget-fallback-range-border-block-end-style-001.html": [
- "a0df8440e25e8bb4dd28c31efcfc96db0edb9023",
+ "499a89aa2568f5885280d52e83d728d17cebb27d",
[
null,
[
@@ -297675,7 +297808,7 @@
]
],
"kind-of-widget-fallback-range-border-block-end-width-001.html": [
- "a02c0a4f940f47795f68d0f2a6b312a0ef4492a2",
+ "892703af732c1a56df94e640ae2c4d808bc0f0c7",
[
null,
[
@@ -297688,7 +297821,7 @@
]
],
"kind-of-widget-fallback-range-border-block-start-color-001.html": [
- "c46e85783a3373438069d597a4f5fb7827044aaa",
+ "1eaa390696a7b883d18d1027ec1dcea0b9703351",
[
null,
[
@@ -297701,7 +297834,7 @@
]
],
"kind-of-widget-fallback-range-border-block-start-style-001.html": [
- "90702266133d73815cb0e55298186c486a61026e",
+ "5fb0cffe7346c39ec2f51893f29a642f9ad01d9a",
[
null,
[
@@ -297714,7 +297847,7 @@
]
],
"kind-of-widget-fallback-range-border-block-start-width-001.html": [
- "f4ca55580cdf23dfad76c370ed3fbe8546b0b877",
+ "6c2761f84580169b37547d8f5f14017b742b8097",
[
null,
[
@@ -297727,7 +297860,7 @@
]
],
"kind-of-widget-fallback-range-border-bottom-color-001.html": [
- "9ce88704dd715a31a4451397a62cc346400bd050",
+ "7505eef050f5abd35dc2e159fdd37dccd9d9f669",
[
null,
[
@@ -297740,7 +297873,7 @@
]
],
"kind-of-widget-fallback-range-border-bottom-left-radius-001.html": [
- "3ed1a656c60f4ba878d93879f21a16aa54bef4cc",
+ "cff29359ab74e68e10034eaf76bfed6b740433ee",
[
null,
[
@@ -297753,7 +297886,7 @@
]
],
"kind-of-widget-fallback-range-border-bottom-right-radius-001.html": [
- "3f2eefd2a6ee5e27227f55023b2ac1a13a8432d3",
+ "27781502f168ce58144e4133dd292ec3fde30003",
[
null,
[
@@ -297766,7 +297899,7 @@
]
],
"kind-of-widget-fallback-range-border-bottom-style-001.html": [
- "9bf706c236f3327c015cf692ccee529a3c03fcd6",
+ "bbf1ab11d79e0e0f57c00064585a57b696fb9ed9",
[
null,
[
@@ -297779,7 +297912,7 @@
]
],
"kind-of-widget-fallback-range-border-bottom-width-001.html": [
- "77f0bb47de5cd26b903c60b9d845b8c9f97dd123",
+ "70057ceb700ef2e0cd3c86d63fc4e5de05ea8235",
[
null,
[
@@ -297792,7 +297925,7 @@
]
],
"kind-of-widget-fallback-range-border-end-end-radius-001.html": [
- "97d2e5498d49d03dce46e858186a6bc266979cfe",
+ "9791d8f45761674020fdf01ae21f4f62c1e1013a",
[
null,
[
@@ -297805,7 +297938,7 @@
]
],
"kind-of-widget-fallback-range-border-end-start-radius-001.html": [
- "45443156d244a71c369a1d8f7e861a00e5aaa468",
+ "7efedfeed8ca7582e95d840679095dc541ed9f44",
[
null,
[
@@ -297818,7 +297951,7 @@
]
],
"kind-of-widget-fallback-range-border-image-outset-001.html": [
- "249e3611bf81126c861061c2e5aae6ce27165638",
+ "2d1714baf9dbd80c60020c9b51829a5b36f7b4c2",
[
null,
[
@@ -297831,7 +297964,7 @@
]
],
"kind-of-widget-fallback-range-border-image-repeat-001.html": [
- "e948b3ff527b9271c8436ca3fa860491e58111ea",
+ "ce43ffe90f59c34be6ba07edb26d1eb04accf92d",
[
null,
[
@@ -297844,7 +297977,7 @@
]
],
"kind-of-widget-fallback-range-border-image-slice-001.html": [
- "89693852022a081c406c4b04ddd237e8aaaf1f39",
+ "6ba4d5b763c3fa69e64d48dda5aa2e46ccae77e2",
[
null,
[
@@ -297857,7 +297990,7 @@
]
],
"kind-of-widget-fallback-range-border-image-source-001.html": [
- "06b1d38bd19f5e836972496430cf809608597080",
+ "f635b3822ce5738daf9fd7ce776fb48fa3970b99",
[
null,
[
@@ -297870,7 +298003,7 @@
]
],
"kind-of-widget-fallback-range-border-image-width-001.html": [
- "e08a346dcaa9960d4e2eb6a4ea5b0933e167102e",
+ "af34ff906972d482e314e1e55b72412dc2f7a546",
[
null,
[
@@ -297883,7 +298016,7 @@
]
],
"kind-of-widget-fallback-range-border-inline-end-color-001.html": [
- "a7834d0d1cd60a1881a43516728c64421f9eb1ca",
+ "b6c11ae3b9000cddb52cd959c547bc1157e7e213",
[
null,
[
@@ -297896,7 +298029,7 @@
]
],
"kind-of-widget-fallback-range-border-inline-end-style-001.html": [
- "02332fc3aabe93fcb0f5bc94ee491b68f6b81e20",
+ "f6b9ce769cf047df93f5525eb7aedfd67c9cd200",
[
null,
[
@@ -297909,7 +298042,7 @@
]
],
"kind-of-widget-fallback-range-border-inline-end-width-001.html": [
- "850a789689d6f45951a32dedf92c480426883c55",
+ "a26a0c715801085b2028e971b9d5b52dbb26a263",
[
null,
[
@@ -297922,7 +298055,7 @@
]
],
"kind-of-widget-fallback-range-border-inline-start-color-001.html": [
- "c79178b40f653c0d4bc8fa3dbf13034ff689b837",
+ "9253b76ea5da847ddee70313c4f8a8faceab667d",
[
null,
[
@@ -297935,7 +298068,7 @@
]
],
"kind-of-widget-fallback-range-border-inline-start-style-001.html": [
- "3389b729d0bdb4e0ed5b656ec91162a3d5abb62a",
+ "ed794341ebfc64b5120773aaffadb4ef0246af5f",
[
null,
[
@@ -297948,7 +298081,7 @@
]
],
"kind-of-widget-fallback-range-border-inline-start-width-001.html": [
- "e5b779f0de6f496482899b598a2119abf6f5751f",
+ "109d69aff69368ed04507dde1a711d05a05fc977",
[
null,
[
@@ -297961,7 +298094,7 @@
]
],
"kind-of-widget-fallback-range-border-left-color-001.html": [
- "3e5eafd1e2146319096ca70abad3520c4e44cc9d",
+ "da3920130fb0593d8c451817a99916dac04cf14d",
[
null,
[
@@ -297974,7 +298107,7 @@
]
],
"kind-of-widget-fallback-range-border-left-style-001.html": [
- "11692d379d7dc4330b40562089c9f267c22af066",
+ "e7c2630dca9ae7bb85db373861bdc29632d23cf4",
[
null,
[
@@ -297987,7 +298120,7 @@
]
],
"kind-of-widget-fallback-range-border-left-width-001.html": [
- "d1a75f24815890b1bb38a24ade61be3a58d1e3e3",
+ "6da5478584462730901ec1499c41d10df1a7b04b",
[
null,
[
@@ -298000,7 +298133,7 @@
]
],
"kind-of-widget-fallback-range-border-right-color-001.html": [
- "3b21d757f99cca55bab7e4ca09b97723b805da99",
+ "a02e84da1bc3b066c32859d87dd6b102eef9b17d",
[
null,
[
@@ -298013,7 +298146,7 @@
]
],
"kind-of-widget-fallback-range-border-right-style-001.html": [
- "dede15447872a7a51b1bb1538ffa9da328a489ea",
+ "e79dd4ba5ce75f42ceef58bc4488738a9272aefa",
[
null,
[
@@ -298026,7 +298159,7 @@
]
],
"kind-of-widget-fallback-range-border-right-width-001.html": [
- "8ff795a788b701e7414bc4ef37fceeedbb8194de",
+ "fcc26fd31b1cd88bfdad581e751f674812564fdb",
[
null,
[
@@ -298039,7 +298172,7 @@
]
],
"kind-of-widget-fallback-range-border-start-end-radius-001.html": [
- "e9067a6cc49477cf1ec3a436bdc56424c2094b17",
+ "4a0a5dec8105cc8734bceff85f0f3853a74bffdc",
[
null,
[
@@ -298052,7 +298185,7 @@
]
],
"kind-of-widget-fallback-range-border-start-start-radius-001.html": [
- "04a7a854271240fb53c61144a942e083f337a323",
+ "01af123bb5b721b3353b5c77cd3cdb628aab75f4",
[
null,
[
@@ -298065,7 +298198,7 @@
]
],
"kind-of-widget-fallback-range-border-top-color-001.html": [
- "1014b24ff3ae225688e9c50f5e265514e4db767b",
+ "d11fc9fc4f1a69372dc7491a1a1fd318efb26ab2",
[
null,
[
@@ -298078,7 +298211,7 @@
]
],
"kind-of-widget-fallback-range-border-top-left-radius-001.html": [
- "d7d8c65d38b2f013c106809c50d83e052f2c1e76",
+ "c9fa079fb82b1c8378f3401a28ceb4d6893a9eef",
[
null,
[
@@ -298091,7 +298224,7 @@
]
],
"kind-of-widget-fallback-range-border-top-right-radius-001.html": [
- "4c10b6b1eb1452f59bb520284c7de21e01cdf54d",
+ "264634711b30a026b58ad2d55c771259fd1b572f",
[
null,
[
@@ -298104,7 +298237,7 @@
]
],
"kind-of-widget-fallback-range-border-top-style-001.html": [
- "288b1504445683d41265125d10052516dfeac672",
+ "92a7902677929e93682500a956144c045a5e7ab1",
[
null,
[
@@ -298117,7 +298250,7 @@
]
],
"kind-of-widget-fallback-range-border-top-width-001.html": [
- "a4a3141ba11174e8d247b38fa3a8f02b03b138cc",
+ "d6ac8efd40fe0292abce6b3b8371be3f79a4f07d",
[
null,
[
@@ -298130,7 +298263,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-background-attachment-001.html": [
- "6433eed00039d1a5e905afc08efdba0dacd75bf5",
+ "5dbc26e82d844d9e555a2017f2ee33765e126a58",
[
null,
[
@@ -298143,7 +298276,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-background-clip-001.html": [
- "893f44ad7ed7fb6d597d17e21ca97b8b142e73c4",
+ "1734f73ed7919936dcee54237bfb820cadb8e5ea",
[
null,
[
@@ -298156,7 +298289,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-background-color-001.html": [
- "3de6a52933ecbf8e947fe567f82d57a600561fe5",
+ "53ce17763c0e10c478958d0ffcbb8a37a2b95e18",
[
null,
[
@@ -298169,7 +298302,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-background-image-001.html": [
- "28bb448983ed0740fc9100cbfafb22280773ee32",
+ "9694dad2f2f32d42e234af956fee6c62993a1eac",
[
null,
[
@@ -298182,7 +298315,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-background-origin-001.html": [
- "55e49ddd369a3e03e150787ad81c0e5a4a9621e2",
+ "bb7950b8dbd8ec29d945ee41bf22d44f21de6814",
[
null,
[
@@ -298195,7 +298328,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-background-position-001.html": [
- "301005dc7d6955fbdca41a022a28fced66151e54",
+ "e650565ee08da55165256ec968cca55b112a2031",
[
null,
[
@@ -298208,7 +298341,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-background-size-001.html": [
- "442e610adb3ab4737b37ed3d00cf41da3d9f59d2",
+ "c2fcbfc99ae72a0908a6ad4730bd669c5b4ea331",
[
null,
[
@@ -298221,7 +298354,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-block-end-color-001.html": [
- "2c5585d3c4ac9a1a27c3a85bb1a2e51b0d83f320",
+ "e382704ffeb8c69537f2bfb25c5c5ee468b60ce1",
[
null,
[
@@ -298234,7 +298367,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-block-end-style-001.html": [
- "e974ff0ea3cb71afc0b6d066dea5e513a8476942",
+ "29b4b48f4ce04e942971f49b110cb05527099c7d",
[
null,
[
@@ -298247,7 +298380,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-block-end-width-001.html": [
- "abab3719f145442d3f74b614b7eb49e944469543",
+ "6dfcb0583543d7a09c48861f8dbc9deed13578d2",
[
null,
[
@@ -298260,7 +298393,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-block-start-color-001.html": [
- "d185f2e9195f76f1b85d3d8463cc0a18c17197cb",
+ "1ab7c42524fe9cecb6632efb18a1f9da178feecc",
[
null,
[
@@ -298273,7 +298406,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-block-start-style-001.html": [
- "204d8750e0123d9542a4b073563cef9805266e8a",
+ "03ffcf7ade1bbaea12e444b218690d4524858042",
[
null,
[
@@ -298286,7 +298419,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-block-start-width-001.html": [
- "62385db2d83d2b43f388898ded4b48a6437d5ebd",
+ "43cab15a708c8eb4263fc35e523e6e56e5437035",
[
null,
[
@@ -298299,7 +298432,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-bottom-color-001.html": [
- "f69af1be4c991dffcc6f942c984b4a5972743825",
+ "5ee66519d88caa34d793ace179d8880a0b3665d8",
[
null,
[
@@ -298312,7 +298445,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-bottom-left-radius-001.html": [
- "5f9bc22917b9aba17ec7efce108d1fb16142d21f",
+ "41b2edd4cc3b099a7a874da19eb4067f1d210d1e",
[
null,
[
@@ -298325,7 +298458,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-bottom-right-radius-001.html": [
- "f0b1c3bb9424454c9f22173c982739e6ca591d38",
+ "0d8c5250c43d01f629f00cc99180704e3453ca16",
[
null,
[
@@ -298338,7 +298471,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-bottom-style-001.html": [
- "08d50efaeccbc124671aeac3db23ae851a4ca017",
+ "44db251bc5245ce0868f2f348e127c61792ed9b1",
[
null,
[
@@ -298351,7 +298484,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-bottom-width-001.html": [
- "99594c3cfd42a7dbbbf2920a5fa5fbf54b1d8fdd",
+ "98d8e4d5cae42ca30f8780bb2b98b149bf8473f8",
[
null,
[
@@ -298364,7 +298497,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-end-end-radius-001.html": [
- "37193b385124a6cf966a360f19b4fb1c54358a0d",
+ "0eb67667bcc885991dab2a55457c8ccd4d34aaed",
[
null,
[
@@ -298377,7 +298510,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-end-start-radius-001.html": [
- "3d5d204816dae39dae6567cca5b522cdd80ec7cd",
+ "865c5b370780028b5cee05081461d67a21194a5a",
[
null,
[
@@ -298390,7 +298523,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-image-outset-001.html": [
- "226ce72f5c9311aa7effc081923803c703949038",
+ "a1cf17e5347cd1c72b329f17f049b9dbcbc673bc",
[
null,
[
@@ -298403,7 +298536,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-image-repeat-001.html": [
- "9d13282500dfa966bdc4109688b6fb073f04b197",
+ "c2b8abe427d09221a741d5e4c958015908f4f175",
[
null,
[
@@ -298416,7 +298549,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-image-slice-001.html": [
- "449c13e1ddfedaa93f16f98aa97b270fa749e195",
+ "6c2500bdc1619711719d0b4daa2e152999345475",
[
null,
[
@@ -298429,7 +298562,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-image-source-001.html": [
- "a472cbb6e4fda1c81f5fcb57e15129afbcdc00aa",
+ "22a671d1e8db023cde715e7f39dfdd9d1ae4321a",
[
null,
[
@@ -298442,7 +298575,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-image-width-001.html": [
- "9fce0c0a353ecddc09e97587de040a14b5f757f0",
+ "f1ef7713275cbf73719e23e797fb04795e6f9c66",
[
null,
[
@@ -298455,7 +298588,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-inline-end-color-001.html": [
- "6224f7c1b19c14ffe9d81159826ed0038c16e491",
+ "e7c6cc6ae057f3920c3ed7e357ed20a55bc74259",
[
null,
[
@@ -298468,7 +298601,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-inline-end-style-001.html": [
- "7d856d377d1c0134f22f3c361e4133b49b9c7c3f",
+ "937560da6ae11d3275b4f8c8076c334d8dec3d98",
[
null,
[
@@ -298481,7 +298614,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-inline-end-width-001.html": [
- "f425bd80205aaaba428e0ae6d5a6493195687ffa",
+ "a516dd25d83da999d9399efe8d839185338ea82c",
[
null,
[
@@ -298494,7 +298627,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-inline-start-color-001.html": [
- "bc5942436270fbcf3590fbe0cf0f089edee505b5",
+ "122e7aaf27fb4480d5915015203208cf790e6b12",
[
null,
[
@@ -298507,7 +298640,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-inline-start-style-001.html": [
- "cb0eb4d52acb45bf1370f95560d1e851e1a758e8",
+ "e8c45e39384b725eb4296c495a39c199cecb2ceb",
[
null,
[
@@ -298520,7 +298653,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-inline-start-width-001.html": [
- "930db1962f8fa8e88ea9db4a80e07b0b114cd018",
+ "9e35dc3c19296c4bf27e68f692ebca9bb2f938d8",
[
null,
[
@@ -298533,7 +298666,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-left-color-001.html": [
- "17420b3e89b524dc1b1b5350e16ef8f62ab24694",
+ "6af2772ed1b1b857e3dc0f7bde645ac86a9eda72",
[
null,
[
@@ -298546,7 +298679,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-left-style-001.html": [
- "11579b1a31f7f74949d9af86fc986a8a253402a4",
+ "e2964b7e441f4a4c19cc01d01a1ba74ef6340bf0",
[
null,
[
@@ -298559,7 +298692,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-left-width-001.html": [
- "a154051e26b288e266dc1dd72ab316b67bb28207",
+ "5b91aa41f33d21a6707ecf19ae99f445e4f138a9",
[
null,
[
@@ -298572,7 +298705,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-right-color-001.html": [
- "a45bca7115bb858ba2c17b05967bfa4106253bed",
+ "76e4a01ae1bcc8bffa3284cceee549eca3029263",
[
null,
[
@@ -298585,7 +298718,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-right-style-001.html": [
- "c1c4b67e9ad1e6c68bb967a671b484dfea5f31f8",
+ "9c8ab3e46a790348b1e3c266976ab20d59fd6a81",
[
null,
[
@@ -298598,7 +298731,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-right-width-001.html": [
- "e42ebee184f9feade593f868543ee9a2f453bbac",
+ "4e59db8865cf9c7877b2bc606d5ebcf3dd1fcd11",
[
null,
[
@@ -298611,7 +298744,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-start-end-radius-001.html": [
- "cd843e6a98efb2aa646546b86d7cbcb34e826fb7",
+ "6c9cd77cd5cd8d5ba155f123124590e945e4d56e",
[
null,
[
@@ -298624,7 +298757,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-start-start-radius-001.html": [
- "39a3e28a7c221e567b01e4331c98d852a6e9c154",
+ "fa2018c0d6267ae052b14893c67c99c0be73576a",
[
null,
[
@@ -298637,7 +298770,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-top-color-001.html": [
- "a95962bc0cc36a0cd3c5729c467d05c67293277b",
+ "f8d8d40c9ebe2446b3251338adc43eb5be6c5f29",
[
null,
[
@@ -298650,7 +298783,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-top-left-radius-001.html": [
- "83d1127a98800e11cf7b1dd7a494c30b42080121",
+ "fd250b56a2e491387b73384ecaf5ecf2533919b1",
[
null,
[
@@ -298663,7 +298796,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-top-right-radius-001.html": [
- "8bc5ab06d7b4a5331ab3dcfb3908a6a4217414b8",
+ "57dd110bb479a5146c4b59e0bc89645aed21134f",
[
null,
[
@@ -298676,7 +298809,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-top-style-001.html": [
- "d020d16cd80c997e44b79aad5c77e8d243bdcd26",
+ "8059928dfd5fe4de1bfce24b9473a5949b2a60f4",
[
null,
[
@@ -298689,7 +298822,7 @@
]
],
"kind-of-widget-fallback-select-dropdown-box-border-top-width-001.html": [
- "111bea1491dae99a423df2f142a2010ef1617fbc",
+ "5c5f7f62b6693b9d5d28f66fcf26306d7dfc9630",
[
null,
[
@@ -298702,7 +298835,7 @@
]
],
"kind-of-widget-fallback-select-listbox-background-attachment-001.html": [
- "421f39100d83164c504af4a05da54474b86b00b8",
+ "933023113cafb2967472d346cd15a2cfbe9e55a1",
[
null,
[
@@ -298715,7 +298848,7 @@
]
],
"kind-of-widget-fallback-select-listbox-background-clip-001.html": [
- "ed20f1fb5e33b625d935897b7ef821ac8869c795",
+ "348d3e0fa2f809f63e8f6ef051bf5e7304093688",
[
null,
[
@@ -298728,7 +298861,7 @@
]
],
"kind-of-widget-fallback-select-listbox-background-color-001.html": [
- "df8d3167dd06d1111c973c70d8a74b130cbd2715",
+ "ba5d492001018b9eb8657ba364820701bccede20",
[
null,
[
@@ -298741,7 +298874,7 @@
]
],
"kind-of-widget-fallback-select-listbox-background-image-001.html": [
- "c6d970745fbf2f464cba2eca9daeb6eefeb3506d",
+ "e612eec795e1fa5ad3e17a2f1baa123831ece0e3",
[
null,
[
@@ -298754,7 +298887,7 @@
]
],
"kind-of-widget-fallback-select-listbox-background-origin-001.html": [
- "13ad30ee617a3e7e1c33f67cdfdc4bfef6995e09",
+ "c964aa77a896693e0d911ab683071e8eb22bb86c",
[
null,
[
@@ -298767,7 +298900,7 @@
]
],
"kind-of-widget-fallback-select-listbox-background-position-001.html": [
- "4c2dc06a19e09dcd32ac0485d801fe03b1c3a3a5",
+ "957388d996c66937f239d91b522231364b746709",
[
null,
[
@@ -298780,7 +298913,7 @@
]
],
"kind-of-widget-fallback-select-listbox-background-size-001.html": [
- "1f3da703848aeb4a192942cdc32f1d26957e824c",
+ "9ff1a8528e20d35aafd8f1e2a08709f21d8634ed",
[
null,
[
@@ -298793,7 +298926,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-block-end-color-001.html": [
- "b5644b414917e17d43fde7709e79890c64895512",
+ "f28c4652f5e50cdd9c8298e56055ea4a3499d389",
[
null,
[
@@ -298806,7 +298939,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-block-end-style-001.html": [
- "5df38b3ca9f4bd0d279e55ff68e05051344750b4",
+ "4c89b1dafe585dab952cb22e0f3aa6629f0bfa48",
[
null,
[
@@ -298819,7 +298952,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-block-end-width-001.html": [
- "747d5ce575ab053bc59e754a81590a1ec28f61aa",
+ "8e4ce7e98291fe8f46f70c933aa6325be0a4c32a",
[
null,
[
@@ -298832,7 +298965,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-block-start-color-001.html": [
- "30931dbba75fc9d969038303211845bec9ef4fee",
+ "fd8a3275d6c8684e41a245e1a042e49708312f82",
[
null,
[
@@ -298845,7 +298978,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-block-start-style-001.html": [
- "e5405b566a4010d3e16ffa218b9564e2b70b836a",
+ "39ad206a321f87e9915ad064ac49313cb3deb95e",
[
null,
[
@@ -298858,7 +298991,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-block-start-width-001.html": [
- "e002d3569be26745c2b75d9d17c3d264379c739e",
+ "1687e230f6c04903c0c0c2a211bab7974197bccf",
[
null,
[
@@ -298871,7 +299004,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-bottom-color-001.html": [
- "621a978e2d6621635e4bfc6fb045172921f7113a",
+ "4291882c7cb82df3809971b2be23e49d9a96b2fc",
[
null,
[
@@ -298884,7 +299017,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-bottom-left-radius-001.html": [
- "9a6168f459d5b8e2580c0b857dfc86ac20c50801",
+ "59501233680222352af0d23601945c5e8a5c7fe1",
[
null,
[
@@ -298897,7 +299030,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-bottom-right-radius-001.html": [
- "1ff38c4102b82e872e506742c30320f78de21467",
+ "99f81254e5ba13ae3448ec7ca5218a4e54cbe874",
[
null,
[
@@ -298910,7 +299043,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-bottom-style-001.html": [
- "8ca6afd4548b18c6f5e94c655773eb5253d1347d",
+ "adf1f9d73fb21b74602a07b835145e4a3ba28f5f",
[
null,
[
@@ -298923,7 +299056,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-bottom-width-001.html": [
- "dd2a643272eceaee9b1068ca3bf9594934bfae28",
+ "86c619c4fa4aaa3d4ba12498d466388c3ccdaeef",
[
null,
[
@@ -298936,7 +299069,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-end-end-radius-001.html": [
- "371faa8850110a6da617da8ca76be8110eb6be82",
+ "f3b4ebedcde9ec82c08b73afb28c804cc9453990",
[
null,
[
@@ -298949,7 +299082,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-end-start-radius-001.html": [
- "f943b7d0a522849423cf8e2a37e00e2c64cfcd4b",
+ "ba43abaf2ca979ded5e363277a571d382ff5b1db",
[
null,
[
@@ -298962,7 +299095,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-image-outset-001.html": [
- "d824aeb01a21512b7e71d2448b2179476c1eda6a",
+ "eab7c17b1128a8ef04789f6f9bf25c1a8621e2fd",
[
null,
[
@@ -298975,7 +299108,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-image-repeat-001.html": [
- "9b64e00051e9d926e2400501d24f5078f63d983c",
+ "411cb45b0ba5c367bd911b6a82c002ddcf1d3e02",
[
null,
[
@@ -298988,7 +299121,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-image-slice-001.html": [
- "e132db60a92afffd7da956e9c7993a166e21da6f",
+ "4e2ce8155a73d1c200ca2ec6ade80415c1acbc1e",
[
null,
[
@@ -299001,7 +299134,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-image-source-001.html": [
- "aa669d47302d6ba507144db31fc7695c25c9d8a1",
+ "e535b87df69878ed0c14cf6f5e7d8dd68a8184b7",
[
null,
[
@@ -299014,7 +299147,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-image-width-001.html": [
- "8e30fa0669227f10de35bb58a038fa9f7f82e327",
+ "3b914c4721b76bc4ea03c8763be80d2fd2efa4f6",
[
null,
[
@@ -299027,7 +299160,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-inline-end-color-001.html": [
- "f676a262c8cfc5ba98b260a36dd32ce09d2757fc",
+ "0a1312ac09dfe44f8ca665b01b3f080b0f5deed0",
[
null,
[
@@ -299040,7 +299173,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-inline-end-style-001.html": [
- "32c9f20c61e2dbdb1e01f2f53f67c4321bc9ac04",
+ "2279a679493f1154a74fb96388f30afd6484d2e3",
[
null,
[
@@ -299053,7 +299186,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-inline-end-width-001.html": [
- "e408175fd0fdad59a8748b4fd831ec28bf691ab5",
+ "d68a2829a8512dafb1686723fdb1eb4627698f71",
[
null,
[
@@ -299066,7 +299199,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-inline-start-color-001.html": [
- "4048d4055280b9692bf4ce6b3d367192ef96abbf",
+ "bc243479208a5ce403c0764ebb0fcafe7ae0964c",
[
null,
[
@@ -299079,7 +299212,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-inline-start-style-001.html": [
- "4f36c9a6f0b41560024577274a7200306c217258",
+ "e34b788d3ff1c222c8a97ea63fc3cac551224604",
[
null,
[
@@ -299092,7 +299225,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-inline-start-width-001.html": [
- "b81eab6f383993fe6fb56df0c375bcb3de715685",
+ "7f8021c381d34143177f2d5cc0ca5ea129a5b8db",
[
null,
[
@@ -299105,7 +299238,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-left-color-001.html": [
- "545941f258adc939cb17b3065415e285b19f6376",
+ "83d5bff2dfdd07c8b5f88be5e9558ac07714192f",
[
null,
[
@@ -299118,7 +299251,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-left-style-001.html": [
- "ccad964bb2bdbb33b85e2b9d7d39ad911c71a8fe",
+ "d2584155abdeb1d5e00991746c530a229d341342",
[
null,
[
@@ -299131,7 +299264,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-left-width-001.html": [
- "dd8f6b1429112e564bbd57a49848fa0ad7b9686d",
+ "d45becb8e1d58a2edbde1cc9087290c357bd0724",
[
null,
[
@@ -299144,7 +299277,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-right-color-001.html": [
- "a9a2e4f03a94cfbcd63fb298d31c1aa73b62c096",
+ "b4aa284005703cbefcf0f1a341255da031c6402f",
[
null,
[
@@ -299157,7 +299290,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-right-style-001.html": [
- "ea741144d01a7c698a92a27065be73154c25ee4b",
+ "c859ce2b87e49de6e452b5279433ef670e5dd9e1",
[
null,
[
@@ -299170,7 +299303,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-right-width-001.html": [
- "473fdedc7433b1ae463728b77a9e9e50e18e967c",
+ "eed728b60ac1628813f7471761034655b3775c38",
[
null,
[
@@ -299183,7 +299316,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-start-end-radius-001.html": [
- "3b5882f8022d8407f74fa7cabb4a7cf65cffc0fd",
+ "2f0badfd53fc2d5c921b3c80b1b52273fe6b0878",
[
null,
[
@@ -299196,7 +299329,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-start-start-radius-001.html": [
- "7924a6ec135e5634a9a76dd7193e5339f8a9fdca",
+ "45a0878db0c2094ad0571fd59846481b9ff1dd2c",
[
null,
[
@@ -299209,7 +299342,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-top-color-001.html": [
- "7506e6f1f77ae8d89f0d2c796c92b6a3f73e8df3",
+ "6f3f1186c8e1ea31089db853024672b5b9291c86",
[
null,
[
@@ -299222,7 +299355,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-top-left-radius-001.html": [
- "08acac6ad7e7fbd6208d4fc0c63624b8b91f1276",
+ "a1fd4802af6546dea32a7571bd06231e2082834f",
[
null,
[
@@ -299235,7 +299368,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-top-right-radius-001.html": [
- "6a036d1a68fad71af276da5136ce4d4781cdee55",
+ "6a5324c0a7a18eb31ffc98959bf0fd477855454f",
[
null,
[
@@ -299248,7 +299381,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-top-style-001.html": [
- "468d892e276b61eb90eb0b93520ef8b8ab3bba93",
+ "58152e3d6d8cb0f0ad89dbf1a5b1b4b95006b78e",
[
null,
[
@@ -299261,7 +299394,7 @@
]
],
"kind-of-widget-fallback-select-listbox-border-top-width-001.html": [
- "8ef3fef70ece573cf193fc3a901cf0f2707392f3",
+ "3c0dc58b2b7453a57b2f9e3a0ce0a335f81bb4fa",
[
null,
[
@@ -299274,7 +299407,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-background-attachment-001.html": [
- "ea04bb5c77264d9209b95e6fc2cf0660ebc08b2b",
+ "7dec89818c58a2d34fc8c4b58fa8418b26322c30",
[
null,
[
@@ -299287,7 +299420,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-background-clip-001.html": [
- "0e105dbf912974a0dbc07350b430baea0d8f4c36",
+ "906f60d48b5461ff9c07567e42e18bacf7cd4020",
[
null,
[
@@ -299300,7 +299433,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-background-color-001.html": [
- "633b1582f82c1482fa910a4c2279cfedd1adc9f8",
+ "e2bc226f85e449a1ea9cbf1e17d41c8a2b3484c0",
[
null,
[
@@ -299313,7 +299446,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-background-image-001.html": [
- "7362342a0c51c7fd6c4bd32c770db714c72dfc53",
+ "de7da6a784df8b872829129bf55c0858b669a336",
[
null,
[
@@ -299326,7 +299459,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-background-origin-001.html": [
- "0e2fb2f21bba31fc4fb94352c2a3bcac51db5e1e",
+ "af9f6b10fa22f3219582a166f38da0cc65e57522",
[
null,
[
@@ -299339,7 +299472,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-background-position-001.html": [
- "36e7ffc7250dc95ac4d384cda34629fac9f9dc95",
+ "f560cbb534793e0fcf7388d59c595a8705727692",
[
null,
[
@@ -299352,7 +299485,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-background-size-001.html": [
- "70a7b7bcdae3cd64a4d94546db70fae738600fc0",
+ "145d2c7190927bd4e58495dc93fc94708210a0fc",
[
null,
[
@@ -299365,7 +299498,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-block-end-color-001.html": [
- "f844e1c9f221d437b4a4ce4fc1f2b027b7e24464",
+ "961e93dbe1088ea987073146756f4aba150e7fc8",
[
null,
[
@@ -299378,7 +299511,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-block-end-style-001.html": [
- "884caa85c4fb4197d086a876fdc209dc4baa34ac",
+ "8e5389af2540d8b0f8f217112a3f60f813082adb",
[
null,
[
@@ -299391,7 +299524,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-block-end-width-001.html": [
- "e18ed9d5132be170293d74239198748107568bb8",
+ "7031d0b3d896730096396000a11d4e0acc0ffd95",
[
null,
[
@@ -299404,7 +299537,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-block-start-color-001.html": [
- "3cded602a7a52549ef72bf4b2c4dda3fb02ce754",
+ "a43d9e0c5be5016a5d760d0a6afcd1e306095c40",
[
null,
[
@@ -299417,7 +299550,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-block-start-style-001.html": [
- "b391c60ce2de230966f57a039d594efa340e4381",
+ "872d4bc8017d6fd971c2df53012d74e7f019713c",
[
null,
[
@@ -299430,7 +299563,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-block-start-width-001.html": [
- "756221907579a330435f7abda210762c13ba0ff7",
+ "8ed9de6b6c809c1296a551a1cd406ad994bf227b",
[
null,
[
@@ -299443,7 +299576,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-bottom-color-001.html": [
- "20654b5a42aef9a21827c500a11997866231824e",
+ "a6f3b1bc34f6cb98b3562bf447962f817a1f0d72",
[
null,
[
@@ -299456,7 +299589,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-bottom-left-radius-001.html": [
- "3bcd6b42d927703202f3dc4e8c8b33769eb294e0",
+ "0b13e4cf0e08d1c682673bb654ce155b43170feb",
[
null,
[
@@ -299469,7 +299602,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-bottom-right-radius-001.html": [
- "2013c4eec85202006de0dd2a5108ff76bca31713",
+ "c6c82b2f020c8664f398a14777fa65f966152b97",
[
null,
[
@@ -299482,7 +299615,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-bottom-style-001.html": [
- "d622a66bb42499afb5c24eb06fda68642922127d",
+ "04c11849dff362a00c7d4db4f9838c54b65bc928",
[
null,
[
@@ -299495,7 +299628,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-bottom-width-001.html": [
- "501d49d0b07f41c7c1973a6a267038a8b6aed20d",
+ "fad165718a1526bc3d8d185be92c5f8876b2a747",
[
null,
[
@@ -299508,7 +299641,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-end-end-radius-001.html": [
- "e82a5f63ba2b1dae0152f364301749f084bc7bfe",
+ "86acdda2ffced93e13fde77704d474838cd66a6b",
[
null,
[
@@ -299521,7 +299654,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-end-start-radius-001.html": [
- "73608dea91c3f2dc68eeafde5b761a168b6bd737",
+ "2ca6eacf8edddb1ca52acdcf0ec83db220a9351f",
[
null,
[
@@ -299534,7 +299667,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-image-outset-001.html": [
- "3bc99fda1c1c6cac4c89861bf72624f9270bf9d2",
+ "0a2874b8336b2f8bf7d703892998483ef4471457",
[
null,
[
@@ -299547,7 +299680,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-image-repeat-001.html": [
- "4d563a4e2ec613efa37dcdc0ea9e522e828dfa37",
+ "d5e2c5ebe97da69a46a42a9612c81a2209fe6409",
[
null,
[
@@ -299560,7 +299693,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-image-slice-001.html": [
- "d4eff46f7f5bf330ce5c5724ee8ba706838adfc9",
+ "ea4a391585e15d9b8de7fa8ec4d69df977a77f77",
[
null,
[
@@ -299573,7 +299706,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-image-source-001.html": [
- "a52605ad7517827cc1de759aed4d3ed2c214d02c",
+ "014b940cb5bc351453a7c7173493829f9abf1491",
[
null,
[
@@ -299586,7 +299719,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-image-width-001.html": [
- "386c46d892e35ba4fd5c3ed0e45effffc7f95580",
+ "48ac7ddf4699ad7106c1c6b332970efca950d677",
[
null,
[
@@ -299599,7 +299732,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-inline-end-color-001.html": [
- "a906ef77c8abee80b542e13b0a72c0063ccd154c",
+ "52aa7fc0a4395d896d310485abe30db35a805f5a",
[
null,
[
@@ -299612,7 +299745,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-inline-end-style-001.html": [
- "fa5ed102c92f37b3a08306600d606f4881205767",
+ "840bff1e59338876a1db477b5299805b112c623f",
[
null,
[
@@ -299625,7 +299758,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-inline-end-width-001.html": [
- "0bbe404ce78ac3723bbc4bebfa6e9bb9be3a2365",
+ "f44cf60d5e065f0d8a92f9d66da4d2d5a5da0aee",
[
null,
[
@@ -299638,7 +299771,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-inline-start-color-001.html": [
- "219234ed3f28494741565081614313f52267978c",
+ "f8f10ea033e2455eb8656cea90650de69e1ec3a4",
[
null,
[
@@ -299651,7 +299784,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-inline-start-style-001.html": [
- "9b556a386e75f932cf2b56d8a8231f34600968a1",
+ "c22a45f12eca5d6e588e7ca3f6b6df084d961786",
[
null,
[
@@ -299664,7 +299797,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-inline-start-width-001.html": [
- "46e189953f49d5893ef9c8f5d1116ba193ee0552",
+ "1b695b92ab92fb23db84ae97da774b330e160c9b",
[
null,
[
@@ -299677,7 +299810,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-left-color-001.html": [
- "36b5e9590d9d194220970f4e283a9e882832f667",
+ "b748596a4674e278b614246c23128b6bb4428496",
[
null,
[
@@ -299690,7 +299823,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-left-style-001.html": [
- "555f1be3d86dfb3d50547e1d60a7682cd7be04fa",
+ "a7aaff3cbde36aadf50c62f739795a344f3130de",
[
null,
[
@@ -299703,7 +299836,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-left-width-001.html": [
- "27d96406ef2524fb7933aefb8f4e71782754115c",
+ "0535665d8eb19bc2b92c3d90c1fad02290af3d2d",
[
null,
[
@@ -299716,7 +299849,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-right-color-001.html": [
- "f583e6aa17e33c2aef50e05db07f07755450c56e",
+ "4b6b398676aa669ea5089805ac4bf940f0613f99",
[
null,
[
@@ -299729,7 +299862,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-right-style-001.html": [
- "998263e7cc6a768642253e54981209e73e82bf48",
+ "618b0fe94347a560c4eac4e967a14718fb2d3e1e",
[
null,
[
@@ -299742,7 +299875,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-right-width-001.html": [
- "22c28490390f8af349fbb2cbf42d754cc7167f16",
+ "3ff4d19fce6c7d40a624367eafb79fcc902fbcf0",
[
null,
[
@@ -299755,7 +299888,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-start-end-radius-001.html": [
- "b9e81afafa6a290ae284a3cd43fac0e7871bf064",
+ "ccb4434b99b254236bfd9cc892be7fcc1331634b",
[
null,
[
@@ -299768,7 +299901,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-start-start-radius-001.html": [
- "5f92400a6c8508b6bc1231b47222a656925e1f0c",
+ "1a0596425c73d887b26f86d608af66a364cf0f07",
[
null,
[
@@ -299781,7 +299914,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-top-color-001.html": [
- "7149c67b5029b73550f9bf2d91c3a0fe063bf2fb",
+ "89355fe2a0d2aabda02ff038f2c527133b767d51",
[
null,
[
@@ -299794,7 +299927,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-top-left-radius-001.html": [
- "b362de342b6505e5b2195bb6b0122b8701436575",
+ "005650470c222f33b0b50b1027afbc65aebf14af",
[
null,
[
@@ -299807,7 +299940,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-top-right-radius-001.html": [
- "ce37dd24030aa3d7aa3a11286947bd66dfe80da7",
+ "e3227568e9695fc8010c2ef8919047fbcf3c9d10",
[
null,
[
@@ -299820,7 +299953,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-top-style-001.html": [
- "7215db5dae502989e09c2bf2a70d072d7e4c0db7",
+ "8359e858ea96aa09f39a2b5ac830c7bc1f96b6c6",
[
null,
[
@@ -299833,7 +299966,7 @@
]
],
"kind-of-widget-fallback-select-menulist-button-border-top-width-001.html": [
- "1da3cd176cb1f63f7c70bf38e99e499cb4853d2f",
+ "b37df0dde11e656fc03d905dc5fa32fbba0acf2b",
[
null,
[
@@ -299846,7 +299979,7 @@
]
],
"kind-of-widget-fallback-textarea-background-attachment-001.html": [
- "3e38fcacb5b7868874d05882c15739435126322e",
+ "aa8f7e11f6e4fac30ad0d2d40e7cea553e5f130e",
[
null,
[
@@ -299859,7 +299992,7 @@
]
],
"kind-of-widget-fallback-textarea-background-clip-001.html": [
- "a472d107715160c299610b05f905e6e5d4d452d8",
+ "f67c36688d9df0c1a0768853589c3e0830c5a328",
[
null,
[
@@ -299872,7 +300005,7 @@
]
],
"kind-of-widget-fallback-textarea-background-color-001.html": [
- "b336e6088bcf52852df97c92081da024c9f1736a",
+ "05b03f508fba57c309a1b8055bada328188d5842",
[
null,
[
@@ -299885,7 +300018,7 @@
]
],
"kind-of-widget-fallback-textarea-background-image-001.html": [
- "30cebc644f14c83116fcd8d5fd2480b041472e0c",
+ "b5fe21ebdc32dc8b906479e54d110313b4522fab",
[
null,
[
@@ -299898,7 +300031,7 @@
]
],
"kind-of-widget-fallback-textarea-background-origin-001.html": [
- "82b53272d55c4448239527094ec5b2d4c17abb07",
+ "39780bc3c16d188964919ef229677a74d1099db0",
[
null,
[
@@ -299911,7 +300044,7 @@
]
],
"kind-of-widget-fallback-textarea-background-position-001.html": [
- "ee118c38e1f07913737f2556336d36dc0cabd039",
+ "f6c3258640c1f6b14d8d444e2493f51431174b87",
[
null,
[
@@ -299924,7 +300057,7 @@
]
],
"kind-of-widget-fallback-textarea-background-size-001.html": [
- "73d1995ce7e32cd70e9ef50f9253161c800b156f",
+ "1a5e574430fbe2a3c813ec46d7dc142f24b09070",
[
null,
[
@@ -299937,7 +300070,7 @@
]
],
"kind-of-widget-fallback-textarea-border-block-end-color-001.html": [
- "66f4d765649e9d536e35aea625c574c16c5ff6ee",
+ "30c01aa8ae026b43db49e514ca1deae39ba49d0a",
[
null,
[
@@ -299950,7 +300083,7 @@
]
],
"kind-of-widget-fallback-textarea-border-block-end-style-001.html": [
- "ec3b475e339b9eb53d53a1b90050ecf5368839dc",
+ "a3c88840cce5cedca102b46caa8cb02d9e9ed353",
[
null,
[
@@ -299963,7 +300096,7 @@
]
],
"kind-of-widget-fallback-textarea-border-block-end-width-001.html": [
- "a7937e45db50b914ce5311823ee98bb6059798ec",
+ "13f169edcec0ae5ff063222834e10a81edff4ce5",
[
null,
[
@@ -299976,7 +300109,7 @@
]
],
"kind-of-widget-fallback-textarea-border-block-start-color-001.html": [
- "fb22b57e290edf0ec85f3772e15354b9b96cdf7a",
+ "0f70cf4a3ae1ed3943e48527c9c9f737a993a076",
[
null,
[
@@ -299989,7 +300122,7 @@
]
],
"kind-of-widget-fallback-textarea-border-block-start-style-001.html": [
- "e16310ab55f02d18d20eb6310018d85dec5fa582",
+ "283f9826ba987b7a0a8942667fbd9ab9ee6248b0",
[
null,
[
@@ -300002,7 +300135,7 @@
]
],
"kind-of-widget-fallback-textarea-border-block-start-width-001.html": [
- "1e2295391b48971e590fabaf30271dd81d2d52ab",
+ "f14bc27bff39180093363fc7a5edec2c08895736",
[
null,
[
@@ -300015,7 +300148,7 @@
]
],
"kind-of-widget-fallback-textarea-border-bottom-color-001.html": [
- "a86b394c9250498c79f703a141e270445945a387",
+ "703e9bcfba44b8098fba9e97d92a4045ab212699",
[
null,
[
@@ -300028,7 +300161,7 @@
]
],
"kind-of-widget-fallback-textarea-border-bottom-left-radius-001.html": [
- "e51c6e4619627a9fa744cb67629b23d63ef9fcdd",
+ "c5202e39bd9ff53dff4a1b30e6959b080878641c",
[
null,
[
@@ -300041,7 +300174,7 @@
]
],
"kind-of-widget-fallback-textarea-border-bottom-right-radius-001.html": [
- "ce33139d4b8577bf1b76b0a76afef1d119805ba7",
+ "cc5b106ad2bc97b4b225b84a601b4553e85214db",
[
null,
[
@@ -300054,7 +300187,7 @@
]
],
"kind-of-widget-fallback-textarea-border-bottom-style-001.html": [
- "9ad43964c73978eb8be37cb9929cdcb30c70bf69",
+ "bc69ddbee695184cce56cae226a44fbc0dc43811",
[
null,
[
@@ -300067,7 +300200,7 @@
]
],
"kind-of-widget-fallback-textarea-border-bottom-width-001.html": [
- "a0a34e736953f2084bd30d2649062208da5f33fb",
+ "1d5433cbe9a48b9352c50ac85d7d9e15378184d0",
[
null,
[
@@ -300080,7 +300213,7 @@
]
],
"kind-of-widget-fallback-textarea-border-end-end-radius-001.html": [
- "fd7d13b35ff9bf4c552977faaf2f1a1e706604f8",
+ "fa7b5a49ffde74303367f64a002954d9b42b6fcb",
[
null,
[
@@ -300093,7 +300226,7 @@
]
],
"kind-of-widget-fallback-textarea-border-end-start-radius-001.html": [
- "9a2322a0698b0e0323e2c66f41c371b7a1aad8bc",
+ "d46e1be4c9c449dc805d9ef6ff25a894b2d97187",
[
null,
[
@@ -300106,7 +300239,7 @@
]
],
"kind-of-widget-fallback-textarea-border-image-outset-001.html": [
- "b3763fb769e09a8a4399d75b1310181b713f3bb7",
+ "0eb4984e5e9e9c8dab4cca0476bada1293863829",
[
null,
[
@@ -300119,7 +300252,7 @@
]
],
"kind-of-widget-fallback-textarea-border-image-repeat-001.html": [
- "189708878e7b524530b6945b165464d106e485c1",
+ "34ddbc24e0aee5f0f3c5afab8d9bdb2a17578923",
[
null,
[
@@ -300132,7 +300265,7 @@
]
],
"kind-of-widget-fallback-textarea-border-image-slice-001.html": [
- "e0d5b6ea1400cd64c15555f1fc27dc0ef0cec5c7",
+ "78f102679c6ab1cacc3f2b57cf9ac67aea0a8462",
[
null,
[
@@ -300145,7 +300278,7 @@
]
],
"kind-of-widget-fallback-textarea-border-image-source-001.html": [
- "ab1656686a2f4e17e26f466f626d08c8491f1b2e",
+ "b52c4cd658917f319df00581517192c432cd0a0b",
[
null,
[
@@ -300158,7 +300291,7 @@
]
],
"kind-of-widget-fallback-textarea-border-image-width-001.html": [
- "bce5767a4e4f5cb8bba50869df6687ac270cac20",
+ "117459230c28e1324772f2359a2cc5e0f0f4fe25",
[
null,
[
@@ -300171,7 +300304,7 @@
]
],
"kind-of-widget-fallback-textarea-border-inline-end-color-001.html": [
- "30a7b1cd4ffa63b433dd2fc0f6ac0cc854f4d364",
+ "13d7af1a0a670f53082bfc09765d4f27e0c04b51",
[
null,
[
@@ -300184,7 +300317,7 @@
]
],
"kind-of-widget-fallback-textarea-border-inline-end-style-001.html": [
- "b3f1ddedfe1edd102dc227b1d58889c78f62b16d",
+ "00bd6ef6945d0656a0bfa6b1b6c98b0374fc6548",
[
null,
[
@@ -300197,7 +300330,7 @@
]
],
"kind-of-widget-fallback-textarea-border-inline-end-width-001.html": [
- "153c1be62044616bfaa225e585c1db76e8faa090",
+ "87344d6b33d0fae9d75e9a03ff750936483bde4f",
[
null,
[
@@ -300210,7 +300343,7 @@
]
],
"kind-of-widget-fallback-textarea-border-inline-start-color-001.html": [
- "4387bb27a38a91f8a855ec0932736f32ef8caa25",
+ "a95c2376106713082b3b621637c7e45c8becc77c",
[
null,
[
@@ -300223,7 +300356,7 @@
]
],
"kind-of-widget-fallback-textarea-border-inline-start-style-001.html": [
- "b5d504fb6e8949eff6cb66669bcdb855cccce076",
+ "736b7ef0884e31cf100a47f4ce71f396f24bd007",
[
null,
[
@@ -300236,7 +300369,7 @@
]
],
"kind-of-widget-fallback-textarea-border-inline-start-width-001.html": [
- "92a14b6b35c6fa25308321b1da5b6892c63a8eed",
+ "d8e7ab895e7dfcae1bc8551c6cf996200e245888",
[
null,
[
@@ -300249,7 +300382,7 @@
]
],
"kind-of-widget-fallback-textarea-border-left-color-001.html": [
- "4392df571fdda8388933f5f4a3f7e26910527041",
+ "26a01734093010c96993f404cbf37619c936e295",
[
null,
[
@@ -300262,7 +300395,7 @@
]
],
"kind-of-widget-fallback-textarea-border-left-style-001.html": [
- "a38c46dad11f726534b6387fd9a4d155756e806d",
+ "20b6f28b983f6da9a5bb4b8d94762166b834a0ea",
[
null,
[
@@ -300275,7 +300408,7 @@
]
],
"kind-of-widget-fallback-textarea-border-left-width-001.html": [
- "8755d5efe6507322f8387630035c190277055315",
+ "4903b1851c7e3c5de071b4e07467a07e607074d4",
[
null,
[
@@ -300288,7 +300421,7 @@
]
],
"kind-of-widget-fallback-textarea-border-right-color-001.html": [
- "767e3e6fd83c5bb49f6e30e26c3d912238e3d15a",
+ "906f6abb3ff445cdb10d49bcf6f9e50c6161624f",
[
null,
[
@@ -300301,7 +300434,7 @@
]
],
"kind-of-widget-fallback-textarea-border-right-style-001.html": [
- "fd240c8724a079ec5673ef4f17976759d030d88f",
+ "26c4e16991d16667b673a68ae6ffba163d188ee9",
[
null,
[
@@ -300314,7 +300447,7 @@
]
],
"kind-of-widget-fallback-textarea-border-right-width-001.html": [
- "97acba2f5e36b09ab99151d8adfa1fc3ef7c698b",
+ "2d731933d43c7e108116d97193de9517e0c55fd1",
[
null,
[
@@ -300327,7 +300460,7 @@
]
],
"kind-of-widget-fallback-textarea-border-start-end-radius-001.html": [
- "1a2def2e6d221e3c41d0fcc13b23050e50d8bd6f",
+ "3529ce0d9d2b512e3171606e82fa9fdf3e532634",
[
null,
[
@@ -300340,7 +300473,7 @@
]
],
"kind-of-widget-fallback-textarea-border-start-start-radius-001.html": [
- "67efed57704afa81d47f30e028984cb3a4c7542b",
+ "3c6015120e24b19d775ce60969710db77fecb9b1",
[
null,
[
@@ -300353,7 +300486,7 @@
]
],
"kind-of-widget-fallback-textarea-border-top-color-001.html": [
- "41560738329a49d603a4a2a4ef4afca39445f30e",
+ "ad3a40cab229cc47d33f26e0c3620d29d7ac502e",
[
null,
[
@@ -300366,7 +300499,7 @@
]
],
"kind-of-widget-fallback-textarea-border-top-left-radius-001.html": [
- "7648876231adc868fb8ac2e2f5873d4f144caeeb",
+ "415e28abba736a5439eae7c990ace1447af05bf4",
[
null,
[
@@ -300379,7 +300512,7 @@
]
],
"kind-of-widget-fallback-textarea-border-top-right-radius-001.html": [
- "45586916119f42713b9e052daa307a26e290c7a4",
+ "979cafd4cca85c6fb2f5a4f0974814c994d9d12a",
[
null,
[
@@ -300392,7 +300525,7 @@
]
],
"kind-of-widget-fallback-textarea-border-top-style-001.html": [
- "2a3876a30c309b19271de62c8af6dc4c6c3ba541",
+ "708add8a4cde097901352e3aee77df9ff16703c5",
[
null,
[
@@ -300405,7 +300538,7 @@
]
],
"kind-of-widget-fallback-textarea-border-top-width-001.html": [
- "629ddc43eafb427c7a49de6bf793f49f99ba83d4",
+ "e45ed88239b67428742cac81b404d7cf8294b451",
[
null,
[
@@ -303326,6 +303459,19 @@
{}
]
],
+ "ch-unit-019.html": [
+ "1b97165d72df7743f935405025089f41db0f0b1f",
+ [
+ null,
+ [
+ [
+ "/css/css-values/reference/ch-unit-019-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"ex-calc-expression-001.html": [
"4eab829697f87606a64d60f360a04639e61ccabb",
[
@@ -310230,7 +310376,7 @@
]
],
"new-content-with-overflow-zoomed.html": [
- "4ab9fa5a5751c1083afb69ca84f36cd9a1481fa5",
+ "6f0c8aac25db5eb5db3e734063d3edc313b32e80",
[
null,
[
@@ -310814,7 +310960,7 @@
]
],
"old-content-with-overflow-zoomed.html": [
- "fa701deb3394514fa2a25a062bd5d6949034a3b7",
+ "41d08c253c62ee88eadcfc9eff5eb4b8ad9ec142",
[
null,
[
@@ -311265,6 +311411,19 @@
]
],
"scoped": {
+ "nested-scope.html": [
+ "9fff44e5e732edd1946adf414a8f23668022edda",
+ [
+ null,
+ [
+ [
+ "/css/css-view-transitions/scoped/nested-scope-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"new-content.html": [
"7302f7c4f8ee4c22bee0fe286a7b2343af98603e",
[
@@ -334395,7 +334554,7 @@
]
],
"offset-path-shape-polygon-003.html": [
- "caa08082e4e879f93aa249d01c9971788513f2ae",
+ "dfb809d352b2f7eb5caf1807810915bbe3b94a8d",
[
null,
[
@@ -334415,7 +334574,7 @@
],
[
0,
- 50
+ 56
]
]
]
@@ -339284,7 +339443,20 @@
{}
]
]
- }
+ },
+ "visited-nested.html": [
+ "57220446c8688a3a12fcb36aeb00b904c901fd3d",
+ [
+ null,
+ [
+ [
+ "/css/visited-nested-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ]
},
"custom-elements": {
"form-associated": {
@@ -346830,6 +347002,32 @@
]
},
"text": {
+ "canvas.2d.fillText-FontFace.html": [
+ "1175a313b873b95923934adaf15558b1a7a02a43",
+ [
+ null,
+ [
+ [
+ "/html/canvas/offscreen/manual/text/empty-ref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "canvas.2d.fillText.html": [
+ "d6eed023072cd2b1827acdea5d592f29c5adf023",
+ [
+ null,
+ [
+ [
+ "/html/canvas/offscreen/manual/text/empty-ref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
"canvas.2d.offscreen.direction.html": [
"e41a7666f75bee42ce4feff9f4a8949d45accf42",
[
@@ -372548,7 +372746,7 @@
[]
],
"docker.yml": [
- "5de0cc4bcb1faf6c919d41998bd9ec035e8594cf",
+ "06704fff106e8160ae54d66842dd6af6f49444c4",
[]
],
"documentation.yml": [
@@ -397512,7 +397710,7 @@
[]
],
"cookie-test-helpers.js": [
- "178947ad6eca72967aa9bbc3a13172a0402bc17d",
+ "8e23ff2c4225da41788542908fae6593860146ce",
[]
],
"cookie_helper.py": [
@@ -432173,6 +432371,10 @@
"ca072086c415b058264e495c46cb4a692d8a0684",
[]
],
+ "test-synthetic-bold-2-notref.html": [
+ "ec5051519d703895e590e14c55b27b84ed164c35",
+ []
+ ],
"test-synthetic-bold-notref.html": [
"4a952acb46fb5b0f5681176ee3db32758413c48c",
[]
@@ -432185,6 +432387,10 @@
"a0721426016c949369ae0114211136f45ce51b27",
[]
],
+ "test-synthetic-italic-4-notref.html": [
+ "d6f9050be302c30b7609dd19be3870453219539c",
+ []
+ ],
"test-synthetic-italic-notref.html": [
"3684f3ae804aa109f2da5188556cd3b36ffa2fc9",
[]
@@ -432463,6 +432669,14 @@
"gap-decorations-003-ref.html": [
"52e45c4f65f01e5eb98a98590788a0af7bcf7230",
[]
+ ],
+ "gap-decorations-004-ref.html": [
+ "52e45c4f65f01e5eb98a98590788a0af7bcf7230",
+ []
+ ],
+ "gap-decorations-006-ref.html": [
+ "09bef415d402fb2cf9025bdfc6bd887902a439a9",
+ []
]
},
"flex": {
@@ -432741,6 +432955,10 @@
"multicol-gap-decorations-017-ref.html": [
"23fd089ac8e575e4035c5614c10ae55d7c3b06a4",
[]
+ ],
+ "multicol-gap-decorations-018-ref.html": [
+ "521d39250624e99afccf528824bab05b36e8f17d",
+ []
]
}
},
@@ -447956,6 +448174,10 @@
"8cae2c0ec71c35dc654d5a4192435611a95c8658",
[]
],
+ "text-autospace-mixed-001-ref.html": [
+ "be782ab7f03a013bc600d1c910678e7feef5a53e",
+ []
+ ],
"text-autospace-no-001-mismatch-ref.html": [
"778d34bc81e25212b76a2d8f998928068b8f557e",
[]
@@ -448857,6 +449079,10 @@
"401e35e2f1f8c534487782df003078b1a53b6e36",
[]
],
+ "text-wrap-balance-word-spacing-001-ref.html": [
+ "d29d139614a7284b414eff1ae833591ec479fef9",
+ []
+ ],
"text-wrap-nowrap-001-mis-ref.html": [
"ca73318ecf3bae78643e5a754da54e8c8dc313d2",
[]
@@ -453523,7 +453749,7 @@
[]
],
"build-compute-kind-widget-fallback-props.py": [
- "40240cdac075c37d8413e1991120ee3ed2e6099b",
+ "29e416a7058179dc9de0917b902a470b0f2cf4c5",
[]
]
},
@@ -453726,6 +453952,10 @@
"74e304be728daa5ae3d5425b5b125b46c7ad1800",
[]
],
+ "ch-unit-019-ref.html": [
+ "f73a3c6e1d8c350f135783a2cc3983a9a35f9ea6",
+ []
+ ],
"ex-unit-001-ref.html": [
"33b241f58c0501172006de6222bb3a77a0e680b3",
[]
@@ -454338,7 +454568,7 @@
[]
],
"content-with-overflow-zoomed-ref.html": [
- "ae076d55787363d6690d5ec9947e7e8823feb56c",
+ "5bfb9d2fa9853bed336be9d930b0073e99b559c3",
[]
],
"content-with-transform-ref.html": [
@@ -455021,6 +455251,10 @@
"content-ref.html": [
"1216fdfa85051ce2d19e97853b63f8ba70348209",
[]
+ ],
+ "nested-scope-ref.html": [
+ "804741cd6db993392ba8785e8c87f9c16894af41",
+ []
]
},
"scroller-child-abspos-ref.html": [
@@ -460663,7 +460897,11 @@
"e7775276038f307b7cdb0a75d19ee24f67619c2a",
[]
]
- }
+ },
+ "visited-nested-ref.html": [
+ "22f4ecf0d7bbcef307fd679ae0905f9b5318f690",
+ []
+ ]
},
"custom-elements": {
"META.yml": [
@@ -466342,12 +466580,20 @@
[]
],
"resources": {
+ "fetch-private-http.html": [
+ "e372d90b26a02bdfa0b9a34c9c8ad956b5d0cc02",
+ []
+ ],
"fetch-private.html": [
"b96a207ec33a13e5dd4c53083ac3d73123b23cbb",
[]
],
+ "fetch-public-http-wrong-address-space.html": [
+ "1d149d00cb351b9aaa4402b9b8b7d975d56a9acb",
+ []
+ ],
"support.sub.js": [
- "774e34d0a6fe59bab19aca14cb71b6e520acb798",
+ "6b7813fa89d3fd022840518e21bf275560a6295a",
[]
],
"target.py": [
@@ -466853,7 +467099,7 @@
[]
],
"support.sub.js": [
- "7d133b028894ef1f313de718800dd1dfda17741d",
+ "6d0743e0f8fb45271d39a9dfd3a7179a2323a662",
[]
],
"worker-blob-fetcher.html": [
@@ -473458,6 +473704,10 @@
"1c2228a7acc341e1025673df937d0e5ab96ee353",
[]
],
+ "empty-ref.html": [
+ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
+ []
+ ],
"text-direction-worker-inherit.js": [
"a300048d10f59a8e42631edfd968d115f2e3b211",
[]
@@ -487869,7 +488119,7 @@
[]
],
"html.idl": [
- "102149c4dfac2aafb10edc8cfe19d5fa4eba354e",
+ "9c84e6a67efa4f7ffe6f9638c582af4424c473db",
[]
],
"idle-detection.idl": [
@@ -487965,7 +488215,7 @@
[]
],
"media-capabilities.idl": [
- "68ab0a8d0d1a2ea4765a3cdc72420c346b1cdcc3",
+ "3ded93519b19d4f91e1d704c5c47c29c42c602ea",
[]
],
"media-playback-quality.idl": [
@@ -488061,7 +488311,7 @@
[]
],
"paint-timing.idl": [
- "fbf918585713da9a503cd90bfee6dbc30c2a3212",
+ "bc2b60f9de63f8116c5ee11167a7a947f4c0149a",
[]
],
"parakeet.tentative.idl": [
@@ -488120,10 +488370,6 @@
"5d85cce667b67ce301a5242fd77ec8974ffbed61",
[]
],
- "ppa.idl": [
- "3524d503c184019d90e5b2b3bd23151f17192318",
- []
- ],
"prefer-current-tab.idl": [
"86445e539f40370af3bf8b1e2e0a8f8b35848fcd",
[]
@@ -488136,6 +488382,10 @@
"4f1e4bee835a23c5b7bcf54b5b05f4ded2b08023",
[]
],
+ "privacy-preserving-attribution.idl": [
+ "0ab5d0fc21e49d2140ee014819debc26998473ef",
+ []
+ ],
"private-aggregation-api.idl": [
"bc5eb740718a99e20b40c634aee37229f26da383",
[]
@@ -488208,10 +488458,6 @@
"6f93db15a74e052913a277e5130226280a3f9311",
[]
],
- "scoped-custom-elements-registry.tentative.idl": [
- "46ca2d6b9c45805d8aa684af7fe91af6dd5d7919",
- []
- ],
"screen-capture.idl": [
"db9282ce0a57bb3b84ea45f5ed2d7e69bc3a8a32",
[]
@@ -488264,6 +488510,10 @@
"94a416f262b361e326c5b3c89fa8d160c1118b48",
[]
],
+ "sri.idl": [
+ "94ccb39f1ec44fa3d80ab6f99636d85f17236120",
+ []
+ ],
"storage-access.idl": [
"fff583e0982399d7ebdd001653d4bf338a14243a",
[]
@@ -488481,7 +488731,7 @@
[]
],
"webrtc-encoded-transform.idl": [
- "8a6ba816016e7385a2402734a23a6a40cc0b07bb",
+ "79a149f3a9a8a5d102be75edb341059d54b100fa",
[]
],
"webrtc-ice.idl": [
@@ -488513,7 +488763,7 @@
[]
],
"webtransport.idl": [
- "87da2a77303c2198b4c136a7918f5a1e6423933c",
+ "7c9878ce5615a8477578d2ffcd501a0afdc9a477",
[]
],
"webusb.idl": [
@@ -488938,7 +489188,7 @@
}
},
"lint.ignore": [
- "b39180815c2c6138dedcec0e40ee392d657cdb60",
+ "10b5dadba749857f16dc92f348fff31b4400dca3",
[]
],
"loading": {
@@ -490805,6 +491055,10 @@
"META.yml": [
"51b1b4e07ed2654d67d6e42083ed936e9d78848e",
[]
+ ],
+ "WEB_FEATURES.yml": [
+ "8dab5c01520e68b00607beb73f334fcb1f501403",
+ []
]
},
"media-source": {
@@ -493686,7 +493940,7 @@
[]
],
"link-header-referrer-policy.py": [
- "984518d364d8c53388c3379f4aefb64fba3c2072",
+ "d3c659b113576d53e8a21ff70d496b14e8de6c6d",
[]
],
"module1.js": [
@@ -493745,6 +493999,10 @@
"f4bc87940ec9b55737aaec28c3a21cafe8b420d1",
[]
],
+ "stash-referrer.py": [
+ "db498f35507cd339ba8124d024c5f7dc4e9661d2",
+ []
+ ],
"stash-take.py": [
"9977197cae5591f62240a2d97a0c66be1f8bbeeb",
[]
@@ -496296,7 +496554,7 @@
[]
],
"webxr-test.js": [
- "ce2503b1bbcfbd5c4318c08b49020e9453c4b3a6",
+ "ece15d9fbec54124f9ae3be55a00c7d74856e639",
[]
],
"webxr-test.js.headers": [
@@ -496896,7 +497154,7 @@
[]
],
"test-helper.js": [
- "cec0200b65a6513d275dd6c807867ab72ed4eb26",
+ "26fabe0cd2aee58a363ad973f043c05e2a9fc032",
[]
]
}
@@ -501044,7 +501302,11 @@
[]
],
"soft-navigation-helper.js": [
- "c9f2b41b552855d6cbd049008c314fe4c953464b",
+ "48e7b58d8d1a6a0f05a5c4e30efc3faca83eedaf",
+ []
+ ],
+ "soft-navigation-test-helper.js": [
+ "a572f55e66dbce825d399f61c4a2dfa34df9b4ca",
[]
]
}
@@ -501079,7 +501341,7 @@
[]
],
"basic-service-worker.js": [
- "59d7d8bae9ee4d46d8a0bb12bcc3377d041280f4",
+ "7175d655a49627614a7433de63a22fe93223711e",
[]
],
"conditional-status.py": [
@@ -501091,11 +501353,11 @@
[]
],
"counting-executor.py": [
- "3511fe4905e2d8962175f0e4bc318a13c41c35f5",
+ "bc610b1fe10e85a663e1e4cddc4b77331fe6b4f6",
[]
],
"executor.sub.html": [
- "975a3e5092ed149b687f34ba6b9c6d5af11432ea",
+ "bb2d58dc9c9cfac6d98380b0b587bc242fbd5e11",
[]
],
"executor.sub.html.headers": [
@@ -501135,7 +501397,7 @@
[]
],
"utils.sub.js": [
- "adb15d4ea9e76759074e0c7cc1b8a56c0f3a046d",
+ "dd577c00c1d30c6e812080a8088d272b65ca0e12",
[]
]
},
@@ -502029,7 +502291,7 @@
],
"tentative": {
"helper.js": [
- "c5b7de607470780a4b38a3c557452f6639bb2c38",
+ "744799d33fd7c268efac1c4e398142abdab3ee69",
[]
]
}
@@ -503211,7 +503473,7 @@
"text": {
"reftests": {
"first-letter-ref.svg": [
- "66f5c6d68280e1dd016c64351446dc1965d84627",
+ "72f866be1d9b175a675a5e13fb79c83c5c8699e4",
[]
],
"font-size-scaling-ref.html": [
@@ -503247,7 +503509,7 @@
[]
],
"opacity-ref.svg": [
- "18c00ab332c73f5c033e37d4429872d07210ade4",
+ "7b4dbba15e7ddf525e5a132aee265cb01682c1db",
[]
],
"text-bidi-controls-anchors-1-ref.svg": [
@@ -504318,7 +504580,7 @@
[]
],
"serve.py": [
- "8343a54bcd09ab05ba1c1f7878c0e4d8200ded8c",
+ "8788a991e42dd8cef38d107c27479a2253698cb3",
[]
],
"test_functional.py": [
@@ -514543,7 +514805,7 @@
[]
],
"browser.py": [
- "7b34fcc95444677d0ff56c043d98439e2cadef44",
+ "da39c3b9b81554ba5c50921ab53183a024c26bb9",
[]
],
"browsing_context.py": [
@@ -514712,7 +514974,7 @@
[]
],
"run.py": [
- "5ad9d544e4a5f523a7d914021c24b3a51c0e7090",
+ "3eee16da2d6b8e6a52a28adb138e6961a7f2956d",
[]
],
"testfiles.py": [
@@ -514914,19 +515176,19 @@
[]
],
"android_webview.py": [
- "c796be18a734cfbb33fd73b0d99a7c30512c8dd6",
+ "d336efe049fb643675702b5a7196b56ed48247f2",
[]
],
"base.py": [
- "fee8895ef3a060421d83ba0ccfffb0d3b53eac94",
+ "3e4b516c440779b1015a75e998c402553ad720b0",
[]
],
"chrome.py": [
- "24723734211065c358566f7e48495f3607bdfc9f",
+ "a817568493ac61f0ae1bea451570d705a410152a",
[]
],
"chrome_android.py": [
- "4ed7707c3bed88e2f5061a331e49683db8a4f583",
+ "2b3ffe53f9a6ee6226765341aa44e5470515dac0",
[]
],
"chrome_ios.py": [
@@ -514950,11 +515212,11 @@
[]
],
"firefox.py": [
- "c63bfa2ceebb281e01e49a79aaf6cdeb2bbd92e5",
+ "f8629878213f3d00c90858e945bacb08cd30ced7",
[]
],
"firefox_android.py": [
- "32a82d7ccc474e7a0d69ef03862dc04cb8dcda84",
+ "7bb2e57d417941bbb1710d6c11b8412f45d6fa7d",
[]
],
"headless_shell.py": [
@@ -514970,11 +515232,11 @@
[]
],
"safari.py": [
- "44d289c7e34450772e2b540ab138d5e8e5052a69",
+ "fc3cc1138b31b638abf9e298ca807772725fc8a2",
[]
],
"sauce.py": [
- "465aac6e4970231022f5b8c255b4b43f75d2ff14",
+ "6df7c848f02f8d402b14edc76707d22d5ce79c31",
[]
],
"sauce_setup": {
@@ -514988,7 +515250,7 @@
[]
],
"servodriver.py": [
- "7121e1dafcc2d55ebc18bdf3e922ce9978b94ee1",
+ "5011a8fd8592d32af1a8313dd4ba6535a9cc384a",
[]
],
"webkit.py": [
@@ -515000,7 +515262,7 @@
[]
],
"wktr.py": [
- "d65f35ccb33c876138fd01bf3f19da3eea2e3cc1",
+ "467a7034ed7bd7bb9d6f6dc29e4a77bb2cccb1ff",
[]
],
"wpewebkit_minibrowser.py": [
@@ -515013,7 +515275,7 @@
[]
],
"environment.py": [
- "868ed8f91e3caa5f19430e53f260cde857add400",
+ "4b2ddfd997859bbbf13da4f40164a98575720ebf",
[]
],
"executors": {
@@ -515030,7 +515292,7 @@
[]
],
"base.py": [
- "26a0483b658a6bc95e5d12bbb40f3dc48b038a6e",
+ "76d703e78299c0e9728d18deed08f1b4e8c44908",
[]
],
"executorchrome.py": [
@@ -515042,7 +515304,7 @@
[]
],
"executormarionette.py": [
- "08bc02cbc3c0278ed33feb35b22569c73afa0a44",
+ "93b26a73c837900b4852d6a4fa316c39b2eadb48",
[]
],
"executorselenium.py": [
@@ -515058,7 +515320,7 @@
[]
],
"executorwebdriver.py": [
- "7ca46a05a7b0f2bc3da65512fdee57080946b7d0",
+ "6bed90369b17bfc9d6ecb6a09110f7ac7833acbd",
[]
],
"executorwktr.py": [
@@ -515074,7 +515336,7 @@
[]
],
"protocol.py": [
- "6b9a0de9bb24c1e4fde56fb88506a9d6579114b7",
+ "af32f487c953f01fa9fd8d812111506000140819",
[]
],
"pytestrunner": {
@@ -515136,7 +515398,7 @@
]
},
"wptreport.py": [
- "5919631ab718dad76c65a54d0b6bc5fa12396978",
+ "600d45dfc26415235da618b80930dd6d6d9f1bfa",
[]
],
"wptscreenshot.py": [
@@ -515209,7 +515471,7 @@
[]
],
"testrunner.py": [
- "2c2da790e901f8e56f5f5f77673a281530c53294",
+ "19c814bb6c94fb11ddd2b132cf5d156e58956c7b",
[]
],
"tests": {
@@ -515227,7 +515489,7 @@
[]
],
"test_base.py": [
- "a3d804336e12ebc214c452c3c449fb75836c6d45",
+ "f7bc6ea774d60a21b14ac06d53eb448efdc0e82c",
[]
],
"test_sauce.py": [
@@ -515323,7 +515585,7 @@
[]
],
"wptcommandline.py": [
- "7bfeef317170f2032152df46d9f976a1a82cbc90",
+ "813af1efd6150b6c9ec9a95d66a4c4c56361023d",
[]
],
"wptlogging.py": [
@@ -515393,7 +515655,7 @@
}
},
"wptrunner.py": [
- "40a9aec8de11ef85a939e9ed869082aaafc9a218",
+ "15f017d870e8ad7ef99b7480b3bfb6a93121611d",
[]
],
"wpttest.py": [
@@ -515781,7 +516043,7 @@
[]
],
"server.py": [
- "18638615425ca8830baa17ab996167179a1142b2",
+ "ba68339190dd3d5a06203b30cc1fe9c19946a530",
[]
],
"sslutils": {
@@ -517143,7 +517405,7 @@
[]
],
"binary.wast.js": [
- "d47a29e2e9d29a6b00bfbc11ad8d482ba5c7e356",
+ "468d0ba0a992a8ec2fb7f7ea370c7df5db93e2db",
[]
],
"block.wast.js": [
@@ -517191,7 +517453,7 @@
[]
],
"data.wast.js": [
- "4e1ad56ef750a0e675b223d865b71131689806d2",
+ "88b519538def9c4410fb05b91e75db3300d2ae1f",
[]
],
"elem.wast.js": [
@@ -520761,7 +521023,7 @@
[]
],
"fixtures_bidi.py": [
- "0996821cfefee7573d3f352adc7a43166d6628f6",
+ "9942f729f652b32dc789355dae80a5e7f057828b",
[]
],
"fixtures_http.py": [
@@ -524038,23 +524300,23 @@
},
"depth-sensing": {
"dataUnavailableTests.js": [
- "7460af71326291923e7a5406ea4773be0953137f",
+ "cd503aa5f146a0cfbca4b1eaaecc936125ff84d2",
[]
],
"inactiveFrameTests.js": [
- "0cc425955374e214cd5dd9bdb75a654c7c69faa9",
+ "e08d9b5a12dd2b7e47d3fb19512fa17864b38d66",
[]
],
"matchDepthViewValues.js": [
- "697f4deb8ffce83d29dfc0dde36ee4e6c8ec1e87",
+ "3c76a5e9576fa8683e1aea9033032c0563e3cd63",
[]
],
"pauseResumeTests.js": [
- "e7513ef61c13b856ea9e49ff93ad9088e57163b3",
+ "82bb72170be3313dadf0bcf3a46b18325552b073",
[]
],
"staleViewsTests.js": [
- "b1f11c9651d8d85e0acbb1123c35216857dfdf5b",
+ "4080ea6230951b03198b795f9631ee56a3691f9e",
[]
]
},
@@ -524098,15 +524360,15 @@
[]
],
"webxr_test_asserts.js": [
- "a82f7aaf90aabb8a49b9f10aa0d50ba795d798fe",
+ "586e8de2b48d29ec71078dace5bd9c5129d3af36",
[]
],
"webxr_test_constants.js": [
- "d0d4fa274747842cea7bb2440f44b6d04b25c4a5",
+ "c08cdd9b251750edad527491f0e868e01b0d9d46",
[]
],
"webxr_test_constants_fake_depth.js": [
- "b350db3a27a11af9169c97068771bda496683fd7",
+ "c3d9c44bbaa4cada9e190dfb1a54079eccefacab",
[]
],
"webxr_test_constants_fake_world.js": [
@@ -552391,7 +552653,16 @@
]
],
"comp_name_from_content.html": [
- "6626eecb0ddd8f6e5709350a93cfd384994efff4",
+ "cd108a190e3609cd3eb0644eb12251f3390982da",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "comp_name_from_content_alt_counter_invalidation.html": [
+ "d659a6e7b3c713c618d002ee08b4c330f2b23494",
[
null,
{
@@ -552561,7 +552832,7 @@
]
],
"detector.optional.https.window.js": [
- "1dd248a9ecab667355702d00e865341122a2ebe2",
+ "ee8765adf85d343907e3cc34bf08ce417d9f62be",
[
"ai/language_detection/detector.optional.https.window.html",
{
@@ -552598,7 +552869,7 @@
},
"rewriter": {
"rewriter-abort.tentative.https.window.js": [
- "0eb716f398bdd08e7e853918506fdf58028eebe0",
+ "992bb5c637c0e695b377953c074353cdf9f9e28f",
[
"ai/rewriter/rewriter-abort.tentative.https.window.html",
{
@@ -552670,8 +552941,62 @@
}
]
],
+ "rewriter-create-available.tentative.https.window.js": [
+ "41371d5db569138f1161b433d8b0479fb8985419",
+ [
+ "ai/rewriter/rewriter-create-available.tentative.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Rewriter Create Available"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "../resources/util.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ],
+ "rewriter-create.tentative.https.window.js": [
+ "4494f5912261b909873e1db424a27122f309feb4",
+ [
+ "ai/rewriter/rewriter-create.tentative.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Rewriter Create"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "../resources/util.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ],
"rewriter-from-detached-iframe.tentative.https.window.js": [
- "d7c473438cf89e8a006963f7ab9df2ac7229d079",
+ "27f1d96d546266d8633590a2ed55753bd5c33c9d",
[
"ai/rewriter/rewriter-from-detached-iframe.tentative.https.window.html",
{
@@ -552707,15 +553032,69 @@
}
]
],
- "rewriter.tentative.https.window.js": [
- "da3f002a82b74c921f6e428298d4bbf8269f77a8",
+ "rewriter-measureInputUsage.tentative.https.window.js": [
+ "beefa358f3eee1ba31830c0cae25fd34fb87c561",
[
- "ai/rewriter/rewriter.tentative.https.window.html",
+ "ai/rewriter/rewriter-measureInputUsage.tentative.https.window.html",
{
"script_metadata": [
[
"title",
- "Rewriter"
+ "Rewriter measureInputUsage"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "../resources/util.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ],
+ "rewriter-rewrite-streaming.tentative.https.window.js": [
+ "81b73fbdabd0d8f631cc6db62fc9a72c28287793",
+ [
+ "ai/rewriter/rewriter-rewrite-streaming.tentative.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Rewriter Rewrite Streaming"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "../resources/util.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ],
+ "rewriter-rewrite.tentative.https.window.js": [
+ "07e8b419a4af8c1c3933271e11083509a1e97fa4",
+ [
+ "ai/rewriter/rewriter-rewrite.tentative.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Rewriter Rewrite"
],
[
"script",
@@ -552737,7 +553116,7 @@
},
"summarizer": {
"summarizer-abort.tentative.https.window.js": [
- "14c89056dfb3e5d31ae70bcf81e7e93aa6a97f9e",
+ "6c98a845fa6ff2006f1a80a9d8eeed441d4e7768",
[
"ai/summarizer/summarizer-abort.tentative.https.window.html",
{
@@ -552753,13 +553132,18 @@
[
"script",
"../resources/util.js"
+ ],
+ [
+ "timeout",
+ "long"
]
- ]
+ ],
+ "timeout": "long"
}
]
],
"summarizer-availability-available.tentative.https.window.js": [
- "f569cb43b0fccc7a370d67447ac8545a492b4108",
+ "df4e161d6374346a339d473b82732a3e40a82988",
[
"ai/summarizer/summarizer-availability-available.tentative.https.window.html",
{
@@ -552786,7 +553170,7 @@
]
],
"summarizer-availability.tentative.https.window.js": [
- "85282959f9ea22eb1bad45ef833f0698805bb8bd",
+ "91cb31295578bccc360c317236ba7917f63785fb",
[
"ai/summarizer/summarizer-availability.tentative.https.window.html",
{
@@ -552813,7 +553197,7 @@
]
],
"summarizer-create-available.tentative.https.window.js": [
- "1f108ddd021cdc7c40a550ae457bc608bdd5c866",
+ "0153ca784ce9763f817afeedecc1ca854de9d12f",
[
"ai/summarizer/summarizer-create-available.tentative.https.window.html",
{
@@ -552840,7 +553224,7 @@
]
],
"summarizer-create.tentative.https.window.js": [
- "d9df70cc2e796389002d24ec579b0954dca5a601",
+ "ff5d42b100f067d8b85d91be43949e0c83ab0a5e",
[
"ai/summarizer/summarizer-create.tentative.https.window.html",
{
@@ -552866,6 +553250,33 @@
}
]
],
+ "summarizer-from-detached-iframe.tentative.https.window.js": [
+ "8bfdc92319699e53b87f28e2bec1c36267897d06",
+ [
+ "ai/summarizer/summarizer-from-detached-iframe.tentative.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Summarizer Detached Iframe"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "../resources/util.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ],
"summarizer-iframe.tentative.https.html": [
"9de80e1fd916dfac64554ea15d1c91727a8d3859",
[
@@ -552904,7 +553315,7 @@
]
],
"summarizer-summarize-streaming.tentative.https.window.js": [
- "59aa01aeb312ce90958708a089fa33499b4ea32e",
+ "8d85dc7b836eb8416182acceb57c16940399e63f",
[
"ai/summarizer/summarizer-summarize-streaming.tentative.https.window.html",
{
@@ -552931,14 +553342,14 @@
]
],
"summarizer-summarize.tentative.https.window.js": [
- "c54052f8b36157e22dc8b083137d0ab4adbd2d70",
+ "a9be36dace027fdbf229f0f48a13ba4ab9b13941",
[
"ai/summarizer/summarizer-summarize.tentative.https.window.html",
{
"script_metadata": [
[
"title",
- "Summarizer Create Available"
+ "Summarizer Summarize"
],
[
"script",
@@ -552982,6 +553393,45 @@
}
]
],
+ "translator-locale.https.window.js": [
+ "73e7eff20d211c9eefcffd25b123920bdd35275c",
+ [
+ "ai/translator/translator-locale.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Detect english"
+ ],
+ [
+ "global",
+ "window"
+ ],
+ [
+ "timeout",
+ "long"
+ ],
+ [
+ "script",
+ "resources/util.js"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "../resources/util.js"
+ ],
+ [
+ "script",
+ "../resources/locale-util.js"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ],
"translator.optional.https.window.js": [
"2a4c5a6c5dd3cd8b2fea087aa910428c2a3041bf",
[
@@ -553024,7 +553474,7 @@
},
"writer": {
"writer-abort.tentative.https.window.js": [
- "bb877f6d73b9747e85df0022d6d325f1ecc8017d",
+ "be0d50f7102dd6b7231892c5e34957ca65cd9ea0",
[
"ai/writer/writer-abort.tentative.https.window.html",
{
@@ -553096,8 +553546,62 @@
}
]
],
+ "writer-create-available.tentative.https.window.js": [
+ "dd9e40d45e8ac580107728ad78c977eb214813b2",
+ [
+ "ai/writer/writer-create-available.tentative.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Writer Create Available"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "../resources/util.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ],
+ "writer-create.tentative.https.window.js": [
+ "2f328c8d7cc67fd6ed18d7f3b68d5551dc1dfd36",
+ [
+ "ai/writer/writer-create.tentative.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Writer Create"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "../resources/util.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ],
"writer-from-detached-iframe.tentative.https.window.js": [
- "c63d8bb77c953e1f04bbab2987e28f6dd0cc5e1a",
+ "a8fcb6f12640db98409a81ef4ac2b8b8e319ce5c",
[
"ai/writer/writer-from-detached-iframe.tentative.https.window.html",
{
@@ -553133,15 +553637,69 @@
}
]
],
- "writer.tentative.https.window.js": [
- "6606f2174486f977d25065659638c788b822bdda",
+ "writer-measureInputUsage.tentative.https.window.js": [
+ "e836e8fd9ccbf876486cbd7870ea314ac0de9230",
+ [
+ "ai/writer/writer-measureInputUsage.tentative.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Writer measureInputUsage"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "../resources/util.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ],
+ "writer-write-streaming.tentative.https.window.js": [
+ "52992ad21394102fece8feec286eca4b50e19fa2",
+ [
+ "ai/writer/writer-write-streaming.tentative.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "Writer Write Streaming"
+ ],
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "../resources/util.js"
+ ],
+ [
+ "timeout",
+ "long"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ],
+ "writer-write.tentative.https.window.js": [
+ "3383ceb923963a5e726d158ff1882f083c781939",
[
- "ai/writer/writer.tentative.https.window.html",
+ "ai/writer/writer-write.tentative.https.window.html",
{
"script_metadata": [
[
"title",
- "Writer"
+ "Writer Write"
],
[
"script",
@@ -562416,7 +562974,7 @@
]
],
"async-navigator-clipboard-change-event.tentative.https.html": [
- "37e2e6a7bde3ef85de09691e5fa4fba4a644b310",
+ "bf32f4851b341ce08b2772b06c803dc02fdb24a6",
[
null,
{
@@ -562914,29 +563472,32 @@
],
"iframes": {
"dialog-same-origin-nn.html": [
- "250fbf7e5f733b89449203b7b881c8f710898dbd",
+ "b2da2d415a835bce1e27ebf439294f87a84785ed",
[
null,
{
- "testdriver": true
+ "testdriver": true,
+ "timeout": "long"
}
]
],
"dialog-same-origin-ynn.html": [
- "b5cfab5c5d91315103796e783e1187757932e3db",
+ "3ab5b758684d7792781b82808e0f68c4bff0ad20",
[
null,
{
- "testdriver": true
+ "testdriver": true,
+ "timeout": "long"
}
]
],
"dialog-same-origin-ynyn.html": [
- "4f55e9b24aa61d026603f2448f81dfe1b9858a8e",
+ "e486fcb36828e9abda642e7f3923c97925f42e40",
[
null,
{
- "testdriver": true
+ "testdriver": true,
+ "timeout": "long"
}
]
]
@@ -578999,6 +579560,13 @@
{}
]
],
+ "anchor-ident-function.html": [
+ "fbc6fc5560c4184b210594ba7883f63dc9eb3aa0",
+ [
+ null,
+ {}
+ ]
+ ],
"anchor-inherited.html": [
"0f84311d6d784fdb33fd2c6642a838deefb60830",
[
@@ -580081,6 +580649,13 @@
{}
]
],
+ "position-try-ident-function.html": [
+ "4457c4f14f8413697b244fb16425e4baa7c5aab2",
+ [
+ null,
+ {}
+ ]
+ ],
"position-try-initial-transition.html": [
"163e2dc3b6d509ed757da87bb4728be7e7f645e0",
[
@@ -584477,7 +585052,7 @@
]
],
"at-container-style-parsing.html": [
- "2e6722335c2c307343b0cc36660e22e87ff620bf",
+ "2890727ad4ce3a3e8fb397e0707cc0a5b7bc3e69",
[
null,
{}
@@ -584553,6 +585128,13 @@
{}
]
],
+ "container-ident-function.html": [
+ "692efa757b31d85733329c721a2e17cf77aee54e",
+ [
+ null,
+ {}
+ ]
+ ],
"container-inheritance.html": [
"b4efa1d5231e2dcba3a0fe382dcd574ae3f4ddcc",
[
@@ -584876,7 +585458,7 @@
]
],
"font-relative-units.html": [
- "3d676402e1e6b266ede4e0249bfae29f159d14f7",
+ "97f43ac466f3bcafb3c764af8524ca0a1601ce5b",
[
null,
{}
@@ -585346,7 +585928,7 @@
]
],
"scroll-state-snapped-snap-changing.html": [
- "85f678f07e1f40b04741c6a070af6b61cdaa229a",
+ "ded5656a046182dd568859ec00f30bdb24bc078c",
[
null,
{
@@ -586886,49 +587468,49 @@
]
],
"wrap-flow-001.html": [
- "f87c5baf8b2634288949bfbd8290533d8593e0e7",
+ "5750d8b73c23dff5ff04a4877b210819fda0b7db",
[
null,
{}
]
],
"wrap-flow-002.html": [
- "4f56a99a247c3741b3475c89ec57b171e57584d3",
+ "d00edc4ba2ae95114a27ef2a49615a9d2ad23c1f",
[
null,
{}
]
],
"wrap-flow-003.html": [
- "f48d8a8fbbee67bc97dfede53f44902ecd45419d",
+ "489e2dd9dbfa65bce91d3a379103c64c36ee3e9e",
[
null,
{}
]
],
"wrap-flow-004.html": [
- "c2369a12eecf9b1ca39d97e9ceee1acf5f7d12c7",
+ "3f96272d204aa77f33dfa9710b2ff53295a77bab",
[
null,
{}
]
],
"wrap-flow-005.html": [
- "d16c8479ca564c26aa71094de105fcd42f70eda4",
+ "01be21dc7b9730abd2cc574eb1f2a5b777de6269",
[
null,
{}
]
],
"wrap-flow-006.html": [
- "d9c107ae75b7624de15e2dccd3e16cea89176ece",
+ "e00f86a7de0e7a1e9d392c91b9850c4921937d79",
[
null,
{}
]
],
"wrap-through-001.html": [
- "8c2f9d797bc66d113a8fb7122ab1ff46085eccf8",
+ "f7191a723bbf803d7b2ba5f51105017bba9b9735",
[
null,
{}
@@ -587794,14 +588376,14 @@
]
],
"flex-container-max-content-002.tentative.html": [
- "77a074b153a3b3fcb47c5665bab614c1720a73d2",
+ "2f489f3be1b078a302feb8f849c60ae52caa557c",
[
null,
{}
]
],
"flex-container-min-content-002.tentative.html": [
- "92d37e3b9d8db7b57b813b49c26a3e9cd03b5179",
+ "f7e5016b59ee72f3616029a60163f8520970f512",
[
null,
{}
@@ -589562,14 +590144,14 @@
]
},
"font-face-range-order.html": [
- "b198a9fb572d38a87e25cc71e932821d8e96b16c",
+ "feae4803e7d3d007037b476c38a666d952ce7718",
[
null,
{}
]
],
"font-face-style-normal.html": [
- "440661b82bbbd1f92c0a76ff650800ab24993cc7",
+ "baf34c0bc2028965cdf6ea795a8a222b45c8372c",
[
null,
{}
@@ -589702,7 +590284,7 @@
]
],
"generic-family-keywords-001.html": [
- "bd39bac3ff8b3cda7e7eb60c75b0b5e6589f6110",
+ "17a635bd8e8e7dd3b8111a4127588e6e946d9b93",
[
null,
{}
@@ -589716,7 +590298,7 @@
]
],
"generic-family-keywords-003.html": [
- "c787b59fb285dab2551c98026641b7f9dfdb84cd",
+ "4b79b58a5634609371ad4ccf502e474328eefc46",
[
null,
{}
@@ -590533,7 +591115,7 @@
},
"parsing": {
"gap-decorations-bidirectional-shorthands.html": [
- "9ff3815c21f0f2707c4813b1c32423dbdfe15c19",
+ "2ace9f255fbc4aa34da3dec67711a424e34d588e",
[
null,
{}
@@ -590567,29 +591149,50 @@
{}
]
],
- "gap-decorations-rule-shorthand-computed-from-longhands.html": [
- "562c166e90b3cc983c117c8deec63a1b3105cb35",
+ "gap-decorations-important.html": [
+ "76f3862533ca48a1f2b195b61295a1980411c13f",
[
null,
{}
]
],
"gap-decorations-rule-shorthand-computed.html": [
- "7bb3e1858dd9fef26389628aa5ea11cab06fb22d",
+ "63e108d2886a370b735700405fc4338d24dcdb0b",
+ [
+ null,
+ {}
+ ]
+ ],
+ "gap-decorations-rule-shorthand-from-longhands.tentative.html": [
+ "ed7c9a317e66984cd3420470819a3de75749c8c2",
[
null,
{}
]
],
"gap-decorations-rule-shorthand-invalid.html": [
- "f7c6b45b16d08e9a3e1db4587dba27ab95b91829",
+ "bbc347cc79e3b3b70841999cd9e8c12965afa714",
+ [
+ null,
+ {}
+ ]
+ ],
+ "gap-decorations-rule-shorthand-roundtrip.tentative.html": [
+ "5955af8923cdfe1765575e1ce296535f18be8efa",
+ [
+ null,
+ {}
+ ]
+ ],
+ "gap-decorations-rule-shorthand-valid.html": [
+ "cc05cf3b9e68d318c7b6f528ebbb961cf52c8ffa",
[
null,
{}
]
],
"gap-decorations-rule-shorthand.html": [
- "420b6757e7fafd4b7d49c4f4aef2ef17a0552704",
+ "c6c2a3751673a8b1d63bd5442922ffd71c5e2384",
[
null,
{}
@@ -593323,7 +593926,7 @@
]
},
"grid-extrinsically-sized-mutations.html": [
- "75600046e821099a19a0fa7b78670608fb626793",
+ "ea9eb7ca242549d6980f219119e229067123d41b",
[
null,
{}
@@ -596894,14 +597497,14 @@
]
],
"getclientrects-000.html": [
- "be11ba99493c12d75e8dd42ed55ca998bbe66001",
+ "0464b69fed5da99f3de331057585cf14e9f85118",
[
null,
{}
]
],
"getclientrects-001.html": [
- "48a31d901fa79c9ca9aa12b7b9e8f7c0f51af0f8",
+ "62a79d630d9ebe9345c18910ca0d364eed00c9e0",
[
null,
{}
@@ -597188,7 +597791,7 @@
]
],
"offsetProps-001.html": [
- "a592c5a88d7ec31169c120f14dfbac14a8080510",
+ "d9747bfd10ca10aad6e5ec26565e23a20f71f194",
[
null,
{}
@@ -597280,7 +597883,7 @@
]
],
"column-rule-computed.html": [
- "96ba734d8947da7d423af46ad89b5e869beddc1c",
+ "22ed11c569fb9f2f29f94dd1f7c4278195a172a8",
[
null,
{}
@@ -600248,6 +600851,13 @@
{}
]
],
+ "registered-property-ident-function.html": [
+ "343e472a8146cb1bfa6297bc221635354bcd207a",
+ [
+ null,
+ {}
+ ]
+ ],
"registered-property-initial.html": [
"2fa062f310e86220ce331a49fdcb4d5abb4094f0",
[
@@ -600770,7 +601380,7 @@
]
],
"line-spacing.html": [
- "4854e984c442c06028f929e63e1a5b25839efcf6",
+ "51f00c7dcbb2cbec79f054ff0850290d317c2dba",
[
null,
{}
@@ -601722,6 +602332,15 @@
}
]
],
+ "paged.html": [
+ "ef5525909b09d800f14dcd24147e8c032e06e630",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"snap-area-overflow-boundary-viewport-covering.tentative.html": [
"5c03c049a010faf6e76efb9c68bbb0c4428e31d3",
[
@@ -603740,7 +604359,7 @@
]
],
"shape-margin-001.html": [
- "205241bbfd6c92a209487fb21185a713158e32e2",
+ "71eb743b81a28bb834a7f51661dcec2667387d31",
[
null,
{}
@@ -603810,14 +604429,14 @@
]
],
"shape-outside-circle-004.html": [
- "c28172c333458876d2dc6db3694ae79b800d0d48",
+ "d5d429b20bd3570ff7cadfe7d9bb3beff55bafba",
[
null,
{}
]
],
"shape-outside-circle-005.html": [
- "55a7f07acfc2611f2522474080606e70273cbc37",
+ "032a0a628ae1a192df9b5023e1f16ddd4c184f03",
[
null,
{}
@@ -603908,14 +604527,14 @@
]
],
"shape-outside-ellipse-004.html": [
- "9456bec3d80aa35ad85a9f2017afcc4361f5faff",
+ "2cfefad4f81abd9ef8752c6770ef76310cc7962d",
[
null,
{}
]
],
"shape-outside-ellipse-005.html": [
- "5c90827d2dda84f97e5ff4db1ab97d2f4f81c819",
+ "dd0942d28a5560304f360572d3a341b9598b7146",
[
null,
{}
@@ -603985,7 +604604,7 @@
]
],
"shape-outside-inset-003.html": [
- "abb9972d0568a1e53676d587598355db477385ac",
+ "008fc772346e3d6d20ff06336ef5f9606f9b25df",
[
null,
{}
@@ -604062,7 +604681,7 @@
]
],
"shape-outside-polygon-004.html": [
- "5edde7dfad3a22d0c7ffe2c54cab333b6f2567bb",
+ "7540e1a1bd8d4b43b1be8b1f311a4d3af48f63b7",
[
null,
{}
@@ -604083,7 +604702,7 @@
]
],
"shape-outside-shape-arguments-000.html": [
- "2c2c959c8c4d68136b2d1042dd3d98bb08850c3e",
+ "542b8bcf7df06bc348015b50985059011cf640f4",
[
null,
{}
@@ -604863,7 +605482,7 @@
]
],
"keyword-sizes-for-intrinsic-contributions.html": [
- "dc287b195907e2b114a4d035470dde94f4039b84",
+ "b42bd71b8e7ccc802ba11e3bf3384b3854a0c3fa",
[
null,
{}
@@ -604877,7 +605496,7 @@
]
],
"keyword-sizes-on-flex-item-001.html": [
- "04c4bddbbd19c3a2942e56d54dba9a3f4a3dd44e",
+ "15df71eae2af42c7b31c9ca0937eab79233b9b8e",
[
null,
{}
@@ -605209,49 +605828,49 @@
]
],
"stretch-alias-block-size-001.tentative.html": [
- "a300b664d65e83af7ec2b64d2f0c47a92828a7b6",
+ "f3ae7afd35f0680b4dada1c519ee27fc2ad8f3de",
[
null,
{}
]
],
"stretch-alias-inline-size-001.tentative.html": [
- "a2b6fea70a4a7f1b3c59c1cfa7558003c6707aed",
+ "ca05307d2238253bdb2555f9b8ffa64f2d172e3c",
[
null,
{}
]
],
"stretch-alias-max-block-size-001.tentative.html": [
- "31257c7647fadfd0b61d85555de1c25395375968",
+ "15d34247629e1f8d6d583208e3abc4eddd4d8271",
[
null,
{}
]
],
"stretch-alias-max-inline-size-001.tentative.html": [
- "828bf7e1d2f83eeba7201972e760f789b09af940",
+ "7d7b6ab6ef586ffbae6046dc6c06b586ea5c6740",
[
null,
{}
]
],
"stretch-alias-min-block-size-001.tentative.html": [
- "bc03c684b26124591c61887c8f9138ec482eccb2",
+ "c11b60609b37a332622e33e81b955e9afbdf50a6",
[
null,
{}
]
],
"stretch-alias-min-inline-size-001.tentative.html": [
- "2af9315848f2a5a5bb5d136ccbb8441480759cb4",
+ "000511e71b70a0a5b2e83178ea6098fda52f6177",
[
null,
{}
]
],
"stretch-block-size-001.html": [
- "c5c02ea231de1f33ecdc9859264b55ab93eac66e",
+ "c2cac98d3a57bfaea455e219341c3f77242659c9",
[
null,
{}
@@ -605272,7 +605891,7 @@
]
],
"stretch-inline-size-001.html": [
- "ee59a7cfd355e598cc343518f154e0e02ee031e1",
+ "30fcdafd16e56cf2ead68c1a859d9fa5c086608a",
[
null,
{}
@@ -605293,28 +605912,28 @@
]
],
"stretch-max-block-size-001.html": [
- "f836e84fcae60feb51c21c616cc5b4bc4e070fc4",
+ "26eae5f68811df7ae0a5a1662381e3bece38787f",
[
null,
{}
]
],
"stretch-max-inline-size-001.html": [
- "e17bc9a9cd94f675fa45ea41a4d1f6c7f9bfd074",
+ "4c356c1a52d97025ff56fd4cdd49ab609f4a5799",
[
null,
{}
]
],
"stretch-min-block-size-001.html": [
- "c7fc12728531311840e57f2b46fbd28e47327b94",
+ "ec023a34fb28798b5d5aee18e19edefb22500f81",
[
null,
{}
]
],
"stretch-min-inline-size-001.html": [
- "60c01030f54025831e2f14e72b9ecba54371e798",
+ "28c1cc93be32bad5d59b852c061db48e6afd5bad",
[
null,
{}
@@ -606154,14 +606773,14 @@
],
"tentative": {
"baseline-table.html": [
- "1507bf656f48b5b944cdea12f68bd586d9c20f11",
+ "4ceeb4d3241f2677d121eb86a73291fb6c4567ec",
[
null,
{}
]
],
"baseline-td.html": [
- "4090c5db64e37159164f4965f224859dfd44cc5c",
+ "d2eec93a44f16a8dc35ba0f99228fb217de96c82",
[
null,
{}
@@ -606182,7 +606801,7 @@
]
],
"colgroup-col.html": [
- "40fbefee200cb280416733a04a335ebcc7764c8a",
+ "ba009de9996085f785e47d73aec6aa15081c3ea3",
[
null,
{}
@@ -606245,7 +606864,7 @@
]
],
"table-quirks.html": [
- "af2a516c0e8a39d21496bd4698e14e86891ccae3",
+ "35c091095500e29112029d23a55a020a763631ef",
[
null,
{}
@@ -608765,15 +609384,6 @@
]
]
},
- "text-autospace": {
- "text-autospace-mixed-001.html": [
- "731f74561aa7f5d114938bcc8f65bab00acfdb41",
- [
- null,
- {}
- ]
- ]
- },
"text-indent": {
"percentage-value-intrinsic-size.html": [
"d63a9f1ba25f31dec6c719b35c19eae7b380e695",
@@ -609025,7 +609635,7 @@
]
],
"trailing-space-position-001.html": [
- "648ae23dccbeb5d79a30fd14506a6f4164b2f26f",
+ "9a23e80375d2b34692717ab95060c6edd78b763b",
[
null,
{}
@@ -609053,7 +609663,7 @@
]
],
"white-space-intrinsic-size-021.html": [
- "9c63117d087932fb7c4788ff58c251d60dc1bf17",
+ "e1a8d03894c0893d7d5b552ae58f597d806cac90",
[
null,
{}
@@ -613524,6 +614134,13 @@
{}
]
],
+ "caret-shape-parsing.html": [
+ "82f9248e02ccbd8e1c06e0717a870ca04376df49",
+ [
+ null,
+ {}
+ ]
+ ],
"cursor-calc-hotspot.html": [
"825d9571271c06d96302faa46edcf0f2e5a4cda9",
[
@@ -614229,7 +614846,7 @@
]
],
"attr-security.html": [
- "ee9b030d56f2e4f84dda2a97915c1819e0c15e9a",
+ "25f0a78a32803a79792a1f6ea46871f7f4d96e1c",
[
null,
{}
@@ -614643,7 +615260,7 @@
]
],
"cap-invalidation.html": [
- "0becd0d093d680c1c18323da51fc39812c3709cd",
+ "c3d7f798e11350ad294f142fea7e242c659d649c",
[
null,
{}
@@ -614803,6 +615420,20 @@
{}
]
],
+ "ident-function-computed.html": [
+ "0a4068702e48f4faea3e95e7be783907fa9e78ed",
+ [
+ null,
+ {}
+ ]
+ ],
+ "ident-function-parsing.html": [
+ "615051c78d5257a0e74c5aa97ca57a64f18afec7",
+ [
+ null,
+ {}
+ ]
+ ],
"if-conditionals.html": [
"caead7864d550f8732eff919c1b555c8f759508d",
[
@@ -615190,6 +615821,13 @@
{}
]
],
+ "sign-in-keyframes-with-relative-units.html": [
+ "5431c7c6241020f1c9af2808b8747d25f68f977e",
+ [
+ null,
+ {}
+ ]
+ ],
"signed-zero.html": [
"6ede4bbb0ecb67ea40ec26e1f41c516d2e9d3a88",
[
@@ -615338,6 +615976,13 @@
{}
]
],
+ "sibling-index-keyframe-transform-dynamic.html": [
+ "4dce7f6a82ebbca6093b56dc2db0c90c2e437df8",
+ [
+ null,
+ {}
+ ]
+ ],
"sibling-index-keyframe-value-dynamic.html": [
"286e0d3d3e2eecdd091df74c8c47f738cb700dd1",
[
@@ -615892,7 +616537,7 @@
]
],
"group-animation-for-root-transition.html": [
- "9c702663e62fb5d1adb156630da1cdeb3b6c9868",
+ "b7ad7598e8b1cc8c550e239c379a739add01dc39",
[
null,
{}
@@ -616175,7 +616820,7 @@
]
},
"no-crash-set-exception.html": [
- "bc0d764a590aaed95d2e6afe487f2477385a9c94",
+ "cc401b8bd6f91e7f98e628950827011908208585",
[
null,
{}
@@ -616198,7 +616843,7 @@
]
],
"no-raf-while-render-blocked.html": [
- "a86fd14536229767b510d53741e86fd89e901828",
+ "36a923d84ede044a222f24b723301e411d27e343",
[
null,
{
@@ -616342,7 +616987,7 @@
]
},
"paused-animation-at-end.html": [
- "ae9176ea26c242a0d268310405f1202181dd5ad1",
+ "4b8148140bdde7922e63204040d698d881d56603",
[
null,
{}
@@ -616369,6 +617014,13 @@
{}
]
],
+ "pseudo-get-computed-style-clean-style.html": [
+ "be194a1d646692f548ba34823badc52b27d78f2d",
+ [
+ null,
+ {}
+ ]
+ ],
"pseudo-get-computed-style.html": [
"274e946b825951f0a941c9befe5059452568d9c4",
[
@@ -616392,7 +617044,7 @@
]
],
"auto-name.html": [
- "2d11985b3986b479304d5de0195eea1840148868",
+ "3eb5ea1808a1b679be3f85213a054cfc0e4b49dc",
[
null,
{}
@@ -616413,7 +617065,7 @@
]
],
"document-element-start-view-transition.html": [
- "42f87f93a07fac6715d422dea4d1e5835437858e",
+ "380b67213a6a684bcd5ea2a065933cac5a7dd42d",
[
null,
{}
@@ -616480,7 +617132,7 @@
]
],
"transition-skipped-after-animation-started.html": [
- "56c477a55f6e6e4dfc73ca40077dc0938ee6a1d7",
+ "a6bd29b6f85966224e60bcc6a8b73d933c3d71f8",
[
null,
{}
@@ -616510,7 +617162,7 @@
]
],
"view-transition-name-on-removed-element.html": [
- "36beb308283a9a61a2289193b136fa7bed7f09d7",
+ "375553652abd72300334ca1ba13ce3ce5581e83c",
[
null,
{}
@@ -616784,7 +617436,7 @@
]
],
"text-input-block-size.optional.html": [
- "680e0b6532b1a28bc94238b079fd2ab8417966d7",
+ "77d67aad9c913097a292b88c36da9b7b01e17178",
[
null,
{}
@@ -617995,7 +618647,7 @@
]
],
"getComputedStyle-insets-relpos-inline.html": [
- "d5f197ee9bc6cd53ec636889773438391d698120",
+ "7d53f316396bb4d68bc6e600ff81b12a1fc38e56",
[
null,
{}
@@ -618881,7 +619533,7 @@
]
],
"getBoundingClientRect-shy.html": [
- "b27a7884605f16cbac77e705d05f8ab519a39d9e",
+ "55349e93969af0d527da4bcb589804239164bafc",
[
null,
{}
@@ -623571,6 +624223,24 @@
{}
]
],
+ "idlharness.window.js": [
+ "b2727e3a8742a791ba51fabf0de02c744ae0d732",
+ [
+ "custom-elements/registries/idlharness.window.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "/resources/WebIDLParser.js"
+ ],
+ [
+ "script",
+ "/resources/idlharness.js"
+ ]
+ ]
+ }
+ ]
+ ],
"initial-about-blank.window.js": [
"b3bb7e139b5c543bae2d4cc86d3f5ebe1fe197f1",
[
@@ -623628,30 +624298,6 @@
]
]
},
- "revamped-scoped-registry": {
- "idlharness.tentative.window.js": [
- "1f5c776cc2513e651de15b85884ba785027e59b6",
- [
- "custom-elements/revamped-scoped-registry/idlharness.tentative.window.html",
- {
- "script_metadata": [
- [
- "script",
- "/resources/WebIDLParser.js"
- ],
- [
- "script",
- "/resources/idlharness.js"
- ],
- [
- "global",
- "window,dedicatedworker,shadowrealm-in-window"
- ]
- ]
- }
- ]
- ]
- },
"scoped-registry-initialize.html": [
"18dbd0ebeddc0d115d596058fc11d863397c4ee5",
[
@@ -651030,7 +651676,7 @@
]
],
"lfedcm-identity.create-store-collect.tentative.sub.https.html": [
- "54226aff9ae9974a9810865b6806c930b7677260",
+ "553bc40989e4c23b6e331c658734ed08a466ba5c",
[
null,
{
@@ -664639,7 +665285,7 @@
},
"local-network-access": {
"fetch.tentative.https.html": [
- "9c591f309b75af6731c6d6be9c0907d3b8c22618",
+ "ac2c3cca28eaf2c0a36d3350aa92d87d1ba75b34",
[
null,
{
@@ -719222,7 +719868,7 @@
},
"cross-origin-opener-policy": {
"blob-popup.https.html": [
- "eda150eb34880a332269666cf388c40152bc17ff",
+ "164bf2429bffd72d858791344e177871804138aa",
[
null,
{}
@@ -719236,7 +719882,7 @@
]
],
"coep-navigate-popup.https.html": [
- "714a4b6c4270900282328af1aacadc8592a0b44e",
+ "f9b575fccc255db70afe38a2872a64c1af16f115",
[
"html/cross-origin-opener-policy/coep-navigate-popup.https.html?0-1",
{
@@ -719434,7 +720080,7 @@
],
"historical": {
"coep-navigate-popup-unsafe-inherit.https.html": [
- "8368dc4c81129d2d15e700198e4d4fff659cd0f6",
+ "ce8c363f09190eca93ce60bdb44959eb4d819afa",
[
null,
{
@@ -722734,7 +723380,7 @@
]
],
"the-translate-attribute-012.html": [
- "1d81cfd8b11050371ca12bdfd81217801a167690",
+ "690009c7c27a2709c9ca4ffa098fe998f84d03eb",
[
null,
{}
@@ -736628,7 +737274,7 @@
]
],
"dialog-closedby-corner-cases.html": [
- "511acaccef334c8ad5c6255c7543b8cf69e1801f",
+ "2c9dff9753abfa76a67c0f97505e9f5c5edaa81a",
[
null,
{
@@ -736732,7 +737378,7 @@
]
],
"dialog-form-submission.html": [
- "5934485087a267f917d9b47d5414a36c1065da6f",
+ "04255cc3c8040d09b913ae0b602f042ed756ab81",
[
null,
{
@@ -742582,17 +743228,8 @@
}
]
],
- "on-dialog-behavior-request-close.tentative.html": [
- "e505c917d7cf6e56107caa4ca40c2a9b49341f33",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
"on-dialog-behavior.html": [
- "041bc8536acca1d8c1949dd5cfca9b97c9b5a6ba",
+ "38243de74773829cddde683808e1ef6d0d42dc5d",
[
null,
{
@@ -744609,7 +745246,7 @@
{}
]
],
- "serializing-lt-gt.tentative.html": [
+ "serializing-lt-gt.html": [
"6c74b443a838267be7f0d2ad8a8a80964c57209f",
[
null,
@@ -744617,7 +745254,7 @@
]
],
"serializing.html": [
- "1bccbf560880d98287c57046e84a449b20c39d90",
+ "e0473f968017eb536f3e2bb62ccd34dd0cdaeeb8",
[
null,
{}
@@ -748634,6 +749271,15 @@
}
]
],
+ "roles-minimum.tentative.html": [
+ "2093620bb36598b38e0caa353b5014740aeb6aa4",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"roles.html": [
"9ef8e467bf116de7e8c7c699c6fc3cd1f5d646f2",
[
@@ -749577,7 +750223,7 @@
]
],
"non-local-ports.sub.window.js": [
- "8c9eb33c4f77ba1b7724a253a3f73d765d7425ab",
+ "0de516db3800692fec18348b5cbbf10a8f03c52d",
[
"infrastructure/assumptions/non-local-ports.sub.window.html",
{}
@@ -755284,14 +755930,14 @@
]
],
"merror-001.html": [
- "a9a021c2e991c82ea8a58a302d099a88b78f7a62",
+ "0551e32794862102d539e1ddb9394a768b8647e2",
[
null,
{}
]
],
"mphantom-001.html": [
- "771688cf19416d78342e019450221102728942ae",
+ "5af588215537597166ff03cb48127a1e3fb5b572",
[
null,
{}
@@ -765949,6 +766595,13 @@
{}
]
],
+ "paint-timing-mixin-to-json.html": [
+ "833a04f06813c333be349bad7cde9ec3d78fb8af",
+ [
+ null,
+ {}
+ ]
+ ],
"paint-timing-mixin.html": [
"048c985c7c75cc3fe717b3b836120f170e847d1e",
[
@@ -771796,7 +772449,7 @@
]
],
"pointerevent_lostpointercapture_remove_setcapture_node.html": [
- "4b372d04bdfa447ffd3d639efced347b93aacbde",
+ "8da1b7d28c45e49f31ba55e05eac3fe6e5a01283",
[
null,
{
@@ -771872,7 +772525,7 @@
]
],
"pointerevent_pointer_boundary_events_after_removing_last_over_element.html": [
- "869e65ee863482fa23db480913198152d5e92c38",
+ "b54caed0450a1a387428c637b42408f6df362084",
[
null,
{
@@ -772034,7 +772687,7 @@
]
],
"pointerevent_pointerout_no_pointer_movement.html": [
- "1af166593266f671b1b4705e1911e46eb4c4b990",
+ "8349c9b7d60ce44aceb89fb394bcabcf466fd2ae",
[
null,
{
@@ -773179,8 +773832,35 @@
{}
]
],
+ "preload-referrer-policy-subresource-header.tentative.html": [
+ "65f5afe2374e93da34546794b8a5bd794d95332f",
+ [
+ "preload/preload-referrer-policy-subresource-header.tentative.html?isCrossOriginPreload=false&isCrossOriginResource=false",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "preload/preload-referrer-policy-subresource-header.tentative.html?isCrossOriginPreload=false&isCrossOriginResource=true",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "preload/preload-referrer-policy-subresource-header.tentative.html?isCrossOriginPreload=true&isCrossOriginResource=false",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "preload/preload-referrer-policy-subresource-header.tentative.html?isCrossOriginPreload=true&isCrossOriginResource=true",
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
"preload-referrer-policy.html": [
- "0a4fbb0b4a1d4995ae55ca2d76a9655cb14405a6",
+ "a33d1b664e3bf3b70e9ab3fcf8cc2147f8a18133",
[
null,
{
@@ -786529,7 +787209,7 @@
]
],
"svg.html": [
- "6511afc8b000a2b415819cc88d2aa1b5fccb0cdc",
+ "60f24e32e04057e9dcac8401228ad91e07ed6607",
[
null,
{}
@@ -787721,7 +788401,7 @@
]
],
"sanitizer-parseHTML.tentative.html": [
- "c4a31e2eb0365f67479968f4ce08117d04384889",
+ "290c138a3589e08e3481e3a2fe4cc9f6925499c7",
[
null,
{}
@@ -789346,7 +790026,7 @@
]
],
"yield-inherit-across-promises.any.js": [
- "8530bd4e1042ad42546b3c0ef543e501b7594112",
+ "cf6b7d377a50cd9acb1fe96eed70fce2ea7b8e57",
[
"scheduler/tentative/yield/yield-inherit-across-promises.any.html",
{}
@@ -789394,8 +790074,19 @@
}
]
],
+ "yield-scheduling-state-cleared.any.js": [
+ "8e6d2ee8606d32b1087aec8ed6b6965978f1da38",
+ [
+ "scheduler/tentative/yield/yield-scheduling-state-cleared.any.html",
+ {}
+ ],
+ [
+ "scheduler/tentative/yield/yield-scheduling-state-cleared.any.worker.html",
+ {}
+ ]
+ ],
"yield-scripted-subframe-propagation.html": [
- "d45cf3e7643262abbef32207e8d95d44cfc7e12d",
+ "42ba3b7f67d30ce996295c5f65dec23350ab450b",
[
null,
{}
@@ -790366,6 +791057,13 @@
{}
]
],
+ "timeline-names-ident-function.html": [
+ "a1305bdc17c56b37790599443c317d5532b5bf01",
+ [
+ null,
+ {}
+ ]
+ ],
"timeline-offset-in-keyframe-change-timeline.tentative.html": [
"5a70820b881edf687961606f79153dab96d6ac2d",
[
@@ -799077,7 +799775,7 @@
},
"soft-navigation-heuristics": {
"back.tentative.html": [
- "349eaf465c456954d552d42f46fd2a5590c254a9",
+ "01dae7baab6d007f0c0d3db7f4f135e451b4f222",
[
null,
{
@@ -799094,15 +799792,19 @@
}
]
],
- "disabled.html": [
- "b53c2f701222c4a85e80d2f604ea34baef2b859b",
- [
- null,
- {
- "testdriver": true
- }
- ]
- ],
+ "detection": {
+ "tentative": {
+ "racing-soft-navigations.html": [
+ "d485f90813471704ffa62ce362b3d4517e41bec1",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ]
+ }
+ },
"dropped-entries.tentative.html": [
"d27ad452be07b778aea1aff5525d1670fb66ec5f",
[
@@ -799131,24 +799833,6 @@
}
]
],
- "image-lcp-before-detection-second-softnav.tentative.html": [
- "4d26bb926955f6c86e3adae583d1828c8e6b833a",
- [
- null,
- {
- "testdriver": true
- }
- ]
- ],
- "image-lcp-before-detection.tentative.html": [
- "0de675d372b68866d92eca772461cb0800f6e7f1",
- [
- null,
- {
- "testdriver": true
- }
- ]
- ],
"image-lcp-followed-by-image-softnav-lcp.tentative.html": [
"7a2018d20ee811ff1ec9ca88c80038b0f1239874",
[
@@ -799186,7 +799870,7 @@
]
],
"interaction-with-paint-before-back.tentative.html": [
- "5961a6ebcdfdd2b10bf16173d3f0cece2733fa1c",
+ "effccbfd762434c84b672173b122b07272542fe5",
[
null,
{
@@ -799386,8 +800070,17 @@
}
]
],
+ "lcp.html": [
+ "eb19c01494dcdb99c5bedb78b5242059563436f1",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"task-attribution.html": [
- "8f6f93c8daf6c089efd0eee7fefdc1a8ffa704f1",
+ "0c27fbb06058b3fb949e609dee9ea857a9682d27",
[
null,
{
@@ -799476,24 +800169,6 @@
{}
]
],
- "text-lcp-before-detection-second-softnav.tentative.html": [
- "bed27c3506914e34cfb7d288ed745fd1fc2cea01",
- [
- null,
- {
- "testdriver": true
- }
- ]
- ],
- "text-lcp-before-detection.tentative.html": [
- "11e82e539ff08b249be1fe79f64e4b8df0859601",
- [
- null,
- {
- "testdriver": true
- }
- ]
- ],
"text-lcp-followed-by-anim-image-softnav-lcp.tentative.html": [
"b34a6e81a58333c61ccedb4e25551feba4893736",
[
@@ -800381,7 +801056,7 @@
"tentative": {
"service-worker": {
"basic.sub.https.html": [
- "5b2a4d00dba107fcd2e97b46bf632097f4cc6f30",
+ "7e4fd24423d96a1936b92eb1472d1ba42f0adb10",
[
"speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html?origin=cross-site&sw=fetch-handler",
{
@@ -800467,6 +801142,12 @@
}
],
[
+ "speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html?origin=same-site&sw=fetch-handler-navigation-preload",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
"speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html?origin=same-site&sw=fetch-handler-to-fallback",
{
"timeout": "long"
@@ -800501,6 +801182,24 @@
{
"timeout": "long"
}
+ ],
+ [
+ "speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html?origin=same-site&sw=race-fetch-handler",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html?origin=same-site&sw=race-fetch-handler-modify-url",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html?origin=same-site&sw=race-fetch-handler-to-fallback",
+ {
+ "timeout": "long"
+ }
]
],
"redirect.sub.https.html": [
@@ -815889,17 +816588,43 @@
]
},
"subresource-integrity": {
+ "integrity-policy": {
+ "parsing.html": [
+ "205854419a7d58871e39a5cfb3a86ccd38cd5492",
+ [
+ "subresource-integrity/integrity-policy/parsing.html?type=enforce",
+ {
+ "timeout": "long"
+ }
+ ],
+ [
+ "subresource-integrity/integrity-policy/parsing.html?type=report",
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "script.https.html": [
+ "783374db920a24ae32a3492d8cfe2edc5d8eb5d3",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ]
+ },
"signatures": {
"tentative": {
"accept-signature.parser-inserted.html": [
- "ccedc5ce4f9213e748611cb305892a87950978f6",
+ "0d688d39066ce720b61dead92714dca0ad85b138",
[
null,
{}
]
],
"accept-signature.window.js": [
- "97e817e328c279149ac9668ed5014a30f811006d",
+ "291162c44594b95b50c8286d4d223c57136dde57",
[
"subresource-integrity/signatures/tentative/accept-signature.window.html",
{
@@ -816098,34 +816823,6 @@
{}
]
],
- "tentative": {
- "integrity-policy": {
- "parsing.html": [
- "205854419a7d58871e39a5cfb3a86ccd38cd5492",
- [
- "subresource-integrity/tentative/integrity-policy/parsing.html?type=enforce",
- {
- "timeout": "long"
- }
- ],
- [
- "subresource-integrity/tentative/integrity-policy/parsing.html?type=report",
- {
- "timeout": "long"
- }
- ]
- ],
- "script.https.html": [
- "783374db920a24ae32a3492d8cfe2edc5d8eb5d3",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ]
- }
- },
"unencoded-digest": {
"tentative": {
"fetch.any.js": [
@@ -818489,7 +819186,7 @@
]
],
"svg-pointer-events-bbox.html": [
- "8db9149c231d1f4812b76610e3488ecd74787625",
+ "06d34fec54ba47a36690cd1be31d3c3f9b890b33",
[
null,
{}
@@ -819615,7 +820312,7 @@
]
],
"getcharnumatposition.html": [
- "f17369b3742eddddbee792e0a0d983c24052f0ef",
+ "15f5dc68737a5b5ad7e75bf29ab5bcf3dbaaf482",
[
null,
{}
@@ -852870,7 +853567,7 @@
"webnn": {
"conformance_tests": {
"abs.https.any.js": [
- "de6a5761df443ab6977ee3a61afc764eedd31c2c",
+ "ea4370c84dc84733290de06391c76f21b2945a37",
[
"webnn/conformance_tests/abs.https.any.html?cpu",
{
@@ -853092,7 +853789,7 @@
]
],
"arg_min_max.https.any.js": [
- "e08a8cabd1a64e260c8d9b88526e3c98b286e302",
+ "f8e4d801056c31a1ec56d4e9686f16e2dd1eff25",
[
"webnn/conformance_tests/arg_min_max.https.any.html?cpu",
{
@@ -855462,7 +856159,7 @@
]
],
"expand.https.any.js": [
- "2304cf9e9c917a9338b8dc1e6e3cbd75dfbd6c51",
+ "821c9b83ec269da21586682b005445f0a586bae6",
[
"webnn/conformance_tests/expand.https.any.html?cpu",
{
@@ -855684,7 +856381,7 @@
]
],
"gather.https.any.js": [
- "c3bb635bdce62a534907952e88b6402b8f3d4a91",
+ "f0b75e1cf41a7510070343975f7411e2a7e64de6",
[
"webnn/conformance_tests/gather.https.any.html?cpu",
{
@@ -855795,7 +856492,7 @@
]
],
"gatherElements.https.any.js": [
- "4482c36865fe474b37816cfe60560119b3584774",
+ "32299529f478f5b261b767b7f2ac9a71f04f01e0",
[
"webnn/conformance_tests/gatherElements.https.any.html?cpu",
{
@@ -855906,7 +856603,7 @@
]
],
"gatherND.https.any.js": [
- "0377b777e4dda8fd28552fdb4541f389b37dc30e",
+ "ddf8626f17aef9dbfe6ab9df49c8568300a56c7a",
[
"webnn/conformance_tests/gatherND.https.any.html?cpu",
{
@@ -859773,7 +860470,7 @@
]
],
"neg.https.any.js": [
- "8bc10475453e24ce6e7d4049d5470b21d8e7b147",
+ "5c5045d355ef1a0f2e7abab561cf48e848189a59",
[
"webnn/conformance_tests/neg.https.any.html?cpu",
{
@@ -859995,7 +860692,7 @@
]
],
"pad.https.any.js": [
- "54289aa9b46d4601b1ddedefe7acf2bbf99a21b1",
+ "c2ba0e45b8f56fd4e4f75f780780c94cc4838df7",
[
"webnn/conformance_tests/pad.https.any.html?cpu",
{
@@ -860763,7 +861460,7 @@
]
],
"prelu.https.any.js": [
- "cfd043ce61744b5281f8322d7cf3486b1227cf79",
+ "cc6e0052e28dd36a0862a8d02815211ad43d9bff",
[
"webnn/conformance_tests/prelu.https.any.html?cpu",
{
@@ -860874,7 +861571,7 @@
]
],
"qdq_subgraph.https.any.js": [
- "70e8cab0d95ee7d2870a462621de80be95cf2e79",
+ "ac384c917b33dda2243779a396d0d557c40003dc",
[
"webnn/conformance_tests/qdq_subgraph.https.any.html?cpu",
{
@@ -861531,7 +862228,7 @@
]
],
"reduce_l1.https.any.js": [
- "1e6b163cff340a6ceb9b161e6f2920b5d833e22c",
+ "cb09f1cab93e890dd7cb610c90e9afb9938043e2",
[
"webnn/conformance_tests/reduce_l1.https.any.html?cpu",
{
@@ -862641,7 +863338,7 @@
]
],
"relu.https.any.js": [
- "63ef9fa9ff09d41d60a228b79b20fd29ff911a21",
+ "05e9e32bf85aeaded7978198f3d965b8075aa797",
[
"webnn/conformance_tests/relu.https.any.html?cpu",
{
@@ -862863,7 +863560,7 @@
]
],
"reshape.https.any.js": [
- "05b8ea21e674796818f4c6143044a1beaaa3fb59",
+ "8345f09ae92587b9bfa3afab43214ac5567c2ab3",
[
"webnn/conformance_tests/reshape.https.any.html?cpu",
{
@@ -862974,7 +863671,7 @@
]
],
"reverse.https.any.js": [
- "3cc2b9bc0cde11ec69d508086a11475687b2fd3a",
+ "8c76d04b1ee53d5b65de19b17e7d144eaf881a49",
[
"webnn/conformance_tests/reverse.https.any.html?cpu",
{
@@ -863520,7 +864217,7 @@
]
],
"scatterElements.https.any.js": [
- "d2625630e07ce1b6a2f24fc9156bcf729f0c437f",
+ "d988719d84041839fdd6e890999c5e3e62d4e7e2",
[
"webnn/conformance_tests/scatterElements.https.any.html?cpu",
{
@@ -863631,7 +864328,7 @@
]
],
"scatterND.https.any.js": [
- "e512e41ea3f922cafaef5f9747baa2e9e6c4d8d1",
+ "8505d143c76e03424af83079fc8339936a2361a7",
[
"webnn/conformance_tests/scatterND.https.any.html?cpu",
{
@@ -864438,7 +865135,7 @@
]
],
"slice.https.any.js": [
- "7083bc09394a4f39c2c2570f1b7609bfff981ef5",
+ "6be61a9c253c853dd5aecc14b3dd78ff9f044a8d",
[
"webnn/conformance_tests/slice.https.any.html?cpu",
{
@@ -864882,7 +865579,7 @@
]
],
"split.https.any.js": [
- "b9345f5d17996edf582b387d8247a2a5ca1e6835",
+ "c805be252573f1c241b17ba70eed09e7da6f422a",
[
"webnn/conformance_tests/split.https.any.html?cpu",
{
@@ -865872,7 +866569,7 @@
]
],
"tensor.https.any.js": [
- "1a46c35b320e979a7d77a018990bbdf5abacaf28",
+ "03057a62ee864e9eb40506ef309dc6362bc44128",
[
"webnn/conformance_tests/tensor.https.any.html?cpu",
{
@@ -866355,7 +867052,7 @@
]
],
"tile.https.any.js": [
- "822944b3e994df0de6a1db9cf5b98ee102e7cfbc",
+ "29a24871816e5266eaacae83092ec59013a443d0",
[
"webnn/conformance_tests/tile.https.any.html?cpu",
{
@@ -866466,7 +867163,7 @@
]
],
"transpose.https.any.js": [
- "8a5afc1be2fb608d82276af89582933bca93336d",
+ "413b159f74379f132a7b584a73b923baa7cc82c6",
[
"webnn/conformance_tests/transpose.https.any.html?cpu",
{
@@ -866577,7 +867274,7 @@
]
],
"triangular.https.any.js": [
- "bf1f51471de8e447d9ed98d04dc962cdadac2a5c",
+ "8006672f17d47da162864f0591028cabb1ed1c64",
[
"webnn/conformance_tests/triangular.https.any.html?cpu",
{
@@ -866688,7 +867385,7 @@
]
],
"where.https.any.js": [
- "13291216a59674762750f940f73dc89afc9a37ae",
+ "21975b4610389067d4b1e09062601f66af59a78a",
[
"webnn/conformance_tests/where.https.any.html?cpu",
{
@@ -878985,7 +879682,7 @@
]
],
"pad.https.any.js": [
- "75486a50b328d353e5fbe6c1308d6698b6dcfb01",
+ "fb285ed8277fcf7ce04c6927b7173cc3b47b2544",
[
"webnn/validation_tests/pad.https.any.html?cpu",
{
@@ -882296,6 +882993,13 @@
}
]
],
+ "RTCPeerConnection-addTransceiver-renegotiation.https.html": [
+ "76259c57686be00936636b34022116a4b5bbe8d5",
+ [
+ null,
+ {}
+ ]
+ ],
"RTCPeerConnection-addTransceiver.https.html": [
"62df4293067e554dee9328f3f4f03556dedcdb10",
[
@@ -900481,14 +901185,14 @@
"depth-sensing": {
"cpu": {
"depth_sensing_cpu_dataUnavailable.https.html": [
- "e120f0b7dd161a01059ebf9bb773cbb706721d48",
+ "c3942c9ab251d7654846965336d9f8f6a0fef5dc",
[
null,
{}
]
],
"depth_sensing_cpu_inactiveFrame.https.html": [
- "c6ac8c60b0a765ecc893d7b5e0e7555c3ddabf51",
+ "6af5febff744bc3f1928fcb168d4ec4423f17e76",
[
null,
{}
@@ -900508,22 +901212,29 @@
{}
]
],
+ "depth_sensing_cpu_matchDepthViewDepthData.https.html": [
+ "a2316fac8c1f1e9d19cefc5c80e8c413a841b07a",
+ [
+ null,
+ {}
+ ]
+ ],
"depth_sensing_cpu_matchDepthViewIdentity.https.html": [
- "f3256106e904b2b66291834197a80a4537c3c682",
+ "306ad03fa04aeefcca53c8a65c68ea48dc2bfe25",
[
null,
{}
]
],
"depth_sensing_cpu_pauseResume.https.html": [
- "47469f4a0ea186e981843db8c00a1d72bc938907",
+ "78c5c89f7a9c9d4d31bbcc33784bbf53724d6960",
[
null,
{}
]
],
"depth_sensing_cpu_staleView.https.html": [
- "6a411ace451f817ba20c69a3eca22b55c536a56a",
+ "04b346ebfcb86d06be3815f87ec6059b0cde755a",
[
null,
{}
@@ -900552,7 +901263,7 @@
]
],
"depth_type_request_respected.https.html": [
- "2846c9ce10b433d69f9db8f0864a38bc1cce9b25",
+ "8eb3c36cbb434faa9cc29076239f6c3adc28a22c",
[
null,
{}
@@ -900560,14 +901271,14 @@
],
"gpu": {
"depth_sensing_gpu_dataUnavailable.https.html": [
- "018edf7693452d69753758dc0db8e25a36d8615c",
+ "de67b712e01dba01c9079d4ca0eeb5830c0fc1e9",
[
null,
{}
]
],
"depth_sensing_gpu_inactiveFrame.https.html": [
- "8528b4f80d85b44dad93dafc92ce598b8ea79bb0",
+ "9bd850ab9c9966862becc1be767256c48f706577",
[
null,
{}
@@ -900581,21 +901292,21 @@
]
],
"depth_sensing_gpu_matchDepthViewIdentity.https.html": [
- "1813ddd449ec40a9722d38795b23c3397e02dc16",
+ "a6f1eb184e967192cb20e9d00db194a0c41eb327",
[
null,
{}
]
],
"depth_sensing_gpu_pauseResume.https.html": [
- "d51edb8cd3b85192fc5904df9f488e7c32356080",
+ "8be32feb807d8825e238c6d9cfe8e8dc4e09bb71",
[
null,
{}
]
],
"depth_sensing_gpu_staleView.https.html": [
- "ecd0d479f7aac7222d512edeafef9565993add1d",
+ "95a0c6f78254ceb431edbb8bbc3a139d79009d5c",
[
null,
{}
@@ -906350,7 +907061,7 @@
]
],
"append.any.js": [
- "fb365618d20b281fd59a2c3b2ab4435e323c2f02",
+ "6871f69df591cc468e5fd99ae6456d48ad96e3a9",
[
"xhr/formdata/append.any.html",
{
@@ -929210,12 +929921,33 @@
"bidi": {
"browser": {
"create_user_context": {
+ "accept_insecure_certs.py": [
+ "10e98febfbbfe0c9d7d489b1062d41565a619495",
+ [
+ null,
+ {}
+ ]
+ ],
"create_user_context.py": [
"f495498d0722131b728e1fb2c3fcb96afeb26b67",
[
null,
{}
]
+ ],
+ "invalid.py": [
+ "9af6cdd5232244b46a3a3bc76ee4694c0704ba53",
+ [
+ null,
+ {}
+ ]
+ ],
+ "proxy.py": [
+ "fb59228e09034ba6738be2fdec06fddc2e1532bb",
+ [
+ null,
+ {}
+ ]
]
},
"get_client_windows": {
@@ -930324,7 +931056,7 @@
]
],
"before_request_sent_cached.py": [
- "e8119d29d9e259208a11bed7c330a9ecbca49886",
+ "6577b9fe08fe8b5c5d4874cec05e98eebc74cc30",
[
null,
{}
@@ -930567,7 +931299,7 @@
]
],
"response_completed_cached.py": [
- "2c7ea02d6011e30ff4ef19050b0cf88681eea653",
+ "4c024f3c4bbd48b55f63cb5037dc33bd9a739e79",
[
null,
{}
@@ -930583,7 +931315,7 @@
]
],
"response_started_cached.py": [
- "db34035fca15d5b7c2749c316ed6eb8905cabbe7",
+ "2b7e25bcd9f3473cf1a7662c8c543f0af7850d5c",
[
null,
{}
@@ -932404,7 +933136,7 @@
]
],
"merge.py": [
- "4d36926fd3f063aed95fe5a7f477fd215686f698",
+ "32991b322a076f8020ad9e00cbdd27dc42fcb825",
[
null,
{
diff --git a/tests/wpt/meta/__dir__.ini b/tests/wpt/meta/__dir__.ini
index 057fb932df2..debe6260363 100644
--- a/tests/wpt/meta/__dir__.ini
+++ b/tests/wpt/meta/__dir__.ini
@@ -1,5 +1,4 @@
prefs: [
"dom_serviceworker_enabled:true",
"dom_testutils_enabled:true",
- "dom_urlpattern_enabled:true",
]
diff --git a/tests/wpt/meta/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed-from-longhands.html.ini b/tests/wpt/meta/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed-from-longhands.html.ini
deleted file mode 100644
index d0bcf9cc50d..00000000000
--- a/tests/wpt/meta/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed-from-longhands.html.ini
+++ /dev/null
@@ -1,24 +0,0 @@
-[gap-decorations-rule-shorthand-computed-from-longhands.html]
- [column-rule computed from width: 5px, style: solid, color: rgb(0, 128, 0)]
- expected: FAIL
-
- [column-rule computed from width: repeat(auto, 5px), style: repeat(auto, solid), color: repeat(auto, rgb(255, 0, 0))]
- expected: FAIL
-
- [column-rule computed from width: repeat(auto, thin medium), style: solid, color: repeat(8, red blue)]
- expected: FAIL
-
- [column-rule computed from width: repeat(6, 15px thick), style: repeat(auto, solid), color: repeat(auto, red)]
- expected: FAIL
-
- [column-rule computed from width: 15px 25px 35px, style: solid dotted, color: green]
- expected: FAIL
-
- [column-rule computed from width: repeat(auto, 5px), style: solid double, color: repeat(7, red)]
- expected: FAIL
-
- [column-rule computed from width: repeat(auto, 5px 8px 10px), style: repeat(auto, solid double), color: repeat(auto, red green blue)]
- expected: FAIL
-
- [column-rule computed from width: repeat(2, 1px 3px 5px), style: repeat(2, solid double), color: repeat(2, red)]
- expected: FAIL
diff --git a/tests/wpt/meta/custom-elements/revamped-scoped-registry/idlharness.tentative.window.js.ini b/tests/wpt/meta/custom-elements/revamped-scoped-registry/idlharness.tentative.window.js.ini
deleted file mode 100644
index de769452cbf..00000000000
--- a/tests/wpt/meta/custom-elements/revamped-scoped-registry/idlharness.tentative.window.js.ini
+++ /dev/null
@@ -1,42 +0,0 @@
-[idlharness.tentative.window.html]
- [idl_test setup]
- expected: FAIL
-
- [idl_test validation]
- expected: FAIL
-
- [Partial interface CustomElementRegistry: member names are unique]
- expected: FAIL
-
- [Partial interface HTMLTemplateElement: member names are unique]
- expected: FAIL
-
- [Partial interface Element: member names are unique]
- expected: FAIL
-
- [Partial dictionary ShadowRootInit: member names are unique]
- expected: FAIL
-
- [Partial dictionary ElementCreationOptions: member names are unique]
- expected: FAIL
-
- [Document includes DocumentOrShadowRoot: member names are unique]
- expected: FAIL
-
- [ShadowRoot includes DocumentOrShadowRoot: member names are unique]
- expected: FAIL
-
- [HTMLTemplateElement interface: attribute shadowRootCustomElementRegistry]
- expected: FAIL
-
- [CustomElementRegistry interface: operation initialize(Node)]
- expected: FAIL
-
- [Document interface: attribute customElementRegistry]
- expected: FAIL
-
- [ShadowRoot interface: attribute customElementRegistry]
- expected: FAIL
-
- [Element interface: attribute customElementRegistry]
- expected: FAIL
diff --git a/tests/wpt/meta/dom/idlharness.window.js.ini b/tests/wpt/meta/dom/idlharness.window.js.ini
index f66b84985ad..298c194b5ee 100644
--- a/tests/wpt/meta/dom/idlharness.window.js.ini
+++ b/tests/wpt/meta/dom/idlharness.window.js.ini
@@ -1,19 +1,10 @@
[idlharness.window.html?exclude=Node]
- [Element interface: operation replaceWith((Node or DOMString)...)]
- expected: FAIL
-
- [Document interface: operation prepend((Node or DOMString)...)]
- expected: FAIL
-
[AbortSignal must be primary interface of new AbortController().signal]
expected: FAIL
[AbortSignal interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
- [Document interface: existence and properties of interface prototype object's @@unscopables property]
- expected: FAIL
-
[AbortSignal interface: existence and properties of interface object]
expected: FAIL
@@ -35,54 +26,21 @@
[AbortController interface: operation abort()]
expected: FAIL
- [Element interface: operation prepend((Node or DOMString)...)]
- expected: FAIL
-
[AbortController interface: attribute signal]
expected: FAIL
- [CharacterData interface: operation before((Node or DOMString)...)]
- expected: FAIL
-
[AbortSignal interface: attribute aborted]
expected: FAIL
- [Element interface: operation after((Node or DOMString)...)]
- expected: FAIL
-
- [CharacterData interface: existence and properties of interface prototype object's @@unscopables property]
- expected: FAIL
-
- [CharacterData interface: operation remove()]
- expected: FAIL
-
[AbortController interface: new AbortController() must inherit property "signal" with the proper type]
expected: FAIL
[AbortController interface: new AbortController() must inherit property "abort()" with the proper type]
expected: FAIL
- [Element interface: attribute slot]
- expected: FAIL
-
- [DocumentType interface: existence and properties of interface prototype object's @@unscopables property]
- expected: FAIL
-
- [CharacterData interface: operation replaceWith((Node or DOMString)...)]
- expected: FAIL
-
- [DocumentType interface: operation replaceWith((Node or DOMString)...)]
- expected: FAIL
-
[EventTarget interface: calling dispatchEvent(Event) on new AbortController().signal with too few arguments must throw TypeError]
expected: FAIL
- [DocumentFragment interface: existence and properties of interface prototype object's @@unscopables property]
- expected: FAIL
-
- [DocumentType interface: operation before((Node or DOMString)...)]
- expected: FAIL
-
[AbortSignal interface: new AbortController().signal must inherit property "aborted" with the proper type]
expected: FAIL
@@ -104,51 +62,12 @@
[AbortSignal interface: existence and properties of interface prototype object]
expected: FAIL
- [Element interface: operation remove()]
- expected: FAIL
-
- [DocumentFragment interface: operation replaceChildren((Node or DOMString)...)]
- expected: FAIL
-
[NodeFilter interface: existence and properties of interface object]
expected: FAIL
[Stringification of new AbortController().signal]
expected: FAIL
- [CharacterData interface: operation after((Node or DOMString)...)]
- expected: FAIL
-
- [Element interface: operation replaceChildren((Node or DOMString)...)]
- expected: FAIL
-
- [DocumentFragment interface: operation prepend((Node or DOMString)...)]
- expected: FAIL
-
- [Document interface: operation replaceChildren((Node or DOMString)...)]
- expected: FAIL
-
- [Document interface: operation append((Node or DOMString)...)]
- expected: FAIL
-
- [DocumentType interface: operation remove()]
- expected: FAIL
-
- [DocumentType interface: operation after((Node or DOMString)...)]
- expected: FAIL
-
- [Element interface: existence and properties of interface prototype object's @@unscopables property]
- expected: FAIL
-
- [DocumentFragment interface: operation append((Node or DOMString)...)]
- expected: FAIL
-
- [Element interface: operation append((Node or DOMString)...)]
- expected: FAIL
-
- [Element interface: operation before((Node or DOMString)...)]
- expected: FAIL
-
[XPathNSResolver interface: document.createNSResolver(document.body) must inherit property "lookupNamespaceURI(DOMString?)" with the proper type]
expected: FAIL
@@ -454,6 +373,3 @@
[Element interface: element must inherit property "customElementRegistry" with the proper type]
expected: FAIL
-
-
-[idlharness.window.html?include=Node]
diff --git a/tests/wpt/meta/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior-request-close.tentative.html.ini b/tests/wpt/meta/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior-request-close.tentative.html.ini
deleted file mode 100644
index 2e86bdd5ee5..00000000000
--- a/tests/wpt/meta/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior-request-close.tentative.html.ini
+++ /dev/null
@@ -1,90 +0,0 @@
-[on-dialog-behavior-request-close.tentative.html]
- [invoking to request-close (with command property as request-close) open dialog closes]
- expected: FAIL
-
- [invoking to request-close with value (with command property as request-close) open dialog closes and sets returnValue]
- expected: FAIL
-
- [invoking to request-close (with command property as request-close) open dialog with preventDefault is no-op]
- expected: FAIL
-
- [invoking to request-close (with command property as request-close) open modal dialog with preventDefault is no-op]
- expected: FAIL
-
- [invoking to request-close (with command property as request-close) open dialog while changing command still closes]
- expected: FAIL
-
- [invoking to request-close (with command property as request-close) open modal dialog while changing command still closes]
- expected: FAIL
-
- [invoking to request-close (with command attribute as request-close) open dialog closes]
- expected: FAIL
-
- [invoking to request-close with value (with command attribute as request-close) open dialog closes and sets returnValue]
- expected: FAIL
-
- [invoking to request-close (with command attribute as request-close) open dialog with preventDefault is no-op]
- expected: FAIL
-
- [invoking to request-close (with command attribute as request-close) open modal dialog with preventDefault is no-op]
- expected: FAIL
-
- [invoking to request-close (with command attribute as request-close) open dialog while changing command still closes]
- expected: FAIL
-
- [invoking to request-close (with command attribute as request-close) open modal dialog while changing command still closes]
- expected: FAIL
-
- [invoking to request-close (with command property as reQuEst-Close) open dialog closes]
- expected: FAIL
-
- [invoking to request-close with value (with command property as reQuEst-Close) open dialog closes and sets returnValue]
- expected: FAIL
-
- [invoking to request-close (with command property as reQuEst-Close) open dialog with preventDefault is no-op]
- expected: FAIL
-
- [invoking to request-close (with command property as reQuEst-Close) open modal dialog with preventDefault is no-op]
- expected: FAIL
-
- [invoking to request-close (with command property as reQuEst-Close) open dialog while changing command still closes]
- expected: FAIL
-
- [invoking to request-close (with command property as reQuEst-Close) open modal dialog while changing command still closes]
- expected: FAIL
-
- [invoking to request-close (with command attribute as reQuEst-Close) open dialog closes]
- expected: FAIL
-
- [invoking to request-close with value (with command attribute as reQuEst-Close) open dialog closes and sets returnValue]
- expected: FAIL
-
- [invoking to request-close (with command attribute as reQuEst-Close) open dialog with preventDefault is no-op]
- expected: FAIL
-
- [invoking to request-close (with command attribute as reQuEst-Close) open modal dialog with preventDefault is no-op]
- expected: FAIL
-
- [invoking to request-close (with command attribute as reQuEst-Close) open dialog while changing command still closes]
- expected: FAIL
-
- [invoking to request-close (with command attribute as reQuEst-Close) open modal dialog while changing command still closes]
- expected: FAIL
-
- [invoking (as request-close) already closed dialog is noop]
- expected: FAIL
-
- [invoking (as request-close) dialog as open popover=manual is noop]
- expected: FAIL
-
- [invoking (as request-close) dialog as open popover=auto is noop]
- expected: FAIL
-
- [invoking (as request-close) dialog that is removed is noop]
- expected: FAIL
-
- [invoking (as request-close) dialog from a detached invoker]
- expected: FAIL
-
- [invoking (as request-close) detached dialog from a detached invoker]
- expected: FAIL
diff --git a/tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-lt-gt.tentative.html.ini b/tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-lt-gt.tentative.html.ini
deleted file mode 100644
index 932fc486676..00000000000
--- a/tests/wpt/meta/html/syntax/serializing-html-fragments/serializing-lt-gt.tentative.html.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[serializing-lt-gt.tentative.html]
- [innerHTML]
- expected: FAIL
-
- [outerHTML]
- expected: FAIL
diff --git a/tests/wpt/meta/subresource-integrity/tentative/integrity-policy/parsing.html.ini b/tests/wpt/meta/subresource-integrity/tentative/integrity-policy/parsing.html.ini
deleted file mode 100644
index e736aad10ce..00000000000
--- a/tests/wpt/meta/subresource-integrity/tentative/integrity-policy/parsing.html.ini
+++ /dev/null
@@ -1,8 +0,0 @@
-[parsing.html?type=report]
-
-[parsing.html?type=enforce]
- [Ensure that test is working with a valid destination]
- expected: FAIL
-
- [Ensure that test is working with a valid destination and source]
- expected: FAIL
diff --git a/tests/wpt/meta/subresource-integrity/tentative/integrity-policy/script.https.html.ini b/tests/wpt/meta/subresource-integrity/tentative/integrity-policy/script.https.html.ini
deleted file mode 100644
index 3563393c660..00000000000
--- a/tests/wpt/meta/subresource-integrity/tentative/integrity-policy/script.https.html.ini
+++ /dev/null
@@ -1,15 +0,0 @@
-[script.https.html]
- [Ensure that a script without integrity did not run]
- expected: FAIL
-
- [Ensure that a script with unknown integrity algorithm did not run]
- expected: FAIL
-
- [Ensure that a script without integrity algorithm runs and gets reported in report-only mode]
- expected: FAIL
-
- [Ensure that a no-cors script gets blocked]
- expected: FAIL
-
- [Ensure that ReportingObserver gets called without endpoints]
- expected: FAIL
diff --git a/tests/wpt/meta/urlpattern/urlpattern.any.js.ini b/tests/wpt/meta/urlpattern/urlpattern.any.js.ini
index 7248fced522..065a80d7f08 100644
--- a/tests/wpt/meta/urlpattern/urlpattern.any.js.ini
+++ b/tests/wpt/meta/urlpattern/urlpattern.any.js.ini
@@ -1,760 +1,7 @@
[urlpattern.any.worker.html]
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]]
- expected: FAIL
-
- [Pattern: ["http://🚲.com/"\] Inputs: ["http://🚲.com/"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"\\ud83d \\udeb2"}\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":a󠄀b"}\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"test/:a𐑐b"}\] Inputs: [{"pathname":"test/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
[Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]]
expected: FAIL
- [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]]
- expected: FAIL
-
- [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]]
- expected: FAIL
-
- [Pattern: ["data:"\] Inputs: ["data:"\]]
- expected: FAIL
-
- [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]]
- expected: FAIL
-
- [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]]
- expected: FAIL
-
- [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]]
- expected: FAIL
-
- [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]]
- expected: FAIL
-
- [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
[Pattern: [{"hostname":"bad#hostname"}\] Inputs: [{"hostname":"bad"}\]]
expected: FAIL
@@ -773,147 +20,9 @@
[Pattern: [{"hostname":"bad\\thostname"}\] Inputs: [{"hostname":"badhostname"}\]]
expected: FAIL
- [Pattern: [{}\] Inputs: ["https://example.com/"\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: ["https://example.com/"\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: [{}\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
[Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]]
expected: FAIL
- [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]]
- expected: FAIL
-
- [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]]
- expected: FAIL
-
- [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([[a-z\]--a\])"}\] Inputs: [{"pathname":"/a"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([[a-z\]--a\])"}\] Inputs: [{"pathname":"/z"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([\\\\d&&[0-1\]\])"}\] Inputs: [{"pathname":"/0"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([\\\\d&&[0-1\]\])"}\] Inputs: [{"pathname":"/3"}\]]
- expected: FAIL
-
[Pattern: [{"port":"80"}\] Inputs: [{"port":"8\\t0"}\]]
expected: FAIL
@@ -932,770 +41,14 @@
[Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined]
expected: FAIL
- [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined]
- expected: FAIL
-
[urlpattern.any.sharedworker.html]
expected: ERROR
[urlpattern.any.html]
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]]
- expected: FAIL
-
- [Pattern: ["http://🚲.com/"\] Inputs: ["http://🚲.com/"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"\\ud83d \\udeb2"}\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":a󠄀b"}\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"test/:a𐑐b"}\] Inputs: [{"pathname":"test/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
[Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]]
expected: FAIL
- [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]]
- expected: FAIL
-
- [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]]
- expected: FAIL
-
- [Pattern: ["data:"\] Inputs: ["data:"\]]
- expected: FAIL
-
- [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]]
- expected: FAIL
-
- [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]]
- expected: FAIL
-
- [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]]
- expected: FAIL
-
- [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]]
- expected: FAIL
-
- [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
[Pattern: [{"hostname":"bad#hostname"}\] Inputs: [{"hostname":"bad"}\]]
expected: FAIL
@@ -1714,147 +67,9 @@
[Pattern: [{"hostname":"bad\\thostname"}\] Inputs: [{"hostname":"badhostname"}\]]
expected: FAIL
- [Pattern: [{}\] Inputs: ["https://example.com/"\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: ["https://example.com/"\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: [{}\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
[Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]]
expected: FAIL
- [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]]
- expected: FAIL
-
- [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]]
- expected: FAIL
-
- [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([[a-z\]--a\])"}\] Inputs: [{"pathname":"/a"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([[a-z\]--a\])"}\] Inputs: [{"pathname":"/z"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([\\\\d&&[0-1\]\])"}\] Inputs: [{"pathname":"/0"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([\\\\d&&[0-1\]\])"}\] Inputs: [{"pathname":"/3"}\]]
- expected: FAIL
-
[Pattern: [{"port":"80"}\] Inputs: [{"port":"8\\t0"}\]]
expected: FAIL
@@ -1873,9 +88,6 @@
[Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined]
expected: FAIL
- [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined]
- expected: FAIL
-
[urlpattern.any.serviceworker.html]
expected: ERROR
diff --git a/tests/wpt/meta/urlpattern/urlpattern.https.any.js.ini b/tests/wpt/meta/urlpattern/urlpattern.https.any.js.ini
index f1b0add7805..b94748d6714 100644
--- a/tests/wpt/meta/urlpattern/urlpattern.https.any.js.ini
+++ b/tests/wpt/meta/urlpattern/urlpattern.https.any.js.ini
@@ -2,762 +2,9 @@
expected: ERROR
[urlpattern.https.any.html]
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]]
- expected: FAIL
-
- [Pattern: ["http://🚲.com/"\] Inputs: ["http://🚲.com/"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"\\ud83d \\udeb2"}\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":a󠄀b"}\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"test/:a𐑐b"}\] Inputs: [{"pathname":"test/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
[Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]]
expected: FAIL
- [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]]
- expected: FAIL
-
- [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]]
- expected: FAIL
-
- [Pattern: ["data:"\] Inputs: ["data:"\]]
- expected: FAIL
-
- [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]]
- expected: FAIL
-
- [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]]
- expected: FAIL
-
- [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]]
- expected: FAIL
-
- [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]]
- expected: FAIL
-
- [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
[Pattern: [{"hostname":"bad#hostname"}\] Inputs: [{"hostname":"bad"}\]]
expected: FAIL
@@ -776,147 +23,9 @@
[Pattern: [{"hostname":"bad\\thostname"}\] Inputs: [{"hostname":"badhostname"}\]]
expected: FAIL
- [Pattern: [{}\] Inputs: ["https://example.com/"\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: ["https://example.com/"\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: [{}\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
[Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]]
expected: FAIL
- [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]]
- expected: FAIL
-
- [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]]
- expected: FAIL
-
- [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([[a-z\]--a\])"}\] Inputs: [{"pathname":"/a"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([[a-z\]--a\])"}\] Inputs: [{"pathname":"/z"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([\\\\d&&[0-1\]\])"}\] Inputs: [{"pathname":"/0"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([\\\\d&&[0-1\]\])"}\] Inputs: [{"pathname":"/3"}\]]
- expected: FAIL
-
[Pattern: [{"port":"80"}\] Inputs: [{"port":"8\\t0"}\]]
expected: FAIL
@@ -935,767 +44,11 @@
[Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined]
expected: FAIL
- [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined]
- expected: FAIL
-
[urlpattern.https.any.worker.html]
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/ba"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["https://example.com/foo/bar/baz"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?otherquery#otherhash"}\] Inputs: [{"protocol":"https","hostname":"example.com","pathname":"/foo/bar","search":"otherquery","hash":"otherhash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?otherquery#otherhash"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar?query#hash"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://example.com/foo/bar/baz"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["https://other.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: ["http://other.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar/baz","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"https://other.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar","baseURL":"https://example.com?query#hash"}\] Inputs: [{"pathname":"/foo/bar","baseURL":"http://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/([^\\\\/\]+?)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/index.html"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/bar/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar(.*)"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/:bar*"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)?"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*?"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)+"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/*+"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/(.*)*"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/**"}\] Inputs: [{"pathname":"/fo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}?"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}+"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/bar/baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo{/bar}*"}\] Inputs: [{"pathname":"/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":café"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":café"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":café"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":café"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:café"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":café"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":café"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":℘"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":℘"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":℘"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":℘"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:℘"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":℘"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":℘"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":㐀"}\] Inputs: [{"protocol":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"username":":㐀"}\] Inputs: [{"username":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"password":":㐀"}\] Inputs: [{"password":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":":㐀"}\] Inputs: [{"hostname":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:㐀"}\] Inputs: [{"pathname":"/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"search":":㐀"}\] Inputs: [{"search":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":":㐀"}\] Inputs: [{"hash":"foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(.*)"}\] Inputs: [{"protocol":"cafe"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"foo-bar"}\] Inputs: [{"protocol":"foo-bar"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"caf%C3%A9"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"café"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"username":"caf%c3%a9"}\] Inputs: [{"username":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"caf%C3%A9"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"café"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"password":"caf%c3%a9"}\] Inputs: [{"password":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"xn--caf-dma.com"}\] Inputs: [{"hostname":"café.com"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"café.com"}\] Inputs: [{"hostname":"café.com"}\]]
- expected: FAIL
-
- [Pattern: ["http://🚲.com/"\] Inputs: ["http://🚲.com/"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"\\ud83d \\udeb2"}\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":a󠄀b"}\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"test/:a𐑐b"}\] Inputs: [{"pathname":"test/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"port":""}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http","port":"80{20}?"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
[Pattern: [{"protocol":"http","port":"80 "}\] Inputs: [{"protocol":"http","port":"80"}\]]
expected: FAIL
- [Pattern: [{"port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http{s}?","port":"80"}\] Inputs: [{"protocol":"http","port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"port":"80"}\] Inputs: [{"port":"80"}\]]
- expected: FAIL
-
- [Pattern: [{"port":"(.*)"}\] Inputs: [{"port":"invalid80"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"/foo/./bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/baz"}\] Inputs: [{"pathname":"/foo/bar/../baz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/caf%C3%A9"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/café"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/caf%c3%a9"}\] Inputs: [{"pathname":"/café"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/../bar"}\] Inputs: [{"pathname":"/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"./foo/bar","baseURL":"https://example.com"}\] Inputs: [{"pathname":"foo/bar","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"","baseURL":"https://example.com"}\] Inputs: [{"pathname":"/","baseURL":"https://example.com"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{/bar}","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"\\\\/bar","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./bar","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"b","baseURL":"https://example.com/foo/"}\] Inputs: [{"pathname":"./b","baseURL":"https://example.com/foo/"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"foo/bar"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"foo/bar","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name.html","baseURL":"https://example.com"}\] Inputs: ["https://example.com/foo.html"\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=caf%C3%A9"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=café"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"q=caf%c3%a9"}\] Inputs: [{"search":"q=café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"caf%C3%A9"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"café"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"caf%c3%a9"}\] Inputs: [{"hash":"café"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"about","pathname":"(blank|sourcedoc)"}\] Inputs: ["about:blank"\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"data","pathname":":number([0-9\]+)"}\] Inputs: ["data:8675309"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo!"}\] Inputs: [{"pathname":"/foo!"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\:"}\] Inputs: [{"pathname":"/foo:"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\{"}\] Inputs: [{"pathname":"/foo{"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo\\\\("}\] Inputs: [{"pathname":"/foo("}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"javascript","pathname":"var x = 1;"}\] Inputs: [{"baseURL":"javascript:var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(data|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"(https|javascript)","pathname":"var x = 1;"}\] Inputs: [{"protocol":"javascript","pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"var x = 1;"}\] Inputs: [{"pathname":"var x = 1;"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"}\] Inputs: ["./foo/bar","https://example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080/foo?bar#baz"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["/foo?bar#baz","https://example.com:8080"\] Inputs: [{"pathname":"/foo","search":"bar","hash":"baz","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["http{s}?://{*.}?example.com/:product/:endpoint"\] Inputs: ["https://sub.example.com/foo/bar"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com#foo"\] Inputs: ["https://example.com/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080?foo"\] Inputs: ["https://example.com:8080/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080#foo"\] Inputs: ["https://example.com:8080/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/#foo"\] Inputs: ["https://example.com/#foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/*?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/*\\\\?foo"\] Inputs: ["https://example.com/?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/:name?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/:name\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/(bar)?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/(bar)\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/{bar}?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/{bar}\\\\?foo"\] Inputs: ["https://example.com/bar?foo"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/"\] Inputs: ["https://example.com:8080/"\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:foobar"\] Inputs: ["data:foobar"\]]
- expected: FAIL
-
- [Pattern: ["https://{sub.}?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub.)?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub.)?example(.com/)foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["https://(sub(?:.))?example.com/foo"\] Inputs: ["https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["file:///foo/bar"\] Inputs: ["file:///foo/bar"\]]
- expected: FAIL
-
- [Pattern: ["data:"\] Inputs: ["data:"\]]
- expected: FAIL
-
- [Pattern: ["foo://bar"\] Inputs: ["foo://bad_url_browser_interop"\]]
- expected: FAIL
-
- [Pattern: ["https://example.com/foo?bar#baz"\] Inputs: [{"protocol":"https:","search":"?bar","hash":"#baz","baseURL":"http://example.com/foo"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":"http{s}?:","search":"?bar","hash":"#baz"}\] Inputs: ["http://example.com/foo?bar#baz"\]]
- expected: FAIL
-
- [Pattern: ["?bar#baz","https://example.com/foo"\] Inputs: ["?bar#baz","https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: ["?bar","https://example.com/foo#baz"\] Inputs: ["?bar","https://example.com/foo#snafu"\]]
- expected: FAIL
-
- [Pattern: ["#baz","https://example.com/foo?bar"\] Inputs: ["#baz","https://example.com/foo?bar"\]]
- expected: FAIL
-
- [Pattern: ["#baz","https://example.com/foo"\] Inputs: ["#baz","https://example.com/foo"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*"}\] Inputs: ["foo","data:data-urls-cannot-be-base-urls"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*"}\] Inputs: ["foo","not|a|valid|url"\]]
- expected: FAIL
-
- [Pattern: ["https://foo\\\\:bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://foo@example.com"\] Inputs: ["https://foo@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://\\\\:bar@example.com"\] Inputs: ["https://:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://:user::pass@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https\\\\:foo\\\\:bar@example.com"\] Inputs: ["https:foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:foo\\\\:bar@example.com"\] Inputs: ["data:foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["https://foo{\\\\:}bar@example.com"\] Inputs: ["https://foo:bar@example.com"\]]
- expected: FAIL
-
- [Pattern: ["data{\\\\:}channel.html","https://example.com"\] Inputs: ["https://example.com/data:channel.html"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:1\]/"\] Inputs: ["http://[::1\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:1\]:8080/"\] Inputs: ["http://[::1\]:8080/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:a\]/"\] Inputs: ["http://[::a\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[:address\]/"\] Inputs: ["http://[::1\]/"\]]
- expected: FAIL
-
- [Pattern: ["http://[\\\\:\\\\:AB\\\\::num\]/"\] Inputs: ["http://[::ab:1\]/"\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"[\\\\:\\\\:AB\\\\::num\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"{[\\\\:\\\\:ab\\\\::num\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"{[\\\\:\\\\::num\\\\:1\]}"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: [{"hostname":"[*\\\\:1\]"}\] Inputs: [{"hostname":"[::ab:1\]"}\]]
- expected: FAIL
-
- [Pattern: ["data\\\\:text/javascript,let x = 100/:tens?5;"\] Inputs: ["data:text/javascript,let x = 100/5;"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name*"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name+"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":name"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name*"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name+"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"protocol":":name"}\] Inputs: [{"protocol":"foobar"}\]]
- expected: FAIL
-
[Pattern: [{"hostname":"bad#hostname"}\] Inputs: [{"hostname":"bad"}\]]
expected: FAIL
@@ -1714,147 +67,9 @@
[Pattern: [{"hostname":"bad\\thostname"}\] Inputs: [{"hostname":"badhostname"}\]]
expected: FAIL
- [Pattern: [{}\] Inputs: ["https://example.com/"\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: ["https://example.com/"\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: [{}\]]
- expected: FAIL
-
- [Pattern: [\] Inputs: [\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"(foo)(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{(foo)bar}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"(foo)?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}(barbaz)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{(.*)bar}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}{bar(.*)}"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}:bar(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}?(.*)"}\] Inputs: [{"pathname":"foobarbaz"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo\\\\bar}"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo\\\\.bar}"}\] Inputs: [{"pathname":"foo.bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo(foo)bar}"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"{:foo}bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo\\\\bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}(.*)"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo{}?bar"}\] Inputs: [{"pathname":"foobar"}\]]
- expected: FAIL
-
[Pattern: [{"pathname":"*{}**?"}\] Inputs: [{"pathname":"foobar"}\]]
expected: FAIL
- [Pattern: [{"pathname":":foo(baz)(.*)"}\] Inputs: [{"pathname":"bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo(baz)bar"}\] Inputs: [{"pathname":"bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*/*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*\\\\/*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*/{*}"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"*//*"}\] Inputs: [{"pathname":"foo/bar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo."}\] Inputs: [{"pathname":"/bar."}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo.."}\] Inputs: [{"pathname":"/bar.."}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"./foo"}\] Inputs: [{"pathname":"./foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"../foo"}\] Inputs: [{"pathname":"../foo"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo./"}\] Inputs: [{"pathname":"bar./"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":":foo../"}\] Inputs: [{"pathname":"bar../"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/:foo\\\\bar"}\] Inputs: [{"pathname":"/bazbar"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/foo/bar"},{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]]
- expected: FAIL
-
- [Pattern: [{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO/BAR"}\]]
- expected: FAIL
-
- [Pattern: ["https://example.com:8080/foo?bar#baz",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: ["/foo?bar#baz","https://example.com:8080",{"ignoreCase":true}\] Inputs: [{"pathname":"/FOO","search":"BAR","hash":"BAZ","baseURL":"https://example.com:8080"}\]]
- expected: FAIL
-
- [Pattern: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\] Inputs: [{"search":"foo","baseURL":"https://example.com/a/+/b"}\]]
- expected: FAIL
-
- [Pattern: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\] Inputs: [{"hash":"foo","baseURL":"https://example.com/?q=*&v=?&hmm={}&umm=()"}\]]
- expected: FAIL
-
- [Pattern: ["#foo","https://example.com/?q=*&v=?&hmm={}&umm=()"\] Inputs: ["https://example.com/?q=*&v=?&hmm={}&umm=()#foo"\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([[a-z\]--a\])"}\] Inputs: [{"pathname":"/a"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([[a-z\]--a\])"}\] Inputs: [{"pathname":"/z"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([\\\\d&&[0-1\]\])"}\] Inputs: [{"pathname":"/0"}\]]
- expected: FAIL
-
- [Pattern: [{"pathname":"/([\\\\d&&[0-1\]\])"}\] Inputs: [{"pathname":"/3"}\]]
- expected: FAIL
-
[Pattern: [{"port":"80"}\] Inputs: [{"port":"8\\t0"}\]]
expected: FAIL
@@ -1873,9 +88,6 @@
[Pattern: [{"hostname":"bad\\\\:hostname"}\] Inputs: undefined]
expected: FAIL
- [Pattern: [{"pathname":"/foo","baseURL":""}\] Inputs: undefined]
- expected: FAIL
-
[urlpattern.https.any.serviceworker.html]
expected: ERROR
diff --git a/tests/wpt/meta/webidl/ecmascript-binding/interface-prototype-object.html.ini b/tests/wpt/meta/webidl/ecmascript-binding/interface-prototype-object.html.ini
deleted file mode 100644
index d6427d91f6a..00000000000
--- a/tests/wpt/meta/webidl/ecmascript-binding/interface-prototype-object.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[interface-prototype-object.html]
- [[Unscopable\] extended attribute makes @@unscopables object on the prototype object, whose prototype is null.]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta/__dir__.ini b/tests/wpt/mozilla/meta/__dir__.ini
index 6f2a65cc7ec..f631a2a10f7 100644
--- a/tests/wpt/mozilla/meta/__dir__.ini
+++ b/tests/wpt/mozilla/meta/__dir__.ini
@@ -10,6 +10,5 @@ prefs: [
"dom_testbinding_preference_value_string_empty:",
"dom_testbinding_preference_value_string_test:test",
"dom_testbinding_preference_value_truthy:true",
- "dom_urlpattern_enabled:true",
"media_testing_enabled:true",
]
diff --git a/tests/wpt/tests/.github/workflows/docker.yml b/tests/wpt/tests/.github/workflows/docker.yml
index 5de0cc4bcb1..06704fff106 100644
--- a/tests/wpt/tests/.github/workflows/docker.yml
+++ b/tests/wpt/tests/.github/workflows/docker.yml
@@ -40,7 +40,7 @@ jobs:
latest
type=raw,value=${{ inputs.tag }}
- name: Build and push the Docker image
- uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
+ uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
with:
context: ./tools/docker
push: true
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 6626eecb0dd..cd108a190e3 100644
--- a/tests/wpt/tests/accname/name/comp_name_from_content.html
+++ b/tests/wpt/tests/accname/name/comp_name_from_content.html
@@ -24,6 +24,10 @@
*/
+ .alt-counter::before {
+ counter-set: cnt 5051;
+ content: "" / counter(cnt);
+ }
.simple-before::before {
content: " before "; /* [sic] leading and trailing space */
margin:0 0.1em;
@@ -103,6 +107,12 @@
<a href="#" data-expectedlabel="label" data-testname="link name from content" class="ex">label</a><br>
<br>
+<h1>alt counter with ::before</h1>
+<button data-expectedlabel="5051 label" data-testname="button with alt counter on ::before" class="ex alt-counter">label</button><br>
+<h3 data-expectedlabel="5051 label" data-testname="heading with alt counter on ::before" class="ex alt-counter">label</h3>
+<a href="#" data-expectedlabel="5051 label" data-testname="link with alt counter on ::before" class="ex alt-counter">label</a><br>
+<br>
+
<h1>simple with ::before</h1>
<button data-expectedlabel="before label" data-testname="button name from content with ::before" class="ex simple-before">label</button><br>
<h3 data-expectedlabel="before label" data-testname="heading name from content with ::before" class="ex simple-before">label</h3>
diff --git a/tests/wpt/tests/accname/name/comp_name_from_content_alt_counter_invalidation.html b/tests/wpt/tests/accname/name/comp_name_from_content_alt_counter_invalidation.html
new file mode 100644
index 00000000000..d659a6e7b3c
--- /dev/null
+++ b/tests/wpt/tests/accname/name/comp_name_from_content_alt_counter_invalidation.html
@@ -0,0 +1,38 @@
+<!doctype html>
+<title>Name Comp: Name From Alt Counter in Content Invalidation</title>
+<meta charset="utf-8">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/resources/testdriver-actions.js"></script>
+<script src="/wai-aria/scripts/aria-utils.js"></script>
+<style type="text/css">
+.alt-counter::before {
+ counter-set: cnt 5051;
+ content: "" / counter(cnt);
+}
+</style>
+
+<p>Tests the <a href="https://w3c.github.io/accname/#comp_name_from_content">#comp_name_from_content</a> portions of the AccName <em>Name Computation</em> algorithm.</p>
+
+<p>This series of tests exercises the button, heading, and link elements, because each have different characteristics worthy of testing in each of the name computation algorithm scenarios:</p>
+<ul>
+ <li>button is a leaf node with sub-level elements presentational.</li>
+ <li>heading is block level, and can contain sub-level interactives like links.</li>
+ <li>link (a[href]) is an interactive inline element that can include non-presentational descendants.</li>
+</ul>
+
+<h1>alt counter with ::before</h1>
+<button data-expectedlabel="228 label" data-testname="button with alt counter on ::before" class="ex alt-counter">label</button><br>
+<h3 data-expectedlabel="228 label" data-testname="heading with alt counter on ::before" class="ex alt-counter">label</h3>
+<a href="#" data-expectedlabel="228 label" data-testname="link with alt counter on ::before" class="ex alt-counter">label</a><br>
+<br>
+
+<script>
+document.documentElement.offsetTop;
+let sheet = document.styleSheets[0];
+sheet.cssRules[0].style.counterSet = "cnt 228";
+document.documentElement.offsetTop;
+AriaUtils.verifyLabelsBySelector(".ex");
+</script>
diff --git a/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js b/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js
index 1dd248a9eca..ee8765adf85 100644
--- a/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js
+++ b/tests/wpt/tests/ai/language_detection/detector.optional.https.window.js
@@ -52,3 +52,15 @@ promise_test(async () => {
assert_array_equals(detector.expectedInputLanguages, expectedInputLanguages);
assert_true(Object.isFrozen(detector.expectedInputLanguages));
}, 'Creating LanguageDetector with expectedInputLanguages');
+
+
+promise_test(async () => {
+ const detector = await createLanguageDetector();
+
+ const results = await detector.detect('');
+ assert_equals(results.length, 1);
+
+ const [result] = results;
+ assert_equals(result.detectedLanguage, 'und');
+ assert_equals(result.confidence, 1);
+}, 'LanguageDetector.detect() detects empty string');
diff --git a/tests/wpt/tests/ai/rewriter/rewriter-abort.tentative.https.window.js b/tests/wpt/tests/ai/rewriter/rewriter-abort.tentative.https.window.js
index 0eb716f398b..992bb5c637c 100644
--- a/tests/wpt/tests/ai/rewriter/rewriter-abort.tentative.https.window.js
+++ b/tests/wpt/tests/ai/rewriter/rewriter-abort.tentative.https.window.js
@@ -9,21 +9,21 @@ promise_test(async t => {
await testAbortPromise(t, signal => {
return createRewriter({signal: signal});
});
-}, 'Aborting Rewriter.create().');
+}, 'Aborting Rewriter.create()');
promise_test(async t => {
const rewriter = await createRewriter();
await testAbortPromise(t, signal => {
return rewriter.rewrite(kTestPrompt, { signal: signal });
});
-}, 'Aborting Rewriter.rewrite().');
+}, 'Aborting Rewriter.rewrite()');
promise_test(async t => {
const rewriter = await createRewriter();
await testAbortReadableStream(t, signal => {
return rewriter.rewriteStreaming(kTestPrompt, { signal: signal });
});
-}, 'Aborting Rewriter.rewriteStreaming().');
+}, 'Aborting Rewriter.rewriteStreaming()');
promise_test(async t => {
const rewriter = await createRewriter();
@@ -32,4 +32,4 @@ promise_test(async t => {
kTestPrompt, { signal: controller.signal });
for await (const chunk of streamingResponse); // Do nothing
controller.abort();
-}, 'Aborting Rewriter.rewriteStreaming() after finished reading.');
+}, 'Aborting Rewriter.rewriteStreaming() after finished reading');
diff --git a/tests/wpt/tests/ai/rewriter/rewriter-create-available.tentative.https.window.js b/tests/wpt/tests/ai/rewriter/rewriter-create-available.tentative.https.window.js
new file mode 100644
index 00000000000..41371d5db56
--- /dev/null
+++ b/tests/wpt/tests/ai/rewriter/rewriter-create-available.tentative.https.window.js
@@ -0,0 +1,102 @@
+// META: title=Rewriter Create Available
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async () => {
+ const rewriter = await createRewriter();
+ assert_equals(typeof rewriter, 'object');
+
+ assert_equals(typeof rewriter.rewrite, 'function');
+ assert_equals(typeof rewriter.rewriteStreaming, 'function');
+ assert_equals(typeof rewriter.measureInputUsage, 'function');
+ assert_equals(typeof rewriter.destroy, 'function');
+
+ assert_equals(typeof rewriter.expectedContextLanguages, 'object');
+ assert_equals(typeof rewriter.expectedInputLanguages, 'object');
+ assert_equals(typeof rewriter.inputQuota, 'number');
+ assert_equals(typeof rewriter.outputLanguage, 'object');
+ assert_equals(typeof rewriter.sharedContext, 'string');
+
+ assert_equals(typeof rewriter.tone, 'string');
+ assert_equals(typeof rewriter.format, 'string');
+ assert_equals(typeof rewriter.length, 'string');
+
+ assert_equals(rewriter.tone, 'as-is');
+ assert_equals(rewriter.format, 'as-is');
+ assert_equals(rewriter.length, 'as-is');
+}, 'Rewriter.create() returns a valid object with default options');
+
+promise_test(async () => {
+ await testMonitor(createRewriter);
+}, 'Rewriter.create() notifies its monitor on downloadprogress');
+
+promise_test(async t => {
+ await testCreateMonitorWithAbort(t, Rewriter.create);
+}, 'Progress events are not emitted after aborted');
+
+promise_test(async () => {
+ const sharedContext = 'This is a shared context string';
+ const rewriter = await createRewriter({sharedContext: sharedContext});
+ assert_equals(rewriter.sharedContext, sharedContext);
+}, 'Rewriter.sharedContext');
+
+promise_test(async () => {
+ const rewriter = await createRewriter({ tone: 'more-formal' });
+ assert_equals(rewriter.tone, 'more-formal');
+}, 'Creating a Rewriter with "more-formal" tone');
+
+promise_test(async () => {
+ const rewriter = await createRewriter({ tone: 'more-casual' });
+ assert_equals(rewriter.tone, 'more-casual');
+}, 'Creating a Rewriter with "more-casual" tone');
+
+promise_test(async () => {
+ const rewriter = await createRewriter({ format: 'plain-text' });
+ assert_equals(rewriter.format, 'plain-text');
+}, 'Creating a Rewriter with "plain-text" format');
+
+promise_test(async () => {
+ const rewriter = await createRewriter({ format: 'markdown' });
+ assert_equals(rewriter.format, 'markdown');
+}, 'Creating a Rewriter with "markdown" format');
+
+promise_test(async () => {
+ const rewriter = await createRewriter({ length: 'shorter' });
+ assert_equals(rewriter.length, 'shorter');
+}, 'Creating a Rewriter with "shorter" length');
+
+promise_test(async () => {
+ const rewriter = await createRewriter({ length: 'longer' });
+ assert_equals(rewriter.length, 'longer');
+}, 'Creating a Rewriter with "longer" length');
+
+promise_test(async () => {
+ const rewriter = await createRewriter({expectedInputLanguages: ['en']});
+ assert_array_equals(rewriter.expectedInputLanguages, ['en']);
+}, 'Rewriter.expectedInputLanguages');
+
+promise_test(async () => {
+ const rewriter = await createRewriter({expectedContextLanguages: ['en']});
+ assert_array_equals(rewriter.expectedContextLanguages, ['en']);
+}, 'Rewriter.expectedContextLanguages');
+
+promise_test(async () => {
+ const rewriter = await createRewriter({outputLanguage: 'en'});
+ assert_equals(rewriter.outputLanguage, 'en');
+}, 'Rewriter.outputLanguage');
+
+promise_test(async (t) => {
+ promise_rejects_js(
+ t, RangeError,
+ createRewriter({ expectedInputLanguages: ['en-abc-invalid'] }));
+}, 'Creating Rewriter with malformed language string');
+
+promise_test(async () => {
+ const rewriter = await createRewriter({});
+ assert_equals(rewriter.expectedInputLanguages, null);
+ assert_equals(rewriter.expectedContextLanguages, null);
+ assert_equals(rewriter.outputLanguage, null);
+}, 'Rewriter optional attributes return null');
diff --git a/tests/wpt/tests/ai/rewriter/rewriter-create.tentative.https.window.js b/tests/wpt/tests/ai/rewriter/rewriter-create.tentative.https.window.js
new file mode 100644
index 00000000000..4494f591226
--- /dev/null
+++ b/tests/wpt/tests/ai/rewriter/rewriter-create.tentative.https.window.js
@@ -0,0 +1,24 @@
+// META: title=Rewriter Create
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async () => {
+ assert_true(!!Rewriter);
+}, 'Rewriter must be defined.');
+
+promise_test(async t => {
+ // Creating Rewriter without user activation rejects with NotAllowedError.
+ await promise_rejects_dom(t, 'NotAllowedError', Rewriter.create());
+
+ // Creating Rewriter with user activation succeeds.
+ await createRewriter();
+
+ // Expect available after create.
+ assert_equals(await Rewriter.availability(), 'available');
+
+ // Now that it is available, we should no longer need user activation.
+ await Rewriter.create();
+}, 'Rewriter.create() requires user activation when availability is "downloadable"');
diff --git a/tests/wpt/tests/ai/rewriter/rewriter-from-detached-iframe.tentative.https.window.js b/tests/wpt/tests/ai/rewriter/rewriter-from-detached-iframe.tentative.https.window.js
index d7c473438cf..27f1d96d546 100644
--- a/tests/wpt/tests/ai/rewriter/rewriter-from-detached-iframe.tentative.https.window.js
+++ b/tests/wpt/tests/ai/rewriter/rewriter-from-detached-iframe.tentative.https.window.js
@@ -44,7 +44,8 @@ promise_test(async (t) => {
iframe.remove();
assert_throws_dom(
- 'InvalidStateError', iframeDOMException, () => rewriter.rewriteStreaming('hello'));
+ 'InvalidStateError',
+ iframeDOMException, () => rewriter.rewriteStreaming('hello'));
}, 'Rewriter.rewriteStreaming() fails on a detached iframe.');
promise_test(async (t) => {
diff --git a/tests/wpt/tests/ai/rewriter/rewriter-measureInputUsage.tentative.https.window.js b/tests/wpt/tests/ai/rewriter/rewriter-measureInputUsage.tentative.https.window.js
new file mode 100644
index 00000000000..beefa358f3e
--- /dev/null
+++ b/tests/wpt/tests/ai/rewriter/rewriter-measureInputUsage.tentative.https.window.js
@@ -0,0 +1,12 @@
+// META: title=Rewriter measureInputUsage
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async () => {
+ const rewriter = await createRewriter();
+ const result = await rewriter.measureInputUsage(kTestPrompt);
+ assert_greater_than(result, 0);
+}, 'Rewriter.measureInputUsage() returns non-empty result');
diff --git a/tests/wpt/tests/ai/rewriter/rewriter-rewrite-streaming.tentative.https.window.js b/tests/wpt/tests/ai/rewriter/rewriter-rewrite-streaming.tentative.https.window.js
new file mode 100644
index 00000000000..81b73fbdabd
--- /dev/null
+++ b/tests/wpt/tests/ai/rewriter/rewriter-rewrite-streaming.tentative.https.window.js
@@ -0,0 +1,46 @@
+// META: title=Rewriter Rewrite Streaming
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async () => {
+ const rewriter = await createRewriter();
+ const streamingResponse =
+ rewriter.rewriteStreaming(kTestPrompt, { context: kTestContext });
+ assert_equals(
+ Object.prototype.toString.call(streamingResponse),
+ '[object ReadableStream]');
+ let result = '';
+ for await (const chunk of streamingResponse) {
+ result += chunk;
+ }
+ assert_greater_than(result.length, 0);
+}, 'Simple Rewriter.rewriteStreaming() call');
+
+promise_test(async (t) => {
+ const rewriter = await createRewriter();
+ rewriter.destroy();
+ assert_throws_dom(
+ 'InvalidStateError', () => rewriter.rewriteStreaming(kTestPrompt));
+}, 'Rewriter.rewriteStreaming() fails after destroyed');
+
+promise_test(async t => {
+ const rewriter = await createRewriter();
+ const streamingResponse = rewriter.rewriteStreaming('');
+ assert_equals(
+ Object.prototype.toString.call(streamingResponse),
+ "[object ReadableStream]"
+ );
+ const { result, done } = await streamingResponse.getReader().read();
+ assert_true(done);
+}, 'Rewriter.rewriteStreaming() returns a ReadableStream without any chunk on an empty input');
+
+promise_test(async () => {
+ const rewriter = await createRewriter();
+ await Promise.all([
+ rewriter.rewriteStreaming(kTestPrompt),
+ rewriter.rewriteStreaming(kTestPrompt)
+ ]);
+}, 'Multiple Rewriter.rewriteStreaming() calls are resolved successfully');
diff --git a/tests/wpt/tests/ai/rewriter/rewriter-rewrite.tentative.https.window.js b/tests/wpt/tests/ai/rewriter/rewriter-rewrite.tentative.https.window.js
new file mode 100644
index 00000000000..07e8b419a4a
--- /dev/null
+++ b/tests/wpt/tests/ai/rewriter/rewriter-rewrite.tentative.https.window.js
@@ -0,0 +1,43 @@
+// META: title=Rewriter Rewrite
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async (t) => {
+ const rewriter = await createRewriter();
+ let result = await rewriter.rewrite('');
+ assert_equals(result, '');
+}, 'Rewriter.rewrite() with an empty input returns an empty text');
+
+promise_test(async (t) => {
+ const rewriter = await createRewriter();
+ let result = await rewriter.rewrite(' ');
+ assert_equals(result, ' ');
+}, 'Rewriter.rewrite() with a whitespace input returns a whitespace text');
+
+promise_test(async (t) => {
+ const rewriter = await createRewriter();
+ const result = await rewriter.rewrite(kTestPrompt, { context: ' ' });
+ assert_not_equals(result, '');
+}, 'Rewriter.rewrite() with a whitespace context returns a non-empty result');
+
+promise_test(async (t) => {
+ const rewriter = await createRewriter();
+ rewriter.destroy();
+ await promise_rejects_dom(
+ t, 'InvalidStateError', rewriter.rewrite(kTestPrompt));
+}, 'Rewriter.rewrite() fails after destroyed');
+
+promise_test(async () => {
+ const rewriter = await createRewriter();
+ const result = await rewriter.rewrite(kTestPrompt, { context: kTestContext });
+ assert_equals(typeof result, 'string');
+}, 'Simple Rewriter.rewrite() call');
+
+promise_test(async () => {
+ const rewriter = await createRewriter();
+ await Promise.all(
+ [rewriter.rewrite(kTestPrompt), rewriter.rewrite(kTestPrompt)]);
+}, 'Multiple Rewriter.rewrite() calls are resolved successfully');
diff --git a/tests/wpt/tests/ai/rewriter/rewriter.tentative.https.window.js b/tests/wpt/tests/ai/rewriter/rewriter.tentative.https.window.js
deleted file mode 100644
index da3f002a82b..00000000000
--- a/tests/wpt/tests/ai/rewriter/rewriter.tentative.https.window.js
+++ /dev/null
@@ -1,173 +0,0 @@
-// META: title=Rewriter
-// META: script=/resources/testdriver.js
-// META: script=../resources/util.js
-// META: timeout=long
-
-'use strict';
-
-promise_test(async () => {
- assert_true(!!Rewriter);
-}, 'Rewriter must be defined.');
-
-promise_test(async t => {
- // Creating Rewriter without user activation rejects with NotAllowedError.
- await promise_rejects_dom(t, 'NotAllowedError', Rewriter.create());
-
- // Creating Rewriter with user activation succeeds.
- await createRewriter();
-
- // Expect available after create.
- assert_equals(await Rewriter.availability(), 'available');
-
- // Now that it is available, we should no longer need user activation.
- await Rewriter.create();
-}, 'Rewriter.create() requires user activation when availability is "downloadable."');
-
-promise_test(async () => {
- const rewriter = await createRewriter();
- assert_equals(Object.prototype.toString.call(rewriter), '[object Rewriter]');
-}, 'Rewriter.create() must be return a Rewriter.');
-
-promise_test(async () => {
- await testMonitor(createRewriter);
-}, 'Rewriter.create() notifies its monitor on downloadprogress');
-
-promise_test(async t => {
- await testCreateMonitorWithAbort(t, Rewriter.create);
-}, 'Progress events are not emitted after aborted.');
-
-promise_test(async () => {
- const rewriter = await createRewriter();
- assert_equals(rewriter.sharedContext, '');
- assert_equals(rewriter.tone, 'as-is');
- assert_equals(rewriter.format, 'as-is');
- assert_equals(rewriter.length, 'as-is');
-}, 'Rewriter.create() default values.');
-
-promise_test(async () => {
- const sharedContext = 'This is a shared context string';
- const rewriter = await createRewriter({sharedContext: sharedContext});
- assert_equals(rewriter.sharedContext, sharedContext);
-}, 'Rewriter.sharedContext');
-
-promise_test(async () => {
- const rewriter = await createRewriter({tone: 'more-formal'});
- assert_equals(rewriter.tone, 'more-formal');
-}, 'Creating a Rewriter with "more-formal" tone');
-
-promise_test(async () => {
- const rewriter = await createRewriter({tone: 'more-casual'});
- assert_equals(rewriter.tone, 'more-casual');
-}, 'Creating a Rewriter with "more-casual" tone');
-
-promise_test(async () => {
- const rewriter = await createRewriter({format: 'plain-text'});
- assert_equals(rewriter.format, 'plain-text');
-}, 'Creating a Rewriter with "plain-text" format');
-
-promise_test(async () => {
- const rewriter = await createRewriter({format: 'markdown'});
- assert_equals(rewriter.format, 'markdown');
-}, 'Creating a Rewriter with "markdown" format');
-
-promise_test(async () => {
- const rewriter = await createRewriter({length: 'shorter'});
- assert_equals(rewriter.length, 'shorter');
-}, 'Creating a Rewriter with "shorter" length');
-
-promise_test(async () => {
- const rewriter = await createRewriter({length: 'longer'});
- assert_equals(rewriter.length, 'longer');
-}, 'Creating a Rewriter with "longer" length');
-
-promise_test(async () => {
- const rewriter = await createRewriter({expectedInputLanguages: ['en']});
- assert_array_equals(rewriter.expectedInputLanguages, ['en']);
-}, 'Creating a Rewriter with expectedInputLanguages');
-
-promise_test(async () => {
- const rewriter = await createRewriter({expectedContextLanguages: ['en']});
- assert_array_equals(rewriter.expectedContextLanguages, ['en']);
-}, 'Creating a Rewriter with expectedContextLanguages');
-
-promise_test(async () => {
- const rewriter = await createRewriter({outputLanguage: 'en'});
- assert_equals(rewriter.outputLanguage, 'en');
-}, 'Creating a Rewriter with outputLanguage');
-
-promise_test(async () => {
- const rewriter = await createRewriter({});
- assert_equals(rewriter.expectedInputLanguages, null);
- assert_equals(rewriter.expectedContextLanguages, null);
- assert_equals(rewriter.outputLanguage, null);
-}, 'Creating a Rewriter without optional attributes');
-
-promise_test(
- async (t) => {
- const rewriter = await createRewriter();
- let result = await rewriter.rewrite('');
- assert_equals(result, '');
- result = await rewriter.rewrite(' ');
- assert_equals(result, ' ');
- },
- 'Rewriter.rewrite() with an empty input or whitespace returns the ' +
- 'original input');
-
-promise_test(async (t) => {
- const rewriter = await createRewriter();
- const result = await rewriter.rewrite('hello', {context: ' '});
- assert_not_equals(result, '');
-}, 'Rewriter.rewrite() with a whitespace context returns a non-empty result');
-
-promise_test(async (t) => {
- const rewriter = await createRewriter();
- rewriter.destroy();
- await promise_rejects_dom(t, 'InvalidStateError', rewriter.rewrite('hello'));
-}, 'Rewriter.rewrite() fails after destroyed');
-
-promise_test(async (t) => {
- const rewriter = await createRewriter();
- rewriter.destroy();
- assert_throws_dom(
- 'InvalidStateError', () => rewriter.rewriteStreaming('hello'));
-}, 'Rewriter.rewriteStreaming() fails after destroyed');
-
-promise_test(async () => {
- const rewriter = await createRewriter();
- const result = await rewriter.measureInputUsage(kTestPrompt);
- assert_greater_than(result, 0);
-}, 'Rewriter.measureInputUsage() returns non-empty result');
-
-promise_test(async () => {
- const rewriter = await createRewriter();
- const result = await rewriter.rewrite(kTestPrompt, {context: kTestContext});
- assert_equals(typeof result, 'string');
-}, 'Simple Rewriter.rewrite() call');
-
-promise_test(async () => {
- const rewriter = await createRewriter();
- const streamingResponse =
- rewriter.rewriteStreaming(kTestPrompt, {context: kTestContext});
- assert_equals(
- Object.prototype.toString.call(streamingResponse),
- '[object ReadableStream]');
- let result = '';
- for await (const chunk of streamingResponse) {
- result += chunk;
- }
- assert_greater_than(result.length, 0);
-}, 'Simple Rewriter.rewriteStreaming() call');
-
-promise_test(async () => {
- const rewriter = await createRewriter();
- await Promise.all(
- [rewriter.rewrite(kTestPrompt), rewriter.rewrite(kTestPrompt)]);
-}, 'Multiple Rewriter.rewrite() calls are resolved successfully.');
-
-promise_test(async () => {
- const rewriter = await createRewriter();
- await Promise.all([
- rewriter.rewriteStreaming(kTestPrompt),
- rewriter.rewriteStreaming(kTestPrompt)
- ]);
-}, 'Multiple Rewriter.rewriteStreaming() calls are resolved successfully.');
diff --git a/tests/wpt/tests/ai/summarizer/summarizer-abort.tentative.https.window.js b/tests/wpt/tests/ai/summarizer/summarizer-abort.tentative.https.window.js
index 14c89056dfb..6c98a845fa6 100644
--- a/tests/wpt/tests/ai/summarizer/summarizer-abort.tentative.https.window.js
+++ b/tests/wpt/tests/ai/summarizer/summarizer-abort.tentative.https.window.js
@@ -1,6 +1,7 @@
// META: title=Summarizer Abort
// META: script=/resources/testdriver.js
// META: script=../resources/util.js
+// META: timeout=long
'use strict';
@@ -11,15 +12,24 @@ promise_test(async t => {
}, 'Aborting Summarizer.create().');
promise_test(async t => {
- const session = await createSummarizer();
+ const summarizer = await createSummarizer();
await testAbortPromise(t, signal => {
- return session.summarize(kTestPrompt, { signal: signal });
+ return summarizer.summarize(kTestPrompt, { signal: signal });
});
-}, 'Aborting Summarizer.summarize().');
+}, 'Aborting Summarizer.summarize()');
promise_test(async t => {
- const session = await createSummarizer();
+ const summarizer = await createSummarizer();
await testAbortReadableStream(t, signal => {
- return session.summarizeStreaming(kTestPrompt, { signal: signal });
+ return summarizer.summarizeStreaming(kTestPrompt, { signal: signal });
});
-}, 'Aborting Summarizer.summarizeStreaming().');
+}, 'Aborting Summarizer.summarizeStreaming()');
+
+promise_test(async (t) => {
+ const summarizer = await createSummarizer();
+ const controller = new AbortController();
+ const streamingResponse = summarizer.summarizeStreaming(
+ kTestPrompt, { signal: controller.signal });
+ for await (const chunk of streamingResponse); // Do nothing
+ controller.abort();
+}, 'Aborting Summarizer.summarizeStreaming() after finished reading');
diff --git a/tests/wpt/tests/ai/summarizer/summarizer-availability-available.tentative.https.window.js b/tests/wpt/tests/ai/summarizer/summarizer-availability-available.tentative.https.window.js
index f569cb43b0f..df4e161d637 100644
--- a/tests/wpt/tests/ai/summarizer/summarizer-availability-available.tentative.https.window.js
+++ b/tests/wpt/tests/ai/summarizer/summarizer-availability-available.tentative.https.window.js
@@ -12,7 +12,7 @@ promise_test(async () => {
promise_test(async () => {
const availability = await Summarizer.availability({
- type: 'tl;dr',
+ type: 'tldr',
format: 'plain-text',
length: 'medium',
expectedInputLanguages: ['en-GB'],
@@ -24,7 +24,7 @@ promise_test(async () => {
promise_test(async () => {
const availability = await Summarizer.availability({
- type: 'tl;dr',
+ type: 'tldr',
format: 'plain-text',
length: 'medium',
expectedInputLanguages: ['es'], // not supported
diff --git a/tests/wpt/tests/ai/summarizer/summarizer-availability.tentative.https.window.js b/tests/wpt/tests/ai/summarizer/summarizer-availability.tentative.https.window.js
index 85282959f9e..91cb3129557 100644
--- a/tests/wpt/tests/ai/summarizer/summarizer-availability.tentative.https.window.js
+++ b/tests/wpt/tests/ai/summarizer/summarizer-availability.tentative.https.window.js
@@ -18,7 +18,7 @@ promise_test(async () => {
promise_test(async () => {
// An array of plausible test option values.
const kCreateOptionsSpec = [
- {type: [undefined, 'tl;dr', 'teaser', 'key-points', 'headline']},
+ {type: [undefined, 'tldr', 'teaser', 'key-points', 'headline']},
{format: [undefined, 'plain-text', 'markdown']},
{length: [undefined, 'short', 'medium', 'long']},
{expectedInputLanguages: [[], ['en'], ['es'], ['jp', 'fr']]},
diff --git a/tests/wpt/tests/ai/summarizer/summarizer-create-available.tentative.https.window.js b/tests/wpt/tests/ai/summarizer/summarizer-create-available.tentative.https.window.js
index 1f108ddd021..0153ca784ce 100644
--- a/tests/wpt/tests/ai/summarizer/summarizer-create-available.tentative.https.window.js
+++ b/tests/wpt/tests/ai/summarizer/summarizer-create-available.tentative.https.window.js
@@ -36,7 +36,7 @@ promise_test(async () => {
promise_test(async t => {
await testCreateMonitorWithAbort(t, Summarizer.create);
-}, 'Progress events are not emitted after aborted.');
+}, 'Progress events are not emitted after aborted');
promise_test(async () => {
const sharedContext = 'This is a shared context string';
@@ -74,6 +74,12 @@ promise_test(async () => {
assert_equals(summarizer.outputLanguage, 'en');
}, 'Summarizer.outputLanguage');
+promise_test(async (t) => {
+ promise_rejects_js(
+ t, RangeError,
+ createSummarizer({ expectedInputLanguages: ['en-abc-invalid'] }));
+}, 'Creating Summarizer with malformed language string');
+
promise_test(async () => {
const summarizer = await createSummarizer();
assert_equals(summarizer.expectedInputLanguages, null);
diff --git a/tests/wpt/tests/ai/summarizer/summarizer-create.tentative.https.window.js b/tests/wpt/tests/ai/summarizer/summarizer-create.tentative.https.window.js
index d9df70cc2e7..ff5d42b100f 100644
--- a/tests/wpt/tests/ai/summarizer/summarizer-create.tentative.https.window.js
+++ b/tests/wpt/tests/ai/summarizer/summarizer-create.tentative.https.window.js
@@ -22,4 +22,4 @@ promise_test(async t => {
// Now that it is available, we should no longer need user activation.
await Summarizer.create();
-}, 'Summarizer.create() requires user activation when availability is "downloadable."');
+}, 'Summarizer.create() requires user activation when availability is "downloadable"');
diff --git a/tests/wpt/tests/ai/summarizer/summarizer-from-detached-iframe.tentative.https.window.js b/tests/wpt/tests/ai/summarizer/summarizer-from-detached-iframe.tentative.https.window.js
new file mode 100644
index 00000000000..8bfdc923196
--- /dev/null
+++ b/tests/wpt/tests/ai/summarizer/summarizer-from-detached-iframe.tentative.https.window.js
@@ -0,0 +1,57 @@
+// META: title=Summarizer Detached Iframe
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async (t) => {
+ const iframe = document.body.appendChild(document.createElement('iframe'));
+ await test_driver.bless('Summarizer create()', null, iframe.contentWindow);
+ iframe.contentWindow.Summarizer.create();
+ iframe.remove();
+}, 'Detaching iframe during Summarizer.create() should not leak memory');
+
+promise_test(async (t) => {
+ const iframe = document.body.appendChild(document.createElement('iframe'));
+ await test_driver.bless('Summarizer create()', null, iframe.contentWindow);
+ const iframeWindow = iframe.contentWindow;
+ const iframeDOMException = iframeWindow.DOMException;
+ const iframeSummarizer = iframeWindow.Summarizer;
+ iframe.remove();
+
+ await promise_rejects_dom(
+ t, 'InvalidStateError', iframeDOMException, iframeSummarizer.create());
+}, 'Summarizer.create() fails on a detached iframe');
+
+promise_test(async (t) => {
+ const iframe = document.body.appendChild(document.createElement('iframe'));
+ await test_driver.bless('Summarizer create()', null, iframe.contentWindow);
+ const iframeDOMException = iframe.contentWindow.DOMException;
+ const summarizer = await iframe.contentWindow.Summarizer.create();
+ iframe.remove();
+
+ await promise_rejects_dom(
+ t, 'InvalidStateError', iframeDOMException, summarizer.summarize(kTestPrompt));
+}, 'Summarizer.summarize() fails on a detached iframe');
+
+promise_test(async (t) => {
+ const iframe = document.body.appendChild(document.createElement('iframe'));
+ await test_driver.bless('Summarizer create()', null, iframe.contentWindow);
+ const iframeWindow = iframe.contentWindow;
+ const iframeDOMException = iframeWindow.DOMException;
+ const summarizer = await iframeWindow.Summarizer.create();
+ iframe.remove();
+
+ assert_throws_dom(
+ 'InvalidStateError',
+ iframeDOMException, () => summarizer.summarizeStreaming(kTestPrompt));
+}, 'Summarizer.summarizeStreaming() fails on a detached iframe');
+
+promise_test(async (t) => {
+ const iframe = document.body.appendChild(document.createElement('iframe'));
+ await test_driver.bless('Summarizer create()', null, iframe.contentWindow);
+ const summarizer = await iframe.contentWindow.Summarizer.create();
+ summarizer.summarize(kTestPrompt);
+ iframe.remove();
+}, 'Detaching iframe during Summarizer.summarize() should not leak memory');
diff --git a/tests/wpt/tests/ai/summarizer/summarizer-summarize-streaming.tentative.https.window.js b/tests/wpt/tests/ai/summarizer/summarizer-summarize-streaming.tentative.https.window.js
index 59aa01aeb31..8d85dc7b836 100644
--- a/tests/wpt/tests/ai/summarizer/summarizer-summarize-streaming.tentative.https.window.js
+++ b/tests/wpt/tests/ai/summarizer/summarizer-summarize-streaming.tentative.https.window.js
@@ -7,34 +7,34 @@
promise_test(async t => {
const summarizer = await createSummarizer();
- const streamingResponse = summarizer.summarizeStreaming(
- "The web-platform-tests Project is a cross-browser test suite for the Web-platform stack. Writing tests in a way that allows them to be run in all browsers gives browser projects confidence that they are shipping software that is compatible with other implementations, and that later implementations will be compatible with their implementations. This in turn gives Web authors/developers confidence that they can actually rely on the Web platform to deliver on the promise of working across browsers and devices without needing extra layers of abstraction to paper over the gaps left by specification editors and implementors.");
+ const streamingResponse = summarizer.summarizeStreaming(kTestPrompt);
assert_equals(
Object.prototype.toString.call(streamingResponse),
"[object ReadableStream]"
);
- const reader = streamingResponse.getReader();
- let result = "";
- while (true) {
- const { value, done } = await reader.read();
- if (done) {
- break;
- }
- result += value;
+ let result = '';
+ for await (const chunk of streamingResponse) {
+ result += chunk;
}
assert_greater_than(result.length, 0);
-}, 'Summarizer.summarizeStreaming() returns ReadableStream with a non-empty text.');
+}, 'Simple Summarizer.summarizeStreaming() call');
+
+promise_test(async (t) => {
+ const summarizer = await createSummarizer();
+ summarizer.destroy();
+ assert_throws_dom('InvalidStateError', () => summarizer.summarizeStreaming(kTestPrompt));
+}, 'Summarizer.summarizeStreaming() fails after destroyed');
promise_test(async t => {
const summarizer = await createSummarizer();
- const streamingResponse = summarizer.summarizeStreaming("");
+ const streamingResponse = summarizer.summarizeStreaming('');
assert_equals(
Object.prototype.toString.call(streamingResponse),
"[object ReadableStream]"
);
const { result, done } = await streamingResponse.getReader().read();
assert_true(done);
-}, 'Summarizer.summarizeStreaming() returns a ReadableStream without any chunk on an empty input.');
+}, 'Summarizer.summarizeStreaming() returns a ReadableStream without any chunk on an empty input');
promise_test(async () => {
const summarizer = await createSummarizer();
@@ -42,4 +42,4 @@ promise_test(async () => {
summarizer.summarizeStreaming(kTestPrompt),
summarizer.summarizeStreaming(kTestPrompt)
]);
-}, 'Multiple Summarizer.summarizeStreaming() calls are resolved successfully.');
+}, 'Multiple Summarizer.summarizeStreaming() calls are resolved successfully');
diff --git a/tests/wpt/tests/ai/summarizer/summarizer-summarize.tentative.https.window.js b/tests/wpt/tests/ai/summarizer/summarizer-summarize.tentative.https.window.js
index c54052f8b36..a9be36dace0 100644
--- a/tests/wpt/tests/ai/summarizer/summarizer-summarize.tentative.https.window.js
+++ b/tests/wpt/tests/ai/summarizer/summarizer-summarize.tentative.https.window.js
@@ -1,16 +1,36 @@
-// META: title=Summarizer Create Available
+// META: title=Summarizer Summarize
// META: script=/resources/testdriver.js
// META: script=../resources/util.js
// META: timeout=long
'use strict';
+promise_test(async (t) => {
+ const summarizer = await createSummarizer();
+ let result = await summarizer.summarize('');
+ assert_equals(result, '');
+ result = await summarizer.summarize(' ');
+ assert_equals(result, '');
+}, 'Summarizer.summarize() with an empty input returns an empty text');
+
+promise_test(async (t) => {
+ const summarizer = await createSummarizer();
+ const result = await summarizer.summarize(kTestPrompt, { context: ' ' });
+ assert_not_equals(result, '');
+}, 'Summarizer.summarize() with a whitespace context returns an empty result');
+
+promise_test(async (t) => {
+ const summarizer = await createSummarizer();
+ summarizer.destroy();
+ await promise_rejects_dom(t, 'InvalidStateError', summarizer.summarize(kTestPrompt));
+}, 'Summarizer.summarize() fails after destroyed');
+
promise_test(async () => {
const summarizer = await createSummarizer();
const result = await summarizer.summarize(kTestPrompt);
assert_equals(typeof result, 'string');
assert_greater_than(result.length, 0);
-}, 'Summarizer.summarize() returns non-empty result.');
+}, 'Simple Summarizer.summarize() call');
promise_test(async () => {
const summarizer = await createSummarizer();
@@ -18,4 +38,4 @@ promise_test(async () => {
summarizer.summarize(kTestPrompt),
summarizer.summarize(kTestPrompt)
]);
-}, 'Multiple Summarizer.summarize() calls are resolved successfully.');
+}, 'Multiple Summarizer.summarize() calls are resolved successfully');
diff --git a/tests/wpt/tests/ai/translator/translator-locale.https.window.js b/tests/wpt/tests/ai/translator/translator-locale.https.window.js
new file mode 100644
index 00000000000..73e7eff20d2
--- /dev/null
+++ b/tests/wpt/tests/ai/translator/translator-locale.https.window.js
@@ -0,0 +1,50 @@
+// META: title=Detect english
+// META: global=window
+// META: timeout=long
+// META: script=resources/util.js
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: script=../resources/locale-util.js
+
+'use strict';
+
+function assert_rejects_invalid_expected_input_languages(
+ t, method, sourceLanguage, targetLanguage) {
+ return promise_rejects_js(
+ t, RangeError, method({sourceLanguage, targetLanguage}));
+}
+
+function testInvalidLanguagePairs(t, method) {
+ const allValidLanguageTags = Object.values(valid_language_tags).flat();
+ // Invalid source language.
+ for (const sourceLanguage of invalid_language_tags) {
+ for (const targetLanguage of allValidLanguageTags) {
+ assert_rejects_invalid_expected_input_languages(
+ t, method, sourceLanguage, targetLanguage);
+ }
+ }
+ // Invalid target language.
+ for (const sourceLanguage of allValidLanguageTags) {
+ for (const targetLanguage of invalid_language_tags) {
+ assert_rejects_invalid_expected_input_languages(
+ t, method, sourceLanguage, targetLanguage);
+ }
+ }
+ // Invalid source and target language
+ for (const sourceLanguage of invalid_language_tags) {
+ for (const targetLanguage of invalid_language_tags) {
+ assert_rejects_invalid_expected_input_languages(
+ t, method, sourceLanguage, targetLanguage);
+ }
+ }
+}
+
+promise_test(async t => {
+ // We don't need to consume user activation since it should throw a RangeError
+ // before it even can check if it needs to consume user activation.
+ testInvalidLanguagePairs(t, Translator.create);
+}, 'LanguageDetector.create() throws RangeError for invalid language tags');
+
+promise_test(async t => {
+ testInvalidLanguagePairs(t, Translator.availability);
+}, 'LanguageDetector.availability() throws RangeError for invalid language tags');
diff --git a/tests/wpt/tests/ai/writer/writer-abort.tentative.https.window.js b/tests/wpt/tests/ai/writer/writer-abort.tentative.https.window.js
index bb877f6d73b..be0d50f7102 100644
--- a/tests/wpt/tests/ai/writer/writer-abort.tentative.https.window.js
+++ b/tests/wpt/tests/ai/writer/writer-abort.tentative.https.window.js
@@ -9,29 +9,27 @@ promise_test(async t => {
await testAbortPromise(t, signal => {
return createWriter({signal: signal});
});
-}, 'Aborting Writer.create().');
+}, 'Aborting Writer.create()');
promise_test(async t => {
const writer = await createWriter();
await testAbortPromise(t, signal => {
return writer.write(kTestPrompt, { signal: signal });
});
-}, 'Aborting Writer.write().');
+}, 'Aborting Writer.write()');
promise_test(async t => {
const writer = await createWriter();
await testAbortReadableStream(t, signal => {
return writer.writeStreaming(kTestPrompt, { signal: signal });
});
-}, 'Aborting Writer.writeStreaming().');
+}, 'Aborting Writer.writeStreaming()');
promise_test(async (t) => {
const writer = await createWriter();
const controller = new AbortController();
- const streamingResponse = writer.writeStreaming(kTestPrompt, {
- signal: controller.signal,
- context: kTestContext,
- });
+ const streamingResponse = writer.writeStreaming(
+ kTestPrompt, { signal: controller.signal });
for await (const chunk of streamingResponse); // Do nothing
controller.abort();
-}, 'Aborting Writer.writeStreaming() after finished reading.');
+}, 'Aborting Writer.writeStreaming() after finished reading');
diff --git a/tests/wpt/tests/ai/writer/writer-create-available.tentative.https.window.js b/tests/wpt/tests/ai/writer/writer-create-available.tentative.https.window.js
new file mode 100644
index 00000000000..dd9e40d45e8
--- /dev/null
+++ b/tests/wpt/tests/ai/writer/writer-create-available.tentative.https.window.js
@@ -0,0 +1,97 @@
+// META: title=Writer Create Available
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async () => {
+ const writer = await createWriter();
+ assert_equals(typeof writer, 'object');
+
+ assert_equals(typeof writer.write, 'function');
+ assert_equals(typeof writer.writeStreaming, 'function');
+ assert_equals(typeof writer.measureInputUsage, 'function');
+ assert_equals(typeof writer.destroy, 'function');
+
+ assert_equals(typeof writer.expectedContextLanguages, 'object');
+ assert_equals(typeof writer.expectedInputLanguages, 'object');
+ assert_equals(typeof writer.inputQuota, 'number');
+ assert_equals(typeof writer.outputLanguage, 'object');
+ assert_equals(typeof writer.sharedContext, 'string');
+
+ assert_equals(typeof writer.tone, 'string');
+ assert_equals(typeof writer.format, 'string');
+ assert_equals(typeof writer.length, 'string');
+
+ assert_equals(writer.tone, 'neutral');
+ assert_equals(writer.format, 'plain-text');
+ assert_equals(writer.length, 'medium');
+}, 'Writer.create() returns a valid object with default options');
+
+promise_test(async () => {
+ await testMonitor(createWriter);
+}, 'Writer.create() notifies its monitor on downloadprogress');
+
+promise_test(async t => {
+ await testCreateMonitorWithAbort(t, Writer.create);
+}, 'Progress events are not emitted after aborted');
+
+promise_test(async () => {
+ const sharedContext = 'This is a shared context string';
+ const writer = await createWriter({sharedContext: sharedContext});
+ assert_equals(writer.sharedContext, sharedContext);
+}, 'Writer.sharedContext');
+
+promise_test(async () => {
+ const writer = await createWriter({tone: 'formal'});
+ assert_equals(writer.tone, 'formal');
+}, 'Creating a Writer with "formal" tone');
+
+promise_test(async () => {
+ const writer = await createWriter({tone: 'casual'});
+ assert_equals(writer.tone, 'casual');
+}, 'Creating a Writer with "casual" tone');
+
+promise_test(async () => {
+ const writer = await createWriter({format: 'markdown'});
+ assert_equals(writer.format, 'markdown');
+}, 'Creating a Writer with "markdown" format');
+
+promise_test(async () => {
+ const writer = await createWriter({length: 'short'});
+ assert_equals(writer.length, 'short');
+}, 'Creating a Writer with "short" length');
+
+promise_test(async () => {
+ const writer = await createWriter({length: 'long'});
+ assert_equals(writer.length, 'long');
+}, 'Creating a Writer with "long" length');
+
+promise_test(async () => {
+ const writer = await createWriter({expectedInputLanguages: ['en']});
+ assert_array_equals(writer.expectedInputLanguages, ['en']);
+}, 'Writer.expectedInputLanguages');
+
+promise_test(async () => {
+ const writer = await createWriter({expectedContextLanguages: ['en']});
+ assert_array_equals(writer.expectedContextLanguages, ['en']);
+}, 'Writer.expectedContextLanguages');
+
+promise_test(async () => {
+ const writer = await createWriter({outputLanguage: 'en'});
+ assert_equals(writer.outputLanguage, 'en');
+}, 'Writer.outputLanguage');
+
+promise_test(async (t) => {
+ promise_rejects_js(
+ t, RangeError,
+ createWriter({ expectedInputLanguages: ['en-abc-invalid'] }));
+}, 'Creating Writer with malformed language string');
+
+promise_test(async () => {
+ const writer = await createWriter({});
+ assert_equals(writer.expectedInputLanguages, null);
+ assert_equals(writer.expectedContextLanguages, null);
+ assert_equals(writer.outputLanguage, null);
+}, 'Writer optional attributes return null');
diff --git a/tests/wpt/tests/ai/writer/writer-create.tentative.https.window.js b/tests/wpt/tests/ai/writer/writer-create.tentative.https.window.js
new file mode 100644
index 00000000000..2f328c8d7cc
--- /dev/null
+++ b/tests/wpt/tests/ai/writer/writer-create.tentative.https.window.js
@@ -0,0 +1,24 @@
+// META: title=Writer Create
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async () => {
+ assert_true(!!Writer);
+}, 'Writer must be defined.');
+
+promise_test(async t => {
+ // Creating Writer without user activation rejects with NotAllowedError.
+ await promise_rejects_dom(t, 'NotAllowedError', Writer.create());
+
+ // Creating Writer with user activation succeeds.
+ await createWriter();
+
+ // Expect available after create.
+ assert_equals(await Writer.availability(), 'available');
+
+ // Now that it is available, we should no longer need user activation.
+ await Writer.create();
+}, 'Writer.create() requires user activation when availability is "downloadable"');
diff --git a/tests/wpt/tests/ai/writer/writer-from-detached-iframe.tentative.https.window.js b/tests/wpt/tests/ai/writer/writer-from-detached-iframe.tentative.https.window.js
index c63d8bb77c9..a8fcb6f1264 100644
--- a/tests/wpt/tests/ai/writer/writer-from-detached-iframe.tentative.https.window.js
+++ b/tests/wpt/tests/ai/writer/writer-from-detached-iframe.tentative.https.window.js
@@ -22,7 +22,7 @@ promise_test(async (t) => {
await promise_rejects_dom(
t, 'InvalidStateError', iframeDOMException, iframeWriter.create());
-}, 'Writer.create() fails on a detached iframe.');
+}, 'Writer.create() fails on a detached iframe');
promise_test(async (t) => {
const iframe = document.body.appendChild(document.createElement('iframe'));
@@ -32,8 +32,8 @@ promise_test(async (t) => {
iframe.remove();
await promise_rejects_dom(
- t, 'InvalidStateError', iframeDOMException, writer.write('hello'));
-}, 'Writer.write() fails on a detached iframe.');
+ t, 'InvalidStateError', iframeDOMException, writer.write(kTestPrompt));
+}, 'Writer.write() fails on a detached iframe');
promise_test(async (t) => {
const iframe = document.body.appendChild(document.createElement('iframe'));
@@ -44,13 +44,14 @@ promise_test(async (t) => {
iframe.remove();
assert_throws_dom(
- 'InvalidStateError', iframeDOMException, () => writer.writeStreaming('hello'));
-}, 'Writer.writeStreaming() fails on a detached iframe.');
+ 'InvalidStateError',
+ iframeDOMException, () => writer.writeStreaming(kTestPrompt));
+}, 'Writer.writeStreaming() fails on a detached iframe');
promise_test(async (t) => {
const iframe = document.body.appendChild(document.createElement('iframe'));
await test_driver.bless('Writer create()', null, iframe.contentWindow);
const writer = await iframe.contentWindow.Writer.create();
- writer.write('hello');
+ writer.write(kTestPrompt);
iframe.remove();
}, 'Detaching iframe during Writer.write() should not leak memory');
diff --git a/tests/wpt/tests/ai/writer/writer-measureInputUsage.tentative.https.window.js b/tests/wpt/tests/ai/writer/writer-measureInputUsage.tentative.https.window.js
new file mode 100644
index 00000000000..e836e8fd9cc
--- /dev/null
+++ b/tests/wpt/tests/ai/writer/writer-measureInputUsage.tentative.https.window.js
@@ -0,0 +1,12 @@
+// META: title=Writer measureInputUsage
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async () => {
+ const writer = await createWriter();
+ const result = await writer.measureInputUsage(kTestPrompt);
+ assert_greater_than(result, 0);
+}, 'Writer.measureInputUsage() returns non-empty result');
diff --git a/tests/wpt/tests/ai/writer/writer-write-streaming.tentative.https.window.js b/tests/wpt/tests/ai/writer/writer-write-streaming.tentative.https.window.js
new file mode 100644
index 00000000000..52992ad2139
--- /dev/null
+++ b/tests/wpt/tests/ai/writer/writer-write-streaming.tentative.https.window.js
@@ -0,0 +1,45 @@
+// META: title=Writer Write Streaming
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async () => {
+ const writer = await createWriter();
+ const streamingResponse =
+ writer.writeStreaming(kTestPrompt, { context: kTestContext });
+ assert_equals(
+ Object.prototype.toString.call(streamingResponse),
+ '[object ReadableStream]');
+ let result = '';
+ for await (const chunk of streamingResponse) {
+ result += chunk;
+ }
+ assert_greater_than(result.length, 0);
+}, 'Simple Writer.writeStreaming() call');
+
+promise_test(async (t) => {
+ const writer = await createWriter();
+ writer.destroy();
+ assert_throws_dom('InvalidStateError', () => writer.writeStreaming(kTestPrompt));
+}, 'Writer.writeStreaming() fails after destroyed');
+
+promise_test(async t => {
+ const writer = await createWriter();
+ const streamingResponse = writer.writeStreaming('');
+ assert_equals(
+ Object.prototype.toString.call(streamingResponse),
+ "[object ReadableStream]"
+ );
+ const { result, done } = await streamingResponse.getReader().read();
+ assert_true(done);
+}, 'Writer.writeStreaming() returns a ReadableStream without any chunk on an empty input');
+
+promise_test(async () => {
+ const writer = await createWriter();
+ await Promise.all([
+ writer.writeStreaming(kTestPrompt),
+ writer.writeStreaming(kTestPrompt)
+ ]);
+}, 'Multiple Writer.writeStreaming() calls are resolved successfully');
diff --git a/tests/wpt/tests/ai/writer/writer-write.tentative.https.window.js b/tests/wpt/tests/ai/writer/writer-write.tentative.https.window.js
new file mode 100644
index 00000000000..3383ceb9239
--- /dev/null
+++ b/tests/wpt/tests/ai/writer/writer-write.tentative.https.window.js
@@ -0,0 +1,41 @@
+// META: title=Writer Write
+// META: script=/resources/testdriver.js
+// META: script=../resources/util.js
+// META: timeout=long
+
+'use strict';
+
+promise_test(async (t) => {
+ const writer = await createWriter();
+ let result = await writer.write('');
+ assert_equals(result, '');
+}, 'Writer.write() with an empty input returns an empty text');
+
+promise_test(async (t) => {
+ const writer = await createWriter();
+ let result = await writer.write(' ');
+ assert_equals(result, '');
+}, 'Writer.write() with a whitespace input returns an empty text');
+
+promise_test(async (t) => {
+ const writer = await createWriter();
+ const result = await writer.write(kTestPrompt, { context: ' ' });
+ assert_not_equals(result, '');
+}, 'Writer.write() with a whitespace context returns a non-empty result');
+
+promise_test(async (t) => {
+ const writer = await createWriter();
+ writer.destroy();
+ await promise_rejects_dom(t, 'InvalidStateError', writer.write(kTestPrompt));
+}, 'Writer.write() fails after destroyed');
+
+promise_test(async () => {
+ const writer = await createWriter();
+ const result = await writer.write(kTestPrompt, {context: kTestContext});
+ assert_equals(typeof result, 'string');
+}, 'Simple Writer.write() call');
+
+promise_test(async () => {
+ const writer = await createWriter();
+ await Promise.all([writer.write(kTestPrompt), writer.write(kTestPrompt)]);
+}, 'Multiple Writer.write() calls are resolved successfully');
diff --git a/tests/wpt/tests/ai/writer/writer.tentative.https.window.js b/tests/wpt/tests/ai/writer/writer.tentative.https.window.js
deleted file mode 100644
index 6606f217448..00000000000
--- a/tests/wpt/tests/ai/writer/writer.tentative.https.window.js
+++ /dev/null
@@ -1,175 +0,0 @@
-// META: title=Writer
-// META: script=/resources/testdriver.js
-// META: script=../resources/util.js
-// META: timeout=long
-
-'use strict';
-
-promise_test(async () => {
- assert_true(!!Writer);
-}, 'Writer must be defined.');
-
-promise_test(async t => {
- // Creating Writer without user activation rejects with NotAllowedError.
- await promise_rejects_dom(t, 'NotAllowedError', Writer.create());
-
- // Creating Writer with user activation succeeds.
- await createWriter();
-
- // Expect available after create.
- assert_equals(await Writer.availability(), 'available');
-
- // Now that it is available, we should no longer need user activation.
- await Writer.create();
-}, 'Writer.create() requires user activation when availability is "downloadable."');
-
-promise_test(async () => {
- const writer = await createWriter();
- assert_equals(Object.prototype.toString.call(writer), '[object Writer]');
-}, 'Writer.create() must be return a Writer.');
-
-promise_test(async () => {
- await testMonitor(createWriter);
-}, 'Writer.create() notifies its monitor on downloadprogress');
-
-promise_test(async t => {
- await testCreateMonitorWithAbort(t, Writer.create);
-}, 'Progress events are not emitted after aborted.');
-
-promise_test(async () => {
- const writer = await createWriter();
- assert_equals(writer.sharedContext, '');
- assert_equals(writer.tone, 'neutral');
- assert_equals(writer.format, 'plain-text');
- assert_equals(writer.length, 'medium');
-}, 'Writer.create() default values.');
-
-promise_test(async (t) => {
- const controller = new AbortController();
- controller.abort();
- const createPromise = createWriter({signal: controller.signal});
- await promise_rejects_dom(t, 'AbortError', createPromise);
-}, 'Writer.create() call with an aborted signal.');
-
-promise_test(async () => {
- const sharedContext = 'This is a shared context string';
- const writer = await createWriter({sharedContext: sharedContext});
- assert_equals(writer.sharedContext, sharedContext);
-}, 'Writer.sharedContext');
-
-promise_test(async () => {
- const writer = await createWriter({tone: 'formal'});
- assert_equals(writer.tone, 'formal');
-}, 'Creating a Writer with "formal" tone');
-
-promise_test(async () => {
- const writer = await createWriter({tone: 'casual'});
- assert_equals(writer.tone, 'casual');
-}, 'Creating a Writer with "casual" tone');
-
-promise_test(async () => {
- const writer = await createWriter({format: 'markdown'});
- assert_equals(writer.format, 'markdown');
-}, 'Creating a Writer with "markdown" format');
-
-promise_test(async () => {
- const writer = await createWriter({length: 'short'});
- assert_equals(writer.length, 'short');
-}, 'Creating a Writer with "short" length');
-
-promise_test(async () => {
- const writer = await createWriter({length: 'long'});
- assert_equals(writer.length, 'long');
-}, 'Creating a Writer with "long" length');
-
-promise_test(async () => {
- const writer = await createWriter({expectedInputLanguages: ['en']});
- assert_array_equals(writer.expectedInputLanguages, ['en']);
-}, 'Creating a Writer with expectedInputLanguages');
-
-
-promise_test(async (t) => {
- promise_rejects_js(
- t, RangeError,
- createWriter({expectedInputLanguages: ['en-abc-invalid']}));
-}, 'Creating a Writer with malformed language string');
-
-promise_test(async () => {
- const writer = await createWriter({expectedContextLanguages: ['en']});
- assert_array_equals(writer.expectedContextLanguages, ['en']);
-}, 'Creating a Writer with expectedContextLanguages');
-
-promise_test(async () => {
- const writer = await createWriter({outputLanguage: 'en'});
- assert_equals(writer.outputLanguage, 'en');
-}, 'Creating a Writer with outputLanguage');
-
-promise_test(async () => {
- const writer = await createWriter({});
- assert_equals(writer.expectedInputLanguages, null);
- assert_equals(writer.expectedContextLanguages, null);
- assert_equals(writer.outputLanguage, null);
-}, 'Creating a Writer without optional attributes');
-
-promise_test(async (t) => {
- const writer = await createWriter();
- let result = await writer.write('');
- assert_equals(result, '');
- result = await writer.write(' ');
- assert_equals(result, '');
-}, 'Writer.write() with an empty input or whitespace returns an empty text');
-
-promise_test(async (t) => {
- const writer = await createWriter();
- const result = await writer.write('hello', {context: ' '});
- assert_not_equals(result, '');
-}, 'Writer.write() with a whitespace context returns a non-empty result');
-
-promise_test(async (t) => {
- const writer = await createWriter();
- writer.destroy();
- await promise_rejects_dom(t, 'InvalidStateError', writer.write('hello'));
-}, 'Writer.write() fails after destroyed');
-
-promise_test(async (t) => {
- const writer = await createWriter();
- writer.destroy();
- assert_throws_dom('InvalidStateError', () => writer.writeStreaming('hello'));
-}, 'Writer.writeStreaming() fails after destroyed');
-
-promise_test(async () => {
- const writer = await createWriter();
- const result = await writer.measureInputUsage(kTestPrompt);
- assert_greater_than(result, 0);
-}, 'Writer.measureInputUsage() returns non-empty result');
-
-promise_test(async () => {
- const writer = await createWriter();
- const result = await writer.write(kTestPrompt, {context: kTestContext});
- assert_equals(typeof result, 'string');
-}, 'Simple Writer.write() call');
-
-promise_test(async () => {
- const writer = await createWriter();
- const streamingResponse =
- writer.writeStreaming(kTestPrompt, {context: kTestContext});
- assert_equals(
- Object.prototype.toString.call(streamingResponse),
- '[object ReadableStream]');
- let result = '';
- for await (const chunk of streamingResponse) {
- result += chunk;
- }
- assert_greater_than(result.length, 0);
-}, 'Simple Writer.writeStreaming() call');
-
-promise_test(async () => {
- const writer = await createWriter();
- await Promise.all([writer.write(kTestPrompt), writer.write(kTestPrompt)]);
-}, 'Multiple Writer.write() calls are resolved successfully.');
-
-promise_test(async () => {
- const writer = await createWriter();
- await Promise.all(
- [writer.writeStreaming(kTestPrompt), writer.writeStreaming(kTestPrompt)]);
-}, 'Multiple Writer.writeStreaming() calls are resolved successfully.');
diff --git a/tests/wpt/tests/clipboard-apis/async-navigator-clipboard-change-event.tentative.https.html b/tests/wpt/tests/clipboard-apis/async-navigator-clipboard-change-event.tentative.https.html
index 37e2e6a7bde..bf32f4851b3 100644
--- a/tests/wpt/tests/clipboard-apis/async-navigator-clipboard-change-event.tentative.https.html
+++ b/tests/wpt/tests/clipboard-apis/async-navigator-clipboard-change-event.tentative.https.html
@@ -25,49 +25,80 @@
});
}
+ let typesToSet_ = ["text/html", "web txt/csv"];
button.onclick = () => document.execCommand("copy");
document.oncopy = (ev) => {
ev.preventDefault();
- ev.clipboardData.setData("text/html", `<div>Test html</div>`);
+ for (let i = 0; i < typesToSet_.length; i++) {
+ const type = typesToSet_[i];
+ const data = new Blob([`Test data for ${type}`], {type: type});
+ ev.clipboardData.setData(type, data);
+ }
};
- function triggerCopyToClipboard() {
+ function triggerCopyToClipboard(typesToSet) {
+ if (typesToSet) {
+ typesToSet_ = typesToSet;
+ }
return test_driver.click(button);
}
promise_test(async (test) => {
let clipboardChangeEventCount = 0;
let eventType = "";
+ let capturedEventTypes = null;
navigator.clipboard.addEventListener("clipboardchange", (ev) => {
clipboardChangeEventCount++;
eventType = ev.type;
+ capturedEventTypes = ev.types;
});
await triggerCopyToClipboard();
assert_equals(clipboardChangeEventCount, 1, "clipboardchange event should be called exactly once");
assert_equals(eventType, "clipboardchange", "Event type should be 'clipboardchange'");
+ assert_true(capturedEventTypes.includes("text/html"), "types should contain 'text/html'");
+ assert_false(capturedEventTypes.includes("web txt/csv"), "types should not contain custom MIME type");
}, "clipboardchange event is invoked");
promise_test(async (test) => {
await tryGrantWritePermission();
let clipboardChangeEventCount = 0;
+ let capturedEventTypes = null;
navigator.clipboard.addEventListener("clipboardchange", (ev) => {
clipboardChangeEventCount++;
+ capturedEventTypes = ev.types;
});
await navigator.clipboard.writeText("Test text");
await waitForRender();
assert_equals(clipboardChangeEventCount, 1, "clipboardchange event should be called exactly once");
+ assert_true(capturedEventTypes.includes("text/plain"), "types should contain 'text/plain'");
}, "clipboardchange event is invoked with async clipboard API");
promise_test(async (test) => {
let onClipboardChangeAttributeCount = 0;
- navigator.clipboard.onclipboardchange = () => {
+ let capturedEventTypes = null;
+ navigator.clipboard.onclipboardchange = (ev) => {
onClipboardChangeAttributeCount++;
+ capturedEventTypes = ev.types;
};
await triggerCopyToClipboard();
assert_equals(onClipboardChangeAttributeCount, 1, "onclipboardchange attribute should be called exactly once");
+ assert_true(capturedEventTypes.includes("text/html"), "types should contain 'text/html'");
+ assert_false(capturedEventTypes.includes("web txt/csv"), "types should not contain custom MIME type");
}, "clipboardchange event is invoked using onclipboardchange attribute");
promise_test(async (test) => {
+ let onClipboardChangeAttributeCount = 0;
+ let capturedEventTypes = null;
+ navigator.clipboard.onclipboardchange = (ev) => {
+ onClipboardChangeAttributeCount++;
+ capturedEventTypes = ev.types;
+ };
+ await triggerCopyToClipboard(["web txt/csv"]);
+ assert_equals(onClipboardChangeAttributeCount, 1, "onclipboardchange attribute should be called exactly once");
+ assert_equals(capturedEventTypes.length, 0, "clipboardchange event should have no types");
+ }, "clipboardchange event is invoked even when only custom MIME types are set");
+
+ promise_test(async (test) => {
let listenerCallCount = 0;
function clipboardChangeListener() {
listenerCallCount++;
@@ -90,6 +121,55 @@
}, "clipboardchange event listener behavior when adding, removing, and re-adding");
promise_test(async (test) => {
+ // https://w3c.github.io/clipboard-apis/#mandatory-data-types-x
+ const standardTypes = [
+ "text/plain",
+ "text/html",
+ "image/png",
+ ];
+ const unsupportedTypes = [
+ "web application/custom",
+ "web web/proprietary",
+ "web x-custom/type",
+ "txt/json",
+ "text/rtf",
+ "image/svg+xml",
+ "text/uri-list",
+ ];
+ const allTypesToSet = [...standardTypes, ...unsupportedTypes];
+
+ let clipboardChangeEventCount = 0;
+ let capturedEventTypes = null;
+
+ navigator.clipboard.addEventListener("clipboardchange", (ev) => {
+ clipboardChangeEventCount++;
+ capturedEventTypes = ev.types;
+ });
+
+ await triggerCopyToClipboard(allTypesToSet);
+
+ assert_true(clipboardChangeEventCount == 1, "clipboardchange event should be invoked once");
+
+ // Check that types is a frozen array
+ assert_true(Array.isArray(capturedEventTypes), "types should be an array");
+ assert_true(Object.isFrozen(capturedEventTypes), "types should be frozen");
+
+ // Verify all standard types are included
+ for (const type of standardTypes) {
+ assert_true(capturedEventTypes.includes(type), `types should contain standard MIME type '${type}'`);
+ }
+
+ // Verify custom types are filtered out
+ for (const type of unsupportedTypes) {
+ assert_false(capturedEventTypes.includes(type), `types should not contain custom MIME type '${type}'`);
+ }
+
+ // Verify we have exactly the standard types and nothing else
+ assert_equals(capturedEventTypes.length, standardTypes.length,
+ "clipboardchange event types should contain exactly the standard MIME types");
+ }, "clipboardchange event exposes all standard MIME types and filters non-standard ones");
+
+ promise_test(async (test) => {
// Focus the document and acquire permission to write to the clipboard
await test_driver.click(document.body);
await tryGrantWritePermission();
@@ -97,6 +177,7 @@
const iframe = document.getElementById('iframe');
let frameEventCount = 0;
+ let capturedEventTypes = null;
let focusEventFired = false;
iframe.contentWindow.addEventListener("focus", () => {
focusEventFired = true;
@@ -106,6 +187,7 @@
iframe.contentWindow.navigator.clipboard.addEventListener("clipboardchange", () => {
assert_true(focusEventFired, "focus event should fire before clipboardchange event");
frameEventCount++;
+ capturedEventTypes = event.types;
});
// Ensure iFrame doesn't have the focus
@@ -114,7 +196,13 @@
// Trigger multiple clipboard changes
await navigator.clipboard.writeText("Test text");
- await navigator.clipboard.writeText("Test text 2");
+
+ // Write HTML to clipboard to ensure the event captured only html and not txt
+ await navigator.clipboard.write([
+ new ClipboardItem({
+ "text/html": new Blob(["<p>Test HTML</p>"], {type: "text/html"})
+ })
+ ]);
await waitForRender();
assert_equals(frameEventCount, 0, "iframe should not recieve any clipboardchange event yet");
@@ -122,6 +210,9 @@
iframe.focus();
assert_true(iframe.contentWindow.document.hasFocus(), "iFrame should have focus");
assert_equals(frameEventCount, 1, "iframe should receive event only 1 event after focus");
+ assert_equals(capturedEventTypes.length, 1, "clipboardchange event should only have one type");
+ assert_true(capturedEventTypes.includes("text/html"), "clipboardchange event should only have text/html type");
}, "clipboardchange event should only fire in the focused context");
+
</script>
</body> \ No newline at end of file
diff --git a/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-nn.html b/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-nn.html
index 250fbf7e5f7..b2da2d415a8 100644
--- a/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-nn.html
+++ b/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-nn.html
@@ -1,4 +1,5 @@
<!doctype html>
+<meta name="timeout" content="long">
<link rel="author" href="mailto:wpt@keithcirkel.co.uk" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-ynn.html b/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-ynn.html
index b5cfab5c5d9..3ab5b758684 100644
--- a/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-ynn.html
+++ b/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-ynn.html
@@ -1,4 +1,5 @@
<!doctype html>
+<meta name="timeout" content="long">
<link rel="author" href="mailto:wpt@keithcirkel.co.uk" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-ynyn.html b/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-ynyn.html
index 4f55e9b24aa..e486fcb3682 100644
--- a/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-ynyn.html
+++ b/tests/wpt/tests/close-watcher/iframes/dialog-same-origin-ynyn.html
@@ -1,4 +1,5 @@
<!doctype html>
+<meta name="timeout" content="long">
<link rel="author" href="mailto:wpt@keithcirkel.co.uk" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/cookie-store/resources/cookie-test-helpers.js b/tests/wpt/tests/cookie-store/resources/cookie-test-helpers.js
index 178947ad6ec..8e23ff2c422 100644
--- a/tests/wpt/tests/cookie-store/resources/cookie-test-helpers.js
+++ b/tests/wpt/tests/cookie-store/resources/cookie-test-helpers.js
@@ -210,9 +210,10 @@ async function cookie_test(func, description) {
// Wipe cookies used by tests before and after the test.
async function deleteAllCookies() {
- (await cookieStore.getAll()).forEach(({name, value}) => {
- cookieStore.delete(name);
- });
+ await Promise.all((await cookieStore.getAll()).map(async ({name, value}) => {
+ await cookieStore.delete(name);
+ await cookieStore.delete({name: name, partitioned: true});
+ }));
}
return promise_test(async t => {
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-ident-function.html b/tests/wpt/tests/css/css-anchor-position/anchor-ident-function.html
new file mode 100644
index 00000000000..fbc6fc5560c
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-ident-function.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<title>CSS Anchor Positioning: The ident() function </title>
+<link rel="help" href="https://drafts.csswg.org/css-values-5/#ident">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<style>
+ #cb {
+ border: 1px solid black;
+ width: 100px;
+ height: 100px;
+ position: relative;
+ }
+ .anchor {
+ width: 15px;
+ height: 15px;
+ background-color: skyblue;
+ position: absolute;
+ top: 30px;
+ }
+ /* sibling-index() could make this nicer, but it's not universally
+ supported at the time of writing: */
+ .anchor:nth-child(1) { anchor-name: --a1; left: calc(20px * 1); }
+ .anchor:nth-child(2) { anchor-name: --a2; left: calc(20px * 2); }
+ .anchor:nth-child(3) { anchor-name: --a3; left: calc(20px * 3); }
+ #target {
+ width: 15px;
+ height: 15px;
+ background-color: tomato;
+ position: absolute;
+ position-anchor: --a1;
+ }
+</style>
+<div id=cb>
+ <div>
+ <div class=anchor></div>
+ <div class=anchor></div>
+ <div class=anchor></div>
+ </div>
+ <div id=target></div>
+</div>
+
+<script>
+ // Test the computed values of various anchor related properties:
+
+ let actual_ident = 'ident("--myident" calc(42 * sign(1em - 1px)))';
+ let expected_ident = '--myident42';
+
+ // https://drafts.csswg.org/css-anchor-position-1/#name
+ test_computed_value('anchor-name', actual_ident, expected_ident);
+ test_computed_value('anchor-name', `--tl, ${actual_ident}`,
+ `--tl, ${expected_ident}`);
+ test_computed_value('anchor-name', `${actual_ident}, ${actual_ident}`,
+ `${expected_ident}, ${expected_ident}`);
+
+ // https://drafts.csswg.org/css-anchor-position-1/#anchor-scope
+ test_computed_value('anchor-scope', actual_ident, expected_ident);
+ test_computed_value('anchor-scope', `--tl, ${actual_ident}`,
+ `--tl, ${expected_ident}`);
+ test_computed_value('anchor-scope', `${actual_ident}, ${actual_ident}`,
+ `${expected_ident}, ${expected_ident}`);
+
+ // https://drafts.csswg.org/css-anchor-position-1/#position-anchor
+ test_computed_value('position-anchor', actual_ident, expected_ident);
+
+ // Test ident() usage within anchor functions:
+ test_computed_value('left', 'anchor(--a1 left)', '20px');
+ test_computed_value('left', 'anchor(--a2 left)', '40px');
+ test_computed_value('left', 'anchor(--a3 left)', '60px');
+ test_computed_value('left', 'calc(anchor(--a1 left)*4)', '80px');
+ test_computed_value('width', 'calc(anchor-size(--a1)*2)', '30px');
+ test_computed_value('width', 'anchor-size(--a1)', '15px');
+</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-in-multicol-crash.html b/tests/wpt/tests/css/css-anchor-position/anchor-in-multicol-crash.html
new file mode 100644
index 00000000000..8a4206630a1
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-in-multicol-crash.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<title>CSS Anchor Positioning: Crash with anchor in multicol</title>
+<link rel="help" href="https://issues.chromium.org/issues/324930388">
+<style>
+.cb {
+ position: relative;
+ border: 1px solid black;
+}
+.columns {
+ column-count: 4;
+ column-width: 100px;
+ width: 320px;
+ height: 100px;
+}
+.anchor {
+ anchor-name: --a1;
+ width: 100px;
+ height: 90px;
+ background: blue;
+}
+.target {
+ position: absolute;
+ position-anchor: --a1;
+ width: 10px;
+ height: 10px;
+ background: purple;
+ position-try-fallbacks: --pf1, --pf2;
+}
+@position-try --pf1 {
+ right: 400px;
+ bottom: 10px;
+}
+@position-try --pf2 {
+ right: 40px;
+ bottom: 30px;
+}
+</style>
+<body>
+ PASS if no crash
+ <div class="columns">
+ <div class="cb">
+ <div class="anchor"></div>
+ <div class="target"></div>
+ </div>
+ </div>
+</body>
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-in-multicol-inherit-crash.html b/tests/wpt/tests/css/css-anchor-position/anchor-in-multicol-inherit-crash.html
new file mode 100644
index 00000000000..233f8382e8a
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-in-multicol-inherit-crash.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<title>CSS Anchor Positioning: Crash with anchor in multicol (inheritance)</title>
+<link rel="help" href="https://issues.chromium.org/issues/324930388">
+<style>
+.cb {
+ position: relative;
+ border: 1px solid black;
+}
+.columns {
+ column-count: 4;
+ column-width: 100px;
+ width: 320px;
+ height: 100px;
+}
+.anchor {
+ anchor-name: --a1;
+ width: 100px;
+ height: 90px;
+ background: blue;
+}
+.target {
+ position: absolute;
+ position-anchor: --a1;
+ width: 10px;
+ height: 10px;
+ background: purple;
+ position-try-fallbacks: --pf1, --pf2;
+}
+.child {
+ position: fixed;
+ right: inherit;
+ bottom: inherit;
+}
+@position-try --pf1 {
+ right: 400px;
+ bottom: 10px;
+}
+@position-try --pf2 {
+ right: 40px;
+ bottom: 30px;
+}
+</style>
+<body>
+ PASS if no crash
+ <div class="columns">
+ <div class="cb">
+ <div class="anchor"></div>
+ <div class="target">
+ <div class="child"></div>
+ </div>
+ </div>
+ </div>
+</body>
diff --git a/tests/wpt/tests/css/css-anchor-position/chrome-419501749-crash.html b/tests/wpt/tests/css/css-anchor-position/chrome-419501749-crash.html
new file mode 100644
index 00000000000..2ab29fc87f5
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/chrome-419501749-crash.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<link rel="help" href="https://crbug.com/419501749">
+<style>
+ #crash {
+ position: absolute;
+ left: anchor(right);
+ --grad: linear-gradient(black, blue);
+ content: var(--grad);
+ }
+</style>
+<p>Pass if no crash</p>
+<div id="crash"></div>
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-ident-function.html b/tests/wpt/tests/css/css-anchor-position/position-try-ident-function.html
new file mode 100644
index 00000000000..4457c4f14f8
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-ident-function.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<title>CSS Anchor Positioning: The ident() function in @position-try/position-try</title>
+<link rel="help" href="https://drafts.csswg.org/css-values-5/#ident">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#fallback-rule">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<div id=target></div>
+<script>
+ let actual_ident = 'ident("--myident" calc(42 * sign(1em - 1px)))';
+ let expected_ident = '--myident42';
+
+ // https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks
+ test_computed_value('position-try-fallbacks', actual_ident, expected_ident);
+ test_computed_value('position-try-fallbacks', `flip-block, ${actual_ident}`,
+ `flip-block, ${expected_ident}`);
+
+ // https://drafts.csswg.org/css-anchor-position-1/#position-try-prop
+ test_computed_value('position-try', actual_ident, expected_ident);
+ test_computed_value('position-try', `most-width ${actual_ident}`,
+ `most-width ${expected_ident}`);
+</script>
diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html b/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html
index 590e960830f..12cd2546bf4 100644
--- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html
+++ b/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-render-fuzzy.html
@@ -4,9 +4,7 @@
<link rel="help" href="https://drafts.csswg.org/css-borders-4/#corner-shaping">
<link rel="match" href="corner-shape-any-ref.html">
<meta name="fuzzy" content="maxDifference=0-200;totalPixels=0-550">
-<meta name="variant" content="?corner-shape=scoop&border-radius=20%&border-width=20px&border-top-color=rebeccapurple&border-bottom-color=blue">
<meta name="variant" content="?corner-shape=scoop&border-radius=20%&border-width=20px">
-<meta name="variant" content="?corner-top-left-shape=notch&border-radius=40px&border-width=10px&border-color=blue&border-left-color=yellow">
<meta name="variant" content="?corner-shape=superellipse(-2)&border-radius=20%&border-width=20px">
<meta name="variant" content="?corner-top-left-shape=bevel&border-radius=40px&border-width=10px">
<meta name="variant" content="?corner-top-left-shape=scoop&corner-top-right-shape=scoop&border-radius=50%">
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html
index 2e6722335c2..2890727ad4c 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html
@@ -18,7 +18,34 @@
test_cq_condition_known('style(--my-prop: )');
test_cq_condition_known('style(--foo: bar !important)');
test_cq_condition_known('style(--foo)');
+ test_cq_condition_known('style(--my-prop: attr(data-foo))');
+ test_cq_condition_known('style(--foo >= --bar)');
+ test_cq_condition_known('style(--foo = --bar)');
+ test_cq_condition_known('style(--foo <= --bar)');
+ test_cq_condition_known('style(10px > 10em)');
+ test_cq_condition_known('style(--foo >= 10em)');
+ test_cq_condition_known('style(10px > --bar)');
+ test_cq_condition_known('style(10px = --bar)');
+ test_cq_condition_known('style(--foo < --bar)');
+ test_cq_condition_known('style(10px <= 10em)');
+ test_cq_condition_known('style(10px = 10em)');
+ test_cq_condition_known('style(10px <= calc(10em + 20em))');
+ test_cq_condition_known('style(calc(10em + 20em) < 10px)');
+ test_cq_condition_known('style(--foo < 10em)');
+ test_cq_condition_known('style(10px <= --bar)');
+ test_cq_condition_known('style(--foo < --bar <= --baz)');
+ test_cq_condition_known('style(--foo >= --bar > --baz)');
+ test_cq_condition_known('style(--foo > 10px > 10em)');
+ test_cq_condition_known('style(10px < --foo < 10em)');
+ test_cq_condition_known('style(10px < --foo <= 10em)');
+ test_cq_condition_known('style(10px <= --foo < 10em)');
+ test_cq_condition_known('style(10px > 10em > --foo)');
+ test_cq_condition_known('style(10px < 10em < 10)');
+ test_cq_condition_known('style(var(--p) < calc(100 + 200))');
+ test_cq_condition_known('style(attr(data-foo type(<number>)) < var(--p) < var(--q))');
test_cq_condition_unknown('style(--foo: bar;)');
test_cq_condition_unknown('style(style(--foo: bar))');
+ test_cq_condition_unknown('style(10px < 10em > 10)');
+ test_cq_condition_unknown('style( < 10em)');
</script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-ident-function.html b/tests/wpt/tests/css/css-conditional/container-queries/container-ident-function.html
new file mode 100644
index 00000000000..692efa757b3
--- /dev/null
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-ident-function.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<title>CSS Conditional: The ident() function in @container/container-name</title>
+<link rel="help" href="https://drafts.csswg.org/css-values-5/#ident">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<div id=target></div>
+<script>
+ let actual_ident = 'ident("--myident" calc(42 * sign(1em - 1px)))';
+ let expected_ident = '--myident42';
+
+ // https://drafts.csswg.org/css-conditional-5/#container-name
+ test_computed_value('container-name', actual_ident, expected_ident);
+ test_computed_value('container-name', `--c ${actual_ident}`,
+ `--c ${expected_ident}`);
+
+ // https://drafts.csswg.org/css-conditional-5/#container-shorthand
+ test_computed_value('container', actual_ident, expected_ident);
+ test_computed_value('container', `--c ${actual_ident} / size`,
+ `--c ${expected_ident} / size`);
+
+</script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html
index 3d676402e1e..97f43ac466f 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html
@@ -7,6 +7,7 @@
<style>
@import url("/fonts/ahem.css");
:root { font-family: 'Ahem'; font-size: 10px; line-height: 10px; }
+ #log { font-family: sans-serif; }
#em_container {
container-type: inline-size;
width: 100px;
@@ -100,19 +101,23 @@
<div id="rlh_test"></div>
</div>
<script>
- setup(() => assert_implements_size_container_queries());
+ setup(() => assert_implements_size_container_queries(), { explicit_done: true });
const green = "rgb(0, 128, 0)";
- test(() => assert_equals(getComputedStyle(em_test).color, green), "em relative inline-size");
- test(() => assert_equals(getComputedStyle(rem_test).color, green), "rem relative inline-size");
- test(() => assert_equals(getComputedStyle(ex_test).color, green), "ex relative inline-size");
- test(() => assert_equals(getComputedStyle(rex_test).color, green), "rex relative inline-size");
- test(() => assert_equals(getComputedStyle(ch_test).color, green), "ch relative inline-size");
- test(() => assert_equals(getComputedStyle(rch_test).color, green), "rch relative inline-size");
- test(() => assert_equals(getComputedStyle(ic_test).color, green), "ic relative inline-size");
- test(() => assert_equals(getComputedStyle(ric_test).color, green), "ric relative inline-size");
- test(() => assert_equals(getComputedStyle(lh_test).color, green), "lh relative inline-size");
- test(() => assert_equals(getComputedStyle(rlh_test).color, green), "rlh relative inline-size");
- test(() => assert_equals(getComputedStyle(cap_test).color, green), "cap relative inline-size");
- test(() => assert_equals(getComputedStyle(rcap_test).color, green), "rcap relative inline-size");
+
+ document.fonts.ready.then(() => {
+ test(() => assert_equals(getComputedStyle(em_test).color, green), "em relative inline-size");
+ test(() => assert_equals(getComputedStyle(rem_test).color, green), "rem relative inline-size");
+ test(() => assert_equals(getComputedStyle(ex_test).color, green), "ex relative inline-size");
+ test(() => assert_equals(getComputedStyle(rex_test).color, green), "rex relative inline-size");
+ test(() => assert_equals(getComputedStyle(ch_test).color, green), "ch relative inline-size");
+ test(() => assert_equals(getComputedStyle(rch_test).color, green), "rch relative inline-size");
+ test(() => assert_equals(getComputedStyle(ic_test).color, green), "ic relative inline-size");
+ test(() => assert_equals(getComputedStyle(ric_test).color, green), "ric relative inline-size");
+ test(() => assert_equals(getComputedStyle(lh_test).color, green), "lh relative inline-size");
+ test(() => assert_equals(getComputedStyle(rlh_test).color, green), "rlh relative inline-size");
+ test(() => assert_equals(getComputedStyle(cap_test).color, green), "cap relative inline-size");
+ test(() => assert_equals(getComputedStyle(rcap_test).color, green), "rcap relative inline-size");
+ done();
+ })
</script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/scroll-state/scroll-state-snapped-snap-changing.html b/tests/wpt/tests/css/css-conditional/container-queries/scroll-state/scroll-state-snapped-snap-changing.html
index 85f678f07e1..ded5656a046 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/scroll-state/scroll-state-snapped-snap-changing.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/scroll-state/scroll-state-snapped-snap-changing.html
@@ -57,6 +57,7 @@
.pointerMove(0, 0, {origin: "viewport"})
.pause(50)
.send();
+ await waitForAnimationFrames(2);
assert_equals(changeTarget, snapped1, "snapchange has not been called for #snapped2");
assert_equals(changingTarget, snapped2, "snapchanging has been called for #snapped2");
assert_equals(getComputedStyle(target1).getPropertyValue("--snapped"), "",
diff --git a/tests/wpt/tests/css/css-contain/contain-layout-stacking-context-001.html b/tests/wpt/tests/css/css-contain/contain-layout-stacking-context-001.html
index 4ec3bcee6fd..5724fa1feac 100644
--- a/tests/wpt/tests/css/css-contain/contain-layout-stacking-context-001.html
+++ b/tests/wpt/tests/css/css-contain/contain-layout-stacking-context-001.html
@@ -1,66 +1,32 @@
<!DOCTYPE HTML>
-<html>
-<head>
- <meta charset="utf-8">
- <title>CSS Test: 'contain: layout' with stacking contents. Z-index is defined only for siblings and children.</title>
- <link rel="author" title="Yusuf Sermet" href="mailto:ysermet@mozilla.com">
- <link rel="author" title="Morgan Rae Reschenberg" href="mailto:mreschenberg@berkeley.edu">
- <link rel="help" href="https://drafts.csswg.org/css2/visuren.html#x43">
- <link rel="help" href="https://drafts.csswg.org/css-contain/#containment-layout">
- <link rel="match" href="contain-paint-stacking-context-001-ref.html">
- <style>
- div {
- position: relative;
- width: 100px;
- }
- #div1,
- #div3 {
- background-color: #cfc;
- }
- #div1 {
- z-index: 5;
- }
- #div2 {
- contain: layout;
- background-color: #fdd;
- height: 100px;
- top: -20px;
- }
- #div2_1 {
- background-color: #ffc;
- z-index: 6;
- top: -10px;
- }
- #div2_2 {
- z-index: 3;
- position: absolute;
- top: -15px;
- width: 40px;
- height: 100px;
- background-color: #ddf;
- }
- #div3 {
- z-index: 2;
- top: -50px;
- }
- </style>
-</head>
-<body>
- <div id="div1">
- <br/><br/>
- </div>
-
- <div id="div2">
- <div id="div2_1">
- <br/><br/>
- </div>
-
- <div id="div2_2">
- </div>
- </div>
-
- <div id="div3">
- <br/><br/>
- </div>
-</body>
-</html>
+<title>'contain: layout' establishes stacking context.</title>
+<link rel="author" title="Psychpsyo" href="mailto:psychpsyo@gmail.com">
+<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#x43">
+<link rel="help" href="https://drafts.csswg.org/css-contain/#containment-layout">
+<link rel="match" href="contain-paint-stacking-context-001-ref.html">
+<style>
+ div {
+ width: 100px;
+ height: 100px;
+ }
+ #front {
+ background-color: green;
+ /* makes a stacking context and puts this on top */
+ position: absolute;
+ z-index: 10;
+ }
+ #back {
+ contain: layout;
+ }
+ #notOnTop {
+ background-color: red;
+ /* z-index is higher than on #front, but this should still be covered up because it is inside #back, which has 'contain: layout' */
+ position: absolute;
+ z-index: 1000;
+ }
+</style>
+<div id="front"></div>
+<div id="back">
+ <div id="notOnTop"></div>
+</div>
+Test succeeds if there is no red.
diff --git a/tests/wpt/tests/css/css-exclusions/wrap-flow-001.html b/tests/wpt/tests/css/css-exclusions/wrap-flow-001.html
index f87c5baf8b2..5750d8b73c2 100644
--- a/tests/wpt/tests/css/css-exclusions/wrap-flow-001.html
+++ b/tests/wpt/tests/css/css-exclusions/wrap-flow-001.html
@@ -41,8 +41,9 @@
<div id="log"></div>
<script type="text/javascript">
- setup({ explicit_done: true });
-
+ setup(() => {
+ assert_implements(CSS.supports('wrap-flow', 'clear'), "'wrap-flow: clear'");
+ }, {explicit_done: true});
document.fonts.ready.then(() => {
test(function() {assert_equals(checkLinePos("linesBelow",150,"top"), true)}, "Verify top of the 'linesBelow' span is positioned correctly");
done();
diff --git a/tests/wpt/tests/css/css-exclusions/wrap-flow-002.html b/tests/wpt/tests/css/css-exclusions/wrap-flow-002.html
index 4f56a99a247..d00edc4ba2a 100644
--- a/tests/wpt/tests/css/css-exclusions/wrap-flow-002.html
+++ b/tests/wpt/tests/css/css-exclusions/wrap-flow-002.html
@@ -44,8 +44,9 @@
<div id="log"></div>
<script type="text/javascript">
- setup({ explicit_done: true });
-
+ setup(() => {
+ assert_implements(CSS.supports('wrap-flow', 'start'), "'wrap-flow: start'");
+ }, {explicit_done: true});
document.fonts.ready.then(() => {
test(function() {assert_equals(checkLinePos("lineLeft1",36,"top"), true)}, "Verify top of the 'lineLeft1' span is positioned correctly");
test(function() {assert_equals(checkLinePos("lineLeft2",48,"top"), true)}, "Verify top of the 'lineLeft2' span is positioned correctly");
diff --git a/tests/wpt/tests/css/css-exclusions/wrap-flow-003.html b/tests/wpt/tests/css/css-exclusions/wrap-flow-003.html
index f48d8a8fbbe..489e2dd9dbf 100644
--- a/tests/wpt/tests/css/css-exclusions/wrap-flow-003.html
+++ b/tests/wpt/tests/css/css-exclusions/wrap-flow-003.html
@@ -44,8 +44,9 @@
<div id="log"></div>
<script type="text/javascript">
- setup({ explicit_done: true });
-
+ setup(() => {
+ assert_implements(CSS.supports('wrap-flow', 'auto'), "'wrap-flow: auto'");
+ }, {explicit_done: true});
document.fonts.ready.then(() => {
test(function() {assert_equals(checkLinePos("line1",216,"right"), true)}, "Verify right of the 'line1' span is positioned correctly");
test(function() {assert_equals(checkLinePos("line2",192,"right"), true)}, "Verify right of the 'line2' span is positioned correctly");
diff --git a/tests/wpt/tests/css/css-exclusions/wrap-flow-004.html b/tests/wpt/tests/css/css-exclusions/wrap-flow-004.html
index c2369a12eec..3f96272d204 100644
--- a/tests/wpt/tests/css/css-exclusions/wrap-flow-004.html
+++ b/tests/wpt/tests/css/css-exclusions/wrap-flow-004.html
@@ -45,8 +45,9 @@
<div id="log"></div>
<script type="text/javascript">
- setup({ explicit_done: true });
-
+ setup(() => {
+ assert_implements(CSS.supports('wrap-flow', 'both'), "'wrap-flow: both'");
+ }, {explicit_done: true});
document.fonts.ready.then(() => {
/* Line 1 */
test(function() {assert_equals(checkLinePos("line1",0,"top"), true)}, "Verify top of the 'line1' span is positioned correctly");
diff --git a/tests/wpt/tests/css/css-exclusions/wrap-flow-005.html b/tests/wpt/tests/css/css-exclusions/wrap-flow-005.html
index d16c8479ca5..01be21dc7b9 100644
--- a/tests/wpt/tests/css/css-exclusions/wrap-flow-005.html
+++ b/tests/wpt/tests/css/css-exclusions/wrap-flow-005.html
@@ -45,8 +45,9 @@
<div id="log"></div>
<script type="text/javascript">
- setup({ explicit_done: true });
-
+ setup(() => {
+ assert_implements(CSS.supports('wrap-flow', 'end'), "'wrap-flow: end'");
+ }, {explicit_done: true});
document.fonts.ready.then(() => {
/* Line 1 */
test(function() {assert_equals(checkLinePos("line1",0,"top"), true)}, "Verify top of the 'line1' span is positioned correctly");
diff --git a/tests/wpt/tests/css/css-exclusions/wrap-flow-006.html b/tests/wpt/tests/css/css-exclusions/wrap-flow-006.html
index d9c107ae75b..e00f86a7de0 100644
--- a/tests/wpt/tests/css/css-exclusions/wrap-flow-006.html
+++ b/tests/wpt/tests/css/css-exclusions/wrap-flow-006.html
@@ -44,8 +44,9 @@
<div id="log"></div>
<script type="text/javascript">
- setup({ explicit_done: true });
-
+ setup(() => {
+ assert_implements(CSS.supports('wrap-flow', 'maximum'), "'wrap-flow: maximum'");
+ }, {explicit_done: true});
document.fonts.ready.then(() => {
/*Line 1*/
test(function() {assert_equals(checkLinePos("line1",0,"top"), true)}, "Verify top of the 'line1' span is positioned correctly");
diff --git a/tests/wpt/tests/css/css-exclusions/wrap-through-001.html b/tests/wpt/tests/css/css-exclusions/wrap-through-001.html
index 8c2f9d797bc..f7191a723bb 100644
--- a/tests/wpt/tests/css/css-exclusions/wrap-through-001.html
+++ b/tests/wpt/tests/css/css-exclusions/wrap-through-001.html
@@ -51,8 +51,10 @@
<div id="log"></div>
<script type="text/javascript">
- setup({ explicit_done: true });
-
+ setup(() => {
+ assert_implements(CSS.supports('wrap-through', 'none'), "'wrap-through: none'");
+ assert_implements(CSS.supports('wrap-flow', 'both'), "'wrap-flow: both'");
+ }, {explicit_done: true});
document.fonts.ready.then(() => {
/* Line 1 */
test(function() {assert_equals(checkLinePos("line1",0,"top"), true)}, "Verify top of the first line above the exclusion");
diff --git a/tests/wpt/tests/css/css-flexbox/flex-aspect-ratio-img-vert-lr.html b/tests/wpt/tests/css/css-flexbox/flex-aspect-ratio-img-vert-lr.html
new file mode 100644
index 00000000000..c8075af6798
--- /dev/null
+++ b/tests/wpt/tests/css/css-flexbox/flex-aspect-ratio-img-vert-lr.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#algo-main-item">
+<meta name="assert" content="Flex item should compute its main size from its definite cros size and aspect ratio.">
+<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
+<style>
+.flexbox {
+ position: relative;
+ display: flex;
+ writing-mode: vertical-lr;
+ width: 100px;
+ align-items: start;
+}
+.flex-item{
+ width: 40px
+}
+.abspos {
+ width: 60px;
+ height: 100px; background-color: green;
+ position: absolute;
+ left: 40px;
+}
+</style>
+</head>
+</head>
+<body>
+ <p>Test passes if there is a filled green square.</p>
+ <div class="flexbox">
+ <img class="flex-item" src="support/20x50-green.png">
+ <div class="abspos"></div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/tests/css/css-flexbox/flex-container-max-content-002.tentative.html b/tests/wpt/tests/css/css-flexbox/flex-container-max-content-002.tentative.html
index 77a074b153a..2f489f3be1b 100644
--- a/tests/wpt/tests/css/css-flexbox/flex-container-max-content-002.tentative.html
+++ b/tests/wpt/tests/css/css-flexbox/flex-container-max-content-002.tentative.html
@@ -165,5 +165,5 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<script>
-checkLayout(".flex");
+document.fonts.ready.then(() => { checkLayout(".flex") })
</script>
diff --git a/tests/wpt/tests/css/css-flexbox/flex-container-min-content-002.tentative.html b/tests/wpt/tests/css/css-flexbox/flex-container-min-content-002.tentative.html
index 92d37e3b9d8..f7e5016b59e 100644
--- a/tests/wpt/tests/css/css-flexbox/flex-container-min-content-002.tentative.html
+++ b/tests/wpt/tests/css/css-flexbox/flex-container-min-content-002.tentative.html
@@ -165,5 +165,5 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<script>
-checkLayout(".flex");
+document.fonts.ready.then(() => { checkLayout(".flex") });
</script>
diff --git a/tests/wpt/tests/css/css-fonts/font-face-range-order.html b/tests/wpt/tests/css/css-fonts/font-face-range-order.html
index b198a9fb572..feae4803e7d 100644
--- a/tests/wpt/tests/css/css-fonts/font-face-range-order.html
+++ b/tests/wpt/tests/css/css-fonts/font-face-range-order.html
@@ -16,7 +16,7 @@ font-family: reversed-range-test;
font-stretch: 200% 50%;
font-style: oblique 90deg -90deg;
font-weight: 900 100;
-src: local(Ahem);
+src: url(/fonts/Ahem.ttf);
}
</style>
<script>
diff --git a/tests/wpt/tests/css/css-fonts/font-face-style-normal.html b/tests/wpt/tests/css/css-fonts/font-face-style-normal.html
index 440661b82bb..baf34c0bc20 100644
--- a/tests/wpt/tests/css/css-fonts/font-face-style-normal.html
+++ b/tests/wpt/tests/css/css-fonts/font-face-style-normal.html
@@ -14,22 +14,22 @@
@font-face {
font-family: test1;
font-style: normal;
- src: local(Ahem);
+ src: url(/fonts/Ahem.ttf);
}
@font-face {
font-family: test2;
font-style: oblique 0deg;
- src: local(Ahem);
+ src: url(/fonts/Ahem.ttf);
}
@font-face {
font-family: test3;
font-style: oblique 0deg 10deg;
- src: local(Ahem);
+ src: url(/fonts/Ahem.ttf);
}
@font-face {
font-family: test4;
font-style: normal 10deg;
- src: local(Ahem);
+ src: url(/fonts/Ahem.ttf);
}
</style>
<script>
diff --git a/tests/wpt/tests/css/css-fonts/generic-family-keywords-001.html b/tests/wpt/tests/css/css-fonts/generic-family-keywords-001.html
index bd39bac3ff8..17a635bd8e8 100644
--- a/tests/wpt/tests/css/css-fonts/generic-family-keywords-001.html
+++ b/tests/wpt/tests/css/css-fonts/generic-family-keywords-001.html
@@ -24,12 +24,14 @@ div {
let ahem = document.getElementById('ahem');
let ahem_expected_width = ahem.offsetWidth;
kGenericFontFamilyKeywords.forEach(keyword => {
- test(() => {
+ promise_test(async function() {
let element = document.getElementById('test');
element.setAttribute("style", `font-family: ${keyword};`);
let expected_width = element.offsetWidth;
// Insert the @font-face rules for quoted and unquoted keywords.
+ // NOTE that we have to wait for font loads again at each step,
+ // as new asynchronous loads may be initiated when the style changes.
document.documentElement.insertAdjacentHTML('beforeend', `
<style>
@font-face {
@@ -43,10 +45,11 @@ div {
src: local(Ahem), url('/fonts/Ahem.ttf');
}
</style>`);
-
+ await document.fonts.ready;
assert_equals(element.offsetWidth, expected_width, `unquoted ${keyword} does not match @font-face rule`);
element.setAttribute("style", `font-family: "${keyword}";`);
+ await document.fonts.ready;
assert_equals(element.offsetWidth, ahem_expected_width, `quoted ${keyword} matches @font-face rule`);
}, `@font-face matching for quoted and unquoted ${keyword}`);
});
diff --git a/tests/wpt/tests/css/css-fonts/generic-family-keywords-003.html b/tests/wpt/tests/css/css-fonts/generic-family-keywords-003.html
index c787b59fb28..4b79b58a563 100644
--- a/tests/wpt/tests/css/css-fonts/generic-family-keywords-003.html
+++ b/tests/wpt/tests/css/css-fonts/generic-family-keywords-003.html
@@ -10,7 +10,7 @@
<canvas id="canvas" width="400" height="150"></canvas>
<script>
setup({ explicit_done: true });
- window.addEventListener("load", () => { document.fonts.ready.then(runTests); });
+ window.addEventListener("load", () => { document.fonts.load("25px Ahem").then(runTests); });
function runTests() {
const measured_text = "|||||";
const canvas = document.getElementById("canvas");
@@ -19,7 +19,7 @@
let ahem_expected_width = ctx.measureText(measured_text).width;
kGenericFontFamilyKeywords.forEach(keyword => {
- test(() => {
+ promise_test(async function() {
ctx.font = `25px ${keyword}`;
let expected_width = ctx.measureText(measured_text).width;
@@ -38,10 +38,12 @@
}
</style>`);
+ await document.fonts.load(`25px ${keyword}`);
ctx.font = `25px ${keyword}`;
let unquoted_width = ctx.measureText(measured_text).width;
assert_equals(unquoted_width, expected_width, `unquoted ${keyword} does not match @font-face rule`);
+ await document.fonts.load(`25px "${keyword}"`);
ctx.font = `25px "${keyword}"`;
let quoted_width = ctx.measureText(measured_text).width;
assert_equals(quoted_width, ahem_expected_width, `quoted ${keyword} matches @font-face rule`);
diff --git a/tests/wpt/tests/css/css-fonts/test-synthetic-bold-2-notref.html b/tests/wpt/tests/css/css-fonts/test-synthetic-bold-2-notref.html
new file mode 100644
index 00000000000..ec5051519d7
--- /dev/null
+++ b/tests/wpt/tests/css/css-fonts/test-synthetic-bold-2-notref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>CSS Fonts: font-weight: bold; with bold font face without explicit font weight</title>
+ <meta charset="utf-8" />
+ <style type="text/css">
+ @font-face {
+ font-family: "csstest-bold";
+ src: local("CSSTest Basic Bold");
+ }
+ div { font-size: 36px; }
+ span#verify { font-family: "CSSTest Verify"; }
+ div.test {
+ font-family: "csstest-bold";
+ }
+ </style>
+</head>
+<body>
+ <div><a href="http://www.w3.org/Style/CSS/Test/Fonts/">Test fonts</a> must be installed for this test: <span id="verify">FAIL</span></div>
+ <p>Test passes if the second line is bolder than the first:</p>
+ <div class="test">Filler text</div>
+ <div class="test">Filler text</div>
+</body>
+</html>
diff --git a/tests/wpt/tests/css/css-fonts/test-synthetic-bold-2.html b/tests/wpt/tests/css/css-fonts/test-synthetic-bold-2.html
new file mode 100644
index 00000000000..b7930c172c2
--- /dev/null
+++ b/tests/wpt/tests/css/css-fonts/test-synthetic-bold-2.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>CSS Fonts: font-weight: bold; with bold font face without explicit font weight</title>
+ <meta charset="utf-8" />
+ <link rel="author" title="Max Ihlenfeldt" href="mailto:max@igalia.com" />
+ <link rel="help" href="https://drafts.csswg.org/css-fonts/#font-style-matching">
+ <link rel="mismatch" href="test-synthetic-bold-2-notref.html">
+ <meta name="assert" content="Bold text in a bold font face that was declared without an explicit font weight is synthetically bolded.">
+ <style type="text/css">
+ @font-face {
+ font-family: "csstest-bold";
+ src: local("CSSTest Basic Bold");
+ }
+ div { font-size: 36px; }
+ span#verify { font-family: "CSSTest Verify"; }
+ div#test1 {
+ font-family: "csstest-bold";
+ }
+ div#test2 {
+ font-family: "csstest-bold";
+ font-weight: bold;
+ }
+ </style>
+</head>
+<body>
+ <div><a href="http://www.w3.org/Style/CSS/Test/Fonts/">Test fonts</a> must be installed for this test: <span id="verify">FAIL</span></div>
+ <p>Test passes if the second line is bolder than the first:</p>
+ <div id="test1">Filler text</div>
+ <div id="test2">Filler text</div>
+</body>
+</html>
diff --git a/tests/wpt/tests/css/css-fonts/test-synthetic-italic-4-notref.html b/tests/wpt/tests/css/css-fonts/test-synthetic-italic-4-notref.html
new file mode 100644
index 00000000000..d6f9050be30
--- /dev/null
+++ b/tests/wpt/tests/css/css-fonts/test-synthetic-italic-4-notref.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>CSS Fonts: font-style: italic; with italic font face without explicit font style</title>
+ <meta charset="utf-8" />
+ <style type="text/css">
+ @font-face {
+ font-family: "csstest-italic";
+ src: local("CSSTest Basic Italic");
+ }
+ div { font-size: 36px; }
+ span#verify { font-family: "CSSTest Verify"; }
+ div.test {
+ font-family: "csstest-italic";
+ }
+ </style>
+</head>
+<body>
+ <div><a href="http://www.w3.org/Style/CSS/Test/Fonts/">Test fonts</a> must be installed for this test: <span id="verify">FAIL</span></div>
+ <p>Test passes if the second line is more italic than the first:</p>
+ <div class="test">Filler text</div>
+ <div class="test">Filler text</div>
+</body>
+</html>
diff --git a/tests/wpt/tests/css/css-fonts/test-synthetic-italic-4.html b/tests/wpt/tests/css/css-fonts/test-synthetic-italic-4.html
new file mode 100644
index 00000000000..fa1f815b421
--- /dev/null
+++ b/tests/wpt/tests/css/css-fonts/test-synthetic-italic-4.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>CSS Fonts: font-style: italic; with italic font face without explicit font style</title>
+ <meta charset="utf-8" />
+ <link rel="author" title="Max Ihlenfeldt" href="mailto:max@igalia.com" />
+ <link rel="help" href="https://drafts.csswg.org/css-fonts/#font-style-matching">
+ <link rel="mismatch" href="test-synthetic-italic-4-notref.html">
+ <meta name="assert" content="Italic text in an italic font face that was declared without an explicit font style is synthetically italicized.">
+ <style type="text/css">
+ @font-face {
+ font-family: "csstest-italic";
+ src: local("CSSTest Basic Italic");
+ }
+ div { font-size: 36px; }
+ span#verify { font-family: "CSSTest Verify"; }
+ div#test1 {
+ font-family: "csstest-italic";
+ }
+ div#test2 {
+ font-family: "csstest-italic";
+ font-style: italic;
+ }
+ </style>
+</head>
+<body>
+ <div><a href="http://www.w3.org/Style/CSS/Test/Fonts/">Test fonts</a> must be installed for this test: <span id="verify">FAIL</span></div>
+ <p>Test passes if the second line is more italic than the first:</p>
+ <div id="test1">Filler text</div>
+ <div id="test2">Filler text</div>
+</body>
+</html>
diff --git a/tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-004-ref.html b/tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-004-ref.html
new file mode 100644
index 00000000000..52e45c4f65f
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-004-ref.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<style>
+ body {
+ margin: 0px;
+ }
+ #current {
+ columns: 6;
+ column-gap: 2px;
+ column-rule-style: solid;
+ column-rule-width: 2px;
+ column-fill: auto;
+ height: 20px;
+ column-rule-color: hotpink;
+ width: 72px;
+ height: 20px;
+ }
+ .items {
+ background-color: lightgreen;
+ height: 20px
+ }
+</style>
+<body>
+ <div id="current">
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-004.html b/tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-004.html
new file mode 100644
index 00000000000..c5d1e3f99cc
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-004.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+ <title>column-rule-color declared with repeaters doesn't crash when recomputing</title>
+ <link rel="match" href="gap-decorations-003-ref.html">
+ <link rel="help" href="https://drafts.csswg.org/css-color-4/#resolving-other-colors">
+ <link rel="author" href="mailto:javiercon@microsoft.com">
+</head>
+<style>
+ body {
+ margin: 0px;
+ }
+ #current {
+ color: firebrick;
+ columns: 6;
+ column-gap: 2px;
+ column-rule-style: solid;
+ column-rule-width: 2px;
+ column-fill: auto;
+ height: 20px;
+ column-rule-color: gold;
+ width: 72px;
+ height: 20px;
+ }
+ .items {
+ background-color: lightgreen;
+ height: 20px
+ }
+</style>
+<body>
+ <div id="current">
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ </div>
+</body>
+<script>
+ // Use double requestAnimationFrame to remove need of setTimeout.
+ // Wait for the first frame to ensure that the style is computed.
+ requestAnimationFrame(() => {
+ // Wait for the second frame to ensure that the style is painted.
+ requestAnimationFrame(() => {
+ document.getElementById("current").style.columnRuleColor = "hotpink";
+ document.documentElement.classList.remove("reftest-wait");
+ });
+ });
+</script>
+</html>
diff --git a/tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-006-ref.html b/tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-006-ref.html
new file mode 100644
index 00000000000..09bef415d40
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/agnostic/gap-decorations-006-ref.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ display: flex;
+ width: 110px;
+ height: 110px;
+ column-gap: 10px;
+ row-gap: 10px;
+ flex-wrap: wrap;
+ }
+
+ .item {
+ background: skyblue;
+ height: 50px;
+ width: 50px;
+ margin: 0;
+ }
+
+ .row-gap {
+ position: absolute;
+ top: 50px;
+ background: green;
+ width: 110px;
+ height: 10px;
+ }
+
+ .column-gap {
+ position: absolute;
+ top: 0px;
+ left: 50px;
+ background: pink;
+ height: 110px;
+ width: 10px;
+ }
+
+</style>
+<div class="container">
+ <div class="item"></div>
+ <div class="item"></div>
+ <div class="item"></div>
+ <div class="item"></div>
+</div>
+<button id="btn">Set decorations</button>
+
+<div class="column-gap"></div>
+<div class="row-gap"></div>
diff --git a/tests/wpt/tests/css/css-gaps/flex/flex-gap-decorations-023.html b/tests/wpt/tests/css/css-gaps/flex/flex-gap-decorations-023.html
new file mode 100644
index 00000000000..9a7c429a1a1
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/flex/flex-gap-decorations-023.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: flex gaps are painted when going from no gap rule to a gap rule that would be visible.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="../agnostic/gap-decorations-006-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .flex-container {
+ height: 110px;
+ width: 110px;
+
+ display: flex;
+
+ column-gap: 10px;
+ row-gap: 10px;
+
+ flex-wrap: wrap;
+ }
+
+ .flex-item {
+ background: skyblue;
+ width: 50px;
+ }
+</style>
+<script>
+ function setup() {
+ const button = document.getElementById('btn');
+ button.click();
+ }
+
+ function setDecorations() {
+ const container = document.querySelector('.flex-container');
+ if (container) {
+ container.style.columnRuleStyle = 'solid';
+ container.style.columnRuleWidth = '10px';
+ container.style.columnRuleColor = 'pink';
+ container.style.rowRuleStyle = 'solid';
+ container.style.rowRuleWidth = '10px';
+ container.style.rowRuleColor = 'green';
+ }
+ }
+</script>
+
+<body onload="setup()">
+ <div class="flex-container">
+ <div class="flex-item"></div>
+ <div class="flex-item"></div>
+ <div class="flex-item"></div>
+ <div class="flex-item"></div>
+ </div>
+ <button onclick="setDecorations()" id="btn">Set decorations</button>
+</body>
diff --git a/tests/wpt/tests/css/css-gaps/flex/flex-gap-decorations-024.html b/tests/wpt/tests/css/css-gaps/flex/flex-gap-decorations-024.html
new file mode 100644
index 00000000000..66cb0e86062
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/flex/flex-gap-decorations-024.html
@@ -0,0 +1,38 @@
+
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: shorthands column rules with !important are painted and overriden correctly.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="../agnostic/gap-decorations-001-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+ .flex-container {
+ height: 110px;
+ width: 110px;
+ display: flex;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-rule: 10px solid pink !important;
+ row-rule-color: green;
+ row-rule-style: solid;
+ row-rule-width: 10px;
+ flex-wrap: wrap;
+ }
+ #container {
+ column-rule: 9px dotted blue;
+ }
+ .flex-item {
+ background: skyblue;
+ width: 50px;
+ }
+</style>
+<div class="flex-container" id="container">
+ <div class="flex-item"></div>
+ <div class="flex-item"></div>
+ <div class="flex-item"></div>
+ <div class="flex-item"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-039.html b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-039.html
new file mode 100644
index 00000000000..c03d482ac49
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-039.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: grid column gaps are painted with solid styling.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="../agnostic/gap-decorations-006-ref.html">
+<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .grid-container {
+ height: 110px;
+ width: 110px;
+
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+
+ column-gap: 10px;
+ row-gap: 10px;
+
+ column-rule-color: pink;
+ column-rule-style: solid;
+ column-rule-width: 10px;
+
+ row-rule-color: green;
+ row-rule-style: solid;
+ row-rule-width: 10px;
+ }
+
+ .grid-item {
+ background: skyblue;
+ }
+</style>
+<script>
+ function setup() {
+ const button = document.getElementById('btn');
+ button.click();
+ }
+
+ function setDecorations() {
+ const container = document.querySelector('.grid-container');
+ if (container) {
+ container.style.columnRuleStyle = 'solid';
+ container.style.columnRuleWidth = '10px';
+ container.style.columnRuleColor = 'pink';
+ container.style.rowRuleStyle = 'solid';
+ container.style.rowRuleWidth = '10px';
+ container.style.rowRuleColor = 'green';
+ }
+ }
+</script>
+
+<body onload="setup()">
+ <div class="grid-container">
+ <div class="grid-item"></div>
+ <div class="grid-item"></div>
+ <div class="grid-item"></div>
+ <div class="grid-item"></div>
+ </div>
+ <button onclick="setDecorations()" id="btn">Set decorations</button>
+</body>
diff --git a/tests/wpt/tests/css/css-gaps/multicol/multicol-gap-decorations-018-ref.html b/tests/wpt/tests/css/css-gaps/multicol/multicol-gap-decorations-018-ref.html
new file mode 100644
index 00000000000..521d3925062
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/multicol/multicol-gap-decorations-018-ref.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 130px;
+ column-gap: 10px;
+ display: flex;
+ }
+
+ .items {
+ background: rgb(96 139 168 / 0.2);
+ height: 130px;
+ margin: 0px;
+ width: 60px;
+ }
+
+ .row-gap {
+ position: absolute;
+ height: 10px;
+ width: 200px;
+ background: gold;
+ left: 2px;
+ top: 62px;
+ }
+
+ .column-gap {
+ position: absolute;
+ height: 130px;
+ width: 10px;
+ background: blue;
+ top: 2px;
+ }
+</style>
+
+<div class="container">
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+</div>
+<button onclick="setDecorations()" id="btn">Set decorations</button>
+<div class="column-gap" style="left:62px;"></div>
+<div class="column-gap" style="left:132px;"></div>
+<div class="row-gap"></div>
diff --git a/tests/wpt/tests/css/css-gaps/multicol/multicol-gap-decorations-019.html b/tests/wpt/tests/css/css-gaps/multicol/multicol-gap-decorations-019.html
new file mode 100644
index 00000000000..c4f81bb95ea
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/multicol/multicol-gap-decorations-019.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+ <title>column-rule-color declared with repeaters that depend on currentcolor should be recomputed when currentcolor changes</title>
+ <link rel="match" href="../agnostic/gap-decorations-003-ref.html">
+ <link rel="help" href="https://drafts.csswg.org/css-color-4/#resolving-other-colors">
+ <link rel="author" href="mailto:javiercon@microsoft.com">
+</head>
+<style>
+ body {
+ margin: 0px;
+ }
+
+ #current {
+ color: firebrick;
+ columns: 6;
+ column-gap: 2px;
+ column-rule-style: solid;
+ column-rule-width: 2px;
+ column-fill: auto;
+ height: 20px;
+ column-rule-color: repeat(auto, currentColor);
+
+ width: 72px;
+ height: 20px;
+ }
+
+ .items {
+ background-color: lightgreen;
+ height: 20px
+ }
+</style>
+</head>
+<body>
+ <div id="current">
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ <div class="items"></div>
+ </div>
+</body>
+<script>
+ // Use double requestAnimationFrame to remove need of setTimeout.
+ // Wait for the first frame to ensure that the style is computed.
+ requestAnimationFrame(() => {
+ // Wait for the second frame to ensure that the style is painted.
+ requestAnimationFrame(() => {
+ document.getElementById("current").style.color = "hotpink";
+ document.documentElement.classList.remove("reftest-wait");
+ });
+ });
+</script>
+</html>
diff --git a/tests/wpt/tests/css/css-gaps/multicol/multicol-gap-intersections-018.html b/tests/wpt/tests/css/css-gaps/multicol/multicol-gap-intersections-018.html
new file mode 100644
index 00000000000..b8f8e1619a0
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/multicol/multicol-gap-intersections-018.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<title>
+ CSS Gap Decorations: Multicolumn gap decorations that are added later are painted.
+</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+<link rel="match" href="multicol-gap-decorations-018-ref.html">
+<link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+<style>
+ body {
+ margin: 0px;
+ }
+
+ .container {
+ border: 2px solid rgb(96 139 168);
+ width: 200px;
+ height: 130px;
+ column-count: 3;
+ column-width: 60px;
+ column-height: 60px;
+ column-gap: 10px;
+ row-gap: 10px;
+ column-wrap: wrap;
+ }
+
+ p {
+ background: rgb(96 139 168 / 0.2);
+ height: 60px;
+ margin: 0px;
+ }
+</style>
+<script>
+ function setup() {
+ const button = document.getElementById('btn');
+ button.click();
+ }
+
+ function setDecorations() {
+ const container = document.querySelector('.container');
+ if (container) {
+ container.style.columnRuleStyle = 'solid';
+ container.style.columnRuleWidth = '10px';
+ container.style.columnRuleColor = 'blue';
+ container.style.rowRuleStyle = 'solid';
+ container.style.rowRuleWidth = '10px';
+ container.style.rowRuleColor = 'gold';
+ }
+ }
+</script>
+
+<body onload="setup()">
+ <div class="container">
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ <p></p>
+ </div>
+ <button onclick="setDecorations()" id="btn">Set decorations</button>
+</body>
diff --git a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-bidirectional-shorthands.html b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-bidirectional-shorthands.html
index 9ff3815c21f..2ace9f255fb 100644
--- a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-bidirectional-shorthands.html
+++ b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-bidirectional-shorthands.html
@@ -44,6 +44,11 @@
test(function() {
assert_equals(window.getComputedStyle(document.getElementById('target1')).getPropertyValue('rule-style'), 'solid');
}, "rule-style shorthand computed from longhand values");
+ test(function() {
+ assert_equals(window.getComputedStyle(document.getElementById('target1')).getPropertyValue('rule'), '10px solid rgb(0, 255, 0)');
+ }, "rule shorthand computed from longhand values");
+
+
test(function() {
assert_equals(window.getComputedStyle(document.getElementById('target2')).getPropertyValue('rule-color'), '');
@@ -54,6 +59,9 @@
test(function() {
assert_equals(window.getComputedStyle(document.getElementById('target2')).getPropertyValue('rule-style'), '');
}, "rule-style shorthand cannot be computed from longhand values so expect an empty string");
+ test(function() {
+ assert_equals(window.getComputedStyle(document.getElementById('target2')).getPropertyValue('rule'), '');
+ }, "rule shorthand cannot be computed from longhand values so expect an empty string");
</script>
</body>
</html>
diff --git a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-important.html b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-important.html
new file mode 100644
index 00000000000..76f3862533c
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-important.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>CSS GapDecorations: !important flag parsing</title>
+ <link rel="help" href="https://drafts.csswg.org/css-gaps-1/">
+ <link rel="author" title="Javier Contreras" href="mailto:javiercon@microsoft.com">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div id="target" style="display: flex; column-rule: 5px solid red !important"></div>
+</body>
+<script>
+ test(() => {
+ assert_equals(target.style.columnRuleStyle, 'solid');
+ assert_equals(target.style.columnRuleWidth, '5px');
+ assert_equals(target.style.columnRuleColor, 'red');
+ });
+</script>
+</html>
diff --git a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed.html b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed.html
index 7bb3e1858dd..63e108d2886 100644
--- a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed.html
+++ b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed.html
@@ -23,8 +23,7 @@
}
</style>
<script>
-// TODO(samomekarajr): Add `row-rule` to this test when implemented.
-const properties = ["column-rule",];
+const properties = ["column-rule", "row-rule", "rule"];
for (let property of properties) {
const currentcolor = "rgb(0, 255, 0)";
const mediumWidth = getComputedStyle(document.getElementById('reference')).columnRuleWidth; // e.g. 3px.
diff --git a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed-from-longhands.html b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-from-longhands.tentative.html
index 562c166e90b..ed7c9a317e6 100644
--- a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-computed-from-longhands.html
+++ b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-from-longhands.tentative.html
@@ -3,7 +3,8 @@
<meta charset="utf-8">
<title>CSS Gap Decorations: individual separate longhands form shorthand</title>
<link rel="help" href="https://drafts.csswg.org/css-multicol/#propdef-column-rule">
- <meta name="assert" content="Setting *-rule-width, *-rule-style, and *-rule-color results in the misaligned column-rule shorthand.">
+ <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/12201">
+ <meta name="assert" content="Setting *-rule-width, *-rule-style, and *-rule-color results in the misaligned *-rule shorthand.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
@@ -63,14 +64,26 @@ const testCases = [
},
];
-for (const {width, style, color, expected} of testCases) {
- let div = document.querySelector('#target');
+const rule_properties = {
+ 'column-rule': ['columnRuleWidth',
+ 'columnRuleStyle',
+ 'columnRuleColor'],
+ 'row-rule': ['rowRuleWidth',
+ 'rowRuleStyle',
+ 'rowRuleColor'],
+};
- div.style.columnRuleWidth = width;
- div.style.columnRuleStyle = style;
- div.style.columnRuleColor = color;
+for(rule_property in rule_properties) {
+ const [widthProperty, styleProperty, colorProperty] = rule_properties[rule_property];
+ for (const {width, style, color, expected} of testCases) {
+ let div = document.querySelector('#target');
+ div.style[widthProperty] = width;
+ div.style[styleProperty] = style;
+ div.style[colorProperty]= color;
test(() => {
- assert_equals(window.getComputedStyle(div).columnRule, expected);
- }, `column-rule computed from width: ${width}, style: ${style}, color: ${color}`);
+ assert_equals(window.getComputedStyle(div)[rule_property], expected);
+ assert_equals(div.style[rule_property], expected);
+ }, `${rule_property} computed from width: ${width}, style: ${style}, color: ${color}`);
+ }
}
</script>
diff --git a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-invalid.html b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-invalid.html
index f7c6b45b16d..bbc347cc79e 100644
--- a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-invalid.html
+++ b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-invalid.html
@@ -12,8 +12,7 @@
</head>
<body>
<script>
-// TODO(samomekarajr): Add `row-rule` and `rule` to this test.
-const properties = ["column-rule",];
+const properties = ["column-rule", "row-rule", "rule"];
for (let property of properties) {
test_invalid_value(property, "auto");
diff --git a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-roundtrip.tentative.html b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-roundtrip.tentative.html
new file mode 100644
index 00000000000..5955af8923c
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-roundtrip.tentative.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<head>
+ <meta charset="utf-8">
+ <title>CSS Gap Decorations: *rule properties round trips properly</title>
+ <link rel="help" href="https://drafts.csswg.org/css-multicol/#propdef-column-rule">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+ <div id="target"></div>
+<script>
+const rule_properties = ['column-rule', 'row-rule', 'rule']
+for(let rule_property of rule_properties) {
+ let div = document.querySelector('#target');
+ const computed_rule_serialization = window.getComputedStyle(div)[rule_property];
+ div.style[rule_property] = computed_rule_serialization;
+
+ test(() => {
+ assert_equals(computed_rule_serialization, div.style[rule_property]);
+ }, `${rule_property} round trips properly.`);
+}
+</script>
diff --git a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-valid.html b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-valid.html
new file mode 100644
index 00000000000..cc05cf3b9e6
--- /dev/null
+++ b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand-valid.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Gap Decorations: parsing column-rule with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-gaps-1/#propdef-column-rule">
+<link rel="author" title="Sam Davis Omekara Jr." href="mailto:samomekarajr@microsoft.com">
+<meta name="assert" content="column-rule supports the full grammar ' <gap-rule-or-repeat>#'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+
+const properties = ["column-rule", "row-rule", "rule"];
+for (let property of properties) {
+ // <gap-rule> = [<line-width> || <line-style> || <line-color>]
+ test_valid_value(property, "5px solid red");
+ test_valid_value(property, "solid 10px rgb(0, 0, 255)", "10px solid rgb(0, 0, 255)");
+ test_valid_value(property, "double");
+ test_valid_value(property, "blue 6px", "6px blue");
+ test_valid_value(property, "currentcolor hidden medium", "hidden");
+ test_valid_value(property, "currentcolor none medium", "medium");
+
+
+ // <gap-auto-repeat-rule> = repeat( auto , <gap-rule># )
+ test_valid_value(property, "repeat(auto, 5px solid green)");
+ test_valid_value(property, "repeat(auto, 5px solid yellow, 10px dotted blue)");
+ test_valid_value(property, "repeat(auto, 5px solid purple, dotted blue, 15px double green)");
+ test_valid_value(property, "repeat(auto, 6px blue, 5px solid red)");
+
+ // <gap-repeat-rule> = repeat( <integer [1,∞]> , <gap-rule># )
+ test_valid_value(property, "repeat(4, 15px dotted pink)");
+ test_valid_value(property, "repeat(3, 8px ridge red, 20px dotted green)");
+ test_valid_value(property, "repeat(1, 15px ridge yellow, 10px dotted blue, 15px double green)");
+ test_valid_value(property, "repeat(4, blue, 5px red)");
+ test_valid_value(property, "repeat(3, 16px, thin dashed purple, 10px dotted)");
+ test_valid_value(property, "repeat(4, 10px solid red)", "repeat(4, 10px solid red)");
+
+ // <gap-rule-list> = <gap-rule-or-repeat>#
+ // <gap-rule-or-repeat> = <gap-rule> | <gap-repeat-rule>
+ test_valid_value(property, "thick, dashed, hotpink");
+ test_valid_value(property, "5px double salmon, repeat(4, 5px ridge red)");
+ test_valid_value(property, "15px dashed skyblue, repeat(3, 3px solid red, 10px dotted blue)");
+ test_valid_value(property, "repeat(1, 5px solid gray, 10px dotted blue, 15px double green), 5px solid red, repeat(4, 6px, 5px solid red)");
+ test_valid_value(property, "repeat(3, 16px lime, 5px solid red, 10px dotted), repeat(4, 5px solid red)");
+ test_valid_value(property, "repeat(4, 5px solid red), repeat(3, 5px solid red, 10px dotted blue)");
+
+ // <gap-auto-rule-list> = <gap-rule-or-repeat>#? ,
+ // <gap-auto-repeat-rule> ,
+ // <gap-rule-or-repeat>#?
+ test_valid_value(property, "repeat(auto, 5px solid red), thin dotted green, 10px dotted blue, 15px double green");
+ test_valid_value(property, "5px solid red, repeat(auto, 5px solid red), 10px dotted blue");
+ test_valid_value(property, "10px dotted blue, repeat(4, blue, 5px yellow), repeat(auto, 5px solid red)");
+}
+</script>
+</body>
+</html>
diff --git a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand.html b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand.html
index 420b6757e7f..c6c2a375167 100644
--- a/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand.html
+++ b/tests/wpt/tests/css/css-gaps/parsing/gap-decorations-rule-shorthand.html
@@ -11,116 +11,184 @@
</head>
<body>
<script>
-// TODO(samomekarajr): Add `row-rule` to this test.
const rule_properties = {
'column-rule': ['column-rule-width',
'column-rule-style',
'column-rule-color'],
+ 'row-rule': ['row-rule-width',
+ 'row-rule-style',
+ 'row-rule-color'],
+ 'rule': [
+ ['column-rule-width', 'row-rule-width'],
+ ['column-rule-style', 'row-rule-style'],
+ ['column-rule-color', 'row-rule-color'],
+ ]
+
};
-for(rule_property in rule_properties) {
- const [width, style, color] = rule_properties[rule_property];
+const testCases = [
// <gap-rule> = [<line-width> || <line-style> || <line-color>].
- test_shorthand_value(rule_property, '5px solid red', {
- [width]: '5px',
- [style]: 'solid',
- [color]: 'red'
- });
-
- test_shorthand_value(rule_property, 'double', {
- [width]: 'medium',
- [style]: 'double',
- [color]: 'currentcolor'
- });
-
- test_shorthand_value(rule_property, 'blue 10px', {
- [width]: '10px',
- [style]: 'none',
- [color]: 'blue'
- });
+ {
+ input: '5px solid red',
+ expected: {
+ width: '5px',
+ style: 'solid',
+ color: 'red'
+ }
+ },
+ {
+ input: 'double',
+ expected: {
+ width: 'medium',
+ style: 'double',
+ color: 'currentcolor'
+ }
+ },
+ {
+ input: 'blue 10px',
+ expected: {
+ width: '10px',
+ style: 'none',
+ color: 'blue'
+ }
+ },
- // <gap-auto-repeat-rule> = repeat( auto , <gap-rule># ).
- test_shorthand_value(rule_property, 'repeat(auto, 5px solid green)', {
- [width]: 'repeat(auto, 5px)',
- [style]: 'repeat(auto, solid)',
- [color]: 'repeat(auto, green)'
- });
+ // <gap-auto-repeat-rule> = repeat(auto, <gap-rule># ).
+ {
+ input: 'repeat(auto, 5px solid green)',
+ expected: {
+ width: 'repeat(auto, 5px)',
+ style: 'repeat(auto, solid)',
+ color: 'repeat(auto, green)'
+ }
+ },
+ {
+ input: 'repeat(auto, 5px solid yellow, 10px dotted blue)',
+ expected: {
+ width: 'repeat(auto, 5px 10px)',
+ style: 'repeat(auto, solid dotted)',
+ color: 'repeat(auto, yellow blue)'
+ }
+ },
+ {
+ input: 'repeat(auto, blue 6px, 5px solid red)',
+ expected: {
+ width: 'repeat(auto, 6px 5px)',
+ style: 'repeat(auto, none solid)',
+ color: 'repeat(auto, blue red)'
+ }
+ },
- test_shorthand_value(rule_property, 'repeat(auto, 5px solid yellow, 10px dotted blue)', {
- [width]: 'repeat(auto, 5px 10px)',
- [style]: 'repeat(auto, solid dotted)',
- [color]: 'repeat(auto, yellow blue)'
- });
-
- test_shorthand_value(rule_property, 'repeat(auto, blue 6px, 5px solid red)', {
- [width]: 'repeat(auto, 6px 5px)',
- [style]: 'repeat(auto, none solid)',
- [color]: 'repeat(auto, blue red)'
- });
-
- // <gap-repeat-rule> = repeat( <integer [1,∞]> , <gap-rule># ).
- test_shorthand_value(rule_property, 'repeat(4, 15px dotted pink)', {
- [width]: 'repeat(4, 15px)',
- [style]: 'repeat(4, dotted)',
- [color]: 'repeat(4, pink)'
- });
- test_shorthand_value(rule_property, 'repeat(1, 15px ridge yellow, 10px dotted blue, 15px double green)', {
- [width]: 'repeat(1, 15px 10px 15px)',
- [style]: 'repeat(1, ridge dotted double)',
- [color]: 'repeat(1, yellow blue green)'
- });
- test_shorthand_value(rule_property, 'repeat(3, lime 16px, dashed purple, 10px dotted)', {
- [width]: 'repeat(3, 16px medium 10px)',
- [style]: 'repeat(3, none dashed dotted)',
- [color]: 'repeat(3, lime purple currentcolor)'
- });
+ // <gap-repeat-rule> = repeat(<integer [1,∞]>, <gap-rule># ).
+ {
+ input: 'repeat(4, 15px dotted pink)',
+ expected: {
+ width: 'repeat(4, 15px)',
+ style: 'repeat(4, dotted)',
+ color: 'repeat(4, pink)'
+ }
+ },
+ {
+ input: 'repeat(1, 15px ridge yellow, 10px dotted blue, 15px double green)',
+ expected: {
+ width: 'repeat(1, 15px 10px 15px)',
+ style: 'repeat(1, ridge dotted double)',
+ color: 'repeat(1, yellow blue green)'
+ }
+ },
+ {
+ input: 'repeat(3, lime 16px, dashed purple, 10px dotted)',
+ expected: {
+ width: 'repeat(3, 16px medium 10px)',
+ style: 'repeat(3, none dashed dotted)',
+ color: 'repeat(3, lime purple currentcolor)'
+ }
+ },
// <gap-rule-list> = <gap-rule-or-repeat>#.
// <gap-rule-or-repeat> = <gap-rule> | <gap-repeat-rule>.
- test_shorthand_value(rule_property, 'thin, dashed, hotpink', {
- [width]: 'thin medium medium',
- [style]: 'none dashed none',
- [color]: 'currentcolor currentcolor hotpink'
- });
- test_shorthand_value(rule_property, '5px double salmon, repeat(4, 5px ridge red)', {
- [width]: '5px repeat(4, 5px)',
- [style]: 'double repeat(4, ridge)',
- [color]: 'salmon repeat(4, red)'
- });
- test_shorthand_value(rule_property,
- 'repeat(2, dashed gray, 10px blue dotted, 20px double), 5px solid red, repeat(4, blue 6px, 5px solid white)', {
- [width]: 'repeat(2, medium 10px 20px) 5px repeat(4, 6px 5px)',
- [style]: 'repeat(2, dashed dotted double) solid repeat(4, none solid)',
- [color]: 'repeat(2, gray blue currentcolor) red repeat(4, blue white)'
- });
- test_shorthand_value(rule_property, 'repeat(4, thick hidden skyblue), repeat(3, 5px solid red, 10px dotted)', {
- [width]: 'repeat(4, thick) repeat(3, 5px 10px)',
- [style]: 'repeat(4, hidden) repeat(3, solid dotted)',
- [color]: 'repeat(4, skyblue) repeat(3, red currentcolor)'
- });
+ {
+ input: 'thin, dashed, hotpink',
+ expected: {
+ width: 'thin medium medium',
+ style: 'none dashed none',
+ color: 'currentcolor currentcolor hotpink'
+ }
+ },
+ {
+ input: '5px double salmon, repeat(4, 5px ridge red)',
+ expected: {
+ width: '5px repeat(4, 5px)',
+ style: 'double repeat(4, ridge)',
+ color: 'salmon repeat(4, red)'
+ }
+ },
+ {
+ input: 'repeat(2, dashed gray, 10px blue dotted, 20px double), 5px solid red, repeat(4, blue 6px, 5px solid white)',
+ expected: {
+ width: 'repeat(2, medium 10px 20px) 5px repeat(4, 6px 5px)',
+ style: 'repeat(2, dashed dotted double) solid repeat(4, none solid)',
+ color: 'repeat(2, gray blue currentcolor) red repeat(4, blue white)'
+ }
+ },
+ {
+ input: 'repeat(4, thick hidden skyblue), repeat(3, 5px solid red, 10px dotted)',
+ expected: {
+ width: 'repeat(4, thick) repeat(3, 5px 10px)',
+ style: 'repeat(4, hidden) repeat(3, solid dotted)',
+ color: 'repeat(4, skyblue) repeat(3, red currentcolor)'
+ }
+ },
// <gap-auto-rule-list> = <gap-rule-or-repeat>#? ,
// <gap-auto-repeat-rule> ,
// <gap-rule-or-repeat>#?.
- test_shorthand_value(rule_property,
- 'repeat(auto, 10px solid red), medium dotted green, repeat(3, thick dashed blue, 15px double green)', {
- [width]: 'repeat(auto, 10px) medium repeat(3, thick 15px)',
- [style]: 'repeat(auto, solid) dotted repeat(3, dashed double)',
- [color]: 'repeat(auto, red) green repeat(3, blue green)'
- });
+ {
+ input: 'repeat(auto, 10px solid red), medium dotted green, repeat(3, thick dashed blue, 15px double green)',
+ expected: {
+ width: 'repeat(auto, 10px) medium repeat(3, thick 15px)',
+ style: 'repeat(auto, solid) dotted repeat(3, dashed double)',
+ color: 'repeat(auto, red) green repeat(3, blue green)'
+ }
+ },
+ {
+ input: 'ridge red, repeat(auto, 5px solid green), 10px dotted blue',
+ expected: {
+ width: 'medium repeat(auto, 5px) 10px',
+ style: 'ridge repeat(auto, solid) dotted',
+ color: 'red repeat(auto, green) blue'
+ }
+ },
+ {
+ input: '10px dotted salmon, repeat(4, thin blue, hidden 5px purple), repeat(auto, 5px solid red, teal)',
+ expected: {
+ width: '10px repeat(4, thin 5px) repeat(auto, 5px medium)',
+ style: 'dotted repeat(4, none hidden) repeat(auto, solid none)',
+ color: 'salmon repeat(4, blue purple) repeat(auto, red teal)'
+ }
+ } ];
- test_shorthand_value(rule_property, 'ridge red, repeat(auto, 5px solid green), 10px dotted blue', {
- [width]: 'medium repeat(auto, 5px) 10px',
- [style]: 'ridge repeat(auto, solid) dotted',
- [color]: 'red repeat(auto, green) blue'
- });
+for(rule_property in rule_properties) {
+ const [width, style, color] = rule_properties[rule_property];
- test_shorthand_value(rule_property,
- '10px dotted salmon, repeat(4, thin blue, hidden 5px purple), repeat(auto, 5px solid red, teal)', {
- [width]: '10px repeat(4, thin 5px) repeat(auto, 5px medium)',
- [style]: 'dotted repeat(4, none hidden) repeat(auto, solid none)',
- [color]: 'salmon repeat(4, blue purple) repeat(auto, red teal)'
- });
+ for (const { input, expected } of testCases) {
+ if (rule_property === 'rule') {
+ test_shorthand_value(rule_property, input, {
+ [width[0]]: expected.width,
+ [width[1]]: expected.width,
+ [style[0]]: expected.style,
+ [style[1]]: expected.style,
+ [color[0]]: expected.color,
+ [color[1]]: expected.color
+ });
+ } else {
+ test_shorthand_value(rule_property, input, {
+ [width]: expected.width,
+ [style]: expected.style,
+ [color]: expected.color
+ });
+ }
+ }
}
</script>
</body>
diff --git a/tests/wpt/tests/css/css-grid/grid-extrinsically-sized-mutations.html b/tests/wpt/tests/css/css-grid/grid-extrinsically-sized-mutations.html
index 75600046e82..ea9eb7ca242 100644
--- a/tests/wpt/tests/css/css-grid/grid-extrinsically-sized-mutations.html
+++ b/tests/wpt/tests/css/css-grid/grid-extrinsically-sized-mutations.html
@@ -105,17 +105,21 @@ function mutateContent() {
</div>
</body>
<script>
-document.body.offsetHeight;
-mutateContent();
-document.body.offsetHeight;
+setup({ explicit_done: true });
+document.fonts.ready.then(() => {
+ document.body.offsetHeight;
+ mutateContent();
+ document.body.offsetHeight;
-let tests = document.querySelectorAll(".test");
-tests.forEach((element) => {
- test(function() {
- let expectedHeight = element.getAttribute("data-expected-height");
- assert_equals(element.offsetHeight, Number(expectedHeight), "height");
+ let tests = document.querySelectorAll(".test");
+ tests.forEach((element) => {
+ test(function() {
+ let expectedHeight = element.getAttribute("data-expected-height");
+ assert_equals(element.offsetHeight, Number(expectedHeight), "height");
+ });
});
-});
+ done();
+})
</script>
</html>
diff --git a/tests/wpt/tests/css/css-images/tiled-gradients.html b/tests/wpt/tests/css/css-images/tiled-gradients.html
index 46cc8426481..b41dd70c9a9 100644
--- a/tests/wpt/tests/css/css-images/tiled-gradients.html
+++ b/tests/wpt/tests/css/css-images/tiled-gradients.html
@@ -1,17 +1,22 @@
<!doctype html>
-<meta charset="utf-8">
-<title>Eight Red Triangles on White Ground (with gradients)</title>
-<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#propdef-background-size">
-<meta name="assert" content="Gradients are correctly repeated.">
-<meta name="fuzzy" content="maxDifference=0-1;totalPixels=0-40000">
-<link rel="match" href="tiled-gradients-ref.html">
-<style>
- #gradient {
- width: 400px;
- height: 200px;
- background-size: 25% 50%;
- background-image: linear-gradient(to bottom left, red 50%, transparent 50%);
- }
-</style>
-
-<div id="gradient"></div> \ No newline at end of file
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Eight Red Triangles on White Ground (with gradients)</title>
+ <link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#propdef-background-size">
+ <meta name="assert" content="Gradients are correctly repeated.">
+ <meta name="fuzzy" content="0-255; 0-564">
+ <link rel="match" href="tiled-gradients-ref.html">
+ <style>
+ #gradient {
+ width: 400px;
+ height: 200px;
+ background-size: 25% 50%;
+ background-image: linear-gradient(to bottom left, red 50%, transparent 50%);
+ }
+ </style>
+ </head>
+ <body>
+ <div id="gradient"></div>
+ </body>
+</html>
diff --git a/tests/wpt/tests/css/css-multicol/getclientrects-000.html b/tests/wpt/tests/css/css-multicol/getclientrects-000.html
index be11ba99493..0464b69fed5 100644
--- a/tests/wpt/tests/css/css-multicol/getclientrects-000.html
+++ b/tests/wpt/tests/css/css-multicol/getclientrects-000.html
@@ -65,7 +65,10 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
- test(()=> {
+ setup({ explicit_done: true });
+
+ document.fonts.ready.then(() => {
+ test(()=> {
var span = document.querySelector("#horizontalTbLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -77,9 +80,9 @@
assert_equals(rects[2].top, 70);
assert_equals(rects[3].left, 300);
assert_equals(rects[3].top, 50);
- }, "horizontal-tb ltr");
+ }, "horizontal-tb ltr");
- test(()=> {
+ test(()=> {
var span = document.querySelector("#verticalLrLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -91,9 +94,9 @@
assert_equals(rects[2].top, 150);
assert_equals(rects[3].left, 100);
assert_equals(rects[3].top, 250);
- }, "vertical-lr ltr");
+ }, "vertical-lr ltr");
- test(()=> {
+ test(()=> {
var span = document.querySelector("#verticalRlLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -105,8 +108,9 @@
assert_equals(rects[2].top, 150);
assert_equals(rects[3].left, 120);
assert_equals(rects[3].top, 250);
- }, "vertical-rl ltr");
- test(()=> {
+ }, "vertical-rl ltr");
+
+ test(()=> {
var span = document.querySelector("#horizontalTbRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -118,8 +122,9 @@
assert_equals(rects[2].top, 70);
assert_equals(rects[3].left, 110);
assert_equals(rects[3].top, 50);
- }, "horizontal-tb rtl");
- test(()=> {
+ }, "horizontal-tb rtl");
+
+ test(()=> {
var span = document.querySelector("#verticalLrRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -131,8 +136,9 @@
assert_equals(rects[2].top, 160);
assert_equals(rects[3].left, 100);
assert_equals(rects[3].top, 60);
- }, "vertical-lr rtl");
- test(()=> {
+ }, "vertical-lr rtl");
+
+ test(()=> {
var span = document.querySelector("#verticalRlRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -144,5 +150,8 @@
assert_equals(rects[2].top, 160);
assert_equals(rects[3].left, 120);
assert_equals(rects[3].top, 60);
- }, "vertical-rl rtl");
+ }, "vertical-rl rtl");
+
+ done();
+ });
</script>
diff --git a/tests/wpt/tests/css/css-multicol/getclientrects-001.html b/tests/wpt/tests/css/css-multicol/getclientrects-001.html
index 48a31d901fa..62a79d630d9 100644
--- a/tests/wpt/tests/css/css-multicol/getclientrects-001.html
+++ b/tests/wpt/tests/css/css-multicol/getclientrects-001.html
@@ -102,7 +102,10 @@
const GAP = 10;
const TEXT_SIZE = 80;
- test(()=> {
+ setup({ explicit_done: true });
+
+ document.fonts.ready.then(() => {
+ test(()=> {
var span = document.querySelector("#horizontalTbLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -114,9 +117,9 @@
assert_equals(rects[2].top, 70);
assert_equals(rects[3].left, 300);
assert_equals(rects[3].top, 50);
- }, "horizontal-tb ltr");
+ }, "horizontal-tb ltr");
- test(()=> {
+ test(()=> {
var span = document.querySelector("#verticalLrLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -128,9 +131,9 @@
assert_equals(rects[2].top, 150);
assert_equals(rects[3].left, 100);
assert_equals(rects[3].top, 250);
- }, "vertical-lr ltr");
+ }, "vertical-lr ltr");
- test(()=> {
+ test(()=> {
var span = document.querySelector("#verticalRlLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -142,9 +145,9 @@
assert_equals(rects[2].top, 150);
assert_equals(rects[3].left, 120);
assert_equals(rects[3].top, 250);
- }, "vertical-rl ltr");
+ }, "vertical-rl ltr");
- test(()=> {
+ test(()=> {
var span = document.querySelector("#sidewaysLrLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -156,9 +159,9 @@
assert_equals(rects[2].top, TOP + COLUMN * 2 + GAP - TEXT_SIZE);
assert_equals(rects[3].left, LEFT);
assert_equals(rects[3].top, TOP + COLUMN - TEXT_SIZE);
- }, "sideways-lr ltr");
+ }, "sideways-lr ltr");
- test(()=> {
+ test(()=> {
var span = document.querySelector("#sidewaysRlLtr span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -170,9 +173,9 @@
assert_equals(rects[2].top, TOP + COLUMN + GAP);
assert_equals(rects[3].left, LEFT + LINE);
assert_equals(rects[3].top, TOP + COLUMN * 2 + GAP * 2);
- }, "sideways-rl ltr");
+ }, "sideways-rl ltr");
- test(()=> {
+ test(()=> {
var span = document.querySelector("#horizontalTbRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -184,8 +187,9 @@
assert_equals(rects[2].top, 70);
assert_equals(rects[3].left, 110);
assert_equals(rects[3].top, 50);
- }, "horizontal-tb rtl");
- test(()=> {
+ }, "horizontal-tb rtl");
+
+ test(()=> {
var span = document.querySelector("#verticalLrRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -197,8 +201,9 @@
assert_equals(rects[2].top, 160);
assert_equals(rects[3].left, 100);
assert_equals(rects[3].top, 60);
- }, "vertical-lr rtl");
- test(()=> {
+ }, "vertical-lr rtl");
+
+ test(()=> {
var span = document.querySelector("#verticalRlRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -210,9 +215,9 @@
assert_equals(rects[2].top, 160);
assert_equals(rects[3].left, 120);
assert_equals(rects[3].top, 60);
- }, "vertical-rl rtl");
+ }, "vertical-rl rtl");
- test(()=> {
+ test(()=> {
var span = document.querySelector("#sidewaysLrRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -224,9 +229,9 @@
assert_equals(rects[2].top, TOP + COLUMN + GAP);
assert_equals(rects[3].left, LEFT);
assert_equals(rects[3].top, TOP + COLUMN + GAP + COLUMN + GAP);
- }, "sideways-lr rtl");
+ }, "sideways-lr rtl");
- test(()=> {
+ test(()=> {
var span = document.querySelector("#sidewaysRlRtl span");
var rects = span.getClientRects();
assert_equals(rects.length, 4);
@@ -238,5 +243,8 @@
assert_equals(rects[2].top, TOP + COLUMN * 2 + GAP - TEXT_SIZE);
assert_equals(rects[3].left, LEFT + LINE);
assert_equals(rects[3].top, TOP + COLUMN - TEXT_SIZE);
- }, "sideways-rl rtl");
+ }, "sideways-rl rtl");
+
+ done();
+ });
</script>
diff --git a/tests/wpt/tests/css/css-multicol/offsetProps-001.html b/tests/wpt/tests/css/css-multicol/offsetProps-001.html
index a592c5a88d7..d9747bfd10c 100644
--- a/tests/wpt/tests/css/css-multicol/offsetProps-001.html
+++ b/tests/wpt/tests/css/css-multicol/offsetProps-001.html
@@ -22,20 +22,28 @@
</span>
</div>
<script>
- test(()=> {
+setup({ explicit_done: true });
+document.fonts.ready.then(() => {
+ test(() => {
assert_equals(outer.offsetWidth, 292);
assert_equals(outer.offsetHeight, 40);
}, "outer");
- test(()=> {
+
+ test(() => {
assert_equals(middle.offsetWidth, 150);
assert_equals(middle.offsetHeight, 40);
}, "middle");
- test(()=> {
+
+ test(() => {
assert_equals(inner1.offsetWidth, 64);
assert_equals(inner1.offsetHeight, 24);
}, "inner1");
- test(()=> {
+
+ test(() => {
assert_equals(inner2.offsetWidth, 110);
assert_equals(inner2.offsetHeight, 40);
}, "inner2");
+
+ done();
+});
</script>
diff --git a/tests/wpt/tests/css/css-multicol/parsing/column-rule-computed.html b/tests/wpt/tests/css/css-multicol/parsing/column-rule-computed.html
index 96ba734d894..22ed11c569f 100644
--- a/tests/wpt/tests/css/css-multicol/parsing/column-rule-computed.html
+++ b/tests/wpt/tests/css/css-multicol/parsing/column-rule-computed.html
@@ -25,9 +25,9 @@
const currentColor = 'rgb(0, 255, 0)';
const mediumWidth = getComputedStyle(document.getElementById('reference')).columnRuleWidth; // e.g. 3px
-test_computed_value("column-rule", "10px", "0px none " + currentColor);
+test_computed_value("column-rule", "10px", "0px " + currentColor);
test_computed_value("column-rule", "dotted", mediumWidth + " dotted " + currentColor);
-test_computed_value("column-rule", "0px none rgb(255, 0, 255)");
+test_computed_value("column-rule", "0px none rgb(255, 0, 255)", "0px rgb(255, 0, 255)");
test_computed_value("column-rule", "10px dotted rgb(255, 0, 255)");
test_computed_value("column-rule", "medium hidden currentcolor", "0px hidden " + currentColor);
diff --git a/tests/wpt/tests/css/css-properties-values-api/registered-property-ident-function.html b/tests/wpt/tests/css/css-properties-values-api/registered-property-ident-function.html
new file mode 100644
index 00000000000..343e472a814
--- /dev/null
+++ b/tests/wpt/tests/css/css-properties-values-api/registered-property-ident-function.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<title>CSS Properties Values API: Registered custom properties with ident()</title>
+<link rel="help" href="https://drafts.csswg.org/css-values-5/#ident">
+<link rel="help" href="https://drafts.csswg.org/css-properties-values-api-1">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ @property --ident {
+ syntax: "<custom-ident>";
+ inherits: true;
+ initial-value: none;
+ }
+</style>
+<div id=target></div>
+<script>
+ let actual_ident = 'ident("--myident" calc(42 * sign(1em - 1px)))';
+ let expected_ident = '--myident42';
+
+ test((t) => {
+ t.add_cleanup(() => { target.style = ''; })
+ target.style.setProperty('--ident', actual_ident);
+ assert_equals(getComputedStyle(target).getPropertyValue('--ident'),
+ expected_ident);
+ }, 'The ident() function is resolved in a registered custom property');
+</script>
diff --git a/tests/wpt/tests/css/css-ruby/line-spacing.html b/tests/wpt/tests/css/css-ruby/line-spacing.html
index 4854e984c44..51f00c7dcbb 100644
--- a/tests/wpt/tests/css/css-ruby/line-spacing.html
+++ b/tests/wpt/tests/css/css-ruby/line-spacing.html
@@ -23,11 +23,17 @@ body > div {
text-emphasis: 'x';
text-emphasis-position: under left;
}
+
+#log {
+ font-family: sans-serif;
+}
</style>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
+setup({ explicit_done: true });
+
function renderRuby(source) {
document.body.insertAdjacentHTML('afterbegin', source);
const firstChild = document.body.firstChild;
@@ -45,120 +51,124 @@ function renderRubyAndGetBoxes(source) {
};
}
-test(() => {
- const {container, ruby, rt} = renderRubyAndGetBoxes(
- '<div><ruby>base<rt>annotation</rt></ruby></div>');
- assert_true(container.top <= rt.top);
- assert_true(rt.top < ruby.top);
-}, 'Over ruby doesn\'t overflow the block');
-
-test(() => {
- const {container, ruby, rt} = renderRubyAndGetBoxes(
- '<div>before <span style="vertical-align:32px;">' +
- '<ruby>base<rt>annotation</rt></ruby>' +
- '</span> after</div>');
- assert_true(container.top <= rt.top);
- assert_true(rt.top < ruby.top);
-}, 'Over ruby + vertical-align doesn\'t overflow the block');
-
-test(() => {
- const {container, ruby, rt} = renderRubyAndGetBoxes(
- '<div><ruby style="ruby-position:under">base<rt>annotation</rt></ruby></div>');
- assert_true(container.bottom >= rt.bottom);
- assert_true(rt.bottom > ruby.bottom);
-}, 'Under ruby doesn\'t overflow the block');
-
-test(() => {
- const {container, ruby, rt} = renderRubyAndGetBoxes(
- '<div>before <ruby style="vertical-align:-32px; ruby-position:under">' +
- 'base<rt>annotation</rt></ruby> after</div>');
- assert_true(container.bottom >= rt.bottom);
- assert_true(rt.bottom > ruby.bottom);
-}, 'Under ruby + vertical-align doesn\'t overflow the block');
-
-test(() => {
- const {container, ruby, rt} = renderRuby(
- '<div><ruby style="ruby-position:under">base<rt>annotation</rt></ruby>' +
- '<div>n</div></div>');
- const nextBlockBox = container.querySelector('div').getBoundingClientRect();
- const rtBox = rt.getBoundingClientRect();
- assert_greater_than_equal(nextBlockBox.top, rtBox.bottom);
-}, 'Under ruby doesn\'t overwrap with the next block');
-
-test(() => {
- const {container, ruby, rt} = renderRuby(
- '<div><span>before</span><br><ruby>base<rt style="font-size:16px"' +
- '>annotation</rt></ruby></div>');
- const firstLine = container.querySelector('span').getBoundingClientRect();
- assert_true(ruby.getBoundingClientRect().top - firstLine.bottom > 1);
-}, 'Expand inter-lines spacing');
-
-test(() => {
- const {container, ruby, rt} = renderRuby(
- '<div style="line-height:1.5;">' +
- '<span>First line</span><br>' +
- '<span>Second line</span><br>' +
- '<ruby>base<rt style="font-size:50%">' +
- 'annotation</rt></ruby></div>');
- const firstLine = container.querySelector('span').getBoundingClientRect();
- const secondLine = container.querySelectorAll('span')[1].getBoundingClientRect();
- const rubyLine = ruby.getBoundingClientRect();
- assert_approx_equals(secondLine.top - firstLine.top, rubyLine.top - secondLine.top, 1);
-}, 'Consume half-leading of the previous line');
-
-test(() => {
- const {container, ruby, rt} = renderRuby(
- '<div style="line-height:1.5;">' +
- '<span>First line</span><br>' +
- '<span class="under_emp">Second line</span><br>' +
- '<ruby>base<rt style="font-size:50%">' +
- 'annotation</rt></ruby></div>');
- const firstLine = container.querySelector('span').getBoundingClientRect();
- const secondLine = container.querySelectorAll('span')[1].getBoundingClientRect();
- const rubyLine = ruby.getBoundingClientRect();
- const RUBY_EMPHASIS_SIZE = 8;
- assert_greater_than_equal(rubyLine.top - secondLine.top,
- secondLine.top - firstLine.top + RUBY_EMPHASIS_SIZE);
-}, 'Don\'t Consume half-leading of the previous line with text-emphasis');
-
-test(() => {
- const {container, ruby, rt} = renderRuby(
- '<div style="line-height:1.5;">' +
- '<span>First line</span><br>' +
- '<ruby style="ruby-position:under">base<rt style="font-size:50%">' +
- 'annotation</rt></ruby><br>' +
- '<span>Third line</span></div>');
- const firstLine = container.querySelector('span').getBoundingClientRect();
- const rubyLine = ruby.getBoundingClientRect();
- const thirdLine = container.querySelectorAll('span')[1].getBoundingClientRect();
- assert_approx_equals(rubyLine.top - firstLine.top, thirdLine.top - rubyLine.top, 1);
-}, 'Consume half-leading of the next line');
-
-test(() => {
- const {container, ruby, rt} = renderRuby(
- '<div style="line-height:1.5;">' +
- '<span>First line</span><br>' +
- '<ruby style="ruby-position:under">base<rt style="font-size:50%">' +
- 'annotation</rt></ruby><br>' +
- '<span class="over_emp">Third line</span>' +
- '</div>');
- const firstLine = container.querySelector('span').getBoundingClientRect();
- const rubyLine = ruby.getBoundingClientRect();
- const thirdLine = container.querySelectorAll('span')[1].getBoundingClientRect();
- const RUBY_EMPHASIS_SIZE = 8;
- assert_greater_than_equal(thirdLine.top - rubyLine.top,
- rubyLine.top - firstLine.top + RUBY_EMPHASIS_SIZE);
-}, 'Don\'t Consume half-leading of the next line with text-emphasis');
-
-// crbug.com/336592423
-test(() => {
- const {container, ruby, rt} = renderRuby(
- '<div style="line-height:1;">' +
- '<span style="display:inline-block; width:1em; height:4em; vertical-align:top"></span><br>' +
- '<ruby>base<rt>annotation</rt></ruby></div>');
- const firstLine = container.querySelector('span').getBoundingClientRect();
- const rtBox = rt.getBoundingClientRect();
- assert_greater_than_equal(rtBox.top, firstLine.bottom);
-}, 'An atomic-inline should not overlap with an annotation in the next line');
+document.fonts.load("16px Ahem").then(() => {
+ test(() => {
+ const {container, ruby, rt} = renderRubyAndGetBoxes(
+ '<div><ruby>base<rt>annotation</rt></ruby></div>');
+ assert_true(container.top <= rt.top);
+ assert_true(rt.top < ruby.top);
+ }, 'Over ruby doesn\'t overflow the block');
+
+ test(() => {
+ const {container, ruby, rt} = renderRubyAndGetBoxes(
+ '<div>before <span style="vertical-align:32px;">' +
+ '<ruby>base<rt>annotation</rt></ruby>' +
+ '</span> after</div>');
+ assert_true(container.top <= rt.top);
+ assert_true(rt.top < ruby.top);
+ }, 'Over ruby + vertical-align doesn\'t overflow the block');
+
+ test(() => {
+ const {container, ruby, rt} = renderRubyAndGetBoxes(
+ '<div><ruby style="ruby-position:under">base<rt>annotation</rt></ruby></div>');
+ assert_true(container.bottom >= rt.bottom);
+ assert_true(rt.bottom > ruby.bottom);
+ }, 'Under ruby doesn\'t overflow the block');
+
+ test(() => {
+ const {container, ruby, rt} = renderRubyAndGetBoxes(
+ '<div>before <ruby style="vertical-align:-32px; ruby-position:under">' +
+ 'base<rt>annotation</rt></ruby> after</div>');
+ assert_true(container.bottom >= rt.bottom);
+ assert_true(rt.bottom > ruby.bottom);
+ }, 'Under ruby + vertical-align doesn\'t overflow the block');
+
+ test(() => {
+ const {container, ruby, rt} = renderRuby(
+ '<div><ruby style="ruby-position:under">base<rt>annotation</rt></ruby>' +
+ '<div>n</div></div>');
+ const nextBlockBox = container.querySelector('div').getBoundingClientRect();
+ const rtBox = rt.getBoundingClientRect();
+ assert_greater_than_equal(nextBlockBox.top, rtBox.bottom);
+ }, 'Under ruby doesn\'t overwrap with the next block');
+
+ test(() => {
+ const {container, ruby, rt} = renderRuby(
+ '<div><span>before</span><br><ruby>base<rt style="font-size:16px"' +
+ '>annotation</rt></ruby></div>');
+ const firstLine = container.querySelector('span').getBoundingClientRect();
+ assert_true(ruby.getBoundingClientRect().top - firstLine.bottom > 1);
+ }, 'Expand inter-lines spacing');
+
+ test(() => {
+ const {container, ruby, rt} = renderRuby(
+ '<div style="line-height:1.5;">' +
+ '<span>First line</span><br>' +
+ '<span>Second line</span><br>' +
+ '<ruby>base<rt style="font-size:50%">' +
+ 'annotation</rt></ruby></div>');
+ const firstLine = container.querySelector('span').getBoundingClientRect();
+ const secondLine = container.querySelectorAll('span')[1].getBoundingClientRect();
+ const rubyLine = ruby.getBoundingClientRect();
+ assert_approx_equals(secondLine.top - firstLine.top, rubyLine.top - secondLine.top, 1);
+ }, 'Consume half-leading of the previous line');
+
+ test(() => {
+ const {container, ruby, rt} = renderRuby(
+ '<div style="line-height:1.5;">' +
+ '<span>First line</span><br>' +
+ '<span class="under_emp">Second line</span><br>' +
+ '<ruby>base<rt style="font-size:50%">' +
+ 'annotation</rt></ruby></div>');
+ const firstLine = container.querySelector('span').getBoundingClientRect();
+ const secondLine = container.querySelectorAll('span')[1].getBoundingClientRect();
+ const rubyLine = ruby.getBoundingClientRect();
+ const RUBY_EMPHASIS_SIZE = 8;
+ assert_greater_than_equal(rubyLine.top - secondLine.top,
+ secondLine.top - firstLine.top + RUBY_EMPHASIS_SIZE);
+ }, 'Don\'t Consume half-leading of the previous line with text-emphasis');
+
+ test(() => {
+ const {container, ruby, rt} = renderRuby(
+ '<div style="line-height:1.5;">' +
+ '<span>First line</span><br>' +
+ '<ruby style="ruby-position:under">base<rt style="font-size:50%">' +
+ 'annotation</rt></ruby><br>' +
+ '<span>Third line</span></div>');
+ const firstLine = container.querySelector('span').getBoundingClientRect();
+ const rubyLine = ruby.getBoundingClientRect();
+ const thirdLine = container.querySelectorAll('span')[1].getBoundingClientRect();
+ assert_approx_equals(rubyLine.top - firstLine.top, thirdLine.top - rubyLine.top, 1);
+ }, 'Consume half-leading of the next line');
+
+ test(() => {
+ const {container, ruby, rt} = renderRuby(
+ '<div style="line-height:1.5;">' +
+ '<span>First line</span><br>' +
+ '<ruby style="ruby-position:under">base<rt style="font-size:50%">' +
+ 'annotation</rt></ruby><br>' +
+ '<span class="over_emp">Third line</span>' +
+ '</div>');
+ const firstLine = container.querySelector('span').getBoundingClientRect();
+ const rubyLine = ruby.getBoundingClientRect();
+ const thirdLine = container.querySelectorAll('span')[1].getBoundingClientRect();
+ const RUBY_EMPHASIS_SIZE = 8;
+ assert_greater_than_equal(thirdLine.top - rubyLine.top,
+ rubyLine.top - firstLine.top + RUBY_EMPHASIS_SIZE);
+ }, 'Don\'t Consume half-leading of the next line with text-emphasis');
+
+ // crbug.com/336592423
+ test(() => {
+ const {container, ruby, rt} = renderRuby(
+ '<div style="line-height:1;">' +
+ '<span style="display:inline-block; width:1em; height:4em; vertical-align:top"></span><br>' +
+ '<ruby>base<rt>annotation</rt></ruby></div>');
+ const firstLine = container.querySelector('span').getBoundingClientRect();
+ const rtBox = rt.getBoundingClientRect();
+ assert_greater_than_equal(rtBox.top, firstLine.bottom);
+ }, 'An atomic-inline should not overlap with an annotation in the next line');
+
+ done();
+});
</script>
</body>
diff --git a/tests/wpt/tests/css/css-scroll-snap/input/paged.html b/tests/wpt/tests/css/css-scroll-snap/input/paged.html
new file mode 100644
index 00000000000..ef5525909b0
--- /dev/null
+++ b/tests/wpt/tests/css/css-scroll-snap/input/paged.html
@@ -0,0 +1,179 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-type" />
+<title>Page scroll snapping</title>
+<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
+<meta name="flags" content="should">
+<meta name="assert"
+ content="Test passes if page operation doesn't skip content">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/resources/testdriver-actions.js"></script>
+<script src="/dom/events/scrolling/scroll_support.js"></script>
+<script src="../support/common.js"></script>
+
+<style>
+html, body {
+ margin: 0;
+}
+.scroller {
+ height: 100vh;
+ overflow: auto;
+ position: relative;
+ scroll-snap-type: y mandatory;
+ counter-reset: --page;
+}
+
+.gap {
+ height: 100vh;
+}
+
+.page {
+ counter-increment: --page;
+ height: 90vh;
+ scroll-snap-align: center;
+ padding: 8px;
+ position: relative;
+ --page: counter(--page);
+}
+.short {
+ height: 25vh;
+}
+.page > div::before {
+ content: "Page " counter(--page);
+ font-size: 1.5em;
+}
+.page > div {
+ box-sizing: border-box;
+ border: 3px solid black;
+ border-radius: 5px;
+ overflow: clip; /* Make sure font size doesn't cause pages to be larger than expected. */
+ padding: 8px;
+ height: 100%;
+}
+</style>
+<div class="scroller" tabindex="0">
+ <div class="page">
+ <div>
+ <p>This tests what happens when you perform a paging scroll (e.g. space bar or page down key) with mandatory scroll snap.</p>
+ <p>When snapped to this page, pressing page down should not skip page 2.</p>
+ </div>
+ </div>
+ <div class="short page">
+ <div>
+ <p>This page should not be skipped by paging scroll operations.</p>
+ </div>
+ </div>
+ <div class="page">
+ <div>
+ <p>We must stop at this page before going to page 4.</p>
+ </div>
+ </div>
+ <div class="short page">
+ <div>
+ <p>Pages 4, 5, and 6 should be a single snap stop on page 5.</p>
+ </div>
+ </div>
+ <div class="short page">
+ <div>
+ <p>
+ This should be the snapped page when paging.
+ The next page operation should jump to page 7.
+ </p>
+ </div>
+ </div>
+ <div class="short page">
+ <div></div>
+ </div>
+ <div class="page">
+ <div>
+ <p>
+ The next page is further than a page away,
+ but there are no closer snap points
+ so it should be scrolled to next.
+ </p>
+ </div>
+ </div>
+ <div class="gap"></div>
+ <div class="page">
+ <div>
+ <p>
+ The last page
+ </p>
+ </div>
+ </div>
+</div>
+
+<script>
+const scroller = document.querySelector(".scroller");
+
+scrollTop = () => scroller.scrollTop;
+
+async function snapTo(page) {
+ if (page == 1 && scroller.scrollTop == 0)
+ return;
+ let scrollEndPromise = waitForScrollEndFallbackToDelayWithoutScrollEvent(scroller);
+ scroller.scrollTop = 0;
+ await scrollEndPromise;
+ if (page > 1) {
+ scrollEndPromise = waitForScrollEndFallbackToDelayWithoutScrollEvent(scroller);
+ scroller.querySelector(`.page[data-page="${page}"]`).scrollIntoView({block: "center"});
+ await scrollEndPromise;
+ }
+}
+
+scroller.querySelectorAll('.page').forEach((div, index) => {
+ div.setAttribute("data-page", index + 1);
+});
+function visiblePages() {
+ return Array.prototype.slice.apply(
+ scroller.querySelectorAll('.page')).filter(
+ div => div.offsetTop >= scroller.scrollTop &&
+ div.offsetTop + div.offsetHeight <= scroller.scrollTop + scroller.clientHeight).map(
+ div => parseInt(div.getAttribute("data-page")));
+}
+
+async function pageDown() {
+ const scrollEndPromise = waitForScrollEndFallbackToDelayWithoutScrollEvent(scroller);
+ await keyPress(scroller, "Space");
+ await scrollEndPromise;
+}
+
+promise_test(async t => {
+ await snapTo(1);
+ assert_array_equals(visiblePages(), [1]);
+ await pageDown();
+ assert_array_equals(visiblePages(), [2]);
+}, `Doesn't skip past small snappable content`);
+
+promise_test(async t => {
+ await snapTo(2);
+ assert_array_equals(visiblePages(), [2]);
+ await pageDown();
+ assert_array_equals(visiblePages(), [3]);
+}, `Doesn't skip past large snappable content`);
+
+promise_test(async t => {
+ await snapTo(3);
+ assert_array_equals(visiblePages(), [3]);
+ await pageDown();
+ assert_array_equals(visiblePages(), [4, 5, 6]);
+}, `Scrolls multiple smaller items into view`);
+
+promise_test(async t => {
+ await snapTo(5);
+ assert_array_equals(visiblePages(), [4, 5, 6]);
+ await pageDown();
+ assert_array_equals(visiblePages(), [7]);
+}, `Scrolls past items currently in view`);
+
+promise_test(async t => {
+ await snapTo(7);
+ assert_array_equals(visiblePages(), [7]);
+ await pageDown();
+ assert_array_equals(visiblePages(), [8]);
+}, `Scrolls more than a page if necessary`);
+
+</script>
diff --git a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-margin-001.html b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-margin-001.html
index 205241bbfd6..71eb743b81a 100644
--- a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-margin-001.html
+++ b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-margin-001.html
@@ -32,7 +32,7 @@
generate_tests( ParsingUtils.testShapeMarginInlineStyle,
ParsingUtils.buildTestCases(shape_margin_valid_unit_tests, "inline"));
ParsingUtils.setupFonts();
- document.fonts.ready.then(()=> {
+ document.fonts.load("10px Ahem").then(()=> {
generate_tests( ParsingUtils.testShapeMarginComputedStyle,
ParsingUtils.buildTestCases(shape_margin_valid_unit_tests, "computed"));
ParsingUtils.restoreFonts();
diff --git a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-circle-004.html b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-circle-004.html
index c28172c3334..d5d429b20bd 100644
--- a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-circle-004.html
+++ b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-circle-004.html
@@ -23,7 +23,7 @@
generate_tests( ParsingUtils.testInlineStyle,
ParsingUtils.buildPositionTests("circle", true, 'lengthUnit + inline', ParsingUtils.validUnits) );
ParsingUtils.setupFonts();
- document.fonts.ready.then(()=> {
+ document.fonts.load("10px Ahem").then(()=> {
generate_tests( ParsingUtils.testComputedStyle,
ParsingUtils.buildPositionTests("circle", true, 'lengthUnit + computed', ParsingUtils.validUnits) );
ParsingUtils.restoreFonts();
diff --git a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-circle-005.html b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-circle-005.html
index 55a7f07acfc..032a0a628ae 100644
--- a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-circle-005.html
+++ b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-circle-005.html
@@ -21,7 +21,7 @@
setup({explicit_done: true});
generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.buildRadiiTests('circle', 'lengthUnit + inline', ParsingUtils.validUnits));
ParsingUtils.setupFonts();
- document.fonts.ready.then(()=> {
+ document.fonts.load("10px Ahem").then(()=> {
generate_tests(ParsingUtils.testComputedStyle, ParsingUtils.buildRadiiTests('circle', 'lengthUnit + computed', ParsingUtils.validUnits));
ParsingUtils.restoreFonts();
done();
diff --git a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-004.html b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-004.html
index 9456bec3d80..2cfefad4f81 100644
--- a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-004.html
+++ b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-004.html
@@ -23,7 +23,7 @@
generate_tests( ParsingUtils.testInlineStyle,
ParsingUtils.buildPositionTests("ellipse", true, 'lengthUnit + inline', ParsingUtils.validUnits) );
ParsingUtils.setupFonts();
- document.fonts.ready.then(()=> {
+ document.fonts.load("10px Ahem").then(()=> {
generate_tests( ParsingUtils.testComputedStyle,
ParsingUtils.buildPositionTests("ellipse", true, 'lengthUnit + computed', ParsingUtils.validUnits) );
ParsingUtils.restoreFonts();
diff --git a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-005.html b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-005.html
index 5c90827d2dd..dd0942d28a5 100644
--- a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-005.html
+++ b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-ellipse-005.html
@@ -21,7 +21,7 @@
setup({explicit_done: true});
generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.buildRadiiTests('ellipse', 'lengthUnit + inline', ParsingUtils.validUnits));
ParsingUtils.setupFonts();
- document.fonts.ready.then(()=> {
+ document.fonts.load("10px Ahem").then(()=> {
generate_tests(ParsingUtils.testComputedStyle,
ParsingUtils.buildRadiiTests('ellipse', 'lengthUnit + computed', ParsingUtils.validUnits));
ParsingUtils.restoreFonts();
diff --git a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-inset-003.html b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-inset-003.html
index abb9972d056..008fc772346 100644
--- a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-inset-003.html
+++ b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-inset-003.html
@@ -24,7 +24,7 @@
generate_tests(ParsingUtils.testInlineStyle, ParsingUtils.generateInsetRoundCases(unit, 'inline'));
});
ParsingUtils.setupFonts();
- document.fonts.ready.then(()=> {
+ document.fonts.load("10px Ahem").then(()=> {
ParsingUtils.validUnits.forEach(function(unit) {
generate_tests(ParsingUtils.testComputedStyle, ParsingUtils.generateInsetRoundCases(unit, 'computed'));
});
diff --git a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-polygon-004.html b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-polygon-004.html
index 5edde7dfad3..7540e1a1bd8 100644
--- a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-polygon-004.html
+++ b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-polygon-004.html
@@ -35,7 +35,7 @@
generate_tests( ParsingUtils.testInlineStyle,
ParsingUtils.buildPolygonTests(arg_length_units_tests, 'inline') );
ParsingUtils.setupFonts();
- document.fonts.ready.then(()=> {
+ document.fonts.load("10px Ahem").then(()=> {
generate_tests( ParsingUtils.testComputedStyle,
ParsingUtils.buildPolygonTests(arg_length_units_tests, 'computed') );
ParsingUtils.restoreFonts();
diff --git a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html
index 2c2c959c8c4..542b8bcf7df 100644
--- a/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html
+++ b/tests/wpt/tests/css/css-shapes/shape-outside/values/shape-outside-shape-arguments-000.html
@@ -60,7 +60,7 @@
generate_tests( ParsingUtils.testInlineStyle,
ParsingUtils.buildTestCases(basic_shape_args_tests, "inline") );
ParsingUtils.setupFonts();
- document.fonts.ready.then(()=> {
+ document.fonts.load("10px Ahem").then(()=> {
generate_tests( ParsingUtils.testComputedStyle,
ParsingUtils.buildTestCases(basic_shape_args_tests, "computed") );
ParsingUtils.restoreFonts();
diff --git a/tests/wpt/tests/css/css-sizing/keyword-sizes-for-intrinsic-contributions.html b/tests/wpt/tests/css/css-sizing/keyword-sizes-for-intrinsic-contributions.html
index dc287b19590..b42bd71b8e7 100644
--- a/tests/wpt/tests/css/css-sizing/keyword-sizes-for-intrinsic-contributions.html
+++ b/tests/wpt/tests/css/css-sizing/keyword-sizes-for-intrinsic-contributions.html
@@ -111,5 +111,5 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<script>
-checkLayout(".test");
+document.fonts.ready.then(() => checkLayout(".test"));
</script>
diff --git a/tests/wpt/tests/css/css-sizing/keyword-sizes-on-flex-item-001.html b/tests/wpt/tests/css/css-sizing/keyword-sizes-on-flex-item-001.html
index 04c4bddbbd1..15df71eae2a 100644
--- a/tests/wpt/tests/css/css-sizing/keyword-sizes-on-flex-item-001.html
+++ b/tests/wpt/tests/css/css-sizing/keyword-sizes-on-flex-item-001.html
@@ -131,17 +131,17 @@
<!-- Indefinite stretch -->
<div class="wrapper" style="width: 100px; max-height: 100px">
- <div class="test height stretch" data-expected-height="30">X X</div>
- <div class="test height stretch" data-expected-height="30">XXX XXX</div>
- <div class="test height stretch" data-expected-height="30">XXXXX XXXXX</div>
+ <div class="test height stretch" data-expected-height="90">X X</div>
+ <div class="test height stretch" data-expected-height="90">XXX XXX</div>
+ <div class="test height stretch" data-expected-height="90">XXXXX XXXXX</div>
- <div class="test min-height stretch" data-expected-height="10">X X</div>
- <div class="test min-height stretch" data-expected-height="10">XXX XXX</div>
- <div class="test min-height stretch" data-expected-height="10">XXXXX XXXXX</div>
+ <div class="test min-height stretch" data-expected-height="90">X X</div>
+ <div class="test min-height stretch" data-expected-height="90">XXX XXX</div>
+ <div class="test min-height stretch" data-expected-height="90">XXXXX XXXXX</div>
- <div class="test max-height stretch" data-expected-height="510">X X</div>
- <div class="test max-height stretch" data-expected-height="510">XXX XXX</div>
- <div class="test max-height stretch" data-expected-height="510">XXXXX XXXXX</div>
+ <div class="test max-height stretch" data-expected-height="90">X X</div>
+ <div class="test max-height stretch" data-expected-height="90">XXX XXX</div>
+ <div class="test max-height stretch" data-expected-height="90">XXXXX XXXXX</div>
</div>
<!-- Fit-content with indefinite stretch -->
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-block-size-001.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-block-size-001.tentative.html
index a300b664d65..f3ae7afd35f 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-block-size-001.tentative.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-block-size-001.tentative.html
@@ -193,10 +193,9 @@
<div class="test" data-expected-height="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: row wrap">
- <div class="test" data-expected-height="45"></div>
+ <div class="test" data-expected-height="55"></div>
<div style="block-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-inline-size-001.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-inline-size-001.tentative.html
index a2b6fea70a4..ca05307d223 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-inline-size-001.tentative.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-inline-size-001.tentative.html
@@ -193,10 +193,9 @@
<div class="test" data-expected-width="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: column wrap">
- <div class="test" data-expected-width="45"></div>
+ <div class="test" data-expected-width="55"></div>
<div style="inline-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-max-block-size-001.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-max-block-size-001.tentative.html
index 31257c7647f..15d34247629 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-max-block-size-001.tentative.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-max-block-size-001.tentative.html
@@ -202,10 +202,9 @@
<div class="test" data-expected-height="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: row wrap">
- <div class="test" data-expected-height="45"></div>
+ <div class="test" data-expected-height="55"></div>
<div style="block-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-max-inline-size-001.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-max-inline-size-001.tentative.html
index 828bf7e1d2f..7d7b6ab6ef5 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-max-inline-size-001.tentative.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-max-inline-size-001.tentative.html
@@ -202,10 +202,9 @@
<div class="test" data-expected-width="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: column wrap">
- <div class="test" data-expected-width="45"></div>
+ <div class="test" data-expected-width="55"></div>
<div style="inline-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-min-block-size-001.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-min-block-size-001.tentative.html
index bc03c684b26..c11b60609b3 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-min-block-size-001.tentative.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-min-block-size-001.tentative.html
@@ -196,10 +196,9 @@
<div class="test" data-expected-height="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: row wrap">
- <div class="test" data-expected-height="45"></div>
+ <div class="test" data-expected-height="55"></div>
<div style="block-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-min-inline-size-001.tentative.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-min-inline-size-001.tentative.html
index 2af9315848f..000511e71b7 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-min-inline-size-001.tentative.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-alias-min-inline-size-001.tentative.html
@@ -196,10 +196,9 @@
<div class="test" data-expected-width="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: column wrap">
- <div class="test" data-expected-width="45"></div>
+ <div class="test" data-expected-width="55"></div>
<div style="inline-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-block-size-001.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-block-size-001.html
index c5c02ea231d..c2cac98d3a5 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-block-size-001.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-block-size-001.html
@@ -187,10 +187,9 @@
<div class="test" data-expected-height="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: row wrap">
- <div class="test" data-expected-height="45"></div>
+ <div class="test" data-expected-height="55"></div>
<div style="block-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-inline-size-001.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-inline-size-001.html
index ee59a7cfd35..30fcdafd16e 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-inline-size-001.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-inline-size-001.html
@@ -187,10 +187,9 @@
<div class="test" data-expected-width="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: column wrap">
- <div class="test" data-expected-width="45"></div>
+ <div class="test" data-expected-width="55"></div>
<div style="inline-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-max-block-size-001.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-max-block-size-001.html
index f836e84fcae..26eae5f6881 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-max-block-size-001.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-max-block-size-001.html
@@ -196,10 +196,9 @@
<div class="test" data-expected-height="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: row wrap">
- <div class="test" data-expected-height="45"></div>
+ <div class="test" data-expected-height="55"></div>
<div style="block-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-max-inline-size-001.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-max-inline-size-001.html
index e17bc9a9cd9..4c356c1a52d 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-max-inline-size-001.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-max-inline-size-001.html
@@ -196,10 +196,9 @@
<div class="test" data-expected-width="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: column wrap">
- <div class="test" data-expected-width="45"></div>
+ <div class="test" data-expected-width="55"></div>
<div style="inline-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-min-block-size-001.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-min-block-size-001.html
index c7fc1272853..ec023a34fb2 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-min-block-size-001.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-min-block-size-001.html
@@ -190,10 +190,9 @@
<div class="test" data-expected-height="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: row wrap">
- <div class="test" data-expected-height="45"></div>
+ <div class="test" data-expected-height="55"></div>
<div style="block-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-sizing/stretch/stretch-min-inline-size-001.html b/tests/wpt/tests/css/css-sizing/stretch/stretch-min-inline-size-001.html
index 60c01030f54..28c1cc93be3 100644
--- a/tests/wpt/tests/css/css-sizing/stretch/stretch-min-inline-size-001.html
+++ b/tests/wpt/tests/css/css-sizing/stretch/stretch-min-inline-size-001.html
@@ -190,10 +190,9 @@
<div class="test" data-expected-width="45"></div>
</div>
<!--...now with an extra-large sibling sharing the child's flex line, to be
- sure our 'stretch' sizing value still resolves against the container size
- rather than the flex line's size: -->
+ sure our 'stretch' sizing value resolves against the flex line's size: -->
<div class="cb" style="display: inline-flex; flex-flow: column wrap">
- <div class="test" data-expected-width="45"></div>
+ <div class="test" data-expected-width="55"></div>
<div style="inline-size: 60px"></div>
</div>
diff --git a/tests/wpt/tests/css/css-tables/tentative/baseline-table.html b/tests/wpt/tests/css/css-tables/tentative/baseline-table.html
index 1507bf656f4..4ceeb4d3241 100644
--- a/tests/wpt/tests/css/css-tables/tentative/baseline-table.html
+++ b/tests/wpt/tests/css/css-tables/tentative/baseline-table.html
@@ -175,5 +175,5 @@
</div>
</main>
<script>
- checkLayout(".container");
+ document.fonts.ready.then(() => checkLayout(".container"));
</script>
diff --git a/tests/wpt/tests/css/css-tables/tentative/baseline-td.html b/tests/wpt/tests/css/css-tables/tentative/baseline-td.html
index 4090c5db64e..d2eec93a44f 100644
--- a/tests/wpt/tests/css/css-tables/tentative/baseline-td.html
+++ b/tests/wpt/tests/css/css-tables/tentative/baseline-td.html
@@ -119,6 +119,6 @@ rowspanned td's should contribute to baseline, but not to the row height.</p>
</main>
<script>
- checkLayout("table, .display-table");
+ document.fonts.ready.then(() => checkLayout("table, .display-table"));
</script>
diff --git a/tests/wpt/tests/css/css-tables/tentative/colgroup-col.html b/tests/wpt/tests/css/css-tables/tentative/colgroup-col.html
index 40fbefee200..ba009de9996 100644
--- a/tests/wpt/tests/css/css-tables/tentative/colgroup-col.html
+++ b/tests/wpt/tests/css/css-tables/tentative/colgroup-col.html
@@ -118,5 +118,5 @@
</main>
<script>
- checkLayout("table");
+ document.fonts.ready.then(() => checkLayout("table"));
</script>
diff --git a/tests/wpt/tests/css/css-tables/tentative/table-quirks.html b/tests/wpt/tests/css/css-tables/tentative/table-quirks.html
index af2a516c0e8..35c09109550 100644
--- a/tests/wpt/tests/css/css-tables/tentative/table-quirks.html
+++ b/tests/wpt/tests/css/css-tables/tentative/table-quirks.html
@@ -72,5 +72,5 @@
test(_ => {
assert_equals(window.getComputedStyle(document.querySelector("#notitalic")).fontStyle, "normal");
}, "decoration does not propagate into table");
- checkLayout("table");
+ document.fonts.ready.then(() => checkLayout("table"));
</script>
diff --git a/tests/wpt/tests/css/css-text/text-autospace/text-autospace-mixed-001-ref.html b/tests/wpt/tests/css/css-text/text-autospace/text-autospace-mixed-001-ref.html
new file mode 100644
index 00000000000..be782ab7f03
--- /dev/null
+++ b/tests/wpt/tests/css/css-text/text-autospace/text-autospace-mixed-001-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-autospace-property">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+#container > div {
+ font-family: Ahem;
+ font-size: 40px;
+ text-autospace: no-autospace;
+
+ & > span {
+ margin-left: calc(1em / 8);
+ margin-right: calc(1em / 8);
+ }
+}
+</style>
+<div id="container">
+ <div>国国<span>&#x5d0;&#x5d1;&#x5d2;</span>国国</div>
+ <div>国国<span>&#x5d0;&#x5d1;&#x5d2;</span>国国</div>
+ <div>国国<span>&#1605;&#1615;&#1585;&#1614;&#1576;&#1614;&#1617;&#1593;&#1618;</span>国国</div>
+</div>
diff --git a/tests/wpt/tests/css/css-text/text-autospace/text-autospace-mixed-001.html b/tests/wpt/tests/css/css-text/text-autospace/text-autospace-mixed-001.html
index 731f74561aa..9e35ce0f729 100644
--- a/tests/wpt/tests/css/css-text/text-autospace/text-autospace-mixed-001.html
+++ b/tests/wpt/tests/css/css-text/text-autospace/text-autospace-mixed-001.html
@@ -1,47 +1,16 @@
<!DOCTYPE html>
<meta charset="utf-8">
<link rel="help" href="https://drafts.csswg.org/css-text-4/#text-autospace-property">
+<link rel="match" href="text-autospace-mixed-001-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../support/get-char-advances.js"></script>
<style>
-.test {
+#container > div {
font-family: Ahem;
font-size: 40px;
}
-.no-autospace {
- text-autospace: no-autospace;
-}
</style>
<div id="container">
- <div class="test" expect="1,5">国国&#x5d0;&#x5d1;&#x5d2;国国</div>
- <div class="test" expect="1,5">国国<span>&#x5d0;&#x5d1;</span>&#x5d2;国国</div>
- <div class="test" expect="1,11">国国&#1605;&#1615;&#1585;&#1614;&#1576;&#1614;&#1617;&#1593;&#1618;国国</div>
+ <div>国国&#x5d0;&#x5d1;&#x5d2;国国</div>
+ <div>国国<span>&#x5d0;&#x5d1;</span>&#x5d2;国国</div>
+ <div>国国&#1605;&#1615;&#1585;&#1614;&#1576;&#1614;&#1617;&#1593;&#1618;国国</div>
</div>
-<script>
-// Compute expected advances from advances without `text-autospace` and the
-// `expect` attribute.
-const container = document.getElementById('container');
-container.classList.add('no-autospace');
-const tests = [];
-for (const element of document.getElementsByClassName('test')) {
- const em = parseFloat(getComputedStyle(element).fontSize);
- const spacing = em / 8;
- const advances = getCharAdvances(element);
- const expect = element.getAttribute('expect').split(',').map(i => parseInt(i));
- for (const i of expect) {
- advances[i] += spacing;
- }
- tests.push({element: element, advances: advances});
-}
-
-// Apply `text-autospace` and compare the actual advances.
-container.classList.remove('no-autospace');
-for (const t of tests) {
- const advances = getCharAdvances(t.element);
- test(() => {
- assert_array_equals(advances, t.advances);
- })
-}
-</script>
diff --git a/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-word-spacing-001-ref.html b/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-word-spacing-001-ref.html
new file mode 100644
index 00000000000..d29d139614a
--- /dev/null
+++ b/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-word-spacing-001-ref.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <title>CSS Text level 4 Test: text-wrap-style should account for word-spacing</title>
+ <link rel="author" title="Yulun Wu">
+ <link rel="help" href="https://www.w3.org/TR/css-text-4/#word-spacing-property">
+ <link rel="help" href="https://www.w3.org/TR/css-text-4/#text-wrap-style">
+ <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <style>
+ body {
+ font-family: "Ahem";
+ font-size: 12px;
+ width: 500px;
+ }
+ .spacing-10 {
+ word-spacing: 10px;
+ }
+ .spacing-30 {
+ word-spacing: 30px;
+ }
+ .balance-first-line-spacing-30::first-line {
+ word-spacing: 30px;
+ }
+ .img1 {
+ background-color: green;
+ width: 20px;
+ height: 10px;
+ }
+ .img2 {
+ background-color: green;
+ width: 20px;
+ height: 10px;
+ margin-left: 30px;
+ margin-right: 30px;
+ }
+ </style>
+ </head>
+ <body>
+ <div class="spacing-10">This passes if this div is one line </div>
+ <div class="spacing-30">This passes if this<br> div has the exact<br> correct breaking points</div>
+ <div class="spacing-30">This passes if this div has<br> the exact correct breaking<br> points</div>
+ <div class="balance-first-line-spacing-30">This passes if this div<br> has the exact correct breaking points</div>
+ <div>test<img class="img1">test <img class="img2"> test</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-word-spacing-001.html b/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-word-spacing-001.html
new file mode 100644
index 00000000000..db27bba1285
--- /dev/null
+++ b/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-word-spacing-001.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <title>CSS Text level 4 Test: text-wrap-style should account for word-spacing</title>
+ <link rel="author" title="Yulun Wu">
+ <link rel="help" href="https://www.w3.org/TR/css-text-4/#word-spacing-property">
+ <link rel="help" href="https://www.w3.org/TR/css-text-4/#text-wrap-style">
+ <link rel="match" href="reference/text-wrap-balance-word-spacing-001-ref.html">
+ <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <style>
+ body {
+ font-family: "Ahem";
+ font-size: 12px;
+ width: 500px;
+ }
+ .spacing-10-balance {
+ word-spacing: 10px;
+ text-wrap-style: balance;
+ }
+ .spacing-30-balance {
+ word-spacing: 30px;
+ text-wrap-style: balance;
+ }
+ .spacing-30 {
+ word-spacing: 30px;
+ }
+ .balance-first-line-spacing-30 {
+ text-wrap-style: balance;
+ }
+ .balance-first-line-spacing-30::first-line {
+ word-spacing: 30px;
+ }
+ .img1 {
+ background-color: green;
+ width: 20px;
+ height: 10px;
+ }
+ </style>
+ </head>
+ <body>
+ <div class="spacing-10-balance">This passes if this div is one line </div>
+ <div class="spacing-30-balance">This passes if this div has the exact correct breaking points</div>
+ <div class="spacing-30">This passes if this div has the exact correct breaking points</div>
+ <div class="balance-first-line-spacing-30">This passes if this div has the exact correct breaking points</div>
+ <div class="spacing-30-balance">test<img class="img1">test <img class="img1"> test</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-text/white-space/trailing-space-position-001.html b/tests/wpt/tests/css/css-text/white-space/trailing-space-position-001.html
index 648ae23dccb..9a23e80375d 100644
--- a/tests/wpt/tests/css/css-text/white-space/trailing-space-position-001.html
+++ b/tests/wpt/tests/css/css-text/white-space/trailing-space-position-001.html
@@ -31,11 +31,15 @@
<div class="pre-wrap">1234<span data-line="0" class="bg"> </span>567</div>
</section>
<script>
-for (let e of document.querySelectorAll('[data-line]')) {
- test(() => {
- let y = e.offsetTop;
- assert_equals(Math.round(y / 10), parseInt(e.dataset.line));
- });
-}
+setup({ explicit_done: true });
+document.fonts.ready.then(() => {
+ for (let e of document.querySelectorAll('[data-line]')) {
+ test(() => {
+ let y = e.offsetTop;
+ assert_equals(Math.round(y / 10), parseInt(e.dataset.line));
+ });
+ }
+ done();
+});
</script>
</body>
diff --git a/tests/wpt/tests/css/css-text/white-space/white-space-intrinsic-size-021.html b/tests/wpt/tests/css/css-text/white-space/white-space-intrinsic-size-021.html
index 9c63117d087..e1a8d03894c 100644
--- a/tests/wpt/tests/css/css-text/white-space/white-space-intrinsic-size-021.html
+++ b/tests/wpt/tests/css/css-text/white-space/white-space-intrinsic-size-021.html
@@ -306,5 +306,5 @@ x-br::before {
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<script>
-checkLayout(".container > div");
+document.fonts.ready.then(() => checkLayout(".container > div"));
</script>
diff --git a/tests/wpt/tests/css/css-ui/caret-shape-parsing.html b/tests/wpt/tests/css/css-ui/caret-shape-parsing.html
new file mode 100644
index 00000000000..82f9248e02c
--- /dev/null
+++ b/tests/wpt/tests/css/css-ui/caret-shape-parsing.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<title>Parsing of caret-shape</title>
+<link rel="help" href="https://drafts.csswg.org/css-ui/#caret-shape">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<div id="target"></div>
+<script>
+ test_valid_value('caret-shape', 'initial');
+ test_valid_value('caret-shape', 'inherit');
+ test_valid_value('caret-shape', 'unset');
+ test_valid_value('caret-shape', 'revert');
+ test_valid_value('caret-shape', 'auto');
+ test_valid_value('caret-shape', 'bar');
+ test_valid_value('caret-shape', 'block');
+ test_valid_value('caret-shape', 'underscore');
+ test_invalid_value('caret-shape', 'none');
+ test_invalid_value('caret-shape', 'ba');
+ test_invalid_value('caret-shape', 'underline');
+ test_invalid_value('caret-shape', 'vertical');
+ test_invalid_value('caret-shape', 'rect');
+</script> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-background-attachment-001.html
index 9014d18d1c2..a0fb71e50f6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-all-elements-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-background-color-001.html
index fe0383d668b..bbd3adc955a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-all-elements-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-color-001.html
index 4fff7054554..20dcf1ed2dc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-all-elements-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-style-001.html
index fa5755115e1..04ab97e8817 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-all-elements-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-width-001.html
index 971dedafecb..af07f9d4832 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-all-elements-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-image-source-001.html
index 41750e46404..b16ee1c59b7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-all-elements-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-color-001.html
index 297a9b002ff..ff636a3215a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-all-elements-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-left-radius-001.html
index d7cb20035a1..a8a8475d48c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-all-elements-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-style-001.html
index 79f00d03f99..1aeb5b4ac50 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-all-elements-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-width-001.html
index c5f91b24fdf..15f86e0fc0d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/grouped-kind-of-widget-fallback-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-all-elements-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-attachment-001.html
index 943bffb8116..b59b8a49872 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-clip-001.html
index c7ca359bbe8..749baf0000b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-color-001.html
index 8c47e5181e9..b1f20c6fa93 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-image-001.html
index a42c425aa43..f73c8fd2ef1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-origin-001.html
index f0779d6c215..6a534187ea5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-position-001.html
index f2b7cdb8fd2..124a9ddb563 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-size-001.html
index 434d6d1fa15..63d16c78b75 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-color-001.html
index 093a8183cc6..a7f75e5b60a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-style-001.html
index 15489226d57..89ab31d8c1f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-width-001.html
index 788ad5d823a..1cdc63c28f4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-color-001.html
index 55c6a9aa2b9..8c55466fe0d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-style-001.html
index 0ef69490551..7a11a855156 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-width-001.html
index 488f42da90d..645d5a0eb3f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-color-001.html
index aa5278fb067..d6bdf7f48b0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-left-radius-001.html
index a0951f1640b..0900c217206 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-right-radius-001.html
index 2835ac0e871..a366d93b6dc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-style-001.html
index dc303087807..3192d84b780 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-width-001.html
index 2791471aace..6ef714d0779 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-end-radius-001.html
index 47772cbd97d..3134736fe77 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-start-radius-001.html
index f7760382a5c..e36c2bc0d90 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-outset-001.html
index a7e8f830efc..9bad5ec484e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-repeat-001.html
index 1a10a8ccee0..6479d01400f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-slice-001.html
index 08a04755158..33a1733a316 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-source-001.html
index be16caf13d1..2a207f4fb68 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-width-001.html
index 808dae71b15..723a93ee0e5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-color-001.html
index 311edddcb71..615d50da7cd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-style-001.html
index f744477d42c..f0fabab2c49 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-width-001.html
index da133c031ea..3349d4b0986 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-color-001.html
index a43218bc466..fc32cd80c38 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-style-001.html
index 92c9b641540..8875f5028d0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-width-001.html
index 1ee0c7bd7dd..a3aa86edb0e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-color-001.html
index 017e7873a06..3a2c5017403 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-style-001.html
index 48b4938c20b..baeafa8acb7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-width-001.html
index 3f543289568..a307b22b0b0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-color-001.html
index 88b7c63c38c..706938b0b8a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-style-001.html
index 40d2d96386f..ed70f909eb6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-width-001.html
index 32f15a8d97d..a6c35bbb4e7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-end-radius-001.html
index 3ce0ac5b615..a7d24a5dec2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-start-radius-001.html
index 5b036a7d90f..952fea0b5fc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-color-001.html
index 010779fb9c2..33f948ddca4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-left-radius-001.html
index d3aa164c7b5..4006c8917f9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-right-radius-001.html
index 5396a1fa40c..81bb03a7c16 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-style-001.html
index f998ab7c543..01e9012502b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-width-001.html
index e6d9bc4dc89..7f799fc7ce8 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-button-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-attachment-001.html
index 41549f7e02f..4b6bfe15dd3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-clip-001.html
index fa58286bad3..bfc57744560 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-color-001.html
index 10fa53aefc8..d2317af36b9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-image-001.html
index 2bed1e06f18..f31504cbe83 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-origin-001.html
index eef434bdfc8..f8db8f0ea9c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-position-001.html
index 574b0bbf497..acf6b88c742 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-size-001.html
index 969cc094554..8971c872a12 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-color-001.html
index 753e38989dd..4c1ae3fbece 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-style-001.html
index be017cfad65..38eb8fb219a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-width-001.html
index 9945ba9e88a..ab789f98a9f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-color-001.html
index 9083e43b58c..837391fee6c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-style-001.html
index c8cc1c48ef2..9f3b2486662 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-width-001.html
index b9b2c17871c..261d57a435c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-color-001.html
index 3ba810605bd..6fa99c298c0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-left-radius-001.html
index 4ff23352892..2cab5c01b6f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-right-radius-001.html
index 23b160fecbc..846c25b3098 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-style-001.html
index 802009a38fb..e8ebec73148 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-width-001.html
index a2fed807a67..fb3a8a6d450 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-end-radius-001.html
index 4dc6faa7ba9..76145df1290 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-start-radius-001.html
index 214b378c6a6..4ea4e523118 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-outset-001.html
index 5b81f199062..8297811253d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-repeat-001.html
index 63a5dd35d96..db6b736bcc9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-slice-001.html
index 28e187c0bf8..cb7a5951093 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-source-001.html
index aa8973edc32..7cce9eae3aa 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-width-001.html
index 96d97f2b79a..4093ae6826d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-color-001.html
index 6d321bb670b..af6ff54551f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-style-001.html
index 9662479817a..dabae07bc88 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-width-001.html
index 471f545d3f1..c1c18c54019 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-color-001.html
index 581e177b9c9..db19d600fc0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-style-001.html
index f7e520bae42..accda3495d7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-width-001.html
index 60cac2496ff..23fb94dab34 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-color-001.html
index 7480e04004c..d509c32a88d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-style-001.html
index 18bc6285232..45b1d507a1e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-width-001.html
index dc72fa476df..2c5157c27a4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-color-001.html
index c5e7c37c9e7..30336fbf90f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-style-001.html
index 0475f21ea16..c5d06a8bb6a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-width-001.html
index fac3bd44642..9a7cc1ea8d5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-end-radius-001.html
index ae1f56cb3c2..8e9b9a16fb2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-start-radius-001.html
index 248d5d1fa7b..83cbefd70ca 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-color-001.html
index f2ff51f59a0..6b655ccbd50 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-left-radius-001.html
index 7fb186ad4e0..18eef6e7545 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-right-radius-001.html
index 1ca05f1d710..82912edcce4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-style-001.html
index 2d32236ac2e..3d7cbc9ae0e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-width-001.html
index 5b00a003bab..14a73fe4087 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-checkbox-input-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-checkbox-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-attachment-001.html
index 037ddd59690..5c9fb8b5368 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-clip-001.html
index 94e61e2aad3..0599ffb11a3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-color-001.html
index 1b0db18cbc4..e88d1bffe08 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-image-001.html
index f97373e5655..0fa3b0db398 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-origin-001.html
index 47696508af7..3a9a135a19d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-position-001.html
index af721240bec..87c3a46f33e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-size-001.html
index 4bb65c74076..f3ca4f40ce7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-color-001.html
index 8ff350e9f1c..5c6d2f80463 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-style-001.html
index bea3ff80c7d..45779263bc4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-width-001.html
index 59acffe2d36..06e66332b16 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-color-001.html
index 0b5b3795a03..85415ce666b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-style-001.html
index 829a8437749..3524a34d9f2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-width-001.html
index ac9400cd1cf..4570e2c7564 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-color-001.html
index faebedab702..0df9897da15 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-left-radius-001.html
index 806ecc50f47..86cfa777847 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-right-radius-001.html
index c87d1346b46..6b42ce1d9e6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-style-001.html
index fba2865ffc3..f7f36d1c1f2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-width-001.html
index 2a2a8bfe5a9..645760c38ec 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-end-radius-001.html
index 5c010e62bf4..62c42401ec0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-start-radius-001.html
index 68bfbce5432..8ceccb56cfc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-outset-001.html
index bca778b71d0..38ca4ba2bd5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-repeat-001.html
index 85e1d882a04..f3520c0992d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-slice-001.html
index 30e474d0c06..afdacffc080 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-source-001.html
index c216ae2b225..20a2c2e4efb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-width-001.html
index 3df9737837b..1db93d94af2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-color-001.html
index 83be04c2f97..bd72810a849 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-style-001.html
index 1c5535abcda..6977d876243 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-width-001.html
index 6391197f245..da8498a9e80 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-color-001.html
index cebbf7d982e..5f3991350b7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-style-001.html
index a440fd8d95b..244f5a6033f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-width-001.html
index 655d24e5da5..31519748c3c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-color-001.html
index 8abbbf03bc3..fa21d8ed0e9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-style-001.html
index dde7f7f98ad..43fec0cd212 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-width-001.html
index 3c27b2b4778..4bb8fea6296 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-color-001.html
index 1b79863409c..f3a3bb73d58 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-style-001.html
index c6b385361db..64b9845b015 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-width-001.html
index bf5acce4fa3..ab157332555 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-end-radius-001.html
index c82d6b00904..d19cc74987d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-start-radius-001.html
index b450d99db8b..b48e6eefda1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-color-001.html
index 77f24f2cd3a..cf2fd34e0c4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-left-radius-001.html
index fcc1482c2be..e2a435a75e4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-right-radius-001.html
index 0e94f1831d2..205878bb65a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-style-001.html
index 668c961b3b4..600a3b4437e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-width-001.html
index b2f9bce5383..5bf3a5d709f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-color-input-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-color-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-attachment-001.html
index 05e6a848344..a8b4be34510 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-clip-001.html
index e75d29b5a61..f9d9a640155 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-color-001.html
index 304d71b2347..140b3ffdf56 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-image-001.html
index 9b316f28309..1f4bb847e2d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-origin-001.html
index c43c1a570aa..d15cd394e37 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-position-001.html
index 6c1a4e6a5e1..f2224b8fa14 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-size-001.html
index d449b0ffbbe..388dddfc88b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-color-001.html
index 606af2926ff..3ed119028a9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-style-001.html
index 74d1a5b72bc..00dd504da33 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-width-001.html
index 6e2a7238b6c..c7ef2f5015e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-color-001.html
index ad65e9ebf9b..e42d79814a3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-style-001.html
index 4919f98f82b..a45cd4d2273 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-width-001.html
index 83f2233984f..8c29d213491 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-color-001.html
index 714dc1d0e3c..27d31c73b22 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-left-radius-001.html
index 3c0a765f0b9..163c35255f1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-right-radius-001.html
index 24f945a598e..cb6140cd6bf 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-style-001.html
index cfa81219bfe..f764b51c226 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-width-001.html
index 8ecabf69b45..ce72d35fd6e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-end-radius-001.html
index 6ab5c8900cf..83ed19a015b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-start-radius-001.html
index a72a92fd716..1736dc02522 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-outset-001.html
index 639467f8db2..edba9a7f6de 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-repeat-001.html
index 838fac9a23d..82435bc62fb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-slice-001.html
index 61c61978468..fc186f8f696 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-source-001.html
index 4489b64db67..68d086ad08b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-width-001.html
index 678061664c7..7ead8364937 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-color-001.html
index 380bcb13f1c..3fed4e14e33 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-style-001.html
index 872b41571c2..a30c9afc06e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-width-001.html
index 38219fddb46..a0ce8df191f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-color-001.html
index 38a3236a834..7b59f6e1a7f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-style-001.html
index 06ab7d7d78d..0103a4c18de 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-width-001.html
index 0c60632f21c..cc260fa2f05 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-color-001.html
index f93deb35766..151d1f0895a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-style-001.html
index 108eeddada3..78f19fbe711 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-width-001.html
index 7974b08208e..d5859229d88 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-color-001.html
index a17eeb60e0a..52e35938f88 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-style-001.html
index 1986e476ec9..2b786e6c6fb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-width-001.html
index c8bcc9d81b3..a6b7334b612 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-end-radius-001.html
index 3b0be6f40fd..49c5351496b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-start-radius-001.html
index b82cda0208e..2233464f32c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-color-001.html
index 4fca510a422..f359ba37989 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-left-radius-001.html
index dfd4c6629b6..6beb44fb4b5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-right-radius-001.html
index 1933b74a298..ab1fdf0b3fd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-style-001.html
index 6980ca83021..dcd086965bd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-width-001.html
index 6b2e1cf068a..299119e313f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-button-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-attachment-001.html
index b9fb6febf93..43ebed337e4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-clip-001.html
index 90462d775da..39d5a3b637d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-color-001.html
index c0a5da0b825..995daf855ae 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-image-001.html
index 0a100c7c0cf..0961af41c3e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-origin-001.html
index 154d9ab34b6..e56f1fb3562 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-position-001.html
index 33a3dd00bcb..c93c42f0f2c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-size-001.html
index d03d5134531..b18105e0d98 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-color-001.html
index 63fdf459226..538dd9c72a3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-style-001.html
index 3a853e4e749..a8f29383342 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-width-001.html
index 3a6f44ef6e8..2cfb7d91d2c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-color-001.html
index 4f2fbfe0d41..88fd4be0c2f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-style-001.html
index 1987c725c79..cf8c0a1f2ed 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-width-001.html
index a72230de5f0..addf4148064 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-color-001.html
index 927bf0aa4d1..8fbb4bcebf4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-left-radius-001.html
index 9614696277d..d46f1ba70cf 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-right-radius-001.html
index 4e89aa5254f..88f0626e246 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-style-001.html
index f8182df09ca..2f51dee2e54 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-width-001.html
index cfbb9045a84..ccd5bc2f1cc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-end-radius-001.html
index 964a2a4364f..27fbc42c818 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-start-radius-001.html
index 64f6c522713..073968152f7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-outset-001.html
index 8dd06a6bb8d..2feb3a30627 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-repeat-001.html
index c736c0095fc..d85aed6e4bc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-slice-001.html
index efb6806e490..d4cc3e531a5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-source-001.html
index bcd7eb12d66..d8c6c100909 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-width-001.html
index f895ef4087a..bacf3c74640 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-color-001.html
index 5159892dfb7..97cf2d688b9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-style-001.html
index 8936f7f284c..dd336d4a7c6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-width-001.html
index cc3ea2d302a..fc8972a5fa7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-color-001.html
index 54b7b6f9343..5de402c8823 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-style-001.html
index 30160971492..537913dc3c4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-width-001.html
index 79e99fd4ea4..10bf633bd06 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html
index 853a5c69e4a..ca26f45ce39 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-style-001.html
index 05d021252e0..5519b40c7af 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-width-001.html
index d21376e9d99..927914f4ec7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-color-001.html
index 5e3f926f296..7bee834f1eb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-style-001.html
index 40ccb52ce91..a29929b4b29 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-width-001.html
index 12efb162693..5ef459ce0c2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-end-radius-001.html
index b16e23ec6ad..9aa137351de 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-start-radius-001.html
index 1c0808fe064..95f9b2b0429 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-color-001.html
index 7aed5db0f80..8a816f55bff 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-left-radius-001.html
index ea0bf0cccc4..05c81a48e92 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-right-radius-001.html
index c1412c8770e..5b07ed2576b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-style-001.html
index 0f1bf8d0d86..c926b488e06 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-width-001.html
index 386cf7dda43..1e3a31a2e9c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-reset-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-reset-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-attachment-001.html
index d53b0a0dfac..911dca9f881 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-clip-001.html
index 8064c69d3e4..284badd4c23 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-color-001.html
index 6e0015bfe51..325ead5b6e9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-image-001.html
index 329d5d585dc..06b8e4e04f1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-origin-001.html
index f1c6d7a70ab..74b380faabd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-position-001.html
index 2a017ebf548..57b65113b23 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-size-001.html
index 9ca67c3143d..d648568f553 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-color-001.html
index ae5949952a0..2860496498e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-style-001.html
index 178fa9ecc54..15a63a8957b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-width-001.html
index c002ceb94c5..ad170895609 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-color-001.html
index f3e080bce4e..8c9e63b0541 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-style-001.html
index c3e19726c16..48adb0e78f9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-width-001.html
index 5fd9d3db76d..8b313231e42 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-color-001.html
index ab1537b86a2..1347c458314 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-left-radius-001.html
index aefa937afa1..1cd42ac8eb4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-right-radius-001.html
index 4b3d8a9e634..7d0d64ea995 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-style-001.html
index 16dd06bbbdf..2037b56abb3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-width-001.html
index c80db6d7d9e..31f98720f4a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-end-radius-001.html
index f8bc199302b..ad7f35eb210 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-start-radius-001.html
index 42160f62a52..08fa61827b8 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-outset-001.html
index 40d25b1edff..fa178302057 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-repeat-001.html
index 230f25ae179..e14d0311a83 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-slice-001.html
index 94da0fbf880..f7d29c1f788 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-source-001.html
index 3cb7e337d65..657e730fe48 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-width-001.html
index 46701af4a6c..e9589f5472c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-color-001.html
index 71a3b84d238..33d69fcd061 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-style-001.html
index 1b8b5ec9b94..8ca3ff6298e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-width-001.html
index de872e42b2b..5c462d268f6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-color-001.html
index da6adf0fe6d..8c58c105a29 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-style-001.html
index f59675121b3..245907128ab 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-width-001.html
index 3ebe95ac585..a2784d9eaea 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-color-001.html
index e726b2c7bcc..bf21a38cd42 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-style-001.html
index d2a5ecc473b..2a5417d4b62 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-width-001.html
index 69d28457bf0..fd7a1f6b6a2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-color-001.html
index b43d4bf967b..a84754ba730 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-style-001.html
index ca417688ec2..de6f1048475 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-width-001.html
index 2bc8eeebc30..4762bc153d7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-end-radius-001.html
index 2ac01619970..11889b394c0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-start-radius-001.html
index 3f8b4b0543c..fb207f19a82 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-color-001.html
index 8b5297848fc..38c07c7703c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-left-radius-001.html
index dd8e0dfce98..1cd441266a1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-right-radius-001.html
index c927e0e2d6a..e244b8de925 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-style-001.html
index 589890cfa7f..4414a847781 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-width-001.html
index eeddc094005..cb018429848 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-attachment-001.html
index 486ce905afd..40f2da5082e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-clip-001.html
index 53cedda1910..290511b0e22 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-color-001.html
index 6f8a67cc387..97305b34fca 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-image-001.html
index 1c10148b1a8..3efa1ab29b9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-origin-001.html
index 3e00d61eafb..1e13905038f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-position-001.html
index f9840aa3457..f0cf01dd200 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-size-001.html
index c302576ca6c..3e3632c737b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-color-001.html
index abc70b93d4c..0f5968ef409 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-style-001.html
index f11cfdf5842..f6f5f0f2e00 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-width-001.html
index 8e62dd67eb2..f028f5576c3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-color-001.html
index b9bd3c77f82..992f334d726 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-style-001.html
index 3efa0dd44e9..ccb08a77fc6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-width-001.html
index 0dac444494d..5bb9c235e83 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-color-001.html
index f2ccaeff67a..a1656b36a59 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-left-radius-001.html
index bfc1309921e..bbbbe8ccd19 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-right-radius-001.html
index 0c483b25708..33221a62bec 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-style-001.html
index 1def857d935..5313555002a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-width-001.html
index 09c8a87044f..fa493f28939 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-end-radius-001.html
index bf7e28e8521..ebc5a8e4fe8 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-start-radius-001.html
index 0eff3fbe0a3..f73e0869847 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-outset-001.html
index d9650e66315..7a403153d5f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-repeat-001.html
index 243e767b321..31d1505117f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-slice-001.html
index f31b493d310..e6f1dc7b8c2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-source-001.html
index 83470516ba7..123b675a410 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-width-001.html
index eb21200046e..9fc8c9fa38d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-color-001.html
index 5f85e5f4eda..b96306b95c6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-style-001.html
index c2194d2dca6..9b3b9e7e9a0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-width-001.html
index c14fb780ae1..0ba901e8d90 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-color-001.html
index b71a6139b53..00d50757af3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-style-001.html
index a8c8774a1e9..a94a9066671 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-width-001.html
index 819e9a59f00..50363c0e6c3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-color-001.html
index c3b471b1e57..a5ceb9a0ff3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-style-001.html
index c4e2e052139..d6272f64cc9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-width-001.html
index 3a1ae1222c4..4e40302c1ad 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-color-001.html
index 2e060fb3483..997ae97cd89 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-style-001.html
index 83edfc0db11..68ac37ad6e5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-width-001.html
index 9ee39c21e94..791ae9fd279 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-end-radius-001.html
index c757447008e..68abb7d7acd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-start-radius-001.html
index 3e5aa5bbf2c..81e4b50f9b7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-color-001.html
index 4c4649efe5f..d8699b08593 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-left-radius-001.html
index 92920351a2c..2f3b9c8a397 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-right-radius-001.html
index 87950497ae3..afaf8984158 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-style-001.html
index a4ebf221a23..3452dd0eb99 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-width-001.html
index 68ce10c8cd4..6f9a1536a05 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-search-text-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-search-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-attachment-001.html
index 7e8ec3a65c5..71bec2840c9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-clip-001.html
index cb4535bde03..dc0a349173b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-color-001.html
index 2b1c68bdb26..e4a4f8b755b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-image-001.html
index 7eb82beccc4..9b3ea10643a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-origin-001.html
index 79d86020bc1..e706b20f280 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-position-001.html
index b4c0e49ee34..20ddf83fae5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-size-001.html
index 3e8b21ee4c8..5b8425b7295 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-color-001.html
index d148c782548..164ded5c003 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-style-001.html
index 656613f4f08..2b77013140d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-width-001.html
index ed35fb1cbc3..808183d9fa2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-color-001.html
index 1860fa1fb9a..91a9c27984a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-style-001.html
index 86d867026af..27096129a31 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html
index 0fa8dd0d3f9..f21031e5b10 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-color-001.html
index 172ccbca435..8fc8b3a6aec 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-left-radius-001.html
index 8bd52be507e..abbe12a48f3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-right-radius-001.html
index 7ff561f409b..707eca09ac9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-style-001.html
index c1f06d9ec31..e211b431a42 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-width-001.html
index fe07047c511..1ab71d42743 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-end-radius-001.html
index 68e9c9eb58b..1cea605878f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-start-radius-001.html
index 55520a5ebcc..64c0d1640c2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-outset-001.html
index 5230e24c3a9..5118af1a2c1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-repeat-001.html
index e0595efab40..7478c76d4cf 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-slice-001.html
index 0df5e39e557..ee10bd33b58 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-source-001.html
index ebb6dabff21..f9d964821c7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-width-001.html
index b47aae74547..d9ae1abdcdc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-color-001.html
index 74719f47984..8b19051764c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-style-001.html
index b9f40915217..66f81d49f49 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-width-001.html
index 8d12396f794..466b9f7721c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-color-001.html
index 4fb4c2c01a1..56f3cf63a56 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-style-001.html
index 3efc630402a..b7a6499d7a4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-width-001.html
index 636044e06f6..371ce7a8eef 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-color-001.html
index 549f3fc2a52..2d22261a18d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-style-001.html
index 49683432dfd..5546e84f669 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-width-001.html
index 55f59b45be3..a2e46d30990 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-color-001.html
index f91cfa5e153..a51dea52cec 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-style-001.html
index e4bbf6bd12e..6097d630724 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-width-001.html
index d6cf830addb..b9e3aa3830a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-end-radius-001.html
index 413461895fe..c9a1a383796 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-start-radius-001.html
index 6686abe4dff..6e4d0486c96 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-color-001.html
index 3e2a5883c2e..8245107854a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-left-radius-001.html
index 5cd1efc1054..904098660eb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-right-radius-001.html
index 91efca1cc9a..345f1798f6b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-style-001.html
index edbaec7f677..b69b684779c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-width-001.html
index 6ac89022a1c..710eb424b92 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-submit-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-submit-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-attachment-001.html
index 5c77ea4dbe4..8fde2c83801 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-clip-001.html
index 8afadaad750..a53001aa156 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-color-001.html
index ea100876c05..bf818385f8f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-image-001.html
index 7ba20264d95..31b3a859a2f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-origin-001.html
index 2830b597732..e6825707da5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-position-001.html
index 3520996d2bf..36373729e0d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-size-001.html
index f75c52eaab6..df9a813f3ea 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-color-001.html
index 30ff66b9ead..793cb4bcb24 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-style-001.html
index b5f97425401..c5f80cd4555 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-width-001.html
index 420b8ae989f..6facf5b884c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-color-001.html
index 1a66939ff8e..bb09c9f1954 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-style-001.html
index 135ccabc82b..f1682c4f1e5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-width-001.html
index 8a34a3e0660..ea9dc0e55db 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-color-001.html
index 1fed2144706..a7683f0973e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-left-radius-001.html
index e28ae94821e..9f5fe6bcf66 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-right-radius-001.html
index aa550007b6e..46c27aef0c9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-style-001.html
index 3eb87975be3..b1f375c060c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-width-001.html
index ed8393310ea..c82c078cbd6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-end-radius-001.html
index c1788c844e2..2b6ccdd2104 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-start-radius-001.html
index 8bf58a36506..162ad6de9ef 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-outset-001.html
index 19b1519042b..e7b092c093a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-repeat-001.html
index 614cf751b82..475d6ffcd06 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html
index 81775121ea5..cf337cf28e5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-source-001.html
index 478ec2b8d80..a32955892ff 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-width-001.html
index 139453f9efe..8c5601ac193 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-color-001.html
index e7f3f12b7b7..d5282e49c56 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-style-001.html
index a0c4a619de1..890db23946b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-width-001.html
index efa0fc6ea24..38bc4546bc3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-color-001.html
index 857c3dd64b6..3030db3740a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-style-001.html
index fffa837f4c4..36834f9e6e4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html
index b8a0daa45fc..4e7c8e04f49 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-color-001.html
index c1ed9a11d53..a4084fa5927 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-style-001.html
index 155d2ba0a37..7a01a511fdd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-width-001.html
index 6a37771263d..4011facb5e8 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-color-001.html
index 6528f47fc3e..6f5aa4c7ceb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html
index faeda6e1c77..11fe2956d69 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-width-001.html
index 7fdefd34057..c9987852a1d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-end-radius-001.html
index c9eec0263c5..8ee81c4bf04 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-start-radius-001.html
index d6fdbbf50e0..6eb2af09031 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-color-001.html
index dcdac8ecaeb..ceb6bb07477 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html
index f19c3d6acba..bd6ec0ddf1f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-right-radius-001.html
index b48acf0a3ef..3439c65fd16 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-style-001.html
index 8446838c258..40abbedb55d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-width-001.html
index 8392562aa4c..96233751ef7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-input-text-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-input-text-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-attachment-001.html
index 04165162311..c1181e1321c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-clip-001.html
index 7b7c5bd75ac..d022fb3f06e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-color-001.html
index 8db667f3eb6..0ed336df753 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-image-001.html
index 22af8f03263..2592b12d9fd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-origin-001.html
index 2c57cd1a19f..b87cebbb1c5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-position-001.html
index 5273198b303..12f90ae0c98 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-size-001.html
index 039a5d0ae38..6fc91bc4e41 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-color-001.html
index dac39a768ca..327335ed6be 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-style-001.html
index f8fb78d7775..99553401baa 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-width-001.html
index 35a9f6f0539..74811751aee 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-color-001.html
index 1d7b1087eaf..c552c28d068 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-style-001.html
index d8e435888f2..1e788197c09 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-width-001.html
index b9202c7220d..62e3e5bf489 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-color-001.html
index 4cfc12f7a30..ce6d4d17091 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-left-radius-001.html
index 2663b63865a..12ca0fde9f6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-right-radius-001.html
index d1aba57e683..817eb8692fe 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-style-001.html
index a20c1f7b83c..e4579d4171e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-width-001.html
index 3a9135e22f5..29a66a0fb38 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-end-radius-001.html
index 63a0379fdb1..d8e20406ee2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-start-radius-001.html
index 46c66d3c0b9..67562b2615b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-outset-001.html
index 201d248bf67..10c019dfe47 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-repeat-001.html
index 1e2058f6ee8..19fa543da3f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-slice-001.html
index 52891a1ae99..1c58c63013d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-source-001.html
index 03f3206b264..a612c22a6c3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-width-001.html
index 98cf12b69a5..df327670f7e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-color-001.html
index 0631735e644..7c57b1fc82c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-style-001.html
index ae2179d509f..6a141c2cfaf 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-width-001.html
index b4a08774929..e80933cc05f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-color-001.html
index 4478447b7f6..92073f1cdb2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-style-001.html
index 888f08b7e9f..2b6afb9a6e2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-width-001.html
index ec4b50310db..811017088b2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-color-001.html
index c781144c7f1..75d993386e2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-style-001.html
index 442e9341cbe..4410892b849 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-width-001.html
index 80fb94dbcba..6885bf75251 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-color-001.html
index 05db69049f9..89f3dc1bf66 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-style-001.html
index a984511bb32..17e6733894f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-width-001.html
index 04b9d2381a2..f19a25e4acf 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-end-radius-001.html
index ad95a34000f..7fbdaeb1ee6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-start-radius-001.html
index a78e0730a95..7844db7afb5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-color-001.html
index 9a3a915be2a..29386df876c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-left-radius-001.html
index 9a16ea4be3e..7d985b6208a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-right-radius-001.html
index d88155deb56..a6e6a2bbd39 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-style-001.html
index 97c5739a07e..62e77e1cced 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-width-001.html
index 7bc2799f810..d0607e72b04 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-link-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-link-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-attachment-001.html
index 13515eac8f2..bc09c2ff345 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html
index c05142e32e4..36ce0ba39ba 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-color-001.html
index f6efa06fb04..862d1b868f5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-image-001.html
index aa0421c691d..fd9337eadd7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-origin-001.html
index 3b6816c6b8e..692714707fd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-position-001.html
index 200806ce1ab..eb98cb3b613 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-size-001.html
index 743c119348f..507cf038a8f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-color-001.html
index 698a76c964f..22f81d3c74e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-style-001.html
index 44b0b52e002..a7c45c4caf2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-width-001.html
index f6f95709b93..9c67019cea0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-color-001.html
index acaad35dc93..a1addab0643 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-style-001.html
index f316863f858..b7575b797fb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-width-001.html
index 4020d49f57e..28ead7f5d72 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-color-001.html
index dc9917548e4..0fc35c36b89 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-left-radius-001.html
index f58a8cba1dc..92eefd9a66f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-right-radius-001.html
index adee9244620..8e1c11322a7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-style-001.html
index 1df5d9104d6..43237f0b777 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-width-001.html
index 071c56e85c4..ca26da93ba7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-end-radius-001.html
index 9408a916477..95a2f8cfc1e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-start-radius-001.html
index e2e276ba8e0..0b80a86b3c1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-outset-001.html
index fda9640bf3d..533cd5d8374 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-repeat-001.html
index 9f758658b0d..a047d3ff380 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-slice-001.html
index adf8f91f915..ea96b8dcbad 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-source-001.html
index a8f7b6b2a43..57d7819b8b1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-width-001.html
index b4c7a9670b1..53d9a4b66f8 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-color-001.html
index f2e7481ed7f..477ad2d39ba 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-style-001.html
index fb431c783c8..9f54aa468eb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-width-001.html
index 7413c0d211d..0b7edc7fb0f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-color-001.html
index 5a8c4b6361f..a82c0b561ee 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-style-001.html
index 59f76146a05..741f78f3519 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-width-001.html
index 8ec1ccbcffd..c0041380ef1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-color-001.html
index 9f18ccebe03..ea22e4f1c30 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-style-001.html
index 0911bc58b3d..eea3e176796 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-width-001.html
index 2459a9310a8..b64ae5e089a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-color-001.html
index ee786650bc8..8dced5c1ae3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-style-001.html
index 623f6bf844f..c1fe1f6e5e4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html
index 3e2fd9b4b1d..04dd46d637f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-end-radius-001.html
index 3aaf6f125e4..d5770f67e22 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-start-radius-001.html
index de9d873eeb3..3cffc8e1665 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-color-001.html
index d868e94910d..65867b1d9d5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-left-radius-001.html
index 8d894515882..6b2a7ec0117 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-right-radius-001.html
index e093a721357..c695b7dac07 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-style-001.html
index 03e615f62c6..8e7ae9e7bf9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-width-001.html
index ef6b71b7092..d750424093c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-meter-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-meter-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-attachment-001.html
index dca234b1ab4..01510a18448 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-clip-001.html
index a576b2280f7..972e1559ad2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-color-001.html
index 039a4122988..fac0a52f21b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-image-001.html
index 623ddda764c..3ebd7985e0f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-origin-001.html
index aa5af7d9eef..93cbca06fa1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-position-001.html
index b4e0a85570d..fdb879d340f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-size-001.html
index c0b9e119a1b..d0af64056c2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-color-001.html
index c25c0ab3610..f4c1ec656ed 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-style-001.html
index cca8ac1afdf..10ee9e221a8 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-width-001.html
index 315bf97d702..607a8eb5267 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-color-001.html
index d60640b9f1a..6567e996721 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-style-001.html
index 6f1428c1626..bcf7fa96520 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-width-001.html
index 93b8cc8ef59..0713fee461b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-color-001.html
index 9eceff4625c..33c9ebc77d5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-left-radius-001.html
index c0b211626c1..29ccc3ab50f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-right-radius-001.html
index faaa77f47f1..d8c3ff6e347 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-style-001.html
index 841ea1758dd..b622c413c6e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-width-001.html
index 1e618f0a207..c4e176af4ed 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-end-radius-001.html
index c0532a0d2a1..4e9f4b250cc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-start-radius-001.html
index 739d496bc73..1392e7a2a27 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-outset-001.html
index eec9d28f6e8..c88e8fc0e28 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-repeat-001.html
index 1e97a40426e..389828f4a6d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-slice-001.html
index 3c7d38092e0..bc3703872b8 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-source-001.html
index f89d84f96cb..ed03eb2b784 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-width-001.html
index 9ef2a5989a0..60fa69a08f5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-color-001.html
index 7614185df76..727be95d7d1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-style-001.html
index ed2e730b38e..d48d239923c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-width-001.html
index 0fcdd2004e8..ade49956b7d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-color-001.html
index d5cf86d3024..a98de8f4c0a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-style-001.html
index a066d7b4913..e3ec7eeb8ac 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-width-001.html
index 2d03988b872..3d3d3cf67dc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-color-001.html
index 9f387510d25..54bc48a3bdb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-style-001.html
index 289f8ef6eab..c6196d805e2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-width-001.html
index ac4648bf192..9edc7b239bc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-color-001.html
index 66b525ef463..0056fdb24b0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-style-001.html
index 6c5475b5a33..06a176cc653 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-width-001.html
index 3254dc2aa18..cf9418a905e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-end-radius-001.html
index 0134799c91d..c2e4468d05a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-start-radius-001.html
index 0c12be7b3e1..5651ad5bfda 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-color-001.html
index cf1b9b86c31..e51bec1141b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-left-radius-001.html
index 4444911cbc5..31829d05d4b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-right-radius-001.html
index 5bfd629df0d..b4408935fd7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-style-001.html
index 6ae50d34c98..c50ce398d62 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-width-001.html
index ff5f7bc0580..eafb134c433 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-progress-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-progress-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-attachment-001.html
index ed0256fd58a..5a2a4ab2477 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-clip-001.html
index 8fcd593f724..8d688d17e49 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-color-001.html
index 92108bc5005..ebf50618166 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-image-001.html
index 1657bb46c78..8f76f0f2609 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-origin-001.html
index c6187a35740..c33584bf218 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-position-001.html
index 0b1fd162d60..54bb8b56f82 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-size-001.html
index f059379c375..672a27a5f44 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-color-001.html
index f016a4ce3a2..38d9ac51425 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-style-001.html
index 56181069a0b..91329b9e7de 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-width-001.html
index 1734e26c1e9..29df551cab5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-color-001.html
index 4380db1e791..181fcfea5f2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-style-001.html
index 1b8b689cc83..5e607f0adcb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-width-001.html
index dea54baf56f..0639fafd529 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-color-001.html
index acb3931a868..c0b2e7f5767 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-left-radius-001.html
index 07d00872fe3..df4b02673e7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-right-radius-001.html
index 14d1efda7cb..1b3915e29da 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-style-001.html
index cbbbf1b37e6..eba98f7f33e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-width-001.html
index 393c6812db8..a7c2fe72314 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-end-radius-001.html
index 44df84a4624..7181ba90aee 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-start-radius-001.html
index 30fd85f6925..2abc8753ed6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-outset-001.html
index da8bcd0e14e..e1e17e0d796 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-repeat-001.html
index 63a4a35ea4c..ae84246d94b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-slice-001.html
index 080b9d72899..f5724d34748 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-source-001.html
index 61ebdbf3b32..44371385a77 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-width-001.html
index 125241bdeb6..18f3bc23dbe 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-color-001.html
index 1b2e0db9978..2040e2cf59f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-style-001.html
index c42ec5566ab..c767709d9dc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-width-001.html
index c85656cbc1d..5426dc496ac 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-color-001.html
index 67f91df2dba..e32802ba333 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-style-001.html
index 501e0f57a16..0a821af100a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-width-001.html
index 049c355b9b3..ecc6162fa62 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-color-001.html
index 75247d7dd16..45b783fcdfa 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-style-001.html
index 9b9e800a3ac..70ab1f658b7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-width-001.html
index 21c04b62f62..c626ef386a2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-color-001.html
index d7229d066cb..90e1f18b35a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-style-001.html
index bb71d206740..fabd171c48d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-width-001.html
index c6b7ea15ceb..74e3d4e7686 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-end-radius-001.html
index 808f2e470df..66508d366f1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-start-radius-001.html
index c175684291c..d0d8f5b6273 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-color-001.html
index 8b772fcbbae..4be96ac8e53 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-left-radius-001.html
index 4555f7bf9f7..eb1851ff31c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-right-radius-001.html
index bdd2456717b..6b9544b0057 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-style-001.html
index d1b8925c998..286433ec3ef 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-width-001.html
index 6754370665a..50fabc390e2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-radio-input-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-radio-input-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-attachment-001.html
index eed5c36afd8..6fea7425745 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-clip-001.html
index 2425493ba71..4e9929b7186 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-color-001.html
index f63d6c5e769..69f57923acc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-image-001.html
index 13e226fa7ff..123099800e6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-origin-001.html
index 4f4b117275d..6ec90d2eed7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-position-001.html
index 4ecaef70405..50190d72d94 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-size-001.html
index b4e354d9328..e447de72184 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-color-001.html
index f239bd18a49..5b1784f1e06 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-style-001.html
index a0df8440e25..499a89aa256 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-width-001.html
index a02c0a4f940..892703af732 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-color-001.html
index c46e85783a3..1eaa390696a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-style-001.html
index 90702266133..5fb0cffe734 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-width-001.html
index f4ca55580cd..6c2761f8458 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-color-001.html
index 9ce88704dd7..7505eef050f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-left-radius-001.html
index 3ed1a656c60..cff29359ab7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-right-radius-001.html
index 3f2eefd2a6e..27781502f16 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-style-001.html
index 9bf706c236f..bbf1ab11d79 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-width-001.html
index 77f0bb47de5..70057ceb700 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-end-radius-001.html
index 97d2e5498d4..9791d8f4576 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-start-radius-001.html
index 45443156d24..7efedfeed8c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-outset-001.html
index 249e3611bf8..2d1714baf9d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-repeat-001.html
index e948b3ff527..ce43ffe90f5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-slice-001.html
index 89693852022..6ba4d5b763c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-source-001.html
index 06b1d38bd19..f635b3822ce 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-width-001.html
index e08a346dcaa..af34ff90697 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-color-001.html
index a7834d0d1cd..b6c11ae3b90 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-style-001.html
index 02332fc3aab..f6b9ce769cf 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-width-001.html
index 850a789689d..a26a0c71580 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-color-001.html
index c79178b40f6..9253b76ea5d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-style-001.html
index 3389b729d0b..ed794341ebf 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-width-001.html
index e5b779f0de6..109d69aff69 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-color-001.html
index 3e5eafd1e21..da3920130fb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-style-001.html
index 11692d379d7..e7c2630dca9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-width-001.html
index d1a75f24815..6da54785844 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-color-001.html
index 3b21d757f99..a02e84da1bc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-style-001.html
index dede1544787..e79dd4ba5ce 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-width-001.html
index 8ff795a788b..fcc26fd31b1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-end-radius-001.html
index e9067a6cc49..4a0a5dec810 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-start-radius-001.html
index 04a7a854271..01af123bb5b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-color-001.html
index 1014b24ff3a..d11fc9fc4f1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-left-radius-001.html
index d7d8c65d38b..c9fa079fb82 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-right-radius-001.html
index 4c10b6b1eb1..264634711b3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-style-001.html
index 288b1504445..92a79026779 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-width-001.html
index a4a3141ba11..d6ac8efd40f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-range-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-range-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-attachment-001.html
index 6433eed0003..5dbc26e82d8 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-clip-001.html
index 893f44ad7ed..1734f73ed79 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-color-001.html
index 3de6a52933e..53ce17763c0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-image-001.html
index 28bb448983e..9694dad2f2f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-origin-001.html
index 55e49ddd369..bb7950b8dbd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-position-001.html
index 301005dc7d6..e650565ee08 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-size-001.html
index 442e610adb3..c2fcbfc99ae 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-color-001.html
index 2c5585d3c4a..e382704ffeb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-style-001.html
index e974ff0ea3c..29b4b48f4ce 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-width-001.html
index abab3719f14..6dfcb058354 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-color-001.html
index d185f2e9195..1ab7c42524f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-style-001.html
index 204d8750e01..03ffcf7ade1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-width-001.html
index 62385db2d83..43cab15a708 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-color-001.html
index f69af1be4c9..5ee66519d88 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-left-radius-001.html
index 5f9bc22917b..41b2edd4cc3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-right-radius-001.html
index f0b1c3bb942..0d8c5250c43 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-style-001.html
index 08d50efaecc..44db251bc52 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-width-001.html
index 99594c3cfd4..98d8e4d5cae 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-end-radius-001.html
index 37193b38512..0eb67667bcc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-start-radius-001.html
index 3d5d204816d..865c5b37078 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-outset-001.html
index 226ce72f5c9..a1cf17e5347 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-repeat-001.html
index 9d13282500d..c2b8abe427d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-slice-001.html
index 449c13e1ddf..6c2500bdc16 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-source-001.html
index a472cbb6e4f..22a671d1e8d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-width-001.html
index 9fce0c0a353..f1ef7713275 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-color-001.html
index 6224f7c1b19..e7c6cc6ae05 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-style-001.html
index 7d856d377d1..937560da6ae 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-width-001.html
index f425bd80205..a516dd25d83 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-color-001.html
index bc594243627..122e7aaf27f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-style-001.html
index cb0eb4d52ac..e8c45e39384 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-width-001.html
index 930db1962f8..9e35dc3c192 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-color-001.html
index 17420b3e89b..6af2772ed1b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-style-001.html
index 11579b1a31f..e2964b7e441 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-width-001.html
index a154051e26b..5b91aa41f33 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-color-001.html
index a45bca7115b..76e4a01ae1b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-style-001.html
index c1c4b67e9ad..9c8ab3e46a7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-width-001.html
index e42ebee184f..4e59db8865c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-end-radius-001.html
index cd843e6a98e..6c9cd77cd5c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-start-radius-001.html
index 39a3e28a7c2..fa2018c0d62 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-color-001.html
index a95962bc0cc..f8d8d40c9eb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-left-radius-001.html
index 83d1127a988..fd250b56a2e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-right-radius-001.html
index 8bc5ab06d7b..57dd110bb47 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-style-001.html
index d020d16cd80..8059928dfd5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-width-001.html
index 111bea1491d..5c5f7f62b66 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-dropdown-box-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-dropdown-box-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-attachment-001.html
index 421f39100d8..933023113ca 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-clip-001.html
index ed20f1fb5e3..348d3e0fa2f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-color-001.html
index df8d3167dd0..ba5d4920010 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-image-001.html
index c6d970745fb..e612eec795e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-origin-001.html
index 13ad30ee617..c964aa77a89 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-position-001.html
index 4c2dc06a19e..957388d996c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-size-001.html
index 1f3da703848..9ff1a8528e2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-color-001.html
index b5644b41491..f28c4652f5e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-style-001.html
index 5df38b3ca9f..4c89b1dafe5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-width-001.html
index 747d5ce575a..8e4ce7e9829 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-color-001.html
index 30931dbba75..fd8a3275d6c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-style-001.html
index e5405b566a4..39ad206a321 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-width-001.html
index e002d3569be..1687e230f6c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-color-001.html
index 621a978e2d6..4291882c7cb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-left-radius-001.html
index 9a6168f459d..59501233680 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-right-radius-001.html
index 1ff38c4102b..99f81254e5b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-style-001.html
index 8ca6afd4548..adf1f9d73fb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-width-001.html
index dd2a643272e..86c619c4fa4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-end-radius-001.html
index 371faa88501..f3b4ebedcde 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-start-radius-001.html
index f943b7d0a52..ba43abaf2ca 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-outset-001.html
index d824aeb01a2..eab7c17b112 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-repeat-001.html
index 9b64e00051e..411cb45b0ba 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-slice-001.html
index e132db60a92..4e2ce8155a7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-source-001.html
index aa669d47302..e535b87df69 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-width-001.html
index 8e30fa06692..3b914c4721b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-color-001.html
index f676a262c8c..0a1312ac09d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-style-001.html
index 32c9f20c61e..2279a679493 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-width-001.html
index e408175fd0f..d68a2829a85 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-color-001.html
index 4048d405528..bc243479208 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-style-001.html
index 4f36c9a6f0b..e34b788d3ff 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-width-001.html
index b81eab6f383..7f8021c381d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-color-001.html
index 545941f258a..83d5bff2dfd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-style-001.html
index ccad964bb2b..d2584155abd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-width-001.html
index dd8f6b14291..d45becb8e1d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-color-001.html
index a9a2e4f03a9..b4aa2840057 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-style-001.html
index ea741144d01..c859ce2b87e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-width-001.html
index 473fdedc743..eed728b60ac 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-end-radius-001.html
index 3b5882f8022..2f0badfd53f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-start-radius-001.html
index 7924a6ec135..45a0878db0c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-color-001.html
index 7506e6f1f77..6f3f1186c8e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-left-radius-001.html
index 08acac6ad7e..a1fd4802af6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-right-radius-001.html
index 6a036d1a68f..6a5324c0a7a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-style-001.html
index 468d892e276..58152e3d6d8 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-width-001.html
index 8ef3fef70ec..3c0dc58b2b7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-listbox-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-listbox-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-attachment-001.html
index ea04bb5c772..7dec89818c5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-clip-001.html
index 0e105dbf912..906f60d48b5 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-color-001.html
index 633b1582f82..e2bc226f85e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-image-001.html
index 7362342a0c5..de7da6a784d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-origin-001.html
index 0e2fb2f21bb..af9f6b10fa2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-position-001.html
index 36e7ffc7250..f560cbb5347 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-size-001.html
index 70a7b7bcdae..145d2c71909 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-color-001.html
index f844e1c9f22..961e93dbe10 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-style-001.html
index 884caa85c4f..8e5389af254 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-width-001.html
index e18ed9d5132..7031d0b3d89 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-color-001.html
index 3cded602a7a..a43d9e0c5be 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-style-001.html
index b391c60ce2d..872d4bc8017 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-width-001.html
index 75622190757..8ed9de6b6c8 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-color-001.html
index 20654b5a42a..a6f3b1bc34f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-left-radius-001.html
index 3bcd6b42d92..0b13e4cf0e0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-right-radius-001.html
index 2013c4eec85..c6c82b2f020 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-style-001.html
index d622a66bb42..04c11849dff 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-width-001.html
index 501d49d0b07..fad165718a1 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-end-radius-001.html
index e82a5f63ba2..86acdda2ffc 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-start-radius-001.html
index 73608dea91c..2ca6eacf8ed 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-outset-001.html
index 3bc99fda1c1..0a2874b8336 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-repeat-001.html
index 4d563a4e2ec..d5e2c5ebe97 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-slice-001.html
index d4eff46f7f5..ea4a391585e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-source-001.html
index a52605ad751..014b940cb5b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-width-001.html
index 386c46d892e..48ac7ddf469 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-color-001.html
index a906ef77c8a..52aa7fc0a43 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-style-001.html
index fa5ed102c92..840bff1e593 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-width-001.html
index 0bbe404ce78..f44cf60d5e0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-color-001.html
index 219234ed3f2..f8f10ea033e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-style-001.html
index 9b556a386e7..c22a45f12ec 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-width-001.html
index 46e189953f4..1b695b92ab9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-color-001.html
index 36b5e9590d9..b748596a467 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-style-001.html
index 555f1be3d86..a7aaff3cbde 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-width-001.html
index 27d96406ef2..0535665d8eb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-color-001.html
index f583e6aa17e..4b6b398676a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-style-001.html
index 998263e7cc6..618b0fe9434 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-width-001.html
index 22c28490390..3ff4d19fce6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-end-radius-001.html
index b9e81afafa6..ccb4434b99b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-start-radius-001.html
index 5f92400a6c8..1a0596425c7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-color-001.html
index 7149c67b502..89355fe2a0d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-left-radius-001.html
index b362de342b6..005650470c2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-right-radius-001.html
index ce37dd24030..e3227568e96 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-style-001.html
index 7215db5dae5..8359e858ea9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-width-001.html
index 1da3cd176cb..b37df0dde11 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-select-menulist-button-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-select-menulist-button-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-attachment-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-attachment-001.html
index 3e38fcacb5b..aa8f7e11f6e 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-attachment-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-attachment-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-clip-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-clip-001.html
index a472d107715..f67c36688d9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-clip-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-clip-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-color-001.html
index b336e6088bc..05b03f508fb 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-image-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-image-001.html
index 30cebc644f1..b5fe21ebdc3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-image-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-image-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-origin-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-origin-001.html
index 82b53272d55..39780bc3c16 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-origin-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-origin-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-position-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-position-001.html
index ee118c38e1f..f6c3258640c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-position-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-position-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-size-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-size-001.html
index 73d1995ce7e..1a5e574430f 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-size-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-background-size-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-color-001.html
index 66f4d765649..30c01aa8ae0 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-style-001.html
index ec3b475e339..a3c88840cce 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-width-001.html
index a7937e45db5..13f169edcec 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-color-001.html
index fb22b57e290..0f70cf4a3ae 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-style-001.html
index e16310ab55f..283f9826ba9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-width-001.html
index 1e2295391b4..f14bc27bff3 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-block-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-color-001.html
index a86b394c925..703e9bcfba4 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-left-radius-001.html
index e51c6e46196..c5202e39bd9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-right-radius-001.html
index ce33139d4b8..cc5b106ad2b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-style-001.html
index 9ad43964c73..bc69ddbee69 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-width-001.html
index a0a34e73695..1d5433cbe9a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-bottom-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-end-radius-001.html
index fd7d13b35ff..fa7b5a49ffd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-start-radius-001.html
index 9a2322a0698..d46e1be4c9c 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-end-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-outset-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-outset-001.html
index b3763fb769e..0eb4984e5e9 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-outset-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-outset-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-repeat-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-repeat-001.html
index 189708878e7..34ddbc24e0a 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-repeat-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-repeat-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-slice-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-slice-001.html
index e0d5b6ea140..78f102679c6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-slice-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-slice-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-source-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-source-001.html
index ab1656686a2..b52c4cd6589 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-source-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-source-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-width-001.html
index bce5767a4e4..117459230c2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-image-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-color-001.html
index 30a7b1cd4ff..13d7af1a0a6 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-style-001.html
index b3f1ddedfe1..00bd6ef6945 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-width-001.html
index 153c1be6204..87344d6b33d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-end-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-color-001.html
index 4387bb27a38..a95c2376106 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-style-001.html
index b5d504fb6e8..736b7ef0884 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-width-001.html
index 92a14b6b35c..d8e7ab895e7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-inline-start-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-color-001.html
index 4392df571fd..26a01734093 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-style-001.html
index a38c46dad11..20b6f28b983 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-width-001.html
index 8755d5efe65..4903b1851c7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-left-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-color-001.html
index 767e3e6fd83..906f6abb3ff 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-style-001.html
index fd240c8724a..26c4e16991d 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-width-001.html
index 97acba2f5e3..2d731933d43 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-right-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-end-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-end-radius-001.html
index 1a2def2e6d2..3529ce0d9d2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-end-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-end-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html
index 67efed57704..3c6015120e2 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-start-start-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-color-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-color-001.html
index 41560738329..ad3a40cab22 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-color-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-color-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-left-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-left-radius-001.html
index 7648876231a..415e28abba7 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-left-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-left-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html
index 45586916119..979cafd4cca 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-right-radius-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-style-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-style-001.html
index 2a3876a30c3..708add8a4cd 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-style-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-style-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-width-001.html b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-width-001.html
index 629ddc43eaf..e45ed88239b 100644
--- a/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-width-001.html
+++ b/tests/wpt/tests/css/css-ui/compute-kind-widget-generated/kind-of-widget-fallback-textarea-border-top-width-001.html
@@ -10,7 +10,9 @@
<link rel="match" href="../compute-kind-widget-fallback-textarea-ref.html">
<style>
#container { width: 500px; }
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input { appearance: textfield; }
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button { appearance: none; appearance: menulist-button; }
</style>
diff --git a/tests/wpt/tests/css/css-ui/tools/build-compute-kind-widget-fallback-props.py b/tests/wpt/tests/css/css-ui/tools/build-compute-kind-widget-fallback-props.py
index 40240cdac07..29e416a7058 100644
--- a/tests/wpt/tests/css/css-ui/tools/build-compute-kind-widget-fallback-props.py
+++ b/tests/wpt/tests/css/css-ui/tools/build-compute-kind-widget-fallback-props.py
@@ -108,7 +108,9 @@ template = u"""<!-- DO NOT EDIT. This file has been generated. Source:
<link rel="match" href="../compute-kind-widget-fallback-{el_id}-ref.html">
<style>
#container {{ width: 500px; }}
+ /* NOTE: This rule is only used in the search-text-input tests: */
#container > #search-text-input {{ appearance: textfield; }}
+ /* NOTE: This rule is only used in the select-menulist-button tests: */
#container > #select-menulist-button {{ appearance: none; appearance: menulist-button; }}
</style>
diff --git a/tests/wpt/tests/css/css-values/attr-security.html b/tests/wpt/tests/css/css-values/attr-security.html
index ee9b030d56f..25f0a78a328 100644
--- a/tests/wpt/tests/css/css-values/attr-security.html
+++ b/tests/wpt/tests/css/css-values/attr-security.html
@@ -40,9 +40,8 @@
test(() => {
assert_equals(window.getComputedStyle(elem).getPropertyValue(property),
- expectedValue,
- "'" + property + ": " + attrString + "' with data-foo='" + attrValue + "'");
- });
+ expectedValue);
+ }, `'${property}: ${attrString}' with data-foo="${attrValue}"`);
elem.style.setProperty(property, null);
}
@@ -61,9 +60,8 @@
elem.style.setProperty(customPropertyName, attrString);
test(() => {
assert_equals(window.getComputedStyle(elem).getPropertyValue(customPropertyName),
- expectedValue,
- "'" + customPropertyName + ": " + attrString + "' with data-foo='" + attrValue + "'");
- });
+ expectedValue);
+ }, `'${customPropertyName}: ${attrString}' with data-foo="${attrValue}"`);
elem.style.setProperty(customPropertyName, null);
}
diff --git a/tests/wpt/tests/css/css-values/cap-invalidation.html b/tests/wpt/tests/css/css-values/cap-invalidation.html
index 0becd0d093d..c3d7f798e11 100644
--- a/tests/wpt/tests/css/css-values/cap-invalidation.html
+++ b/tests/wpt/tests/css/css-values/cap-invalidation.html
@@ -21,9 +21,11 @@
<script>
setup({ single_test: true });
- let old_width = div.getBoundingClientRect().width;
- document.documentElement.style.fontFamily = "sans-serif";
- let new_width = div.getBoundingClientRect().width;
- assert_not_equals(old_width, new_width, "expect the capital height of Ahem and sans-serif to be different");
- done();
+ document.fonts.ready.then(() => {
+ let old_width = div.getBoundingClientRect().width;
+ document.documentElement.style.fontFamily = "sans-serif";
+ let new_width = div.getBoundingClientRect().width;
+ assert_not_equals(old_width, new_width, "expect the capital height of Ahem and sans-serif to be different");
+ done();
+ });
</script>
diff --git a/tests/wpt/tests/css/css-values/ch-unit-019.html b/tests/wpt/tests/css/css-values/ch-unit-019.html
new file mode 100644
index 00000000000..1b97165d72d
--- /dev/null
+++ b/tests/wpt/tests/css/css-values/ch-unit-019.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Values and Units Test: support for the ch unit</title>
+<link rel="author" title="Jason Leo" href="mailto:cgqaq@chromium.org">
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#ch">
+<link rel="match" href="reference/ch-unit-019-ref.html">
+<meta name="assert" content="The ch unit should fallback to 0.5em or 1em respectively when it's impossible to derive the width of the “0” (ZERO, U+0030) glyph in the font used to render it">
+<style>
+@font-face {
+ font-family: "icon-font";
+ src: url("data:font/woff2;base64,d09GMgABAAAAAAngAAoAAAAAGagAAAmTAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgkIKpCiZEAtSAAE2AiQDgR4EIAUGB4c4GwcTUZRuUo/sx2HsZqnF1Ss+lo/VoBPFm3bORkgye4CbdpcESkOCaKDFK5aqUjHbYGKWTMxZ5/zE5c2c+/lT7mXjVgWS1L7JWnGZ6oNz2lw2vxvYI0lMaw+OWM7YxLY24f+qtPVE8Ofap2RSJVCdGkXj62T2ZScvm3xIc0S0W/wErsDyXG98gVmYGlOhK2ytrNpwFbgue9FMHHzf3P5liGoq87CmwInm9vUFgMLPyQUgASC2Ek8AYPXq1vgNmGABAAHBJIwPQBXcsbC9uRZufIgfRuLjwFmAp4bq22lQgIXSfuAmZzIUygByJbbKKLCXU0C1fRgZCIypWGUH1H8goBTGMgrSGlILciX7iqRJGTJJ0AcTSbRMkCT44okXB0Gxxi6/AUVpKLuM4xSci+MSbCouXqXn9CpapX3tYk0K4gyccjHmDrSeaeAYDadL0iU4Na5WpzHoKItcwlJt+B50976oQxzIUR4NcpwbE+OnO4FBr3y5cTPithh/BHP1W4n6jXI5bB1PXcwr4jZN42GQWRTNh0Cfx5jDRL0n46O9URyITrAYcb0CiHBTT6Pjta9LHeaCstGgGNYpztFEDL97l1ev6N+8H1y//O1fXb957/Jl9+KJaE6PjBhWjFVl4WZ5uKh9JSk1/CPKZEB9XBeWLlpnouMSP7Q+c/PzQtPWyenUqkct+eU0ZUmVbco4dw6m6XfMATCzM83IPExAIGSMqYs6S+VxakkX6Kgf9bVYrEAhsQRbX4ia2zURhnUxLFaUKBGmAAhduVdoHgDAgQv3bh5Zsog+fM4Go2++eDQlDIMFabZsXV0JgR3l7rB3+r5YAhoH/nURWC4OnXlCEuIVCm0xjTjRJP1WHPdsyjBYqRczJ7N/r173Lp9+dqnLFT5e11f+7r+esZP/D65v3l+o0afAn9uPx9+7z6f7jeORMuOsL7KucZ2Ly5fHv+u3/av/BGrAaNpp1w0K0Gsmpk1nk31XKpNVkpVHTSlOWAkLoQBkhy5skK9qOzDUGufIteuU9aF1QeH0rUYn19EgcWbqW/JoOWCik7ZMkg7DRlNKKvo9FjbpeqPxBHC/evaI/sXzuA5kWDt/8t7pQ7fyialWD4xaP/IVkLjaOM6rtcO6+f+lrHGsRQh/Ol7PMCOmQ4I6KY8xjHWiwMhPeKFC60hlL/VHRfXMI390RqkyyAY9YsdlpFFGlPI+o1XwjF4dCvMqc4UQ/VJoTVwOeMRMyJskxEnpt/PzMCiHTWaB94ooaiDJlPHLUl1s04XlplQl7n/k+wVWD1S2Va7qA2cIFPogyAVCoLwHAuoG0JCOo7Rx1wlrz1p3iDBWkYjEC5ylAnQRJ+3GFPb6Qt7M1MnGW8bRfLm6C1jSlEZaXMq+0d2wM0t/1QEStiJbO8yGXfHGwETaXGKsXaQwsCws80L7+yV1M/UW2bKiqcHXkCaJBKCeRkJdDrwPX07I6mp5G7sPg5ft7z1840l87tE/mVfwbqNwd0plnK2xLNvl9+VfK7uTe0UPE2Tp9RsaMWDq39vpV/m/czwZ8gSE6z61mva4PZ88KXYXm51PnObQ/h7wFNjsiiVLFB5arfaJ12Ff292NdBijvN+o1zfyCvBl2xaW3XL9+lKIpRt16PAP+nBIEvsb9abjVC++KAgsG3jxRZb9fswYFm5AabDp9M3i4punTcG7o9W2qJQeUtE6ZOoQermXS4sEkiQiiVqXIBzfx7+tpWQovKhi2Rdf/P57a77f747Y7OwDopZMmTJ0a0kVDEi1CCzJoX3olMD3bXqGWIB3ceq0BAnvF3hfxpLMknWETpr9Ihs88eI5VkHE/J8+Jmk1+LgAUfbZESf8LAc1CA1vvaXN9qmBJj9OSj531szfFCRVnLuYpNGSBAEEqkuk2VIdsb40EwKuYZU0tZYnqu6QVYZomF8y5+Ya40t6LQ+dsHd0hrUxKBNi3DyhceqVO8joylOeE55TlbS84o2xm2o4NZ6owxZ3T03GRfV6+GB340PKYe5aEwflUCYbeevU2XNxsd3LKGxsbW1EkmaVmUxz15bBjUc6qxoxTFJm6yXdBw9tq8qhUlPUgDBRptltWre2HKzVCzYRO160/dCoT0wsEBkJ7TsNouu6fAiv3Y0T9B+Lwh1aSzDueyZhdCRR1dAChzG5Y5TFThmqc4uSUod6CFSVz57jB38+Z3Y0/Lh27Rgjz8iQM8euZe2u1D8z0m7XaiIiNNrZNxJ+LWSVbg78ZIxtjtV2+SH/Qr8vCXbJZac7yUeTOtfIEUtY+6p+fqhId/oFwfu+JXwFW/O8YsbuZ9teGV8w/ULey8UGQ8rHeRemF4x/Zduz1eWiN2/r+RCWDTmPKShfvW3axbyPU3YWv5x3cVrJ7owrXS0z9/TcvWcy3bvrfM21hXD9OvnxTz99TPZngxOrNI4q7OmVQ7M9Ebt4GruAnbYY+he4GOalF53OF1+afV09DR8SKtxz2+bfDLsfjCV2dApWb+K7T0kJ9Y1aMYI4ckQjZVcy5NN3E9cUTQ1JOX48JVGifvQwydwnDo4Dj41rho9l4waLfeaUv/9OQbeHTC1aY6+XWclKNd14YoRC/Q0lgXleq9C5A5YcKr9qQXhczZUVp12cn96xbKs97gtsfVbg3OtauiDAJHGDU173Jokg3HX1+oREdyK2DVapBrfhY21Cpy2+eXPxNOV9XN/Txq6hDRy7cHbNvuQ/ri8oc3+TIQFwzidPuqtWtwxcEG7CDwAyIDRGkXGBOOiJwb4xJkAY90fiFHDeaTDLnjY3Ddx7Vln7sm7s8eFuKIIHxTSvEcvFagC6S6sUjF4u3jDo9oDHtzJ8l3gZozQoayDc5mfsGkbBMKBgvEkKBISQ/AkHrd8NCSSRQglKMQhlGIw0ypFBFhWoRBWqUYNa1KEeDWhEDk1oxhAMRQta0YZ2dKATXRiG4RiBkRgl+T2gWw0cNnjKhLFj+MnjmC182Lt1vwMpeSnBzYsJ/oYzGCRgOGta3gFYs0OWkYUWWCeg6RKOsrQgejCkn/4UUTL0iyEOjhkKNXhahnvfDuPBrVdQr0U/cdy/fJd8GIUpBDBeQKRQh2sEL6owlI/2BBEZGichvrpj7Hu5f6k+Ycj04WOG8lIYawQ0n7XbFQPkIcHLTyn2YwTBSIzsplTs2S5DGCiFAoJUS149E/nJ4wqHJwg4ALZgtTgiBG4mn3Ch4mE7P2ksH1RidwcLPY86GRZTvhS8NOXsBLfdsLMSAnbt/MjB08OxKc4zCP6mAchcbBAkZIQDAAA=") format("woff2");
+}
+
+div {
+ height: 10px;
+ background-color: blue;
+ margin-top: 10px;
+}
+
+div::before {
+ content: "\e00b";
+ display: none;
+}
+
+.test {
+ /* 50px + 10 * (0.5em)*/
+ /* 50px + 10 * (0.5 * 10px) = 100px*/
+ width: calc(50px + 10ch);
+}
+
+.test-upright {
+ writing-mode: vertical-rl;
+ text-orientation: upright;
+ /* 50px + 5 * (1em)*/
+ /* 50px + 5 * (1 * 10px) = 100px*/
+ width: calc(50px + 5ch);
+}
+
+.ref {
+ width: 100px;
+}
+</style>
+<p>The test passes if there are two blue rectangles of equal length.</p>
+<!-- In the cases where it is impossible or impractical to determine
+ the measure of the “0” glyph, it must be assumed to be 0.5em
+ wide by 1em tall. Thus, the ch unit falls back to 0.5em in the general case-->
+<div class="test" style="font: 10px icon-font"></div>
+<!-- and to 1em when it would be typeset upright (i.e. writing-mode
+ is vertical-rl or vertical-lr and text-orientation is upright).-->
+<div class="test-upright" style="font: 10px icon-font"></div>
+<div class="ref"></div>
diff --git a/tests/wpt/tests/css/css-values/ident-function-computed.html b/tests/wpt/tests/css/css-values/ident-function-computed.html
new file mode 100644
index 00000000000..0a4068702e4
--- /dev/null
+++ b/tests/wpt/tests/css/css-values/ident-function-computed.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<title>CSS Values: The ident() Function (computed values)</title>
+<link rel="help" href="https://drafts.csswg.org/css-values-5/#ident">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<div id="target"></div>
+<script>
+ // Any property that accepts <custom-ident> will do.
+ let prop = 'view-transition-name';
+
+ test_computed_value(prop, 'ident(myident)', 'myident');
+ test_computed_value(prop, 'ident("myident")', 'myident');
+ test_computed_value(prop, 'ident("myident" 3)', 'myident3');
+ test_computed_value(prop, 'ident(3 "myident")', '\\33 myident');
+ test_computed_value(prop, 'ident("my" "ident")', 'myident');
+ test_computed_value(prop, 'ident(my "ident")', 'myident');
+ test_computed_value(prop, 'ident("my" ident)', 'myident');
+ test_computed_value(prop, 'ident(my ident)', 'myident');
+ test_computed_value(prop, 'ident(-- myident)', '--myident');
+ test_computed_value(prop, 'ident(my 3 3 3 3 ident)', 'my3333ident');
+
+ // Check for support in specific properties (WIP):
+ let actual_ident = 'ident("myident" 42)';
+ let expected_ident = 'myident42';
+
+ // https://drafts.csswg.org/css-view-transitions/#view-transition-name-prop
+ test_computed_value('view-transition-name', actual_ident, expected_ident);
+</script>
diff --git a/tests/wpt/tests/css/css-values/ident-function-parsing.html b/tests/wpt/tests/css/css-values/ident-function-parsing.html
new file mode 100644
index 00000000000..615051c78d5
--- /dev/null
+++ b/tests/wpt/tests/css/css-values/ident-function-parsing.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<title>CSS Values: The ident() Function (parsing)</title>
+<link rel="help" href="https://drafts.csswg.org/css-values-5/#ident">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<script>
+ // Any property that accepts <custom-ident> will do.
+ let prop = 'view-transition-name';
+
+ test_invalid_value(prop, 'ident()');
+ test_invalid_value(prop, 'ident( )');
+ test_invalid_value(prop, 'ident(rgb(1, 2, 3))');
+ test_invalid_value(prop, 'ident(5px)');
+
+ test_valid_value(prop, 'ident(myident)');
+ test_valid_value(prop, 'ident( myident)', 'ident(myident)');
+ test_valid_value(prop, 'ident(myident )', 'ident(myident)');
+ test_valid_value(prop, 'ident("myident")');
+ test_valid_value(prop, 'ident("myident" 3)');
+ test_valid_value(prop, 'ident(3 "myident")');
+ test_valid_value(prop, 'ident("my" "ident")');
+ test_valid_value(prop, 'ident(my "ident")');
+ test_valid_value(prop, 'ident("my" ident)');
+ test_valid_value(prop, 'ident(my ident)');
+ test_valid_value(prop, 'ident(-- myident)');
+ test_valid_value(prop, 'ident(my 3 3 3 3 ident)')
+
+ // Check for support in specific properties (WIP):
+ let ident = 'ident("myident" 42)';
+
+ // https://drafts.csswg.org/css-view-transitions/#view-transition-name-prop
+ test_valid_value('view-transition-name', ident);
+</script>
diff --git a/tests/wpt/tests/css/css-values/reference/ch-unit-019-ref.html b/tests/wpt/tests/css/css-values/reference/ch-unit-019-ref.html
new file mode 100644
index 00000000000..f73a3c6e1d8
--- /dev/null
+++ b/tests/wpt/tests/css/css-values/reference/ch-unit-019-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Values and Units Test Reference File</title>
+<link rel="author" title="Jason Leo" href="mailto:cgqaq@chromium.org">
+<style>
+div {
+ height: 10px;
+ background-color: blue;
+ margin-top: 10px;
+ width: 100px;
+}
+</style>
+<p>The test passes if there are two blue rectangles of equal length.</p>
+<div></div>
+<div></div>
+<div></div>
diff --git a/tests/wpt/tests/css/css-values/sign-in-keyframes-with-relative-units.html b/tests/wpt/tests/css/css-values/sign-in-keyframes-with-relative-units.html
new file mode 100644
index 00000000000..5431c7c6241
--- /dev/null
+++ b/tests/wpt/tests/css/css-values/sign-in-keyframes-with-relative-units.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<title>CSS Values Test: sign() in keyframes with relative units and font-size change</title>
+<link rel="help" href="https://drafts.csswg.org/css-values/#sign-funcs">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ @keyframes --a {
+ from {
+ scale: calc(1.5 + sign(1em - 10px));
+ rotate: calc(1.5deg + sign(1em - 10px) * 1deg);
+ text-size-adjust: calc(1.5% + sign(1em - 10px) * 1%);
+ font-weight: calc((1.5 + sign(1em - 10px)) * 100);
+ }
+ to {
+ scale: 1;
+ rotate: 1deg;
+ text-size-adjust: 1%;
+ font-weight: 100;
+ }
+ }
+ #target {
+ animation-name: --a;
+ animation-duration: 1000s;
+ animation-timing-function: steps(2, start);
+ width: 100px;
+ height: 100px;
+ background: teal;
+ font-size: 8px;
+ }
+</style>
+<div id="target"></div>
+<script>
+ test(() => {
+ assert_equals(getComputedStyle(target).scale, "0.75");
+ assert_equals(getComputedStyle(target).rotate, "0.75deg");
+ assert_equals(getComputedStyle(target).textSizeAdjust, "0.75%");
+ assert_equals(getComputedStyle(target).fontWeight, "75");
+ }, "Initially, the font-size is 8px for #target, so the result is 0.75");
+
+ test(() => {
+ target.style.fontSize = "16px";
+ assert_equals(getComputedStyle(target).scale, "1.75");
+ assert_equals(getComputedStyle(target).rotate, "1.75deg");
+ assert_equals(getComputedStyle(target).textSizeAdjust, "1.75%");
+ assert_equals(getComputedStyle(target).fontWeight, "175");
+ }, "Changing the font-size of #target changes the start point, so the result should be 1.75");
+</script>
diff --git a/tests/wpt/tests/css/css-values/tree-counting/sibling-index-keyframe-transform-dynamic.html b/tests/wpt/tests/css/css-values/tree-counting/sibling-index-keyframe-transform-dynamic.html
new file mode 100644
index 00000000000..4dce7f6a82e
--- /dev/null
+++ b/tests/wpt/tests/css/css-values/tree-counting/sibling-index-keyframe-transform-dynamic.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<title>CSS Values and Units Test: sibling-index() changing transform during @keyframes animation</title>
+<link rel="help" href="https://drafts.csswg.org/css-values-5/#tree-counting">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ @keyframes --anim {
+ from {
+ transform: translateX(calc(10px * sibling-index()));
+ }
+ to {
+ transform: none;
+ }
+ }
+ #target {
+ animation: --anim 1000s step-end;
+ }
+</style>
+<div>
+ <div id="rm"></div>
+ <div></div>
+ <div id="target"></div>
+</div>
+<script>
+ test(() => {
+ assert_equals(getComputedStyle(target).transform, "matrix(1, 0, 0, 1, 30, 0)");
+ }, "Initially, the sibling-index() is 3 for #target");
+
+ test(() => {
+ rm.remove();
+ assert_equals(getComputedStyle(target).transform, "matrix(1, 0, 0, 1, 20, 0)");
+ }, "Removing a preceding sibling of #target reduces the sibling-index()");
+
+</script>
diff --git a/tests/wpt/tests/css/css-view-transitions/content-with-overflow-zoomed-ref.html b/tests/wpt/tests/css/css-view-transitions/content-with-overflow-zoomed-ref.html
index ae076d55787..5bfb9d2fa98 100644
--- a/tests/wpt/tests/css/css-view-transitions/content-with-overflow-zoomed-ref.html
+++ b/tests/wpt/tests/css/css-view-transitions/content-with-overflow-zoomed-ref.html
@@ -6,9 +6,7 @@
.target {
width: 80px;
height: 80px;
- contain: paint;
background: blue;
- overflow-clip-margin: 50px;
view-transition-name: target;
zoom: 1.5;
border: 2px solid black;
diff --git a/tests/wpt/tests/css/css-view-transitions/group-animation-for-root-transition.html b/tests/wpt/tests/css/css-view-transitions/group-animation-for-root-transition.html
index 9c702663e62..b7ad7598e8b 100644
--- a/tests/wpt/tests/css/css-view-transitions/group-animation-for-root-transition.html
+++ b/tests/wpt/tests/css/css-view-transitions/group-animation-for-root-transition.html
@@ -4,12 +4,15 @@
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
+<script src="/dom/events/scrolling/scroll_support.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<body>
<script>
-promise_test(() => {
+promise_test(async () => {
assert_implements(document.startViewTransition, "Missing document.startViewTransition");
+ await waitForCompositorReady();
return new Promise(async (resolve, reject) => {
let transition = document.startViewTransition();
transition.ready.then(() => {
@@ -45,3 +48,4 @@ promise_test(() => {
});
}, "incorrect UA animations for root transition");
</script>
+</body>
diff --git a/tests/wpt/tests/css/css-view-transitions/new-content-with-overflow-zoomed.html b/tests/wpt/tests/css/css-view-transitions/new-content-with-overflow-zoomed.html
index 4ab9fa5a575..6f0c8aac25d 100644
--- a/tests/wpt/tests/css/css-view-transitions/new-content-with-overflow-zoomed.html
+++ b/tests/wpt/tests/css/css-view-transitions/new-content-with-overflow-zoomed.html
@@ -9,9 +9,7 @@
.target {
width: 80px;
height: 80px;
- contain: paint;
background: blue;
- overflow-clip-margin: 50px;
view-transition-name: target;
zoom: 1.5;
}
diff --git a/tests/wpt/tests/css/css-view-transitions/no-crash-set-exception.html b/tests/wpt/tests/css/css-view-transitions/no-crash-set-exception.html
index bc0d764a590..cc401b8bd6f 100644
--- a/tests/wpt/tests/css/css-view-transitions/no-crash-set-exception.html
+++ b/tests/wpt/tests/css/css-view-transitions/no-crash-set-exception.html
@@ -4,6 +4,7 @@
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
+<script src="/dom/events/scrolling/scroll_support.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
@@ -30,6 +31,7 @@ html::view-transition-new(shared) {
<script>
promise_test(async t => {
assert_implements(document.startViewTransition, "Missing document.startViewTransition");
+ await waitForCompositorReady();
return new Promise((resolve, reject) => {
document.startViewTransition(() => {
resolve();
diff --git a/tests/wpt/tests/css/css-view-transitions/no-raf-while-render-blocked.html b/tests/wpt/tests/css/css-view-transitions/no-raf-while-render-blocked.html
index a86fd145362..36a923d84ed 100644
--- a/tests/wpt/tests/css/css-view-transitions/no-raf-while-render-blocked.html
+++ b/tests/wpt/tests/css/css-view-transitions/no-raf-while-render-blocked.html
@@ -5,6 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
+<script src="/dom/events/scrolling/scroll_support.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
@@ -23,8 +24,9 @@ div {
<script>
let renderBlocked = true;
-promise_test(() => {
+promise_test(async () => {
assert_implements(document.startViewTransition, "Missing document.startViewTransition");
+ await waitForCompositorReady();
return new Promise(async (resolve, reject) => {
requestAnimationFrame(() => {
document.startViewTransition(() => {
diff --git a/tests/wpt/tests/css/css-view-transitions/old-content-with-overflow-zoomed.html b/tests/wpt/tests/css/css-view-transitions/old-content-with-overflow-zoomed.html
index fa701deb339..41d08c253c6 100644
--- a/tests/wpt/tests/css/css-view-transitions/old-content-with-overflow-zoomed.html
+++ b/tests/wpt/tests/css/css-view-transitions/old-content-with-overflow-zoomed.html
@@ -9,9 +9,7 @@
.target {
width: 80px;
height: 80px;
- contain: paint;
background: blue;
- overflow-clip-margin: 50px;
view-transition-name: target;
zoom: 1.5;
}
diff --git a/tests/wpt/tests/css/css-view-transitions/paused-animation-at-end.html b/tests/wpt/tests/css/css-view-transitions/paused-animation-at-end.html
index ae9176ea26c..4b8148140bd 100644
--- a/tests/wpt/tests/css/css-view-transitions/paused-animation-at-end.html
+++ b/tests/wpt/tests/css/css-view-transitions/paused-animation-at-end.html
@@ -3,6 +3,7 @@
<link rel="help" href="https://www.w3.org/TR/css-view-transitions-1/">
<link rel="author" href="mailto:vmpstr@chromium.org">
+<script src="/dom/events/scrolling/scroll_support.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
@@ -25,6 +26,8 @@
<script>
promise_test(async (t) => {
+ assert_implements(document.startViewTransition, "Missing document.startViewTransition");
+ await waitForCompositorReady();
return new Promise((resolve, reject) => {
let transition = document.startViewTransition(() => {
target.classList.replace("one", "two");
diff --git a/tests/wpt/tests/css/css-view-transitions/pseudo-get-computed-style-clean-style.html b/tests/wpt/tests/css/css-view-transitions/pseudo-get-computed-style-clean-style.html
new file mode 100644
index 00000000000..be194a1d646
--- /dev/null
+++ b/tests/wpt/tests/css/css-view-transitions/pseudo-get-computed-style-clean-style.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html>
+<title>View transitions: check pseudo element's default styles with clean style</title>
+<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
+<link rel="author" href="mailto:vmpstr@chromium.org">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/dom/events/scrolling/scroll_support.js"></script>
+
+<style>
+#target {
+ width: 100px;
+ height: 100px;
+ view-transition-name: target;
+ mix-blend-mode: multiply;
+}
+::view-transition-image-pair(target) {
+ position: fixed;
+}
+</style>
+
+<div id=target></div>
+
+<script>
+promise_test(async () => {
+ assert_implements(document.startViewTransition, "Missing document.startViewTransition");
+ await waitForCompositorReady();
+
+ let transition = document.startViewTransition(() => {
+ // Ensure our style & layout are clean.
+ document.documentElement.getBoundingClientRect();
+
+ assert_equals(getComputedStyle(document.documentElement, "::view-transition").position, "fixed", "::view-transition");
+ assert_equals(getComputedStyle(document.documentElement, "::view-transition-group(target)").mixBlendMode, "normal", "container(target)");
+ });
+
+ // When transition is ready, the activation of the view transition should be done, so
+ // we have updated the pseudo-element styles.
+ await transition.ready;
+
+ // Ensure our style & layout are clean.
+ document.documentElement.getBoundingClientRect();
+
+ assert_equals(getComputedStyle(document.documentElement, "::view-transition").position, "fixed", "::view-transition");
+ assert_equals(getComputedStyle(document.documentElement, "::view-transition-group(target)").mixBlendMode, "multiply", "container(target)");
+
+ await transition.finished;
+}, "properties of pseudo elements in update callback");
+
+</script>
diff --git a/tests/wpt/tests/css/css-view-transitions/root-reconstruct-frame-tree-crash.html b/tests/wpt/tests/css/css-view-transitions/root-reconstruct-frame-tree-crash.html
new file mode 100644
index 00000000000..bff9a1629a1
--- /dev/null
+++ b/tests/wpt/tests/css/css-view-transitions/root-reconstruct-frame-tree-crash.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1966682">
+<script>
+ window.addEventListener("load", async () => {
+ const viewTransition = document.startViewTransition(async () => {})
+ await viewTransition.ready
+ const header = document.createElement("th")
+ document.documentElement.appendChild(header)
+ document.documentElement.getBoundingClientRect();
+ document.documentElement.className = "";
+ })
+</script>
+</html>
diff --git a/tests/wpt/tests/css/css-view-transitions/scoped/auto-name.html b/tests/wpt/tests/css/css-view-transitions/scoped/auto-name.html
index 2d11985b398..3eb5ea1808a 100644
--- a/tests/wpt/tests/css/css-view-transitions/scoped/auto-name.html
+++ b/tests/wpt/tests/css/css-view-transitions/scoped/auto-name.html
@@ -59,6 +59,7 @@
const vt = element.startViewTransition(() => {
element.style.flexDirection = 'column';
});
+ assert_equals(vt.transitionRoot, element);
await vt.ready;
const results =
document.getAnimations().map((a) => {
diff --git a/tests/wpt/tests/css/css-view-transitions/scoped/document-element-start-view-transition.html b/tests/wpt/tests/css/css-view-transitions/scoped/document-element-start-view-transition.html
index 42f87f93a07..380b67213a6 100644
--- a/tests/wpt/tests/css/css-view-transitions/scoped/document-element-start-view-transition.html
+++ b/tests/wpt/tests/css/css-view-transitions/scoped/document-element-start-view-transition.html
@@ -60,6 +60,9 @@
target.className = 'update-2';
});
+ assert_equals(vt1.transitionRoot, document.documentElement);
+ assert_equals(vt2.transitionRoot, document.documentElement);
+
await verifyAbortedTransition(vt1.ready);
await vt2.ready;
diff --git a/tests/wpt/tests/css/css-view-transitions/scoped/nested-scope-ref.html b/tests/wpt/tests/css/css-view-transitions/scoped/nested-scope-ref.html
new file mode 100644
index 00000000000..804741cd6db
--- /dev/null
+++ b/tests/wpt/tests/css/css-view-transitions/scoped/nested-scope-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+<style>
+
+.box { position: relative; contain: strict; }
+#scopeA { background: #ddd;
+ left: 0; top: 0; width: 300px; height: 300px; }
+#partA { background: #4af;
+ left: 30px; top: 30px; width: 240px; height: 240px; }
+#scopeB { background: #eee;
+ left: 30px; top: 30px; width: 180px; height: 180px; }
+#partB { background: cyan;
+ left: 30px; top: 30px; width: 120px; height: 120px; }
+
+</style>
+</head>
+<body>
+<div id=scopeA class=box>
+ <div id=partA class=box>
+ <div id=scopeB class=box>
+ <div id=partB class=box>
+ </div>
+ </div>
+ </div>
+</div>
+</body>
+</html>
diff --git a/tests/wpt/tests/css/css-view-transitions/scoped/nested-scope.html b/tests/wpt/tests/css/css-view-transitions/scoped/nested-scope.html
new file mode 100644
index 00000000000..9fff44e5e73
--- /dev/null
+++ b/tests/wpt/tests/css/css-view-transitions/scoped/nested-scope.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<head>
+<link rel="help" href="https://drafts.csswg.org/css-view-transitions-2/">
+<link rel="match" href="nested-scope-ref.html">
+<script src="/common/reftest-wait.js"></script>
+<script src="/web-animations/testcommon.js"></script>
+<style>
+
+.box { position: relative; contain: strict; }
+#scopeA { background: #ddd;
+ left: 0; top: 0; width: 300px; height: 300px; }
+#partA { background: #4af;
+ left: 30px; top: 30px; width: 240px; height: 240px; }
+#scopeB { background: #eee;
+ left: 30px; top: 30px; width: 180px; height: 180px; }
+#partB { background: cyan;
+ left: 30px; top: 30px; width: 120px; height: 120px; }
+
+::view-transition-old(*) { animation: -ua-view-transition-fade-out 1s paused; }
+::view-transition-new(*) { animation: -ua-view-transition-fade-in 1s paused; }
+.tr { view-transition-name: demo; }
+
+</style>
+</head>
+<body>
+<div id=scopeA class=box>
+ <div id=partA class="box tr">
+ <div id=scopeB class=box>
+ <div id=partB class="box tr">
+ </div>
+ </div>
+ </div>
+</div>
+<script>
+
+failIfNot(scopeA.startViewTransition, "Missing element.startViewTransition");
+
+async function runTest() {
+ await waitForCompositorReady();
+ await scopeB.startViewTransition().ready;
+ partB.classList.remove("tr");
+ await scopeA.startViewTransition().ready;
+ requestAnimationFrame(takeScreenshot);
+}
+onload = () => runTest();
+
+</script>
+</body>
+</html>
diff --git a/tests/wpt/tests/css/css-view-transitions/transition-skipped-after-animation-started.html b/tests/wpt/tests/css/css-view-transitions/transition-skipped-after-animation-started.html
index 56c477a55f6..a6bd29b6f85 100644
--- a/tests/wpt/tests/css/css-view-transitions/transition-skipped-after-animation-started.html
+++ b/tests/wpt/tests/css/css-view-transitions/transition-skipped-after-animation-started.html
@@ -4,6 +4,7 @@
<link rel="help" href="https://www.w3.org/TR/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
+<script src="/dom/events/scrolling/scroll_support.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
@@ -26,6 +27,7 @@ div {
<script>
promise_test(async t => {
assert_implements(document.startViewTransition, "Missing document.startViewTransition");
+ await waitForCompositorReady();
return new Promise(async (resolve, reject) => {
let transition = document.startViewTransition();
await transition.ready;
diff --git a/tests/wpt/tests/css/css-view-transitions/view-transition-name-on-removed-element.html b/tests/wpt/tests/css/css-view-transitions/view-transition-name-on-removed-element.html
index 36beb308283..375553652ab 100644
--- a/tests/wpt/tests/css/css-view-transitions/view-transition-name-on-removed-element.html
+++ b/tests/wpt/tests/css/css-view-transitions/view-transition-name-on-removed-element.html
@@ -4,6 +4,7 @@
<link rel="help" href="https://www.w3.org/TR/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
+<script src="/dom/events/scrolling/scroll_support.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
@@ -23,6 +24,7 @@
<script>
promise_test(async t => {
assert_implements(document.startViewTransition, "Missing document.startViewTransition");
+ await waitForCompositorReady();
return new Promise(async (resolve, reject) => {
// Remove an uncontained element. Because this element is not visited when
// discovering named elements, the transition is not skipped.
diff --git a/tests/wpt/tests/css/css-writing-modes/forms/text-input-block-size.optional.html b/tests/wpt/tests/css/css-writing-modes/forms/text-input-block-size.optional.html
index 680e0b6532b..77d67aad9c9 100644
--- a/tests/wpt/tests/css/css-writing-modes/forms/text-input-block-size.optional.html
+++ b/tests/wpt/tests/css/css-writing-modes/forms/text-input-block-size.optional.html
@@ -20,31 +20,35 @@
<input id="verticalInput">
<script>
-for (const inputType of ["text", "email", "password", "search", "tel", "url", "number"]) {
- horizontalInput.type = inputType;
- verticalInput.type = inputType;
- for (const writingMode of ["vertical-lr", "vertical-rl", "sideways-lr", "sideways-rl"]) {
- if (!CSS.supports(`writing-mode: ${writingMode}`))
- continue;
- test(t => {
- verticalInput.style.writingMode = writingMode;
- t.add_cleanup(() => {
- verticalInput.removeAttribute("style");
- });
+setup({ explicit_done: true });
+document.fonts.ready.then(() => {
+ for (const inputType of ["text", "email", "password", "search", "tel", "url", "number"]) {
+ horizontalInput.type = inputType;
+ verticalInput.type = inputType;
+ for (const writingMode of ["vertical-lr", "vertical-rl", "sideways-lr", "sideways-rl"]) {
+ if (!CSS.supports(`writing-mode: ${writingMode}`))
+ continue;
+ test(t => {
+ verticalInput.style.writingMode = writingMode;
+ t.add_cleanup(() => {
+ verticalInput.removeAttribute("style");
+ });
- const verticalRect = verticalInput.getBoundingClientRect();
- assert_true(
- verticalRect.width < verticalRect.height,
- "input has correct aspect ratio for default input size"
- );
+ const verticalRect = verticalInput.getBoundingClientRect();
+ assert_true(
+ verticalRect.width < verticalRect.height,
+ "input has correct aspect ratio for default input size"
+ );
- const horizontalRect = horizontalInput.getBoundingClientRect();
- assert_equals(
- Math.round(verticalRect.width),
- Math.round(horizontalRect.height),
- "width of vertical input matches height of horizontal input"
- );
- }, `Test input[type=${inputType}] block-size in writing-mode: ${writingMode}`);
+ const horizontalRect = horizontalInput.getBoundingClientRect();
+ assert_equals(
+ Math.round(verticalRect.width),
+ Math.round(horizontalRect.height),
+ "width of vertical input matches height of horizontal input"
+ );
+ }, `Test input[type=${inputType}] block-size in writing-mode: ${writingMode}`);
+ }
}
-}
+ done();
+});
</script>
diff --git a/tests/wpt/tests/css/cssom-view/getBoundingClientRect-shy.html b/tests/wpt/tests/css/cssom-view/getBoundingClientRect-shy.html
index b27a7884605..55349e93969 100644
--- a/tests/wpt/tests/css/cssom-view/getBoundingClientRect-shy.html
+++ b/tests/wpt/tests/css/cssom-view/getBoundingClientRect-shy.html
@@ -28,66 +28,72 @@ function getBoundingClientRect(node, start, end) {
return rect;
}
-test(() => {
- const rect = getBoundingClientRect(test1.firstChild, 0, 5);
- assert_equals(rect.width, 50);
-}, "Range 0-5 should not include the hyphen.");
+setup({ explicit_done: true });
-test(() => {
- const rect = getBoundingClientRect(test1.firstChild, 1, 5);
- assert_equals(rect.width, 40);
-}, "Range 1-5 should not include the hyphen.");
+document.fonts.ready.then(() => {
+ test(() => {
+ const rect = getBoundingClientRect(test1.firstChild, 0, 5);
+ assert_equals(rect.width, 50);
+ }, "Range 0-5 should not include the hyphen.");
-test(() => {
- const rect = getBoundingClientRect(test1.firstChild, 0, 6);
- assert_equals(rect.width, 60);
-}, "Range 0-6 should not include the hyphen.");
+ test(() => {
+ const rect = getBoundingClientRect(test1.firstChild, 1, 5);
+ assert_equals(rect.width, 40);
+ }, "Range 1-5 should not include the hyphen.");
-test(() => {
- const rect = getBoundingClientRect(test1.firstChild, 1, 6);
- assert_equals(rect.width, 50);
-}, "Range 1-6 should not include the hyphen.");
+ test(() => {
+ const rect = getBoundingClientRect(test1.firstChild, 0, 6);
+ assert_equals(rect.width, 60);
+ }, "Range 0-6 should not include the hyphen.");
-test(() => {
- const rect = getBoundingClientRect(test1.firstChild, 0, 7);
- assert_equals(rect.width, 70);
-}, "Range 0-7 should include the hyphen.");
+ test(() => {
+ const rect = getBoundingClientRect(test1.firstChild, 1, 6);
+ assert_equals(rect.width, 50);
+ }, "Range 1-6 should not include the hyphen.");
-test(() => {
- const rect = getBoundingClientRect(test1.firstChild, 1, 7);
- assert_equals(rect.width, 60);
-}, "Range 1-7 should include the hyphen.");
+ test(() => {
+ const rect = getBoundingClientRect(test1.firstChild, 0, 7);
+ assert_equals(rect.width, 70);
+ }, "Range 0-7 should include the hyphen.");
-test(() => {
- const rect = getBoundingClientRect(test1.firstChild, 0, 8);
- assert_equals(rect.width, 70);
- assert_equals(rect.height, 20);
-}, "Range 0-8 should include the hyphen.");
+ test(() => {
+ const rect = getBoundingClientRect(test1.firstChild, 1, 7);
+ assert_equals(rect.width, 60);
+ }, "Range 1-7 should include the hyphen.");
-test(() => {
- const rect = getBoundingClientRect(test2.firstChild, 0, 8);
- assert_equals(rect.width, 70);
- assert_equals(rect.height, 20);
-}, "Range 0-8 should include only the first hyphen.");
+ test(() => {
+ const rect = getBoundingClientRect(test1.firstChild, 0, 8);
+ assert_equals(rect.width, 70);
+ assert_equals(rect.height, 20);
+ }, "Range 0-8 should include the hyphen.");
-test(() => {
- const rect = getBoundingClientRect(test3.firstChild, 2, 3);
- assert_equals(rect.width, 0);
-}, "Collapsed soft-hyphen should be 0 width.");
+ test(() => {
+ const rect = getBoundingClientRect(test2.firstChild, 0, 8);
+ assert_equals(rect.width, 70);
+ assert_equals(rect.height, 20);
+ }, "Range 0-8 should include only the first hyphen.");
-test(() => {
- const rect = getBoundingClientRect(test3.firstChild, 6, 7);
- assert_equals(rect.width, 10);
-}, "Rendered soft-hyphen should have a width.");
+ test(() => {
+ const rect = getBoundingClientRect(test3.firstChild, 2, 3);
+ assert_equals(rect.width, 0);
+ }, "Collapsed soft-hyphen should be 0 width.");
-test(() => {
- const rect = getBoundingClientRect(test4.firstChild, 0, 1);
- assert_equals(rect.width, 0);
-}, "Collapsed soft-hyphen in a span should be 0 width.");
+ test(() => {
+ const rect = getBoundingClientRect(test3.firstChild, 6, 7);
+ assert_equals(rect.width, 10);
+ }, "Rendered soft-hyphen should have a width.");
-test(() => {
- const rect = getBoundingClientRect(test5.firstChild, 0, 1);
- assert_equals(rect.width, 10);
-}, "Rendered soft-hyphen in a span should have a width.");
+ test(() => {
+ const rect = getBoundingClientRect(test4.firstChild, 0, 1);
+ assert_equals(rect.width, 0);
+ }, "Collapsed soft-hyphen in a span should be 0 width.");
+
+ test(() => {
+ const rect = getBoundingClientRect(test5.firstChild, 0, 1);
+ assert_equals(rect.width, 10);
+ }, "Rendered soft-hyphen in a span should have a width.");
+
+ done();
+});
</script>
</body>
diff --git a/tests/wpt/tests/css/cssom/getComputedStyle-insets-relpos-inline.html b/tests/wpt/tests/css/cssom/getComputedStyle-insets-relpos-inline.html
index d5f197ee9bc..7d53f316396 100644
--- a/tests/wpt/tests/css/cssom/getComputedStyle-insets-relpos-inline.html
+++ b/tests/wpt/tests/css/cssom/getComputedStyle-insets-relpos-inline.html
@@ -46,19 +46,6 @@
</span>
sit amet
</div>
-<script>
-test(() => {
- let style = getComputedStyle(target1);
- assert_equals(style.left, '0px');
- assert_equals(style.right, '140px');
-}, 'OOF with left fixed right auto in relpos inline container');
-
-test(() => {
- let style = getComputedStyle(target2);
- assert_equals(style.left, '140px');
- assert_equals(style.right, '0px');
-}, 'OOF with left auto right fixed in relpos inline container');
-</script>
<div class="ifc">
Lorem
@@ -70,15 +57,33 @@ test(() => {
sit amet
</div>
<script>
-test(() => {
- let style = getComputedStyle(target3);
- assert_equals(style.left, '0px');
- assert_equals(style.right, '140px');
-}, 'OOF with left fixed right auto in relpos inline container with mixed directions');
+setup({ explicit_done: true });
+
+document.fonts.ready.then(() => {
+ test(() => {
+ let style = getComputedStyle(target1);
+ assert_equals(style.left, '0px');
+ assert_equals(style.right, '140px');
+ }, 'OOF with left fixed right auto in relpos inline container');
+
+ test(() => {
+ let style = getComputedStyle(target2);
+ assert_equals(style.left, '140px');
+ assert_equals(style.right, '0px');
+ }, 'OOF with left auto right fixed in relpos inline container');
+
+ test(() => {
+ let style = getComputedStyle(target3);
+ assert_equals(style.left, '0px');
+ assert_equals(style.right, '140px');
+ }, 'OOF with left fixed right auto in relpos inline container with mixed directions');
+
+ test(() => {
+ let style = getComputedStyle(target4);
+ assert_equals(style.left, '140px');
+ assert_equals(style.right, '0px');
+ }, 'OOF with left auto right fixed in relpos inline container with mixed directions');
-test(() => {
- let style = getComputedStyle(target4);
- assert_equals(style.left, '140px');
- assert_equals(style.right, '0px');
-}, 'OOF with left auto right fixed in relpos inline container with mixed directions');
+ done();
+});
</script>
diff --git a/tests/wpt/tests/css/filter-effects/crashtests/external-reference-in-interleaved-oof-crash.html b/tests/wpt/tests/css/filter-effects/crashtests/external-reference-in-interleaved-oof-crash.html
new file mode 100644
index 00000000000..a1aad3a77a4
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/crashtests/external-reference-in-interleaved-oof-crash.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<title>Interleaved OOF layout with url() valued 'filter' property</title>
+<style>
+ #target {
+ width: 100px;
+ height: 100px;
+ background-color: blue;
+ --f: url("data:image/svg+xml,");
+ position: absolute;
+ position-area: block-end span-inline-end;
+ position-try-fallbacks: block-start span-inline-end;
+ }
+</style>
+<div id="target" style="filter: var(--f)"></div>
+<script>
+ document.body.offsetTop;
+ target.style.setProperty('filter', 'var(--f)');
+ document.body.offsetTop;
+ target.style.removeProperty('filter');
+ document.body.offsetTop;
+</script>
diff --git a/tests/wpt/tests/css/motion/offset-path-shape-polygon-003.html b/tests/wpt/tests/css/motion/offset-path-shape-polygon-003.html
index caa08082e4e..dfb809d352b 100644
--- a/tests/wpt/tests/css/motion/offset-path-shape-polygon-003.html
+++ b/tests/wpt/tests/css/motion/offset-path-shape-polygon-003.html
@@ -1,7 +1,7 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Motion Path test: &lt;basic-shape&gt; polygon() path with points as percentage and pixels</title>
-<meta name=fuzzy content="0-20;0-50">
+<meta name=fuzzy content="0-20;0-56">
<link rel="author" title="Daniil Sakhapov" href="sakhapov@google.com">
<link rel="match" href="offset-path-shape-polygon-003-ref.html">
<link rel="help" href="https://drafts.fxtf.org/motion/#valdef-offset-path-basic-shape">
diff --git a/tests/wpt/tests/css/visited-nested-ref.html b/tests/wpt/tests/css/visited-nested-ref.html
new file mode 100644
index 00000000000..22f4ecf0d7b
--- /dev/null
+++ b/tests/wpt/tests/css/visited-nested-ref.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<title>Test reference</title>
+<style>
+ :visited {
+ color: green;
+ }
+</style>
+<a href="">Test passes if this is green</a>
diff --git a/tests/wpt/tests/css/visited-nested.html b/tests/wpt/tests/css/visited-nested.html
new file mode 100644
index 00000000000..57220446c86
--- /dev/null
+++ b/tests/wpt/tests/css/visited-nested.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<title>:visited in inheritance</title>
+<link rel="match" href="visited-nested-ref.html">
+<link rel="help" href="https://crbug.com/419001506">
+<style>
+ :visited {
+ & {
+ color: green;
+ }
+ }
+</style>
+<a href="">Test passes if this is green</a>
diff --git a/tests/wpt/tests/custom-elements/revamped-scoped-registry/idlharness.tentative.window.js b/tests/wpt/tests/custom-elements/registries/idlharness.window.js
index 1f5c776cc25..b2727e3a874 100644
--- a/tests/wpt/tests/custom-elements/revamped-scoped-registry/idlharness.tentative.window.js
+++ b/tests/wpt/tests/custom-elements/registries/idlharness.window.js
@@ -1,9 +1,8 @@
// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
-// META: global=window,dedicatedworker,shadowrealm-in-window
idl_test(
- ["scoped-custom-elements-registry.tentative"],
+ ["scoped-custom-elements-registry"],
["html", "dom"],
(idl_array) => {
let element = document.createElement("div");
diff --git a/tests/wpt/tests/fedcm/lfedcm-identity.create-store-collect.tentative.sub.https.html b/tests/wpt/tests/fedcm/lfedcm-identity.create-store-collect.tentative.sub.https.html
index 54226aff9ae..553bc40989e 100644
--- a/tests/wpt/tests/fedcm/lfedcm-identity.create-store-collect.tentative.sub.https.html
+++ b/tests/wpt/tests/fedcm/lfedcm-identity.create-store-collect.tentative.sub.https.html
@@ -68,8 +68,8 @@ promise_test(async t => {
promise_test(async t => {
-
- let promise4 = navigator.credentials.get({identity: {providers: []}});
+ await test_driver.bless();
+ let promise4 = navigator.credentials.get({identity: {mode: "active", providers: []}});
assert_true(promise4 instanceof Promise, "The return value of get must be a promise.");
let result4 = await promise4;
assert_equals(result4, null, "A credential is not returned from the CredentialContainer when a request with no providers is given");
@@ -87,7 +87,8 @@ promise_test(async t => {
identity : initData,
});
await navigator.credentials.store(result1);
- let promise2 = navigator.credentials.get({identity: {providers: [{origin: window.origin}]}});
+ await test_driver.bless();
+ let promise2 = navigator.credentials.get({identity: {mode: "active", providers: [{origin: window.origin}]}});
assert_true(promise2 instanceof Promise, "The return value of get must be a promise.");
let result2 = await promise2;
assert_equals(result2, null, "A credential is not returned from the CredentialContainer when the RP is not on the allowlist.");
@@ -103,7 +104,8 @@ promise_test(async t => {
});
await navigator.credentials.store(credential);
- let getCredentialPromise = navigator.credentials.get({identity: {providers: [{origin: window.origin}]}});
+ await test_driver.bless();
+ let getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{origin: window.origin}]}});
let credentialGotten = await getCredentialPromise;
fedcm_select_account_promise(t, 0);
assert_not_equals(credentialGotten, undefined, "A credential is returned from the CredentialContainer.");
@@ -111,13 +113,15 @@ promise_test(async t => {
assert_equals(credentialGotten.id, "wpt-pick-me", "The identity matches the argument");
assert_equals(credentialGotten.token, "token1", "The token matches the argument");
- let promise3 = navigator.credentials.get({identity: {providers: []}});
+ await test_driver.bless();
+ let promise3 = navigator.credentials.get({identity: {mode: "active", providers: []}});
assert_true(promise3 instanceof Promise, "The return value of get must be a promise.");
let result3 = await promise3;
assert_equals(result3, null, "A credential is not returned from the CredentialContainer when no providers are given.");
- let promise4 = navigator.credentials.get({identity: {providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}"}]}});
+ await test_driver.bless();
+ let promise4 = navigator.credentials.get({identity: {mode: "active", providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}"}]}});
assert_true(promise4 instanceof Promise, "The return value of get must be a promise.");
let result4 = await promise4;
assert_equals(result4, null, "A credential is not returned from the CredentialContainer when a provider with no credentials is given.");
@@ -137,13 +141,15 @@ promise_test(async t => {
});
await navigator.credentials.store(credential);
- let promise2 = navigator.credentials.get({identity: {providers: [{origin: window.origin}]}});
+ await test_driver.bless();
+ let promise2 = navigator.credentials.get({identity: {mode: "active", providers: [{origin: window.origin}]}});
assert_true(promise2 instanceof Promise, "The return value of get must be a promise.");
let result2 = await promise2;
assert_equals(result2, null, "A credential is not returned from the CredentialContainer when the effectiveQueryURL is not provided.");
- let getCredentialPromise = navigator.credentials.get({identity: {providers: [{origin: window.origin, effectiveQueryURL: `https://{{hosts[][]}}:{{ports[https][0]}}/fedcm/support/acao-cors.py`}]}});
+ await test_driver.bless();
+ let getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{origin: window.origin, effectiveQueryURL: `https://{{hosts[][]}}:{{ports[https][0]}}/fedcm/support/acao-cors.py`}]}});
assert_true(getCredentialPromise instanceof Promise, "The return value of get must be a promise.");
fedcm_select_account_promise(t, 0);
let credentialGotten = await getCredentialPromise;
@@ -165,7 +171,8 @@ promise_test(async t => {
});
await navigator.credentials.store(credential);
- let promise2 = navigator.credentials.get({identity: {providers: [{loginURL: "https://{{hosts[][]}}:{{ports[https][0]}}/fedcm/support/lfedcm-identity.provider-create.sub.html"}]}});
+ await test_driver.bless();
+ let promise2 = navigator.credentials.get({identity: {mode: "active", providers: [{loginURL: "https://{{hosts[][]}}:{{ports[https][0]}}/fedcm/support/lfedcm-identity.provider-create.sub.html"}]}});
assert_true(promise2 instanceof Promise, "The return value of get must be a promise.");
let result2 = await promise2;
fedcm_select_account_promise(t, 0);
@@ -188,13 +195,15 @@ promise_test(async t => {
});
await navigator.credentials.store(credential);
- let promise2 = navigator.credentials.get({identity: {providers: [{origin: window.origin}]}});
+ await test_driver.bless();
+ let promise2 = navigator.credentials.get({identity: {mode: "active", providers: [{origin: window.origin}]}});
assert_true(promise2 instanceof Promise, "The return value of get must be a promise.");
let result2 = await promise2;
assert_equals(result2, null, "A credential is not returned from the CredentialContainer when the effectiveQueryURL is not provided.");
- let getCredentialPromise = navigator.credentials.get({identity: {providers: [{origin: window.origin, effectiveQueryURL: `https://{{hosts[][]}}:{{ports[https][0]}}/fedcm/support/no-cors.py`}]}});
+ await test_driver.bless();
+ let getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{origin: window.origin, effectiveQueryURL: `https://{{hosts[][]}}:{{ports[https][0]}}/fedcm/support/no-cors.py`}]}});
let credentialGotten = await getCredentialPromise;
fedcm_select_account_promise(t, 0);
assert_not_equals(credentialGotten, undefined, "A credential is returned from the CredentialContainer.");
@@ -212,7 +221,8 @@ promise_test(async t => {
id: "wpt-pick-me",
});
- getCredentialPromise = navigator.credentials.get({identity: {providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}"}]}});
+ await test_driver.bless();
+ getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}"}]}});
assert_true(getCredentialPromise instanceof Promise, "The return value of get must be a promise.");
credentialGotten = await getCredentialPromise;
assert_equals(credentialGotten, null, "A optionless credential is not returned from the CredentialContainer.");
@@ -228,7 +238,8 @@ promise_test(async t => {
id: "wpt-pick-me",
origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}/",
});
- getCredentialPromise = navigator.credentials.get({identity: {providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}"}]}});
+ await test_driver.bless();
+ getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}"}]}});
assert_true(getCredentialPromise instanceof Promise, "The return value of get must be a promise.");
credentialGotten = await getCredentialPromise;
assert_equals(credentialGotten, null, "An innefective credential is not returned from the CredentialContainer.");
@@ -244,7 +255,8 @@ promise_test(async t => {
origin: "https://{{hosts[][]}}:{{ports[https][0]}}/",
});
- getCredentialPromise = navigator.credentials.get({identity: {providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}"}]}});
+ await test_driver.bless();
+ getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}"}]}});
assert_true(getCredentialPromise instanceof Promise, "The return value of get must be a promise.");
fedcm_select_account_promise(t, 0);
credentialGotten = await getCredentialPromise;
@@ -261,7 +273,8 @@ promise_test(async t => {
url: "no-cors"
});
- getCredentialPromise = navigator.credentials.get({identity: {providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}"}]}});
+ await test_driver.bless();
+ getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}"}]}});
assert_true(getCredentialPromise instanceof Promise, "The return value of get must be a promise.");
credentialGotten = await getCredentialPromise;
assert_equals(credentialGotten, null, "An innefective credential is not returned from the CredentialContainer.");
@@ -278,7 +291,8 @@ promise_test(async t => {
url: "cors"
});
- getCredentialPromise = navigator.credentials.get({identity: {providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}", effectiveQueryURL: "https://{{hosts[alt][]}}:{{ports[https][0]}}/fedcm/support/acao-cors.py"}]}});
+ await test_driver.bless();
+ getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{origin: "https://{{hosts[alt][]}}:{{ports[https][0]}}", effectiveQueryURL: "https://{{hosts[alt][]}}:{{ports[https][0]}}/fedcm/support/acao-cors.py"}]}});
assert_true(getCredentialPromise instanceof Promise, "The return value of get must be a promise.");
fedcm_select_account_promise(t, 0);
credentialGotten = await getCredentialPromise;
@@ -296,7 +310,8 @@ promise_test(async t => {
type: "correct"
});
- getCredentialPromise = navigator.credentials.get({identity: {providers: [{effectiveType: "correct"}]}});
+ await test_driver.bless();
+ getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{effectiveType: "correct"}]}});
assert_true(getCredentialPromise instanceof Promise, "The return value of get must be a promise.");
fedcm_select_account_promise(t, 0);
credentialGotten = await getCredentialPromise;
@@ -313,7 +328,8 @@ promise_test(async t => {
type: "correct"
});
- getCredentialPromise = navigator.credentials.get({identity: {providers: [{effectiveType: "wrong"}]}});
+ await test_driver.bless();
+ getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{effectiveType: "wrong"}]}});
assert_true(getCredentialPromise instanceof Promise, "The return value of get must be a promise.");
fedcm_select_account_promise(t, 0);
credentialGotten = await getCredentialPromise;
@@ -331,7 +347,8 @@ promise_test(async t => {
identity : initData,
});
await navigator.credentials.store(result1);
- let promise2 = navigator.credentials.get({identity: {providers: [{origin: window.origin}]}});
+ await test_driver.bless();
+ let promise2 = navigator.credentials.get({identity: {mode: "active", providers: [{origin: window.origin}]}});
assert_true(promise2 instanceof Promise, "The return value of get must be a promise.");
let result2 = await promise2;
assert_equals(result2, null, "A credential is not returned from the CredentialContainer when the RP is not on the allowlist.");
@@ -347,7 +364,8 @@ promise_test(async t => {
await navigator.credentials.store(credential);
// Collect a credential so we can use silent access
- let getCredentialPromise = navigator.credentials.get({identity: {providers: [{origin: window.origin}]}});
+ await test_driver.bless();
+ let getCredentialPromise = navigator.credentials.get({identity: {mode: "active", providers: [{origin: window.origin}]}});
let credentialGotten = await getCredentialPromise;
fedcm_select_account_promise(t, 0);
assert_not_equals(credentialGotten, undefined, "A credential is returned from the CredentialContainer.");
@@ -356,7 +374,8 @@ promise_test(async t => {
// Collect the credential silently.
- let getCredentialPromise2 = navigator.credentials.get({identity: {providers: [{origin: window.origin}]}});
+ await test_driver.bless();
+ let getCredentialPromise2 = navigator.credentials.get({identity: {mode: "active", providers: [{origin: window.origin}]}});
let credentialGotten2 = await getCredentialPromise2;
assert_not_equals(credentialGotten2, undefined, "A credential is returned from the CredentialContainer.");
assert_equals(credentialGotten2.type, "identity", "The credential is an IdentityCredential");
@@ -364,7 +383,8 @@ promise_test(async t => {
await navigator.credentials.preventSilentAccess();
- let getCredentialPromise3 = navigator.credentials.get({identity: {providers: [{origin: window.origin}]}});
+ await test_driver.bless();
+ let getCredentialPromise3 = navigator.credentials.get({identity: {mode: "active", providers: [{origin: window.origin}]}});
fedcm_select_account_promise(t, 0);
let credentialGotten3 = await getCredentialPromise3;
assert_not_equals(credentialGotten3, undefined, "A credential is returned from the CredentialContainer.");
diff --git a/tests/wpt/tests/fetch/local-network-access/fetch.tentative.https.html b/tests/wpt/tests/fetch/local-network-access/fetch.tentative.https.html
index 9c591f309b7..ac2c3cca28e 100644
--- a/tests/wpt/tests/fetch/local-network-access/fetch.tentative.https.html
+++ b/tests/wpt/tests/fetch/local-network-access/fetch.tentative.https.html
@@ -47,5 +47,41 @@
return promise;
}, 'LNA Public to private with permission denied');
+
+ promise_test(t => {
+ const sourceUrl = resolveUrl("resources/fetch-private-http.html",
+ sourceResolveOptions({ server: Server.HTTPS_PUBLIC }));
+
+ function checkResult(evt) {
+ checkTestResult(evt.data, FetchTestResult.SUCCESS);
+ t.done();
+ }
+
+ const promise = new Promise((resolve) => {
+ window.addEventListener('message', resolve, {once: true});
+ }).then(checkResult);
+ const popup = window.open(sourceUrl);
+ t.add_cleanup(() => popup.close());
+
+ return promise;
+ }, 'LNA Public to private http mixed content bypass');
+
+ promise_test(t => {
+ const sourceUrl = resolveUrl("resources/fetch-public-http-wrong-address-space.html",
+ sourceResolveOptions({ server: Server.HTTPS_PUBLIC }));
+
+ function checkResult(evt) {
+ checkTestResult(evt.data, FetchTestResult.FAILURE);
+ t.done();
+ }
+
+ const promise = new Promise((resolve) => {
+ window.addEventListener('message', resolve, {once: true});
+ }).then(checkResult);
+ const popup = window.open(sourceUrl);
+ t.add_cleanup(() => popup.close());
+
+ return promise;
+ }, 'LNA Public to public http mixed content bypass failure');
</script>
</body>
diff --git a/tests/wpt/tests/fetch/local-network-access/resources/fetch-private-http.html b/tests/wpt/tests/fetch/local-network-access/resources/fetch-private-http.html
new file mode 100644
index 00000000000..e372d90b26a
--- /dev/null
+++ b/tests/wpt/tests/fetch/local-network-access/resources/fetch-private-http.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Fetch HTTP private with targetAddressSpace private </title>
+
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="support.sub.js"></script>
+<script>
+"use strict";
+
+// Fetch a private address over HTTP. Fetch is annotated with a
+// targetAddressSpace of private to allow for mixed content check bypassing.
+//
+// TODO(crbug.com/406991278): consolidate with fetch-private.html adding
+// options to minimize # of resources needed.
+Promise.resolve().then(async () => {
+ test_driver.set_test_context(opener);
+ await test_driver.set_permission({ name: 'local-network-access' }, 'granted');
+
+ const target = {
+ server: Server.HTTP_PRIVATE,
+ behavior: { response: ResponseBehavior.allowCrossOrigin() },
+ };
+ const targetUrl = resolveTargetUrl(target);
+
+ // TODO(crbug.com/406991278): rename address space for LNA spec
+ fetch(targetUrl, {targetAddressSpace: 'private'})
+ .then(async function(response) {
+ const body = await response.text();
+ const message = {
+ ok: response.ok,
+ type: response.type,
+ body: body,
+ };
+ opener.postMessage(message, "*");
+ })
+ .catch(error => {
+ opener.postMessage({ error: error.toString() }, "*");
+ });
+});
+</script>
diff --git a/tests/wpt/tests/fetch/local-network-access/resources/fetch-public-http-wrong-address-space.html b/tests/wpt/tests/fetch/local-network-access/resources/fetch-public-http-wrong-address-space.html
new file mode 100644
index 00000000000..1d149d00cb3
--- /dev/null
+++ b/tests/wpt/tests/fetch/local-network-access/resources/fetch-public-http-wrong-address-space.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Fetch HTTP public targetAddress private resource</title>
+
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="support.sub.js"></script>
+<script>
+"use strict";
+
+// Fetch a public address over HTTP. Fetch is annotated with a
+// targetAddressSpace of private to try to bypass mixed content, but should
+// fail because the address space of the resource does not match the target
+// address space.
+//
+// TODO(crbug.com/406991278): consolidate with fetch-private.html adding
+// options to minimize # of resources needed.
+Promise.resolve().then(async () => {
+ test_driver.set_test_context(opener);
+ await test_driver.set_permission({ name: 'local-network-access' }, 'granted');
+
+ const target = {
+ server: Server.HTTP_PUBLIC,
+ behavior: { response: ResponseBehavior.allowCrossOrigin() },
+ };
+ const targetUrl = resolveTargetUrl(target);
+
+ // TODO(crbug.com/406991278): rename address space for LNA spec
+ fetch(targetUrl, {targetAddressSpace: 'private'})
+ .then(async function(response) {
+ const body = await response.text();
+ const message = {
+ ok: response.ok,
+ type: response.type,
+ body: body,
+ };
+ opener.postMessage(message, "*");
+ })
+ .catch(error => {
+ opener.postMessage({ error: error.toString() }, "*");
+ });
+});
+</script>
diff --git a/tests/wpt/tests/fetch/local-network-access/resources/support.sub.js b/tests/wpt/tests/fetch/local-network-access/resources/support.sub.js
index 774e34d0a6f..6b7813fa89d 100644
--- a/tests/wpt/tests/fetch/local-network-access/resources/support.sub.js
+++ b/tests/wpt/tests/fetch/local-network-access/resources/support.sub.js
@@ -1,14 +1,17 @@
// Maps protocol (without the trailing colon) and address space to port.
+//
+// TODO(crbug.com/418737577): change keys to be consistent with new address
+// space names.
const SERVER_PORTS = {
"http": {
"local": {{ports[http][0]}},
- "private": {{ports[http-private][0]}},
+ "private": {{ports[http-local][0]}},
"public": {{ports[http-public][0]}},
},
"https": {
"local": {{ports[https][0]}},
"other-local": {{ports[https][1]}},
- "private": {{ports[https-private][0]}},
+ "private": {{ports[https-local][0]}},
"public": {{ports[https-public][0]}},
},
"ws": {
diff --git a/tests/wpt/tests/fetch/private-network-access/resources/support.sub.js b/tests/wpt/tests/fetch/private-network-access/resources/support.sub.js
index 7d133b02889..6d0743e0f8f 100644
--- a/tests/wpt/tests/fetch/private-network-access/resources/support.sub.js
+++ b/tests/wpt/tests/fetch/private-network-access/resources/support.sub.js
@@ -76,13 +76,13 @@ async function postMessageAndAwaitReply(target, message) {
const SERVER_PORTS = {
"http": {
"local": {{ports[http][0]}},
- "private": {{ports[http-private][0]}},
+ "private": {{ports[http-local][0]}},
"public": {{ports[http-public][0]}},
},
"https": {
"local": {{ports[https][0]}},
"other-local": {{ports[https][1]}},
- "private": {{ports[https-private][0]}},
+ "private": {{ports[https-local][0]}},
"public": {{ports[https-public][0]}},
},
"ws": {
diff --git a/tests/wpt/tests/html-aam/roles-minimum.tentative.html b/tests/wpt/tests/html-aam/roles-minimum.tentative.html
new file mode 100644
index 00000000000..2093620bb36
--- /dev/null
+++ b/tests/wpt/tests/html-aam/roles-minimum.tentative.html
@@ -0,0 +1,55 @@
+<!doctype html>
+<html lang=en>
+<head>
+ <title>HTML-AAM Minimum Role Verification Tests</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/resources/testdriver.js"></script>
+ <script src="/resources/testdriver-vendor.js"></script>
+ <script src="/resources/testdriver-actions.js"></script>
+ <script src="/wai-aria/scripts/aria-utils.js"></script>
+</head>
+<body>
+
+ <p>Tests minimum computedrole mappings defined in <a href="https://w3c.github.io/html-aam/#minimum-role">HTML-AAM</a> ([HTML-AAM Issue #454](https://github.com/w3c/html-aam/pull/454)), where the returned computed role for generic elements is expected to change based on the generic elements having attributes that would require the element no longer be generic, and potentially ignored by browsers. Most test names correspond to a unique ID defined in the spec.<p>
+
+ <!-- el-div -->
+ <div data-testname="el-div" data-expectedrole="generic" class="ex">Baseline div, role=generic</div>
+
+ <div data-testname="el-div-autofocus-attr" data-expectedrole="group" autofocus class="ex">div with autofocus attribute.</div>
+ <div data-testname="el-div-autofocus-attr-role-generic" data-expectedrole="group" autofocus role="generic" class="ex">div with explicit role=generic and autofocus attribute.</div>
+ <div data-testname="el-div-autofocus-attr-role-none" data-expectedrole="group" autofocus role="none" class="ex">div with explicit role=none and autofocus attribute.</div>
+
+ <div data-testname="el-div-draggable-attr" data-expectedrole="group" draggable class="ex">div with draggable attribute.</div>
+ <div data-testname="el-div-draggable-attr-role-generic" data-expectedrole="group" draggable role="generic" class="ex">div with explicit role=generic and draggable attribute.</div>
+ <div data-testname="el-div-draggable-attr-role-none" data-expectedrole="group" draggable role="none" class="ex">div with explicit role=none and draggable attribute.</div>
+
+ <button popovertarget=pd>Show popover div</button>
+ <div data-testname="el-div-popover-attr" id=pd data-expectedrole="group" popover class="ex">div with popover attribute, role=group</div>
+
+ <div data-testname="el-div-draggable-attr-invalid-role" data-expectedrole="group" draggable role="foo" class="ex">div with draggable attribute and errant role attribute value.</div>
+
+ <!-- el-section - an unnamed section element is a generic, not a region. so when unnamed it would have a minimum role applied -->
+ <section data-testname="el-section-draggable-attr" data-expectedrole="group" draggable class="ex">unnamed section with draggable attribute.</section>
+
+
+ <!--
+ The following tests do not meet the conditions for a minimum role change
+ -->
+ <!-- explicit valid role is used, so minimum role does not apply -->
+ <div data-testname="el-div-draggable-attr-role-article" data-expectedrole="article" role="article" draggable class="ex">div with explicit role=article and draggable attribute.</div>
+
+ <!-- implicit non-generic or none/presentational role, so minimum role does not apply -->
+ <article data-testname="el-article-draggable-attr" data-expectedrole="article" draggable class="ex">article element with draggable attribute.</article>
+ <section data-testname="el-section-named-draggable-attr" data-expectedrole="region" aria-label="test" draggable class="ex">named section with draggable attribute.</section>
+
+ <!-- element has implicit platform computedrole, so minimum role does not apply -->
+ <cite data-testname="el-cite-draggable-attr" data-expectedrole="html-cite" draggable class="ex">cite element with draggable attribute.</cite>
+
+
+ <script>
+ AriaUtils.verifyRolesBySelector(".ex");
+ </script>
+
+</body>
+</html>
diff --git a/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.fillText-FontFace.html b/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.fillText-FontFace.html
new file mode 100644
index 00000000000..1175a313b87
--- /dev/null
+++ b/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.fillText-FontFace.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+ <title>HTML 5 Canvas Test: fillText() after loading a FontFace and transferControlToOffscreen draws text</title>
+ <link rel="mismatch" href="empty-ref.html">
+ <meta charset="utf-8">
+ <meta name="assert" content="fillText() after loading a FontFace and transferControlToOffscreen() draws text">
+ <script src="/common/reftest-wait.js"></script>
+</head>
+<body onload="runTest()">
+<canvas id="c"></canvas>
+<script>
+ function runTest() {
+ let test_font = new FontFace(
+ "Lato-Medium",
+ "url(/fonts/Lato-Medium.ttf)"
+ );
+
+ test_font.load().then(font => {
+ const c = document.getElementById("c");
+ const ctx = c.transferControlToOffscreen().getContext("2d");
+ // This should also draw text without setting the font.
+ ctx.fillText("T", 5, 50);
+ takeScreenshot();
+ });
+ }
+</script>
+</body>
+</html>
diff --git a/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.fillText.html b/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.fillText.html
new file mode 100644
index 00000000000..d6eed023072
--- /dev/null
+++ b/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.fillText.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+ <title>HTML 5 Canvas Test: fillText() after transferControlToOffscreen draws text</title>
+ <link rel="mismatch" href="empty-ref.html">
+ <meta charset="utf-8">
+ <meta name="assert" content="fillText() after transferControlToOffscreen() draws text">
+ <script src="/common/reftest-wait.js"></script>
+</head>
+<body onload="runTest()">
+<canvas id="c"></canvas>
+<script>
+ function runTest() {
+ const c = document.getElementById("c");
+ const ctx = c.transferControlToOffscreen().getContext("2d");
+ ctx.fillText("T", 5, 50);
+ takeScreenshot();
+ }
+</script>
+</body>
+</html>
diff --git a/tests/wpt/tests/html/canvas/offscreen/manual/text/empty-ref.html b/tests/wpt/tests/html/canvas/offscreen/manual/text/empty-ref.html
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/tests/wpt/tests/html/canvas/offscreen/manual/text/empty-ref.html
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/blob-popup.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/blob-popup.https.html
index eda150eb348..164bf2429bf 100644
--- a/tests/wpt/tests/html/cross-origin-opener-policy/blob-popup.https.html
+++ b/tests/wpt/tests/html/cross-origin-opener-policy/blob-popup.https.html
@@ -3,38 +3,44 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/common/get-host-info.sub.js></script>
-<script src="/common/utils.js"></script>
+<script src=/common/utils.js></script>
+<script src=/common/dispatcher/dispatcher.js></script>
<script>
-async_test(t => {
- window.test = t; // Make the test available globally so the blob URL can use it
+promise_test(async t => {
window.furtherPopup = null;
- const bc = new BroadcastChannel(token());
- bc.onmessage = t.step_func_done(({ data }) => {
- assert_equals(data.name.length, 0);
- assert_false(data.opener);
- assert_true(furtherPopup.closed);
- });
+ const responseToken = token();
+ const iframeToken = token();
const blobContents = `<script>
-const w = window.open("${get_host_info().HTTPS_REMOTE_ORIGIN}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=x&coep=x&channel=${bc.name}", "${bc.name}");
+const w = window.open("${get_host_info().HTTPS_REMOTE_ORIGIN}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=x&coep=x&responseToken=${responseToken}&iframeToken=${iframeToken}", "${responseToken}");
window.opener.furtherPopup = w;
<\/script>`;
const blob = new Blob([blobContents], { type: "text/html" });
const blobURL = URL.createObjectURL(blob);
const popup = window.open(blobURL);
- t.add_cleanup(() => {
+ t.add_cleanup(async () => {
// Close the popups once the test is complete.
// The browsing context of the second popup is closed hence use the
// broadcast channel to trigger the closure.
- bc.postMessage("close");
+ await send(iframeToken, "close");
popup.close();
});
+
+ let popupOnloadHappened = false;
popup.onload = t.step_func(() => {
assert_equals(popup.opener, window);
assert_equals(popup.location.href, blobURL);
assert_equals(popup.document.URL, blobURL);
assert_equals(popup.origin, window.origin);
+ popupOnloadHappened = true;
});
+
+ const data = JSON.parse(await receive(responseToken));
+
+ assert_true(popupOnloadHappened);
+ assert_equals(data.name.length, 0);
+ assert_false(data.opener);
+ assert_true(furtherPopup.closed);
});
</script>
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html
index 714a4b6c427..f9b575fccc2 100644
--- a/tests/wpt/tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html
+++ b/tests/wpt/tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html
@@ -6,9 +6,11 @@
<meta name=variant content=?4-last>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src="/common/subset-tests.js"></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="resources/common.js"></script>
+<script src=/common/subset-tests.js></script>
+<script src=/common/get-host-info.sub.js></script>
+<script src=/common/utils.js></script>
+<script src=resources/common.js></script>
+<script src=/common/dispatcher/dispatcher.js></script>
<script>
[
{
@@ -55,17 +57,18 @@
["same-origin", "same-site"].forEach(site => {
const title = `Popup navigating to ${site} with ${variant.title}`;
- const channel = title.replace(/ /g,"-");
+ const responseToken = token();
+ const iframeToken = token();
const navigateHost = site === "same-origin" ? SAME_ORIGIN : SAME_SITE;
- const navigateURL = `${navigateHost.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=${variant.coop}&coep=${variant.coep}&channel=${channel}`;
+ const navigateURL = `${navigateHost.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=${variant.coop}&coep=${variant.coep}&responseToken=${responseToken}&iframeToken=${iframeToken}`;
const opener = site === "same-origin" ? variant.opener : false;
- async_test(t => {
+ promise_test(t => {
// For each test we open a COOP: same-origin/COEP: require-corp document in a popup and then
// navigate that to either a same-origin (site=="same-origin") or same-site (site=="same-site")
// document whose COOP and COEP are set as per the top-most array. We then verify that this
// document has the correct opener for its specific setup.
- url_test(t, `${SAME_ORIGIN.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=same-origin&coep=require-corp&navigate=${encodeURIComponent(navigateURL)}`, channel, opener);
+ return dispatcher_url_test(t, `${SAME_ORIGIN.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=same-origin&coep=require-corp&navigate=${encodeURIComponent(navigateURL)}`, responseToken, iframeToken, opener, undefined, () => t.done());
}, title);
});
});
diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html
index 8368dc4c811..ce8c363f091 100644
--- a/tests/wpt/tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html
+++ b/tests/wpt/tests/html/cross-origin-opener-policy/historical/coep-navigate-popup-unsafe-inherit.https.html
@@ -3,9 +3,11 @@
<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
-<script src="/common/get-host-info.sub.js"></script>
-<script src="../resources/common.js"></script>
-<script src="/common/subset-tests.js"></script>
+<script src=/common/subset-tests.js></script>
+<script src=/common/get-host-info.sub.js></script>
+<script src=/common/utils.js></script>
+<script src=../resources/common.js></script>
+<script src=/common/dispatcher/dispatcher.js></script>
<script>
[
{
@@ -23,17 +25,18 @@
].forEach((variant) => {
["same-origin", "same-site"].forEach((site) => {
const title = `Popup navigating to ${site} with ${variant.title}`;
- const channel = title.replace(/ /g,"-");
+ const responseToken = token();
+ const iframeToken = token();
const navigateHost = site === "same-origin" ? SAME_ORIGIN : SAME_SITE;
- const navigateURL = `${navigateHost.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=${variant.coop}&coep=${variant.coep}&channel=${channel}`;
+ const navigateURL = `${navigateHost.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=${variant.coop}&coep=${variant.coep}&responseToken=${responseToken}&iframeToken=${iframeToken}`;
const opener = site === "same-origin" ? variant.opener : false;
- async_test(t => {
+ promise_test(t => {
// For each test we open a COOP: same-origin/COEP: require-corp document in a popup and then
// navigate that to either a document with same origin (site=="same-origin") or
// not-same-origin (site=="same-site") whose COOP and COEP are set as per the top-most array.
// We then verify that this document has the correct opener for its specific setup.
- url_test(t, `${SAME_ORIGIN.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=same-origin&coep=require-corp&navigate=${encodeURIComponent(navigateURL)}`, channel, opener);
+ return dispatcher_url_test(t, `${SAME_ORIGIN.origin}/html/cross-origin-opener-policy/resources/coop-coep.py?coop=same-origin&coep=require-corp&navigate=${encodeURIComponent(navigateURL)}`, responseToken, iframeToken, opener, undefined, () => t.done());
}, title);
});
});
diff --git a/tests/wpt/tests/html/dom/elements/global-attributes/the-translate-attribute-012.html b/tests/wpt/tests/html/dom/elements/global-attributes/the-translate-attribute-012.html
index 1d81cfd8b11..690009c7c27 100644
--- a/tests/wpt/tests/html/dom/elements/global-attributes/the-translate-attribute-012.html
+++ b/tests/wpt/tests/html/dom/elements/global-attributes/the-translate-attribute-012.html
@@ -14,7 +14,7 @@
-<div class="test"><div id="box" translate="">&nbsp;</div></div>
+<div class="test" translate="no"><div id="box" translate="">&nbsp;</div></div>
<script>
diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-closedby-corner-cases.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-closedby-corner-cases.html
index 511acaccef3..2c9dff9753a 100644
--- a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-closedby-corner-cases.html
+++ b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-closedby-corner-cases.html
@@ -36,9 +36,9 @@
assert_true(dialog.matches(':open'),'Should be open now (pseudo)');
}
- function awaitEvent(el, type, signal) {
+ function awaitClose(el, signal) {
const {promise, resolve} = Promise.withResolvers();
- el.addEventListener(type, resolve, { once: true, signal });
+ el.addEventListener('close', resolve, { signal });
return promise
}
@@ -56,7 +56,7 @@
}, {signal});
// Await for the close event before asserting.
- return awaitEvent(dialog, 'close', signal)
+ return awaitClose(dialog, signal)
}
},
{
@@ -70,7 +70,7 @@
}, {signal});
// Await for the close event before asserting.
- return awaitEvent(dialog, 'close', signal)
+ return awaitClose(dialog, signal)
}
},
{
@@ -86,7 +86,7 @@
}, {signal});
// Await for the close event before asserting.
- return awaitEvent(dialog, 'close', signal)
+ return awaitClose(dialog, signal)
},
respondsTo(openMethod) {
// Since the closing steps will trigger another call to showModal
@@ -106,24 +106,7 @@
}, {signal});
// Await for the close event before asserting.
- return awaitEvent(dialog, 'close', signal)
- }
- },
- {
- description: 'requestIdleCallback calls showModal',
- setup: (openMethod,signal) => {
- return new Promise(resolve => {
- requestIdleCallback(() => {
- try {
- dialog.showModal();
- } catch {
- } finally {
- resolve();
- }
- });
- // Wait for one more tick to reduce racey behaviour between
- // requestIdleCallback and task queue event dispatch
- }).then(() => waitForRender());
+ return awaitClose(dialog, signal)
}
},
{
@@ -140,7 +123,7 @@
}, {signal});
// Await for the close event before asserting.
- return awaitEvent(dialog, 'close', signal)
+ return awaitClose(dialog, signal)
}
},
];
@@ -152,9 +135,7 @@
assert_equals(dialog.closedBy, "any", 'Dialog should be closedby=any');
const signal = t.get_signal();
- t.add_cleanup(() => {
- dialog.close();
- });
+ t.add_cleanup(() => dialog.close());
const step = changeMethod.setup(openMethod, signal);
diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html
index 5934485087a..04255cc3c80 100644
--- a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html
+++ b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html
@@ -21,22 +21,33 @@
</form>
</dialog>
<script>
-promise_test(async () => {
+promise_test(async (t) => {
const dialog = document.querySelector('dialog');
+ const button = document.querySelector('button');
+ t.add_cleanup(() => {
+ dialog.close();
+ dialog.returnValue = "";
+ button.removeAttribute("value");
+ });
dialog.showModal();
- const button = document.querySelector('button');
button.click();
assert_false(dialog.open, "dialog should be closed now");
assert_equals(dialog.returnValue, "default", "Return the default value");
}, 'click the form submission button should close the dialog');
-promise_test(async () => {
+promise_test(async (t) => {
const dialog = document.querySelector('dialog');
+ const button = document.querySelector('button');
+ t.add_cleanup(() => {
+ dialog.close();
+ dialog.returnValue = "";
+ button.removeAttribute("value");
+ });
+ dialog.returnValue = "initial";
dialog.showModal();
- const button = document.querySelector('button');
button.value = "sushi";
button.click();
@@ -44,22 +55,50 @@ promise_test(async () => {
assert_equals(dialog.returnValue, "sushi", "Return the updated value");
}, 'form submission should return correct value');
-promise_test(async () => {
+promise_test(async (t) => {
const dialog = document.querySelector('dialog');
+ const button = document.querySelector('button');
+ t.add_cleanup(() => {
+ dialog.close();
+ dialog.returnValue = "";
+ button.removeAttribute("value");
+ });
+ dialog.returnValue = "initial";
dialog.showModal();
- const button = document.querySelector('button');
button.removeAttribute("value");
button.click();
assert_false(dialog.open, "dialog should be closed now");
- assert_not_equals(dialog.returnValue, undefined, "returnValue should not be set");
-}, "no returnValue when there's no result.");
+ assert_equals(dialog.returnValue, "initial", "returnValue should not be updated");
+}, "returnValue doesn't update when there's no value attribute.");
-promise_test(async () => {
+promise_test(async (t) => {
const dialog = document.querySelector('dialog');
+ const button = document.querySelector('button');
+ t.add_cleanup(() => {
+ dialog.close();
+ dialog.returnValue = "";
+ button.removeAttribute("value");
+ });
+ dialog.returnValue = "initial";
dialog.showModal();
+ button.setAttribute("value", "");
+ button.click();
+ assert_false(dialog.open, "dialog should be closed now");
+ assert_equals(dialog.returnValue, "", "returnValue should be updated");
+}, "returnValue does update when there's an empty value attribute.");
+
+promise_test(async (t) => {
+ const dialog = document.querySelector('dialog');
const button = document.querySelector('input');
+ t.add_cleanup(() => {
+ dialog.close();
+ dialog.returnValue = "";
+ button.removeAttribute("value");
+ });
+ dialog.showModal();
+
let expectedReturnValue = "";
button.addEventListener('click', function(event) {
expectedReturnValue = event.offsetX + "," + event.offsetY;
@@ -71,16 +110,26 @@ promise_test(async () => {
assert_equals(dialog.returnValue, expectedReturnValue, "returnValue should be the offsets of the click");
}, "input image button should return the coordinates");
-promise_test(async () => {
+promise_test(async (t) => {
const dialog = document.querySelector('dialog');
+ t.add_cleanup(() => {
+ dialog.close();
+ dialog.returnValue = "";
+ button.removeAttribute("value");
+ });
dialog.showModal();
const button = document.getElementById('confirmImgBtn2');
await test_driver.click(button);
assert_false(dialog.open, "dialog should be closed now");
}, "formmethod attribute should use dialog form submission");
-promise_test(async () => {
+promise_test(async (t) => {
const dialog = document.querySelector('dialog');
+ t.add_cleanup(() => {
+ dialog.close();
+ dialog.returnValue = "";
+ button.removeAttribute("value");
+ });
dialog.returnValue = "";
dialog.showModal();
@@ -99,8 +148,13 @@ promise_test(async () => {
assert_equals(dialog.returnValue, "", "dialog's returnValue remains the same");
}, "closing the dialog while submitting should stop the submission");
-promise_test(async () => {
+promise_test(async (t) => {
const dialog = document.querySelector('dialog');
+ t.add_cleanup(() => {
+ dialog.close();
+ dialog.returnValue = "";
+ button.removeAttribute("value");
+ });
dialog.returnValue = undefined;
dialog.showModal();
diff --git a/tests/wpt/tests/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior-request-close.tentative.html b/tests/wpt/tests/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior-request-close.tentative.html
deleted file mode 100644
index e505c917d7c..00000000000
--- a/tests/wpt/tests/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior-request-close.tentative.html
+++ /dev/null
@@ -1,267 +0,0 @@
-<!doctype html>
-<meta charset="utf-8" />
-<meta name="author" title="Keith Cirkel" href="mailto:wpt@keithcirkel.co.uk" />
-<meta name="author" title="Luke Warlow" href="mailto:lwarlow@igalia.com" />
-<meta name="timeout" content="long">
-<link rel="help" href="https://open-ui.org/components/invokers.explainer/" />
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/invoker-utils.js"></script>
-<!-- Merge the following tests into the main test file when the feature is stable -->
-
-<dialog id="invokee">
- <button id="containedinvoker" commandfor="invokee" command="request-close"></button>
-</dialog>
-<button id="invokerbutton" commandfor="invokee" command="show-modal"></button>
-
-<script>
- function resetState() {
- invokee.close();
- try { invokee.hidePopover(); } catch {}
- invokee.removeAttribute("popover");
- invokee.returnValue = '';
- invokerbutton.setAttribute("command", "show-modal");
- containedinvoker.setAttribute("command", "request-close");
- containedinvoker.removeAttribute("value");
- }
-
- // request to close an already open dialog
-
- ["request-close", /* test case sensitivity */ "reQuEst-Close"].forEach((command) => {
- ["property", "attribute"].forEach((setType) => {
- test(
- function (t) {
- t.add_cleanup(resetState);
- invokee.show();
- assert_true(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- if (setType === "property") {
- containedinvoker.command = command;
- } else {
- containedinvoker.setAttribute("command", command);
- }
- containedinvoker.click();
- assert_equals(invokee.returnValue, "");
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- },
- `invoking to request-close (with command ${setType} as ${command}) open dialog closes`,
- );
-
- test(
- function (t) {
- t.add_cleanup(resetState);
- invokee.show();
- assert_true(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- if (setType === "property") {
- containedinvoker.command = command;
- } else {
- containedinvoker.setAttribute("command", command);
- }
- containedinvoker.setAttribute("value", "foo");
- containedinvoker.click();
- assert_equals(invokee.returnValue, "foo");
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- },
- `invoking to request-close with value (with command ${setType} as ${command}) open dialog closes and sets returnValue`,
- );
-
- test(
- function (t) {
- t.add_cleanup(resetState);
- invokee.show();
- assert_true(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- if (typeof command === "string") {
- if (setType === "property") {
- containedinvoker.command = command;
- } else {
- containedinvoker.setAttribute("command", command);
- }
- }
- invokee.addEventListener("command", (e) => e.preventDefault(), {
- once: true,
- });
- containedinvoker.click();
- assert_true(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- },
- `invoking to request-close (with command ${setType} as ${command}) open dialog with preventDefault is no-op`,
- );
-
- test(
- function (t) {
- t.add_cleanup(resetState);
- invokee.showModal();
- assert_true(invokee.open, "invokee.open");
- assert_true(invokee.matches(":modal"), "invokee :modal");
- if (setType === "property") {
- containedinvoker.command = command;
- } else {
- containedinvoker.setAttribute("command", command);
- }
- invokee.addEventListener("command", (e) => e.preventDefault(), {
- once: true,
- });
- containedinvoker.click();
- assert_true(invokee.open, "invokee.open");
- assert_true(invokee.matches(":modal"), "invokee :modal");
- },
- `invoking to request-close (with command ${setType} as ${command}) open modal dialog with preventDefault is no-op`,
- );
-
- test(
- function (t) {
- t.add_cleanup(resetState);
- invokee.show();
- assert_true(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- if (setType === "property") {
- containedinvoker.command = command;
- } else {
- containedinvoker.setAttribute("command", command);
- }
- invokee.addEventListener(
- "command",
- (e) => {
- containedinvoker.setAttribute("command", "show");
- },
- { once: true },
- );
- containedinvoker.click();
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- },
- `invoking to request-close (with command ${setType} as ${command}) open dialog while changing command still closes`,
- );
-
- test(
- function (t) {
- t.add_cleanup(resetState);
- invokee.showModal();
- assert_true(invokee.open, "invokee.open");
- assert_true(invokee.matches(":modal"), "invokee :modal");
- if (setType === "property") {
- containedinvoker.command = command;
- } else {
- containedinvoker.setAttribute("command", command);
- }
- invokee.addEventListener(
- "command",
- (e) => {
- containedinvoker.setAttribute("command", "show");
- },
- { once: true },
- );
- containedinvoker.click();
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- },
- `invoking to request-close (with command ${setType} as ${command}) open modal dialog while changing command still closes`,
- );
- });
- });
-
- // request-close explicit behaviours
-
- promise_test(async function (t) {
- t.add_cleanup(resetState);
- invokerbutton.setAttribute("command", "request-close");
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- containedinvoker.click();
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- }, "invoking (as request-close) already closed dialog is noop");
-
- // Open Popovers using Dialog actions
- ["request-close"].forEach((command) => {
- ["manual", "auto"].forEach((popoverState) => {
- test(
- function (t) {
- t.add_cleanup(resetState);
- invokee.setAttribute("popover", popoverState);
- invokee.showPopover();
- containedinvoker.setAttribute("command", command);
- assert_true(
- invokee.matches(":popover-open"),
- "invokee :popover-open",
- );
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- invokee.addEventListener("command", (e) => e.preventDefault(), {
- once: true,
- });
- containedinvoker.click();
- assert_true(
- invokee.matches(":popover-open"),
- "invokee :popover-open",
- );
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- },
- `invoking (as ${command}) dialog as open popover=${popoverState} is noop`,
- );
- });
- });
-
- // Elements being disconnected during invoke steps
- ["request-close"].forEach((command) => {
- test(
- function (t) {
- t.add_cleanup(() => {
- document.body.prepend(invokee);
- resetState();
- });
- const invokee = document.querySelector("#invokee");
- invokerbutton.setAttribute("command", command);
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- invokee.addEventListener(
- "command",
- (e) => {
- invokee.remove();
- },
- {
- once: true,
- },
- );
- invokerbutton.click();
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- },
- `invoking (as ${command}) dialog that is removed is noop`,
- );
-
- test(
- function (t) {
- const invokerbutton = document.createElement("button");
- invokerbutton.commandForElement = invokee;
- invokerbutton.setAttribute("command", command);
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- invokerbutton.click();
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- },
- `invoking (as ${command}) dialog from a detached invoker`,
- );
-
- test(
- function (t) {
- const invokerbutton = document.createElement("button");
- const invokee = document.createElement("dialog");
- invokerbutton.commandForElementt = invokee;
- invokerbutton.setAttribute("command", command);
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- invokerbutton.click();
- assert_false(invokee.open, "invokee.open");
- assert_false(invokee.matches(":modal"), "invokee :modal");
- },
- `invoking (as ${command}) detached dialog from a detached invoker`,
- );
- });
-</script>
diff --git a/tests/wpt/tests/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior.html b/tests/wpt/tests/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior.html
index 041bc8536ac..38243de7477 100644
--- a/tests/wpt/tests/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior.html
+++ b/tests/wpt/tests/html/semantics/the-button-element/command-and-commandfor/on-dialog-behavior.html
@@ -141,6 +141,69 @@
invokee.show();
assert_true(invokee.open, "invokee.open");
assert_false(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ invokee.returnValue = "test";
+ containedinvoker.setAttribute("value", "foo");
+ containedinvoker.click();
+ assert_equals(invokee.returnValue, "foo");
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to close (with command ${setType} as ${command}) open dialog closes and overrides returnValue`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.show();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ invokee.returnValue = "test";
+ containedinvoker.setAttribute("value", "");
+ containedinvoker.click();
+ assert_equals(invokee.returnValue, "");
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to close (with command ${setType} as ${command}) open dialog closes and overrides returnValue when empty string`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.show();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ invokee.returnValue = "test";
+ containedinvoker.removeAttribute("value");
+ containedinvoker.click();
+ assert_equals(invokee.returnValue, "test");
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to close (with command ${setType} as ${command}) open dialog closes and doesn't override returnValue when missing value attribute`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.show();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
if (typeof command === "string") {
if (setType === "property") {
containedinvoker.command = command;
@@ -231,6 +294,208 @@
});
});
+ // request to close an already open dialog
+
+ ["request-close", /* test case sensitivity */ "reQuEst-Close"].forEach((command) => {
+ ["property", "attribute"].forEach((setType) => {
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.show();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ containedinvoker.click();
+ assert_equals(invokee.returnValue, "");
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to request-close (with command ${setType} as ${command}) open dialog closes`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.show();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ containedinvoker.setAttribute("value", "foo");
+ containedinvoker.click();
+ assert_equals(invokee.returnValue, "foo");
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to request-close with value (with command ${setType} as ${command}) open dialog closes and sets returnValue`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.show();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ invokee.returnValue = "test";
+ containedinvoker.setAttribute("value", "foo");
+ containedinvoker.click();
+ assert_equals(invokee.returnValue, "foo");
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to request-close with value (with command ${setType} as ${command}) open dialog closes and overrides returnValue`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.show();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ invokee.returnValue = "test";
+ containedinvoker.setAttribute("value", "");
+ containedinvoker.click();
+ assert_equals(invokee.returnValue, "");
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to request-close with value (with command ${setType} as ${command}) open dialog closes and overrides returnValue when empty string`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.show();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ invokee.returnValue = "test";
+ containedinvoker.removeAttribute("value");
+ containedinvoker.click();
+ assert_equals(invokee.returnValue, "test");
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to request-close with value (with command ${setType} as ${command}) open dialog closes and doesn't override returnValue when missing value attribute`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.show();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ if (typeof command === "string") {
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ }
+ invokee.addEventListener("command", (e) => e.preventDefault(), {
+ once: true,
+ });
+ containedinvoker.click();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to request-close (with command ${setType} as ${command}) open dialog with preventDefault is no-op`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.showModal();
+ assert_true(invokee.open, "invokee.open");
+ assert_true(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ invokee.addEventListener("command", (e) => e.preventDefault(), {
+ once: true,
+ });
+ containedinvoker.click();
+ assert_true(invokee.open, "invokee.open");
+ assert_true(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to request-close (with command ${setType} as ${command}) open modal dialog with preventDefault is no-op`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.show();
+ assert_true(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ invokee.addEventListener(
+ "command",
+ (e) => {
+ containedinvoker.setAttribute("command", "show");
+ },
+ { once: true },
+ );
+ containedinvoker.click();
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to request-close (with command ${setType} as ${command}) open dialog while changing command still closes`,
+ );
+
+ test(
+ function (t) {
+ t.add_cleanup(resetState);
+ invokee.showModal();
+ assert_true(invokee.open, "invokee.open");
+ assert_true(invokee.matches(":modal"), "invokee :modal");
+ if (setType === "property") {
+ containedinvoker.command = command;
+ } else {
+ containedinvoker.setAttribute("command", command);
+ }
+ invokee.addEventListener(
+ "command",
+ (e) => {
+ containedinvoker.setAttribute("command", "show");
+ },
+ { once: true },
+ );
+ containedinvoker.click();
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ },
+ `invoking to request-close (with command ${setType} as ${command}) open modal dialog while changing command still closes`,
+ );
+ });
+ });
+
// show-modal explicit behaviours
promise_test(async function (t) {
@@ -285,8 +550,21 @@
assert_false(invokee.matches(":modal"), "invokee :modal");
}, "invoking (as close) already closed dialog is noop");
+
+ // request-close explicit behaviours
+
+ promise_test(async function (t) {
+ t.add_cleanup(resetState);
+ invokerbutton.setAttribute("command", "request-close");
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ containedinvoker.click();
+ assert_false(invokee.open, "invokee.open");
+ assert_false(invokee.matches(":modal"), "invokee :modal");
+ }, "invoking (as request-close) already closed dialog is noop");
+
// Open Popovers using Dialog actions
- ["show-modal", "close"].forEach((command) => {
+ ["show-modal", "close", "request-close"].forEach((command) => {
["manual", "auto"].forEach((popoverState) => {
test(
function (t) {
@@ -317,7 +595,7 @@
});
// Elements being disconnected during invoke steps
- ["show-modal", "close"].forEach((command) => {
+ ["show-modal", "close", "request-close"].forEach((command) => {
promise_test(
async function (t) {
t.add_cleanup(() => {
diff --git a/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-lt-gt.tentative.html b/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-lt-gt.html
index 6c74b443a83..6c74b443a83 100644
--- a/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-lt-gt.tentative.html
+++ b/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing-lt-gt.html
diff --git a/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing.html b/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing.html
index 1bccbf56088..e0473f96801 100644
--- a/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing.html
+++ b/tests/wpt/tests/html/syntax/serializing-html-fragments/serializing.html
@@ -48,9 +48,9 @@ var expected = [
["<a b=\"&amp;\"></a>", "<span><a b=\"&amp;\"></a></span>"],
["<a b=\"&nbsp;\"></a>", "<span><a b=\"&nbsp;\"></a></span>"],
["<a b=\"&quot;\"></a>", "<span><a b=\"&quot;\"></a></span>"],
-["<a b=\"<\"></a>", "<span><a b=\"<\"></a></span>"],
-["<a b=\">\"></a>", "<span><a b=\">\"></a></span>"],
-["<a href=\"javascript:&quot;<>&quot;\"></a>", "<span><a href=\"javascript:&quot;<>&quot;\"></a></span>"],
+["<a b=\"&lt;\"></a>", "<span><a b=\"&lt;\"></a></span>"],
+["<a b=\"&gt;\"></a>", "<span><a b=\"&gt;\"></a></span>"],
+["<a href=\"javascript:&quot;&lt;&gt;&quot;\"></a>", "<span><a href=\"javascript:&quot;&lt;&gt;&quot;\"></a></span>"],
["<svg xlink:href=\"a\"></svg>", "<span><svg xlink:href=\"a\"></svg></span>"],
["<svg xmlns:svg=\"test\"></svg>", "<span><svg xmlns:svg=\"test\"></svg></span>"],
["a", "<span>a</span>"],
diff --git a/tests/wpt/tests/infrastructure/assumptions/non-local-ports.sub.window.js b/tests/wpt/tests/infrastructure/assumptions/non-local-ports.sub.window.js
index 8c9eb33c4f7..0de516db380 100644
--- a/tests/wpt/tests/infrastructure/assumptions/non-local-ports.sub.window.js
+++ b/tests/wpt/tests/infrastructure/assumptions/non-local-ports.sub.window.js
@@ -3,14 +3,14 @@
// See the corresponding WPT RFC:
// https://github.com/web-platform-tests/rfcs/blob/master/rfcs/address_space_overrides.md
//
-// These ports are used to test the Private Network Access specification:
-// https://wicg.github.io/private-network-access/
+// These ports are used to test the Local Network Access specification:
+// https://github.com/explainers-by-googlers/local-network-access
//
-// More tests can be found in `fetch/private-network-access/`.
+// More tests can be found in `fetch/local-network-access/`.
const alternatePorts = {
- httpPrivate: "{{ports[http-private][0]}}",
- httpsPrivate: "{{ports[https-private][0]}}",
+ httpLocal: "{{ports[http-local][0]}}",
+ httpsLocal: "{{ports[https-local][0]}}",
httpPublic: "{{ports[http-public][0]}}",
httpsPublic: "{{ports[https-public][0]}}",
};
@@ -38,13 +38,13 @@ function resolveUrl(url, options) {
}
const alternateOrigins = {
- httpPrivate: {
+ httpLocal: {
protocol: "http:",
- port: alternatePorts.httpPrivate,
+ port: alternatePorts.httpLocal,
},
- httpsPrivate: {
+ httpsLocal: {
protocol: "https:",
- port: alternatePorts.httpsPrivate,
+ port: alternatePorts.httpsLocal,
},
httpPublic: {
protocol: "http:",
@@ -58,17 +58,17 @@ const alternateOrigins = {
promise_test(async () => {
const url =
- resolveUrl("/common/blank-with-cors.html", alternateOrigins.httpsPrivate);
+ resolveUrl("/common/blank-with-cors.html", alternateOrigins.httpsLocal);
const response = await fetch(url);
assert_true(response.ok);
-}, "Fetch from https-private port works.");
+}, "Fetch from https-local port works.");
promise_test(async () => {
const url =
- resolveUrl("/common/blank-with-cors.html", alternateOrigins.httpPrivate);
+ resolveUrl("/common/blank-with-cors.html", alternateOrigins.httpLocal);
const response = await fetch(url);
assert_true(response.ok);
-}, "Fetch from http-private port works.");
+}, "Fetch from http-local port works.");
promise_test(async () => {
const url =
diff --git a/tests/wpt/tests/interfaces/html.idl b/tests/wpt/tests/interfaces/html.idl
index 102149c4dfa..9c84e6a67ef 100644
--- a/tests/wpt/tests/interfaces/html.idl
+++ b/tests/wpt/tests/interfaces/html.idl
@@ -1542,28 +1542,6 @@ interface TextMetrics {
readonly attribute double ideographicBaseline;
};
-typedef (Uint8ClampedArray or Float16Array) ImageDataArray;
-
-enum ImageDataPixelFormat { "rgba-unorm8", "rgba-float16" };
-
-dictionary ImageDataSettings {
- PredefinedColorSpace colorSpace;
- ImageDataPixelFormat pixelFormat = "rgba-unorm8";
-};
-
-[Exposed=(Window,Worker),
- Serializable]
-interface ImageData {
- constructor(unsigned long sw, unsigned long sh, optional ImageDataSettings settings = {});
- constructor(ImageDataArray data, unsigned long sw, optional unsigned long sh, optional ImageDataSettings settings = {});
-
- readonly attribute unsigned long width;
- readonly attribute unsigned long height;
- readonly attribute ImageDataArray data;
- readonly attribute ImageDataPixelFormat pixelFormat;
- readonly attribute PredefinedColorSpace colorSpace;
-};
-
[Exposed=(Window,Worker)]
interface Path2D {
constructor(optional (Path2D or DOMString) path);
@@ -2476,6 +2454,28 @@ interface MimeType {
readonly attribute Plugin enabledPlugin;
};
+typedef (Uint8ClampedArray or Float16Array) ImageDataArray;
+
+enum ImageDataPixelFormat { "rgba-unorm8", "rgba-float16" };
+
+dictionary ImageDataSettings {
+ PredefinedColorSpace colorSpace;
+ ImageDataPixelFormat pixelFormat = "rgba-unorm8";
+};
+
+[Exposed=(Window,Worker),
+ Serializable]
+interface ImageData {
+ constructor(unsigned long sw, unsigned long sh, optional ImageDataSettings settings = {});
+ constructor(ImageDataArray data, unsigned long sw, optional unsigned long sh, optional ImageDataSettings settings = {});
+
+ readonly attribute unsigned long width;
+ readonly attribute unsigned long height;
+ readonly attribute ImageDataArray data;
+ readonly attribute ImageDataPixelFormat pixelFormat;
+ readonly attribute PredefinedColorSpace colorSpace;
+};
+
[Exposed=(Window,Worker), Serializable, Transferable]
interface ImageBitmap {
readonly attribute unsigned long width;
diff --git a/tests/wpt/tests/interfaces/media-capabilities.idl b/tests/wpt/tests/interfaces/media-capabilities.idl
index 68ab0a8d0d1..3ded93519b1 100644
--- a/tests/wpt/tests/interfaces/media-capabilities.idl
+++ b/tests/wpt/tests/interfaces/media-capabilities.idl
@@ -91,11 +91,11 @@ dictionary MediaCapabilitiesInfo {
dictionary MediaCapabilitiesDecodingInfo : MediaCapabilitiesInfo {
required MediaKeySystemAccess? keySystemAccess;
- MediaDecodingConfiguration configuration;
+ required MediaDecodingConfiguration configuration;
};
dictionary MediaCapabilitiesEncodingInfo : MediaCapabilitiesInfo {
- MediaEncodingConfiguration configuration;
+ required MediaEncodingConfiguration configuration;
};
[Exposed=Window]
diff --git a/tests/wpt/tests/interfaces/paint-timing.idl b/tests/wpt/tests/interfaces/paint-timing.idl
index fbf91858571..bc2b60f9de6 100644
--- a/tests/wpt/tests/interfaces/paint-timing.idl
+++ b/tests/wpt/tests/interfaces/paint-timing.idl
@@ -10,5 +10,7 @@ interface mixin PaintTimingMixin {
};
[Exposed=Window]
-interface PerformancePaintTiming : PerformanceEntry {};
+interface PerformancePaintTiming : PerformanceEntry {
+ [Default] object toJSON();
+};
PerformancePaintTiming includes PaintTimingMixin;
diff --git a/tests/wpt/tests/interfaces/ppa.idl b/tests/wpt/tests/interfaces/privacy-preserving-attribution.idl
index 3524d503c18..0ab5d0fc21e 100644
--- a/tests/wpt/tests/interfaces/ppa.idl
+++ b/tests/wpt/tests/interfaces/privacy-preserving-attribution.idl
@@ -25,8 +25,8 @@ interface PrivateAttribution {
dictionary PrivateAttributionImpressionOptions {
required unsigned long histogramIndex;
- unsigned long filterData = 0;
- required USVString conversionSite;
+ unsigned long matchValue = 0;
+ sequence<USVString> conversionSites = [];
unsigned long lifetimeDays = 30;
};
@@ -42,7 +42,7 @@ dictionary PrivateAttributionConversionOptions {
required unsigned long histogramSize;
unsigned long lookbackDays;
- unsigned long filterData;
+ sequence<unsigned long> matchValue = [];
sequence<USVString> impressionSites = [];
sequence<USVString> intermediarySites = [];
diff --git a/tests/wpt/tests/interfaces/scoped-custom-elements-registry.tentative.idl b/tests/wpt/tests/interfaces/scoped-custom-elements-registry.tentative.idl
deleted file mode 100644
index 46ca2d6b9c4..00000000000
--- a/tests/wpt/tests/interfaces/scoped-custom-elements-registry.tentative.idl
+++ /dev/null
@@ -1,38 +0,0 @@
-[Exposed=Window]
-partial interface CustomElementRegistry {
- constructor();
- undefined initialize(Node root);
-};
-
-[Exposed=Window]
-partial interface HTMLTemplateElement {
- [CEReactions] attribute DOMString shadowRootCustomElementRegistry;
-};
-
-[Exposed=Window]
-partial interface Document {
- readonly attribute CustomElementRegistry? customElementRegistry;
-};
-
-[Exposed=Window]
-partial interface Element {
- readonly attribute CustomElementRegistry? customElementRegistry;
-};
-
-[Exposed=Window]
-partial interface ShadowRoot {
- readonly attribute CustomElementRegistry? customElementRegistry;
-};
-
-dictionary ImportNodeOptions {
- CustomElementRegistry customElementRegistry;
- boolean selfOnly = false;
-};
-
-partial dictionary ShadowRootInit {
- CustomElementRegistry customElementRegistry;
-};
-
-partial dictionary ElementCreationOptions {
- CustomElementRegistry customElementRegistry;
-};
diff --git a/tests/wpt/tests/interfaces/sri.idl b/tests/wpt/tests/interfaces/sri.idl
new file mode 100644
index 00000000000..94ccb39f1ec
--- /dev/null
+++ b/tests/wpt/tests/interfaces/sri.idl
@@ -0,0 +1,13 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into webref
+// (https://github.com/w3c/webref)
+// Source: Subresource Integrity (https://w3c.github.io/webappsec-subresource-integrity/)
+
+[Exposed=Window]
+interface IntegrityPolicyViolationReportBody : ReportBody {
+ [Default] object toJSON();
+ readonly attribute USVString documentURL;
+ readonly attribute USVString blockedURL;
+ readonly attribute USVString destination;
+ readonly attribute boolean reportOnly;
+};
diff --git a/tests/wpt/tests/interfaces/webrtc-encoded-transform.idl b/tests/wpt/tests/interfaces/webrtc-encoded-transform.idl
index 8a6ba816016..79a149f3a9a 100644
--- a/tests/wpt/tests/interfaces/webrtc-encoded-transform.idl
+++ b/tests/wpt/tests/interfaces/webrtc-encoded-transform.idl
@@ -55,6 +55,17 @@ dictionary SFrameTransformErrorEventInit : EventInit {
CryptoKeyID? keyID;
};
+dictionary RTCEncodedFrameMetadata {
+ unsigned long synchronizationSource;
+ octet payloadType;
+ sequence<unsigned long> contributingSources;
+ unsigned long rtpTimestamp;
+ DOMHighResTimeStamp receiveTime;
+ DOMHighResTimeStamp captureTime;
+ DOMHighResTimeStamp senderCaptureTimeOffset;
+ DOMString mimeType;
+};
+
// New enum for video frame types. Will eventually re-use the equivalent defined
// by WebCodecs.
enum RTCEncodedVideoFrameType {
@@ -63,22 +74,14 @@ enum RTCEncodedVideoFrameType {
"delta",
};
-dictionary RTCEncodedVideoFrameMetadata {
+dictionary RTCEncodedVideoFrameMetadata : RTCEncodedFrameMetadata {
unsigned long long frameId;
sequence<unsigned long long> dependencies;
unsigned short width;
unsigned short height;
unsigned long spatialIndex;
unsigned long temporalIndex;
- unsigned long synchronizationSource;
- octet payloadType;
- sequence<unsigned long> contributingSources;
long long timestamp; // microseconds
- unsigned long rtpTimestamp;
- DOMHighResTimeStamp receiveTime;
- DOMHighResTimeStamp captureTime;
- DOMHighResTimeStamp senderCaptureTimeOffset;
- DOMString mimeType;
};
dictionary RTCEncodedVideoFrameOptions {
@@ -95,16 +98,9 @@ interface RTCEncodedVideoFrame {
RTCEncodedVideoFrameMetadata getMetadata();
};
-dictionary RTCEncodedAudioFrameMetadata {
- unsigned long synchronizationSource;
- octet payloadType;
- sequence<unsigned long> contributingSources;
+dictionary RTCEncodedAudioFrameMetadata : RTCEncodedFrameMetadata {
short sequenceNumber;
- unsigned long rtpTimestamp;
- DOMHighResTimeStamp receiveTime;
- DOMHighResTimeStamp captureTime;
- DOMHighResTimeStamp senderCaptureTimeOffset;
- DOMString mimeType;
+ double audioLevel;
};
dictionary RTCEncodedAudioFrameOptions {
diff --git a/tests/wpt/tests/interfaces/webtransport.idl b/tests/wpt/tests/interfaces/webtransport.idl
index 87da2a77303..7c9878ce561 100644
--- a/tests/wpt/tests/interfaces/webtransport.idl
+++ b/tests/wpt/tests/interfaces/webtransport.idl
@@ -27,6 +27,7 @@ interface WebTransport {
constructor(USVString url, optional WebTransportOptions options = {});
Promise<WebTransportConnectionStats> getStats();
+ [NewObject] Promise<ArrayBuffer> exportKeyingMaterial(BufferSource label, optional BufferSource context);
readonly attribute Promise<undefined> ready;
readonly attribute WebTransportReliabilityMode reliability;
readonly attribute WebTransportCongestionControl congestionControl;
diff --git a/tests/wpt/tests/lint.ignore b/tests/wpt/tests/lint.ignore
index b39180815c2..10b5dadba74 100644
--- a/tests/wpt/tests/lint.ignore
+++ b/tests/wpt/tests/lint.ignore
@@ -263,6 +263,7 @@ SET TIMEOUT: resource-timing/resources/nested-contexts.js
SET TIMEOUT: reporting/resources/first-csp-report.https.sub.html
SET TIMEOUT: reporting/resources/second-csp-report.https.sub.html
SET TIMEOUT: scheduler/tentative/yield/yield-inherit-across-promises.any.js
+SET TIMEOUT: scheduler/tentative/yield/yield-scheduling-state-cleared.any.js
SET TIMEOUT: scheduler/tentative/yield/yield-priority-timers.any.js
SET TIMEOUT: secure-contexts/basic-popup-and-iframe-tests.https.js
SET TIMEOUT: service-workers/cache-storage/cache-abort.https.any.js
diff --git a/tests/wpt/tests/mathml/presentation-markup/mrow/merror-001.html b/tests/wpt/tests/mathml/presentation-markup/mrow/merror-001.html
index a9a021c2e99..0551e327948 100644
--- a/tests/wpt/tests/mathml/presentation-markup/mrow/merror-001.html
+++ b/tests/wpt/tests/mathml/presentation-markup/mrow/merror-001.html
@@ -24,20 +24,25 @@
</math>
</div>
<script>
- test(function () {
+ setup({ explicit_done: true });
+ document.fonts.ready.then(() => {
+ test(function () {
var style = window.getComputedStyle(document.getElementById("merror"));
assert_equals(style.borderWidth, "1px");
assert_equals(style.borderColor, "rgb(255, 0, 0)");
assert_equals(style.borderStyle, "solid");
assert_equals(style.backgroundColor, "rgb(255, 255, 224)");
- }, "Default CSS properties on merror");
+ }, "Default CSS properties on merror");
- test(function () {
+ test(function () {
var merrorBox = document.getElementById("merror").getBoundingClientRect();
var referenceBox = document.getElementById("reference").getBoundingClientRect();
assert_equals(merrorBox.width, referenceBox.width + 2);
assert_equals(merrorBox.height, referenceBox.height + 2);
- }, "Bounding box is the same as mrow + 1px border");
+ }, "Bounding box is the same as mrow + 1px border");
+
+ done();
+ });
</script>
</body>
</html>
diff --git a/tests/wpt/tests/mathml/presentation-markup/mrow/mphantom-001.html b/tests/wpt/tests/mathml/presentation-markup/mrow/mphantom-001.html
index 771688cf194..5af58821553 100644
--- a/tests/wpt/tests/mathml/presentation-markup/mrow/mphantom-001.html
+++ b/tests/wpt/tests/mathml/presentation-markup/mrow/mphantom-001.html
@@ -24,17 +24,22 @@
</math>
</div>
<script>
- test(function () {
+ setup({ explicit_done: true });
+ document.fonts.ready.then(() => {
+ test(function () {
var style = window.getComputedStyle(document.getElementById("mphantom"));
assert_equals(style.visibility, "hidden");
- }, "Default CSS properties on mphantom");
+ }, "Default CSS properties on mphantom");
- test(function () {
+ test(function () {
var mphantomBox = document.getElementById("mphantom").getBoundingClientRect();
var referenceBox = document.getElementById("reference").getBoundingClientRect();
assert_equals(mphantomBox.width, referenceBox.width);
assert_equals(mphantomBox.height, referenceBox.height);
- }, "Bounding box is the same as mrow");
+ }, "Bounding box is the same as mrow");
+
+ done();
+ });
</script>
</body>
</html>
diff --git a/tests/wpt/tests/media-playback-quality/WEB_FEATURES.yml b/tests/wpt/tests/media-playback-quality/WEB_FEATURES.yml
new file mode 100644
index 00000000000..8dab5c01520
--- /dev/null
+++ b/tests/wpt/tests/media-playback-quality/WEB_FEATURES.yml
@@ -0,0 +1,3 @@
+features:
+- name: media-playback-quality
+ files: "**"
diff --git a/tests/wpt/tests/paint-timing/paint-timing-mixin-to-json.html b/tests/wpt/tests/paint-timing/paint-timing-mixin-to-json.html
new file mode 100644
index 00000000000..833a04f0681
--- /dev/null
+++ b/tests/wpt/tests/paint-timing/paint-timing-mixin-to-json.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<head>
+<title>Performance Paint Timing: Check that paintTime/presentationTime are serialized properly with toJSON</title>
+</head>
+<body>
+<script src="resources/utils.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+ setup({"hide_test_state": true});
+ promise_test(async t => {
+ assert_implements(window.PerformancePaintTiming, "Paint Timing isn't supported.");
+ assert_implements("paintTime" in window.PerformancePaintTiming.prototype, "Paint Timing doesn't expose `paintTime`");
+ await new Promise(r => window.addEventListener('load', r));
+ await assertNoFirstContentfulPaint(t);
+ const img = document.createElement('img');
+ img.src = 'resources/circles.png';
+ document.body.append(img);
+ const reference_time = performance.now();
+ const performance_entry_promise = new Promise(resolve => {
+ new PerformanceObserver(entries => {
+ const [entry] = entries.getEntriesByName("first-contentful-paint");
+ if (entry)
+ resolve(entry);
+ }).observe({type: "paint"});
+ });
+ const entry = await performance_entry_promise;
+ assert_greater_than(entry.paintTime, reference_time);
+ if ("presentationTime" in entry && entry.presentationTime !== null) {
+ assert_greater_than(entry.presentationTime, entry.paintTime);
+ assert_equals(entry.presentationTime, entry.startTime);
+ } else {
+ assert_equals(entry.paintTime, entry.startTime);
+ }
+
+ const json = entry.toJSON();
+ assert_equals(typeof json, 'object');
+ // Check that basic PerformanceEntry attributes are serialized.
+ assert_equals(json.name, entry.name,
+ 'PerformanceEventTiming "name" attribute does not match its toJSON value');
+ // Check that the PaintTimingMixin attributes are serialized.
+ assert_equals(json.paintTime, entry.paintTime,
+ 'PerformanceEventTiming "paintTime" attribute does not match its toJSON value');
+ assert_equals(json.presentationTime, entry.presentationTime,
+ 'PerformanceEventTiming "presentationTime" attribute does not match its toJSON value');
+ if ("presentationTime" in entry && entry.presentationTime !== null) {
+ assert_greater_than(json.presentationTime, json.paintTime);
+ assert_equals(json.presentationTime, json.startTime);
+ } else {
+ assert_equals(json.paintTime, json.startTime);
+ }
+
+}, "Paint timing entries should serialize paintTime and presentationTime with toJSON");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/tests/pointerevents/pointerevent_lostpointercapture_remove_setcapture_node.html b/tests/wpt/tests/pointerevents/pointerevent_lostpointercapture_remove_setcapture_node.html
index 4b372d04bdf..8da1b7d28c4 100644
--- a/tests/wpt/tests/pointerevents/pointerevent_lostpointercapture_remove_setcapture_node.html
+++ b/tests/wpt/tests/pointerevents/pointerevent_lostpointercapture_remove_setcapture_node.html
@@ -51,9 +51,7 @@
nextSibling.parentNode.insertBefore(target1, nextSibling);
});
- let finishPromise = Promise.any([
- getEvent('pointerup', document.body, test),
- getEvent('pointerup', target1, test)]);
+ let finishPromise = getEvent('pointerup', window, test);
getEvent('pointerdown', captureButton, test).then((event) => {
target0.setPointerCapture(event.pointerId);
@@ -89,7 +87,8 @@
// Captured by target1, losing capture on target0 which removes target1.
"lostpointercapture@target0", "pointerout@target0", "pointerleave@target0",
// Uncaptured pointer re-enters button and is lifted.
- "pointerover@button", "pointerenter@button", "pointermove@button", "pointerup@button"
+ // However, this is not a real pointer move, so, `pointermove` shouldn't be fired.
+ "pointerover@button", "pointerenter@button", "pointerup@button"
].join(", "));
}, "setPointerCapture target removed by lostpointercapture");
</script>
diff --git a/tests/wpt/tests/pointerevents/pointerevent_pointer_boundary_events_after_removing_last_over_element.html b/tests/wpt/tests/pointerevents/pointerevent_pointer_boundary_events_after_removing_last_over_element.html
index 869e65ee863..b54caed0450 100644
--- a/tests/wpt/tests/pointerevents/pointerevent_pointer_boundary_events_after_removing_last_over_element.html
+++ b/tests/wpt/tests/pointerevents/pointerevent_pointer_boundary_events_after_removing_last_over_element.html
@@ -79,10 +79,12 @@ addEventListener("load", () => {
// initialization, but it's out of scope of this bug. Therefore, we
// compare only events after `click`.
const expectedEvents = [ // no events should be fired on the child due to disconnected
- { type: "pointerleave", target: div2}, // no pointerout because of first pointer move after the mutation
- { type: "pointerleave", target: div1},
- { type: "pointerover", target: document.body},
- { type: "pointermove", target: document.body},
+ { type: "pointerover", target: div2 }, // no pointerenter because it should've already fired before the `click`
+ { type: "pointerout", target: div2 },
+ { type: "pointerleave", target: div2 },
+ { type: "pointerleave", target: div1 },
+ { type: "pointerover", target: document.body },
+ { type: "pointermove", target: document.body },
];
assert_equals(
stringifyEvents(eventsAfterClick(events)),
@@ -131,7 +133,9 @@ addEventListener("load", () => {
// initialization, but it's out of scope of this bug. Therefore, we
// compare only events after `click`.
const expectedEvents = [ // no events should be fired on rootElementInShadow due to disconnected
- { type: "pointerleave", target: host}, // no pointerout because of first pointer move after the mutation
+ { type: "pointerover", target: host }, // no pointerenter because it should've already fired before the click
+ { type: "pointerout", target: host },
+ { type: "pointerleave", target: host},
{ type: "pointerleave", target: hostContainer},
{ type: "pointerover", target: document.body},
{ type: "pointermove", target: document.body},
diff --git a/tests/wpt/tests/pointerevents/pointerevent_pointerout_no_pointer_movement.html b/tests/wpt/tests/pointerevents/pointerevent_pointerout_no_pointer_movement.html
index 1af16659326..8349c9b7d60 100644
--- a/tests/wpt/tests/pointerevents/pointerevent_pointerout_no_pointer_movement.html
+++ b/tests/wpt/tests/pointerevents/pointerevent_pointerout_no_pointer_movement.html
@@ -24,6 +24,10 @@
z-index: 1000;
display: none;
}
+
+ #log {
+ display: none; /* Required to run this test alone */
+ }
</style>
<div id="target"></div>
<div id="overlay"></div>
@@ -44,19 +48,23 @@
promise_test(async t => {
await test_driver.click(target);
+ num_pointermoves = 0;
let pointerout_promise = getEvent("pointerout", target);
overlay.style.display = "block";
await pointerout_promise;
+ assert_equals(num_pointermoves, 0, "no pointermove events are expected");
+ }, "Layout change under a stationary pointer (a new element appears) fires boundary events and no pointermove event");
+
+ promise_test(async t => {
+ await test_driver.click(overlay);
+
+ num_pointermoves = 0;
let pointerover_promise = getEvent("pointerover", target);
overlay.style.display = "none";
- await waitForAnimationFrames(2);
- // Why does Chrome time out at the next line w/o the redundant wait above?
- // Does chrome require something to request a main frame in order to detect
- // the new pointer target after the style update to generate the event?
- // https://crbug.com/413595088
await pointerover_promise;
-
assert_equals(num_pointermoves, 0, "no pointermove events are expected");
- }, "Layout change under a stationary pointer fires boundary events and no pointermove event");
+
+ document.querySelector("style").remove(); // Show the test log if running alone.
+ }, "Layout change under a stationary pointer (the element disappears) fires boundary events and no pointermove event");
</script>
diff --git a/tests/wpt/tests/preload/preload-referrer-policy-subresource-header.tentative.html b/tests/wpt/tests/preload/preload-referrer-policy-subresource-header.tentative.html
new file mode 100644
index 00000000000..65f5afe2374
--- /dev/null
+++ b/tests/wpt/tests/preload/preload-referrer-policy-subresource-header.tentative.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<meta name=variant content="?isCrossOriginPreload=true&isCrossOriginResource=true">
+<meta name=variant content="?isCrossOriginPreload=true&isCrossOriginResource=false">
+<meta name=variant content="?isCrossOriginPreload=false&isCrossOriginResource=true">
+<meta name=variant content="?isCrossOriginPreload=false&isCrossOriginResource=false">
+<title>The referrerpolicy attribute on Link header should be ignored for subresources</title>
+<meta name="timeout" content="long">
+<script src="resources/dummy.js?link-header-preload2"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="/common/utils.js"></script>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/preload/resources/preload_helper.js"></script>
+<body>
+ <p>The referrerpolicy attribute on Link header should be ignored for subresources
+ to prevent cross-origin referrer leakage</p>
+<script>
+window.referrers = {};
+const {REMOTE_ORIGIN} = get_host_info();
+async function loader(t, {preloadPolicy, resourcePolicy, isCrossOriginResource, hrefUrl, hrefParams}) {
+ const img = document.createElement('img');
+ const params = new URLSearchParams();
+ params.set('href', `${hrefUrl}?${hrefParams.toString()}`);
+ if (preloadPolicy === '')
+ params.set('preload-policy', '');
+ else
+ params.set('preload-policy', `referrerpolicy=${preloadPolicy}`);
+ params.set('resource-name', 'green.png');
+ img.src = `${isCrossOriginResource ? REMOTE_ORIGIN : location.origin}/preload/resources/link-header-referrer-policy.py?${params.toString()}`;
+ img.referrerPolicy = resourcePolicy;
+ const preloaded = new Promise(resolve => img.addEventListener('load', resolve));
+ t.add_cleanup(() => img.remove());
+ document.body.appendChild(img);
+ await preloaded;
+ hrefParams.set('operation', 'take');
+ const take_href = `${hrefUrl}?${hrefParams.toString()}`;
+ let actualReferrer;
+ for (let i = 0; i < 10; ++i) {
+ actualReferrer = await fetch(take_href).then(res => res.text());
+ if (actualReferrer === '') {
+ // Preload request has not yet been received. Retry after timeout.
+ await new Promise(resolve => t.step_timeout(resolve, 100));
+ } else {
+ break;
+ }
+ }
+ return {actualReferrer, unsafe: img.src};
+};
+
+function test_referrer_policy(preloadPolicy, resourcePolicy, isCrossOriginPreload, isCrossOriginResource) {
+ promise_test(async t => {
+ const id = token();
+ const hrefUrl = `${isCrossOriginPreload ? REMOTE_ORIGIN : location.origin}/preload/resources/stash-referrer.py`;
+ const hrefParams = new URLSearchParams();
+ hrefParams.set('key', id);
+ hrefParams.set('operation', 'put');
+ const {actualReferrer, unsafe} = await loader(t, {preloadPolicy, resourcePolicy, isCrossOriginResource, hrefUrl, hrefParams})
+ assert_equals(actualReferrer, 'NO-REFERER');
+ }, `referrer policy (${preloadPolicy} -> ${resourcePolicy}, ${isCrossOriginPreload ? 'cross-origin' : 'same-origin'}, ${isCrossOriginResource ? 'cross-origin' : 'same-origin'})`)
+}
+const policies = [
+"",
+"no-referrer",
+"same-origin",
+"origin",
+"origin-when-cross-origin",
+"strict-origin-when-cross-origin",
+"unsafe-url"]
+
+const params = new URLSearchParams(location.search);
+const isCrossOriginPreload = params.get('isCrossOriginPreload') === 'true';
+const isCrossOriginResource = params.get('isCrossOriginResource') === 'true';
+for (const preloadPolicy of policies) {
+ for (const resourcePolicy of policies) {
+ test_referrer_policy(
+ preloadPolicy,
+ resourcePolicy,
+ isCrossOriginPreload,
+ isCrossOriginResource);
+ }
+}
+
+</script>
+</body>
diff --git a/tests/wpt/tests/preload/preload-referrer-policy.html b/tests/wpt/tests/preload/preload-referrer-policy.html
index 0a4fbb0b4a1..a33d1b664e3 100644
--- a/tests/wpt/tests/preload/preload-referrer-policy.html
+++ b/tests/wpt/tests/preload/preload-referrer-policy.html
@@ -24,6 +24,7 @@ const loaders = {
params.set('preload-policy', '');
else
params.set('preload-policy', `referrerpolicy=${preloadPolicy}`);
+ params.set('resource-name', 'link-header-referrer-policy.html');
iframe.src = `resources/link-header-referrer-policy.py?${params.toString()}`;
t.add_cleanup(() => iframe.remove());
const done = new Promise(resolve => {
diff --git a/tests/wpt/tests/preload/resources/link-header-referrer-policy.py b/tests/wpt/tests/preload/resources/link-header-referrer-policy.py
index 984518d364d..d3c659b1135 100644
--- a/tests/wpt/tests/preload/resources/link-header-referrer-policy.py
+++ b/tests/wpt/tests/preload/resources/link-header-referrer-policy.py
@@ -3,9 +3,9 @@ def main(request, response):
(request.GET.first(b"href", b""),
request.GET.first(b"preload-policy", b"")))]
body = ""
- body_name_list = __file__.split(".")[:-1]
- body_name_list.append("html")
- filename = ".".join(body_name_list)
+ body_name_list = __file__.split("/")[:-1]
+ body_name_list.append(request.GET.first(b"resource-name", b"").decode("utf-8"))
+ filename = "/".join(body_name_list)
with open(filename, 'r+b') as f:
body = f.readlines()
return (200, response_headers, body)
diff --git a/tests/wpt/tests/preload/resources/stash-referrer.py b/tests/wpt/tests/preload/resources/stash-referrer.py
new file mode 100644
index 00000000000..db498f35507
--- /dev/null
+++ b/tests/wpt/tests/preload/resources/stash-referrer.py
@@ -0,0 +1,18 @@
+from wptserve.utils import isomorphic_decode
+
+def main(request, response):
+ response.headers.set(b'Access-Control-Allow-Origin', b'*')
+
+ # We assume this is a string representing a UUID
+ key = request.GET.first(b'key')
+ operation = request.GET.first(b'operation')
+
+ if operation == b'put':
+ referer = request.headers.get(b'referer') or 'NO-REFERER'
+ request.server.stash.put(key, referer)
+ return "Added value to stash"
+ elif operation == b'take':
+ value = request.server.stash.take(key)
+ return value or ''
+ else:
+ assert False
diff --git a/tests/wpt/tests/resize-observer/svg.html b/tests/wpt/tests/resize-observer/svg.html
index 6511afc8b00..60f24e32e04 100644
--- a/tests/wpt/tests/resize-observer/svg.html
+++ b/tests/wpt/tests/resize-observer/svg.html
@@ -1,4 +1,5 @@
<!doctype html>
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="./resources/resizeTestHelper.js"></script>
@@ -596,7 +597,8 @@ test(_ => {
guard = async_test('guard');
}, "ResizeObserver implemented")
-test0()
+document.fonts.ready
+ .then(() => { return test0(); })
.then(() => { return test1(); })
.then(() => { return test2(); })
.then(() => { return test3(); })
diff --git a/tests/wpt/tests/resources/chromium/webxr-test.js b/tests/wpt/tests/resources/chromium/webxr-test.js
index ce2503b1bbc..ece15d9fbec 100644
--- a/tests/wpt/tests/resources/chromium/webxr-test.js
+++ b/tests/wpt/tests/resources/chromium/webxr-test.js
@@ -355,6 +355,23 @@ class MockRuntime {
"world-space": vrMojom.XRInteractionMode.kWorldSpace,
};
+ static _depthTypeToMojoMap = {
+ "raw": xrSessionMojom.XRDepthType.kRawDepth,
+ "smooth": xrSessionMojom.XRDepthType.kSmoothDepth,
+ };
+
+ static _depthUsageToMojoMap = {
+ "cpu-optimized": xrSessionMojom.XRDepthUsage.kCPUOptimized,
+ "gpu-optimized": xrSessionMojom.XRDepthUsage.kGPUOptimized,
+ };
+
+ static _depthDataFormatToMojoMap = {
+ "luminance-alpha": xrSessionMojom.XRDepthDataFormat.kLuminanceAlpha,
+ "float32": xrSessionMojom.XRDepthDataFormat.kFloat32,
+ "unsigned-short": xrSessionMojom.XRDepthDataFormat.kUnsignedShort,
+ };
+
+
constructor(fakeDeviceInit, service) {
this.sessionClient_ = null;
this.presentation_provider_ = new MockXRPresentationProvider();
@@ -439,6 +456,8 @@ class MockRuntime {
this.setViews(fakeDeviceInit.views, fakeDeviceInit.secondaryViews);
+ this._setDepthSupport(fakeDeviceInit.depthSupport || {});
+
// Need to support webVR which doesn't have a notion of features
this._setFeatures(fakeDeviceInit.supportedFeatures || []);
}
@@ -658,6 +677,32 @@ class MockRuntime {
}
// WebXR Test API depth Sensing Extensions
+ _setDepthSupport(depthSupport) {
+ this.depthSupport_ = {};
+
+ this.depthSupport_.depthTypes = [];
+ for (const type of (depthSupport.depthTypes || [])) {
+ this.depthSupport_.depthTypes.push(MockRuntime._depthTypeToMojoMap[type]);
+ }
+
+ this.depthSupport_.depthFormats = [];
+ for (const format of (depthSupport.depthFormats || [])) {
+ this.depthSupport_.depthFormats.push(MockRuntime._depthDataFormatToMojoMap[format]);
+ }
+
+ this.depthSupport_.depthUsages = [];
+ for (const usage of (depthSupport.depthUsages || [])) {
+ // Because chrome doesn't support gpu-optimized for any devices at present
+ // avoid "false positive" WPTs by indicating that we don't support
+ // gpu-optimized.
+ if (usage === "gpu-optimized") {
+ continue;
+ }
+
+ this.depthSupport_.depthUsages.push(MockRuntime._depthUsageToMojoMap[usage]);
+ }
+ }
+
setDepthSensingData(depthSensingData) {
for(const key of ["depthData", "normDepthBufferFromNormView", "rawValueToMeters", "width", "height"]) {
if(!(key in depthSensingData)) {
@@ -789,6 +834,26 @@ class MockRuntime {
}];
}
+ _getFovFromProjectionMatrix(projectionMatrix) {
+ const m = projectionMatrix;
+
+ function toDegrees(tan) {
+ return Math.atan(tan) * 180 / Math.PI;
+ }
+
+ const leftTan = (1 - m[8]) / m[0];
+ const rightTan = (1 + m[8]) / m[0];
+ const upTan = (1 + m[9]) / m[5];
+ const downTan = (1 - m[9]) / m[5];
+
+ return {
+ upDegrees: toDegrees(upTan),
+ downDegrees: toDegrees(downTan),
+ leftDegrees: toDegrees(leftTan),
+ rightDegrees: toDegrees(rightTan)
+ };
+ }
+
// This function converts between the matrix provided by the WebXR test API
// and the internal data representation.
_getView(fakeXRViewInit, xOffset) {
@@ -802,23 +867,7 @@ class MockRuntime {
rightDegrees: fakeXRViewInit.fieldOfView.rightDegrees
};
} else {
- const m = fakeXRViewInit.projectionMatrix;
-
- function toDegrees(tan) {
- return Math.atan(tan) * 180 / Math.PI;
- }
-
- const leftTan = (1 - m[8]) / m[0];
- const rightTan = (1 + m[8]) / m[0];
- const upTan = (1 + m[9]) / m[5];
- const downTan = (1 - m[9]) / m[5];
-
- fov = {
- upDegrees: toDegrees(upTan),
- downDegrees: toDegrees(downTan),
- leftDegrees: toDegrees(leftTan),
- rightDegrees: toDegrees(rightTan)
- };
+ fov = this._getFovFromProjectionMatrix(fakeXRViewInit.projectionMatrix);
}
let viewEye = vrMojom.XREye.kNone;
@@ -841,7 +890,10 @@ class MockRuntime {
eye: viewEye,
geometry: {
fieldOfView: fov,
- mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform(fakeXRViewInit.viewOffset))
+ mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform(fakeXRViewInit.viewOffset)),
+ // Mojo will ignore extra members, we stash the raw projection matrix
+ // here for ease of use with the depth extensions.
+ projectionMatrix: fakeXRViewInit.projectionMatrix,
},
viewport: {
x: xOffset,
@@ -1199,7 +1251,7 @@ class MockRuntime {
const enabled_features = [];
for (let i = 0; i < sessionOptions.requiredFeatures.length; i++) {
const feature = sessionOptions.requiredFeatures[i];
- if (this._runtimeSupportsFeature(feature, sessionOptions)) {
+ if (this._maybeEnableFeature(feature, sessionOptions)) {
enabled_features.push(feature);
} else {
return Promise.resolve({session: null});
@@ -1208,18 +1260,13 @@ class MockRuntime {
for (let i =0; i < sessionOptions.optionalFeatures.length; i++) {
const feature = sessionOptions.optionalFeatures[i];
- if (this._runtimeSupportsFeature(feature, sessionOptions)) {
+ if (this._maybeEnableFeature(feature, sessionOptions)) {
enabled_features.push(feature);
}
}
this.enabledFeatures_ = enabled_features;
- let selectedDepthType;
- if (sessionOptions.depthOptions && sessionOptions.depthOptions.depthTypeRequest.length != 0) {
- selectedDepthType = sessionOptions.depthOptions.depthTypeRequest[0];
- }
-
return Promise.resolve({
session: {
submitFrameSink: submit_frame_sink,
@@ -1229,17 +1276,8 @@ class MockRuntime {
deviceConfig: {
defaultFramebufferScale: this.defaultFramebufferScale_,
supportsViewportScaling: true,
- depthConfiguration: enabled_features.includes(
- xrSessionMojom.XRSessionFeature.DEPTH) ?
- {
- // TODO(https://crbug.com/409806803): Update support via
- // a webxr-test-api method.
- depthUsage: xrSessionMojom.XRDepthUsage.kCPUOptimized,
- depthDataFormat:
- xrSessionMojom.XRDepthDataFormat.kLuminanceAlpha,
- depthType: selectedDepthType,
- } :
- null,
+ // If depth was not enabled above, this should be null.
+ depthConfiguration: this.depthConfiguration_,
views: this._getDefaultViews(),
},
enviromentBlendMode: this.enviromentBlendMode_,
@@ -1259,22 +1297,67 @@ class MockRuntime {
});
}
- _runtimeSupportsFeature(feature, options) {
+ _tryGetDepthConfig(options) {
+ if (!options.depthOptions) {
+ return null;
+ }
+
+ // At present, there are only two depth usages, and we only support CPU.
+ if (options.depthOptions.usagePreferences.length !== 0 &&
+ !options.depthOptions.usagePreferences.includes(
+ xrSessionMojom.XRDepthUsage.kCPUOptimized)) {
+ return null;
+ }
+ const selectedUsage = xrSessionMojom.XRDepthUsage.kCPUOptimized;
+
+ let selectedFormat = null;
+ if (options.depthOptions.dataFormatPreferences.length === 0) {
+ selectedFormat = this.depthSupport_.depthFormats.length === 0 ?
+ xrSessionMojom.XRDepthDataFormat.kLuminanceAlpha : this.depthSupport_.depthFormats[0];
+ } else {
+ for (const dataFormatRequest of options.depthOptions.dataFormatPreferences) {
+ if (this.depthSupport_.depthFormats.length === 0 ||
+ this.depthSupport_.depthFormats.includes(dataFormatRequest)) {
+ selectedFormat = dataFormatRequest;
+ break;
+ }
+ }
+ }
+
+ if (selectedFormat === null) {
+ return null;
+ }
+
+ // Default to our first supported depth type. If it's empty (meaning all),
+ // then just default to raw.
+ let selectedDepthType = this.depthSupport_.depthTypes.length === 0 ?
+ xrSessionMojom.XRDepthType.kRawDepth : this.depthSupport_.depthTypes[0];
+ // Try to set the depthType to the earliest requested one if it's supported.
+ for (const depthTypeRequest of options.depthOptions.depthTypeRequest) {
+ if (this.depthSupport_.depthTypes.length === 0 ||
+ this.depthSupport_.depthTypes.includes(depthTypeRequest)) {
+ selectedDepthType = depthTypeRequest;
+ break;
+ }
+ }
+
+ return {
+ depthUsage: selectedUsage,
+ depthDataFormat: selectedFormat,
+ depthType: selectedDepthType,
+ };
+ }
+
+ _maybeEnableFeature(feature, options) {
if (this.supportedFeatures_.indexOf(feature) === -1) {
return false;
}
switch (feature) {
case xrSessionMojom.XRSessionFeature.DEPTH:
- // This matches what Chrome can currently support.
- // TODO(https://crbug.com/409806803): Add a webxr-test-api for this.
- return options.depthOptions &&
- (options.depthOptions.usagePreferences.length == 0 ||
- options.depthOptions.usagePreferences.includes(
- xrSessionMojom.XRDepthUsage.kCPUOptimized)) &&
- (options.depthOptions.dataFormatPreferences.length == 0 ||
- options.depthOptions.dataFormatPreferences.includes(
- xrSessionMojom.XRDepthDataFormat.kLuminanceAlpha));
+ this.depthConfiguration_ = this._tryGetDepthConfig(options);
+ this.matchDepthView_ = options.depthOptions && options.depthOptions.matchDepthView;
+ return this.depthConfiguration_ != null;
default:
return true;
}
@@ -1334,6 +1417,179 @@ class MockRuntime {
// Private functions - depth sensing implementation:
+ /**
+ * Helper to get a TypedArray view for a given depth format.
+ * @param {ArrayBuffer} buffer The ArrayBuffer.
+ * @param {xrSessionMojom.XRDepthDataFormat} format The depth format.
+ * @return {Uint16Array|Float32Array} A typed array view.
+ */
+ static _getTypedArrayForFormat(buffer, format) {
+ if (format === xrSessionMojom.XRDepthDataFormat.kFloat32) {
+ return new Float32Array(buffer);
+ } else { // "luminance-alpha" or "unsigned-short"
+ return new Uint16Array(buffer);
+ }
+ }
+
+ /**
+ * Helper to get a TypedArray for the given depth format.
+ * @param {xrSessionMojom.XRDepthDataFormat} format - The Depth format
+ * @param {number} size - The size of the array to be created.
+ * @return {Uint16Array|Float32Array} A typed array view.
+ */
+ static _getEmptyTypedArrayForFormat(format, size) {
+ if (format === xrSessionMojom.XRDepthDataFormat.kFloat32) {
+ return new Float32Array(size).fill(0.0);
+ } else { // "luminance-alpha" or "unsigned-short" (Uint16)
+ return new Uint16Array(size).fill(0);
+ }
+ }
+
+ /**
+ * Reprojects depth data from a source view to a target view.
+ * The returned array will be the same width/height, but will be returned as a
+ * Uint8Array of the targetFormat (essentially a byte array that can be sent
+ * across mojo), so the overall returned size may be different.
+ *
+ * @param {ArrayBuffer} sourceDepthArrayBuffer - Raw depth data for the source.
+ * @param {number} width - Width of the depth data.
+ * @param {number} height - Height of the depth data.
+ * @param {xrSessionMojom.XRDepthDataFormat} sourceFormatEnum - Format of the source depth data.
+ * @param {Float32Array} sourceClipFromSourceView - Projection matrix for the source view.
+ * @param {Float32Array} mojoFromSourceView- Matrix of the transform for the source view.
+ * @param {xrSessionMojom.XRDepthDataFormat} targetFormatEnum - Format of the target depth data.
+ * @param {Float32Array} targetClipFromTargetView - Projection matrix for the target view.
+ * @param {Float32Array} mojoFromTargetView - Matrix of the transform for the target view.
+ * @return {Uint8Array | null} The reprojected depth data as an Uint8Array, or null on matrix error.
+ */
+ static copyDepthData(
+ sourceDepthArrayBuffer, width, height, sourceFormatEnum,
+ sourceClipFromSourceView, mojoFromSourceView,
+ targetFormatEnum,
+ targetClipFromTargetView, mojoFromTargetView) {
+
+ const targetViewFromTargetClip = XRMathHelper.inverse(targetClipFromTargetView);
+ const sourceViewFromMojo = XRMathHelper.inverse(mojoFromSourceView);
+
+ // Check if any matrices were not supplied or matrix inversions failed.
+ if (!targetViewFromTargetClip || !sourceViewFromMojo || !mojoFromTargetView) {
+ return null;
+ }
+
+ // Build the full transformation from Target Clip space to Source Clip space.
+ const mojoFromTargetClip = XRMathHelper.mul4x4(mojoFromTargetView, targetViewFromTargetClip);
+ if (!mojoFromTargetClip) return null;
+
+ const sourceViewFromTargetClip = XRMathHelper.mul4x4(sourceViewFromMojo, mojoFromTargetClip);
+ if (!sourceViewFromTargetClip) return null;
+
+ const sourceClipFromTargetClip = XRMathHelper.mul4x4(sourceClipFromSourceView, sourceViewFromTargetClip);
+ if (!sourceClipFromTargetClip) return null;
+
+ const sourceTypedArray = MockRuntime._getTypedArrayForFormat(sourceDepthArrayBuffer, sourceFormatEnum);
+ let internalTargetDepthTypedArray = MockRuntime._getEmptyTypedArrayForFormat(targetFormatEnum, width * height);
+
+ // Iterate over target pixels (Backward Mapping)
+ for (let ty = 0; ty < height; ++ty) {
+ for (let tx = 0; tx < width; ++tx) {
+ // Convert target pixel (tx, ty) to target NDC coordinates
+ const u_tgt_pixel = (tx + 0.5) / width; // u in [0, 1], Y-down from top-left
+ const v_tgt_pixel = (ty + 0.5) / height; // v in [0, 1], Y-down from top-left
+
+ const ndc_x_tgt = u_tgt_pixel * 2.0 - 1.0; // NDC X in [-1, 1]
+ const ndc_y_tgt = 1.0 - v_tgt_pixel * 2.0; // NDC Y in [-1, 1], Y-up
+
+ // Define a point on the near plane in target clip space
+ const P_clip_tgt = { x: ndc_x_tgt, y: ndc_y_tgt, z: -1.0, w: 1.0 };
+
+ // Transform this point to source clip space
+ const P_clip_src = XRMathHelper.transform_by_matrix(sourceClipFromTargetClip, P_clip_tgt);
+
+ // Homogenize to get source NDC coordinates
+ if (Math.abs(P_clip_src.w) < XRMathHelper.EPSILON) {
+ internalTargetDepthTypedArray[ty * width + tx] = 0; // Cannot project
+ continue;
+ }
+ const ndc_x_src = P_clip_src.x / P_clip_src.w;
+ const ndc_y_src = P_clip_src.y / P_clip_src.w;
+
+ // Convert source NDC to source pixel coordinates
+ const u_src_pixel = (ndc_x_src + 1.0) / 2.0;
+ const v_src_pixel = (1.0 - ndc_y_src) / 2.0; // Convert source NDC Y-up to pixel Y-down
+
+ const sx = Math.floor(u_src_pixel * width);
+ const sy = Math.floor(v_src_pixel * height);
+
+ let target_raw_depth = 0; // Default to 0 (no data)
+
+ // Check if the calculated source pixel is within bounds
+ if (sx >= 0 && sx < width && sy >= 0 && sy < height) {
+ const source_raw_value = sourceTypedArray[sy * width + sx];
+
+ let isValidSourceDepth = false;
+ if (sourceFormatEnum === xrSessionMojom.XRDepthDataFormat.kFloat32) {
+ if (source_raw_value > 0 && isFinite(source_raw_value)) {
+ isValidSourceDepth = true;
+ }
+ } else { // Uint16 source
+ if (source_raw_value > 0) {
+ isValidSourceDepth = true;
+ }
+ }
+
+ if (isValidSourceDepth) {
+ if (targetFormatEnum === xrSessionMojom.XRDepthDataFormat.kFloat32) {
+ target_raw_depth = source_raw_value;
+ } else {
+ // Clamp to the valid range for Uint16
+ target_raw_depth = Math.max(0, Math.min(0xFFFF, Math.round(source_raw_value)));
+ }
+ }
+ }
+
+ // If not in bounds or source depth invalid, target_raw_depth remains 0.
+ internalTargetDepthTypedArray[ty * width + tx] = target_raw_depth;
+ }
+ }
+
+ return new Uint8Array(internalTargetDepthTypedArray.buffer);
+ }
+
+ _getDepthPixelData(depthGeometry) {
+ if (!this.matchDepthView_ || !depthGeometry) {
+ return { bytes: this.depthSensingData_.depthData };
+ }
+
+ const sourceProjectionMatrix = depthGeometry.projectionMatrix;
+ const sourceViewOffset = depthGeometry.mojoFromView;
+ if (!sourceProjectionMatrix || !sourceViewOffset) {
+ return { bytes: this.depthSensingData_.depthData };
+ }
+
+ if (this.primaryViews_.length === 0) {
+ return { bytes: this.depthSensingData_.depthData };
+ }
+
+ const targetView = this.primaryViews_[0];
+ const targetProjectionMatrix = targetView.geometry.projectionMatrix;
+ const targetViewOffset = targetView.geometry.mojoFromView;
+ if (!targetProjectionMatrix || !targetViewOffset) {
+ return { bytes: this.depthSensingData_.depthData };
+ }
+
+ return { bytes: MockRuntime.copyDepthData(
+ this.depthSensingData_.depthData,
+ this.depthSensingData_.width,
+ this.depthSensingData_.height,
+ MockRuntime._depthDataFormatToMojoMap[this.depthSensingData_.depthFormat],
+ sourceProjectionMatrix,
+ sourceViewOffset.matrix,
+ this.depthConfiguration_.depthDataFormat,
+ targetProjectionMatrix,
+ targetViewOffset.matrix
+ )};
+ }
+
// Modifies passed in frameData to add anchor information.
_calculateDepthInformation(frameData) {
if (!this.supportedModes_.includes(xrSessionMojom.XRSessionMode.kImmersiveAr)) {
@@ -1353,13 +1609,29 @@ class MockRuntime {
} else if(!this.depthSensingDataDirty_) {
newDepthData = { dataStillValid: {}};
} else {
+ let viewGeometry = null;
+ const projectionMatrix = this.depthSensingData_.projectionMatrix;
+ const viewOffset = this.depthSensingData_.viewOffset;
+
+ if (projectionMatrix && viewOffset) {
+ const fov = this._getFovFromProjectionMatrix(projectionMatrix);
+
+ viewGeometry = {
+ fieldOfView: fov,
+ mojoFromView: this._getMojoFromViewerWithOffset(composeGFXTransform(viewOffset)),
+ // Convenience member for `_getDepthPixelData`
+ projectionMatrix: projectionMatrix
+ };
+ }
+
newDepthData = {
updatedDepthData: {
timeDelta: frameData.timeDelta,
normTextureFromNormView: this.depthSensingData_.normDepthBufferFromNormView,
rawValueToMeters: this.depthSensingData_.rawValueToMeters,
size: { width: this.depthSensingData_.width, height: this.depthSensingData_.height },
- pixelData: { bytes: this.depthSensingData_.depthData }
+ pixelData: this._getDepthPixelData(viewGeometry),
+ viewGeometry: this.matchDepthView_ ? null : viewGeometry
}
};
}
diff --git a/tests/wpt/tests/sanitizer-api/sanitizer-parseHTML.tentative.html b/tests/wpt/tests/sanitizer-api/sanitizer-parseHTML.tentative.html
index c4a31e2eb03..290c138a358 100644
--- a/tests/wpt/tests/sanitizer-api/sanitizer-parseHTML.tentative.html
+++ b/tests/wpt/tests/sanitizer-api/sanitizer-parseHTML.tentative.html
@@ -58,6 +58,29 @@ text
| <div>
| "hello"
+#data
+<div data-xyz="1" id="2" title="3">
+#config
+{ "attributes": ["id"] }
+#document
+| <html>
+| <head>
+| <body>
+| <div>
+| id="2"
+
+#data
+<div>a<!-- xx -->b
+#config
+{ }
+#document
+| <html>
+| <head>
+| <body>
+| <div>
+| "a"
+| "b"
+
</script>
<script id="unsafe" type="html5lib-testcases">
#data
@@ -80,6 +103,30 @@ text
| <div>
| "hello"
+#data
+<div data-xyz="1" id="2" title="3">
+#config
+{ "attributes": ["id"] }
+#document
+| <html>
+| <head>
+| <body>
+| <div>
+| data-xyz="1"
+| id="2"
+
+#data
+<div>a<!-- xx -->b
+#config
+{ }
+#document
+| <html>
+| <head>
+| <body>
+| <div>
+| "a"
+| <!-- xx -->
+| "b"
</script>
<script id="document" type="html5lib-testcases">
#data
@@ -96,18 +143,18 @@ text
<script>
function test_safe(testcase, index) {
let config = undefined;
- try {
+ if (testcase.config) {
config = { sanitizer: JSON.parse(testcase.config) };
- } catch { /* config remains undefined */ }
+ }
test(_ => {
assert_testcase(Document.parseHTML(testcase.data, config), testcase);
}, `parseHTML testcase ${index}, "${testcase.data}"`);
}
function test_unsafe(testcase, index) {
let config = undefined;
- try {
+ if (testcase.config) {
config = { sanitizer: JSON.parse(testcase.config) };
- } catch { /* config remains undefined */ }
+ }
test(_ => {
assert_testcase(Document.parseHTMLUnsafe(testcase.data, config), testcase);
}, `parseHTMLUnsafe testcase ${index}, "${testcase.data}"`);
diff --git a/tests/wpt/tests/scheduler/tentative/yield/resources/test-helper.js b/tests/wpt/tests/scheduler/tentative/yield/resources/test-helper.js
index cec0200b65a..26fabe0cd2a 100644
--- a/tests/wpt/tests/scheduler/tentative/yield/resources/test-helper.js
+++ b/tests/wpt/tests/scheduler/tentative/yield/resources/test-helper.js
@@ -38,9 +38,11 @@ function runFocusChangeTest(t, crossOrigin) {
} else {
assert_equals(e.data.status, 'done');
// If the default priority task runs before the background priority
- // continuation, then the scheduling state was used for the continuation.
- const expectedToRun = !crossOrigin;
- assert_equals(expectedToRun, e.data.didRun);
+ // continuation, then the scheduling state was used for the continuation,
+ // which should not be the case for either cross- or same-origin frames.
+ assert_false(
+ e.data.didRun,
+ 'Did not expect the continuation to use inherited signals');
if (count == 1) {
test_driver.send_keys(document.body, "\ue004");
} else {
diff --git a/tests/wpt/tests/scheduler/tentative/yield/yield-inherit-across-promises.any.js b/tests/wpt/tests/scheduler/tentative/yield/yield-inherit-across-promises.any.js
index 8530bd4e104..cf6b7d377a5 100644
--- a/tests/wpt/tests/scheduler/tentative/yield/yield-inherit-across-promises.any.js
+++ b/tests/wpt/tests/scheduler/tentative/yield/yield-inherit-across-promises.any.js
@@ -50,3 +50,76 @@ promise_test(async t => {
await promise_rejects_dom(t, 'AbortError', p);
}, {signal});
}, `yield() inherits abort across promises`);
+
+promise_test(async t => {
+ const ids = [];
+ let {promise: p1, resolve} = Promise.withResolvers();
+ // For promises, the scheduling state is bound to the future microtask when
+ // the promise is awaited or .then() is called on it. This tests that the
+ // right scheduling state is used, i.e. not the "resolve time" state.
+ //
+ // First, create a pending continuation (.then(...)) bound to the current
+ // (null) scheduling state. The continuation calls yield(), which should
+ // inherit the null scheduling state.
+ p1 = p1.then(async () => {
+ await scheduler.yield();
+ ids.push('continuation');
+ });
+ // Next, resolve `p1` in a user-blocking task. The user-blocking scheduling
+ // state should not be propagated to the continuation above.
+ await scheduler.postTask(resolve, {priority: 'user-blocking'});
+ // Finally, to test this, race another user-blocking task with the `p1`
+ // continuation above. The continuation should run after this task, since it
+ // should not inherit the user-blocking priority.
+ const p2 = scheduler.postTask(() => {
+ ids.push('task');
+ }, {priority: 'user-blocking'});
+
+ const result = await Promise.all([p1, p2]);
+ assert_equals(ids.toString(), 'task,continuation');
+}, 'yield() inherits .then() context, not resolve context');
+
+promise_test(async t => {
+ // This tests that non-promise microtasks also inherit scheduling state by
+ // checking that the scheduling state is propagated from queueMicrotask() to
+ // the subsequent microtask.
+ //
+ // First, create a pending continuation (.then(...)) which will be bound to
+ // the current (null) context. The yield() below should have default priority.
+ const ids = [];
+ let {promise: p1, resolve} = Promise.withResolvers();
+ p1 = p1.then(async () => {
+ ids.push('p1-start');
+ await scheduler.yield();
+ ids.push('p1-continuation');
+ });
+
+ // Next, schedule a task which resolves `p1` and then calls queueMicrotask().
+ // This is done to interleave the microtasks in a way that we can ensure
+ // queueMicrotask() actually propagates scheduling state, rather than using
+ // the state set when the postTask() callback starts.
+ //
+ // The yield() below should inherit the user-blocking priority.
+ const p2 = scheduler.postTask(async () => {
+ resolve();
+ queueMicrotask(async () => {
+ ids.push('p2-start');
+ await scheduler.yield();
+ ids.push('p2-continuation');
+ })
+ }, {priority: 'user-blocking'});
+
+ // Finally, schedule another task to race with the contents of the `p2` task
+ // above. Both yield() calls above happen during the `p2` task microtask
+ // checkpoint, so both continuations are scheduled when the `p3` task below
+ // runs. The p2-continuation (user-blocking continuation) should run before
+ // the `p3` task, and the p1-continuation (default prioriy continuation)
+ // should run after.
+ const p3 = scheduler.postTask(() => {
+ ids.push('p3');
+ }, {priority: 'user-blocking'});
+
+ await Promise.all([p1, p2, p3]);
+ assert_equals(
+ ids.toString(), "p1-start,p2-start,p2-continuation,p3,p1-continuation");
+}, 'yield() inherits priority in queueMicrotask()');
diff --git a/tests/wpt/tests/scheduler/tentative/yield/yield-scheduling-state-cleared.any.js b/tests/wpt/tests/scheduler/tentative/yield/yield-scheduling-state-cleared.any.js
new file mode 100644
index 00000000000..8e6d2ee8606
--- /dev/null
+++ b/tests/wpt/tests/scheduler/tentative/yield/yield-scheduling-state-cleared.any.js
@@ -0,0 +1,21 @@
+'use strict';
+
+promise_test(async t => {
+ const ids = [];
+ // The timer task will run after the background task, and the scheduling state
+ // set in the background task should not leak to the timer task.
+ const {promise, resolve} = Promise.withResolvers();
+ scheduler.postTask(async () => {
+ setTimeout(async () => {
+ let task = scheduler.postTask(() => {
+ ids.push('task');
+ }, {priority: 'user-visible'});
+ await scheduler.yield();
+ ids.push('continuation');
+ await task;
+ resolve();
+ });
+ }, {priority: 'background'});
+ await promise;
+ assert_equals(ids.toString(), 'continuation,task');
+}, 'yield() does not leak priority across tasks');
diff --git a/tests/wpt/tests/scheduler/tentative/yield/yield-scripted-subframe-propagation.html b/tests/wpt/tests/scheduler/tentative/yield/yield-scripted-subframe-propagation.html
index d45cf3e7643..42ba3b7f67d 100644
--- a/tests/wpt/tests/scheduler/tentative/yield/yield-scripted-subframe-propagation.html
+++ b/tests/wpt/tests/scheduler/tentative/yield/yield-scripted-subframe-propagation.html
@@ -15,23 +15,45 @@
const iframe = document.createElement('iframe');
iframe.srcdoc = `
<script>
- window.task = async function() {
- await scheduler.yield();
- return "inner";
- }
+ window.task = async function() {
+ await scheduler.yield();
+ return "inner";
+ }
+
+ window.task2 = async function(callback) {
+ Promise.resolve().then(callback);
+ }
</scr`+`ipt>
`;
+
+ window.parentTask = async function() {
+ await scheduler.yield();
+ return "inner";
+ };
+
const p = new Promise(resolve => iframe.onload = resolve);
document.body.appendChild(iframe);
await p;
+ // task1: user-blocking, main frame scheduler, child frame task.
+ // task 1 continuation: child frame yield().
+ // task2: user-blocking, main frame scheduler, main frame task.
+ //
+ // Expected: no inheritance, task1 continuation has default continuation
+ // priority and runs last.
let task1 = scheduler.postTask(
iframe.contentWindow.task, {priority: 'user-blocking'});
let task2 = scheduler.postTask(() => "outer", {priority: 'user-blocking'});
let result = await getResultsInOrder([task1, task2]);
- assert_equals(result.toString(), "inner,outer",
- "Expected inner before outer for iframe task with main frame scheduler");
+ assert_equals(result.toString(), "outer,inner",
+ "Expected outer before inner for iframe task with main frame scheduler");
+ // task1: user-blocking, child frame scheduler, child frame task.
+ // task 1 continuation: child frame yield().
+ // task2: user-blocking, main frame scheduler, main frame task.
+ //
+ // Expected: continuation inherits user-blocking priority and runs before
+ // task2.
task1 = iframe.contentWindow.scheduler.postTask(
iframe.contentWindow.task, {priority: 'user-blocking'});
task2 = scheduler.postTask(() => "outer", {priority: 'user-blocking'});
@@ -39,11 +61,38 @@
assert_equals(result.toString(), "inner,outer",
"Expected inner before outer for iframe task with iframe scheduler");
+ // task1: user-blocking, main frame scheduler, main frame task.
+ // task 1 continuation: child frame yield() called from main frame task.
+ // task2: user-blocking, main frame scheduler, main frame task.
+ //
+ // Expected: no inheritance, task1 continuation has default continuation
+ // priority and runs last.
task1 = scheduler.postTask(
async () => await iframe.contentWindow.task(), {priority: 'user-blocking'});
task2 = scheduler.postTask(() => "outer", {priority: 'user-blocking'});
result = await getResultsInOrder([task1, task2]);
+ assert_equals(result.toString(), "outer,inner",
+ "Expected outer before inner for iframe task called from main frame task");
+
+ // This tests that priority is inherited in the main frame if hopping
+ // through a child frame task.
+ //
+ // task1: user-blocking; main frame scheduler; main frame task, which calls
+ // back into the main frame in a microtask.
+ // task 1 continuation: main frame yield, called from child frame.
+ // task2: user-blocking, main frame scheduler, main frame task.
+ //
+ // Expected: continuation inherits user-blocking priority and runs before
+ // task2.
+ task1 = scheduler.postTask(() => new Promise(resolve => {
+ iframe.contentWindow.task2(async () => {
+ await scheduler.yield();
+ resolve("inner");
+ });
+ }), {priority: 'user-blocking'});
+ task2 = scheduler.postTask(() => "outer", {priority: 'user-blocking'});
+ result = await getResultsInOrder([task1, task2]);
assert_equals(result.toString(), "inner,outer",
- "Expected inner before outer for iframe task called from main frame task");
- }, 'Test scheduler.yield() uses propagated state in same origin frames');
+ "Expected inner before outer for iframe task calling back to main frame task");
+ }, 'Test scheduler.yield() does not use propagated state in same origin frames');
</script>
diff --git a/tests/wpt/tests/scroll-animations/css/timeline-names-ident-function.html b/tests/wpt/tests/scroll-animations/css/timeline-names-ident-function.html
new file mode 100644
index 00000000000..a1305bdc17c
--- /dev/null
+++ b/tests/wpt/tests/scroll-animations/css/timeline-names-ident-function.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<title>Scroll-Driven Animations: The ident() function </title>
+<link rel="help" href="https://drafts.csswg.org/css-values-5/#ident">
+<link rel="help" href="https://drafts.csswg.org/scroll-animations">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<div id=target></div>
+<script>
+ let actual_ident = 'ident("--myident" calc(42 * sign(1em - 1px)))';
+ let expected_ident = '--myident42';
+
+ // https://drafts.csswg.org/css-animations-2/#propdef-animation-timeline
+ test_computed_value('animation-timeline', actual_ident, expected_ident);
+ test_computed_value('animation-timeline', `--tl, scroll(), ${actual_ident}`,
+ `--tl, scroll(), ${expected_ident}`);
+ test_computed_value('animation-timeline', `${actual_ident}, ${actual_ident}`,
+ `${expected_ident}, ${expected_ident}`);
+
+ // https://drafts.csswg.org/scroll-animations/#scroll-timeline-name
+ test_computed_value('scroll-timeline-name', actual_ident, expected_ident);
+ test_computed_value('scroll-timeline-name', `--tl, ${actual_ident}`,
+ `--tl, ${expected_ident}`);
+ test_computed_value('scroll-timeline-name', `${actual_ident}, ${actual_ident}`,
+ `${expected_ident}, ${expected_ident}`);
+
+ // https://drafts.csswg.org/scroll-animations-1/#timeline-scope
+ test_computed_value('timeline-scope', actual_ident, expected_ident);
+ test_computed_value('timeline-scope', `--tl, ${actual_ident}`,
+ `--tl, ${expected_ident}`);
+ test_computed_value('timeline-scope', `${actual_ident}, ${actual_ident}`,
+ `${expected_ident}, ${expected_ident}`);
+
+ // https://drafts.csswg.org/scroll-animations/#view-timeline-name
+ test_computed_value('view-timeline-name', actual_ident, expected_ident);
+ test_computed_value('view-timeline-name', `--tl, ${actual_ident}`,
+ `--tl, ${expected_ident}`);
+ test_computed_value('view-timeline-name', `${actual_ident}, ${actual_ident}`,
+ `${expected_ident}, ${expected_ident}`);
+</script>
diff --git a/tests/wpt/tests/soft-navigation-heuristics/back.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/back.tentative.html
index 349eaf465c4..01dae7baab6 100644
--- a/tests/wpt/tests/soft-navigation-heuristics/back.tentative.html
+++ b/tests/wpt/tests/soft-navigation-heuristics/back.tentative.html
@@ -25,12 +25,11 @@
addTextToDivOnMain();
},
link: link,
- pushState: url=>{history.back()},
+ pushState: async () => {
+ history.back();
+ await waitForUrlToEndWith("foobar.html");
+ },
test: "`history.back() properly works with SoftNavigationHeuristics"});
</script>
</body>
</html>
-
-
-
-
diff --git a/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/racing-soft-navigations.html b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/racing-soft-navigations.html
new file mode 100644
index 00000000000..d485f908134
--- /dev/null
+++ b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/racing-soft-navigations.html
@@ -0,0 +1,77 @@
+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8" />
+ <title>Two soft navigations racing each other.</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/resources/testdriver.js"></script>
+ <script src="/resources/testdriver-vendor.js"></script>
+ <script></script>
+ </head>
+ <body>
+ <div id="slow-soft-navigation">Click here!</div>
+ <div id="fast-soft-navigation">Click here!</div>
+
+ <script>
+ // This soft navigation is slow - it will wait 1s before processing.
+ function slowSoftNavigation(t) {
+ t.step_timeout(() => {
+ const greeting = document.createElement("div");
+ greeting.textContent = "Hello, World.";
+ document.body.appendChild(greeting);
+ history.pushState({}, "", "/slow-soft-navigation");
+ }, 1000);
+ }
+
+ // This soft navigation is fast - it will process immediately.
+ function fastSoftNavigation() {
+ const greeting = document.createElement("div");
+ greeting.textContent = "Hello, World.";
+ document.body.appendChild(greeting);
+ history.pushState({}, "", "/fast-soft-navigation");
+ }
+
+ promise_test(async (t) => {
+ document.getElementById("slow-soft-navigation").addEventListener("click", () => {
+ slowSoftNavigation(t);
+ });
+ document
+ .getElementById("fast-soft-navigation")
+ .addEventListener("click", fastSoftNavigation);
+
+ // Wait for both soft navigations to complete.
+ const promise = new Promise((resolve) => {
+ let entries = [];
+ new PerformanceObserver((list, observer) => {
+ entries.push(...list.getEntries());
+ if (entries.length >= 2) {
+ observer.disconnect();
+ resolve(entries);
+ }
+ }).observe({ type: "soft-navigation" });
+ });
+ // Start both soft navigations in rapid succession.
+ if (test_driver) {
+ test_driver.click(document.getElementById("slow-soft-navigation"));
+ test_driver.click(document.getElementById("fast-soft-navigation"));
+ }
+
+ // Notice that both navigations are detected, with the fast one
+ // arriving first.
+ const entries = await promise;
+ assert_equals(entries.length, 2, "Expected two soft navigation entries");
+ assert_equals(
+ entries[0].name.replace(/.*\//, ""),
+ "fast-soft-navigation",
+ "First entry should be the fast soft navigation.",
+ );
+ assert_equals(
+ entries[1].name.replace(/.*\//, ""),
+ "slow-soft-navigation",
+ "Second entry should be the slow soft navigation.",
+ );
+ }, "Two soft navigations that race each other should be detected correctly.");
+ </script>
+ </body>
+</html>
diff --git a/tests/wpt/tests/soft-navigation-heuristics/disabled.html b/tests/wpt/tests/soft-navigation-heuristics/disabled.html
deleted file mode 100644
index b53c2f70122..00000000000
--- a/tests/wpt/tests/soft-navigation-heuristics/disabled.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<meta charset="utf-8">
-<title>Detect simple soft navigation.</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/testdriver.js"></script>
-<script src="/resources/testdriver-vendor.js"></script>
-<script src="resources/soft-navigation-helper.js"></script>
-</head>
-<body>
- <main id=main>
- <a id=link>Click me!</a>
- </main>
- <script>
- const link = document.getElementById("link");
- testSoftNavigationNotDetected({
- eventHandler: url => {
- addTextToDivOnMain();
- history.pushState({}, '', 'foobar.html');
- },
- link: link,
- eventName: "click",
- eventTarget: link,
- testName: "Test that a soft navigation is not detected when the feature "
- + "is disabled"});
- </script>
-</body>
-</html>
-
diff --git a/tests/wpt/tests/soft-navigation-heuristics/image-lcp-before-detection-second-softnav.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/image-lcp-before-detection-second-softnav.tentative.html
deleted file mode 100644
index 4d26bb92695..00000000000
--- a/tests/wpt/tests/soft-navigation-heuristics/image-lcp-before-detection-second-softnav.tentative.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<meta charset="utf-8">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/testdriver.js"></script>
-<script src="/resources/testdriver-vendor.js"></script>
-<script src="resources/soft-navigation-helper.js"></script>
-</head>
-<body>
- <main id=main>
- <div>
- <a id=link><img src="/images/lcp-256x256.png" id="img"></a>
- </div>
- </main>
- <script>
- const link = document.getElementById("link");
- let first_lcp_painted;
- let second_lcp_painted;
- (async () => {
- await new Promise(r => { first_lcp_painted = r; });
- addImageToMain("lcp-133x106.png", "no_lcp");
- (new PerformanceObserver(second_lcp_painted)).observe({type: "element"});
- })();
- testSoftNavigation({
- pushState: null,
- clicks: 2,
- addContent: async () => {
- // Add an LCP element.
- await new Promise(resolve => {
- addImageToMain("lcp-100x50.png", "first_lcp" + counter);
- (new PerformanceObserver(resolve)).observe({type: "element"});
- });
- if(counter) {
- first_lcp_painted();
- // Wait for the unrelated LCP to be painted.
- await new Promise(r => { second_lcp_painted = r; });
- }
- const url = URL + "?" + counter;
- history.pushState({}, '', url);
- },
- link: link,
- validate: async () => {
- const lcps = await getLcpEntries();
- const ref_counter = counter-1;
- assert_equals(lcps.length, 2 + ref_counter, "Got 2 LCP entries");
- assert_equals(lcps[lcps.length - 1].id, "first_lcp" + ref_counter,
- "Got the first LCP");
- },
- test: "Second soft navigation image LCP discovered between user " +
- "interaction and soft navigation detection are properly " +
- "reported, while unrelated LCPs are ignored during that time. " +
- "As a side effect, we also test element timing."});
- </script>
-</body>
-</html>
-
-
-
diff --git a/tests/wpt/tests/soft-navigation-heuristics/image-lcp-before-detection.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/image-lcp-before-detection.tentative.html
deleted file mode 100644
index 0de675d372b..00000000000
--- a/tests/wpt/tests/soft-navigation-heuristics/image-lcp-before-detection.tentative.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<meta charset="utf-8">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/testdriver.js"></script>
-<script src="/resources/testdriver-vendor.js"></script>
-<script src="resources/soft-navigation-helper.js"></script>
-</head>
-<body>
- <main id=main>
- <div>
- <a id=link><img src="/images/lcp-256x256.png" id="img"></a>
- </div>
- </main>
- <script>
- const link = document.getElementById("link");
- let first_lcp_painted;
- let second_lcp_painted;
- (async () => {
- await new Promise(r => { first_lcp_painted = r; });
- addImageToMain("lcp-133x106.png", "no_lcp");
- (new PerformanceObserver(second_lcp_painted)).observe({type: "element"});
- })();
- testSoftNavigation({
- pushState: null,
- addContent: async () => {
- // Add an LCP element.
- await new Promise(resolve => {
- addImageToMain("lcp-100x50.png", "first_lcp");
- (new PerformanceObserver(resolve)).observe({type: "element"});
- });
- first_lcp_painted();
- // Wait for the unrelated LCP to be painted.
- await new Promise(r => { second_lcp_painted = r; });
- const url = URL + "?" + counter;
- history.pushState({}, '', url);
- },
- link: link,
- validate: async () => {
- const lcps = await getLcpEntries();
- assert_equals(lcps.length, 2, "Got 2 LCP entries");
- assert_equals(lcps[lcps.length - 1].id, "first_lcp", "Got the first LCP");
- },
- test: "Image LCP discovered between user interaction and soft " +
- "navigation detection are properly reported, while unrelated " +
- "LCPs are ignored during that time. As a side effect, we also " +
- "test element timing."});
- </script>
-</body>
-</html>
-
-
diff --git a/tests/wpt/tests/soft-navigation-heuristics/interaction-with-paint-before-back.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/interaction-with-paint-before-back.tentative.html
index 5961a6ebcdf..effccbfd762 100644
--- a/tests/wpt/tests/soft-navigation-heuristics/interaction-with-paint-before-back.tentative.html
+++ b/tests/wpt/tests/soft-navigation-heuristics/interaction-with-paint-before-back.tentative.html
@@ -6,6 +6,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
+ <script src="resources/soft-navigation-test-helper.js"></script>
</head>
<body>
<div id="main">
@@ -39,25 +40,33 @@
const test_origin = new URL(location.href).origin;
history.pushState({}, "", "/foo.html"); // We will observe this below.
history.pushState({}, "", "/bar.html"); // Prep for history.back().
- document.getElementById("soft_nav_div").addEventListener("click", () => {
+ document.getElementById("soft_nav_div").addEventListener("click", async () => {
+ // URL change triggering the soft nav. Since history.back()'s
+ // effect is potentially asynchronous, we wait for it to complete
+ // before we mutate the DOM. This way we ensure that the paints
+ // arrive only after the URL change.
+ history.back();
+ await t.step_wait(() => location.href.endsWith("/foo.html"));
const img = new Image();
img.src = "/images/lcp-133x106.png";
document.getElementById("main").appendChild(img);
- history.back(); // URL change triggering the soft nav
});
+ const helper = new SoftNavigationTestHelper(t);
// Now, click almost_soft_nav_div, and observe that time image
// was rendered but no soft nav was triggered.
{
- const element_timing_promise = new Promise((resolve) => {
- new PerformanceObserver(resolve).observe({ type: "element", buffered: true });
- });
+ const element_timing_promise = helper.getBufferedPerformanceEntriesWithTimeout(
+ /*type=*/ "element",
+ /*includeSoftNavigationObservations=*/ false,
+ /*minNumEntries=*/ 1,
+ );
if (test_driver) {
test_driver.click(almost_soft_nav_div);
}
// Returns entries of type PerformanceElementTiming, see
// https://developer.mozilla.org/en-US/docs/Web/API/PerformanceElementTiming.
- const entries = (await element_timing_promise).getEntries();
+ const entries = await element_timing_promise;
assert_equals(entries.length, 1);
assert_equals(
entries[0].identifier,
@@ -69,15 +78,17 @@
// Now, click soft_nav_div, and observe the detected soft navigation.
{
- const soft_nav_promise = new Promise((resolve) => {
- new PerformanceObserver(resolve).observe({ type: "soft-navigation", buffered: true });
- });
+ const soft_nav_promise = helper.getBufferedPerformanceEntriesWithTimeout(
+ /*type=*/ "soft-navigation",
+ /*includeSoftNavigationObservations=*/ false,
+ /*minNumEntries=*/ 1,
+ );
if (test_driver) {
test_driver.click(soft_nav_div);
}
// Returns entries of type SoftNavigationEntry, see
// https://github.com/WICG/soft-navigations/
- const entries = (await soft_nav_promise).getEntries();
+ const entries = await soft_nav_promise;
assert_equals(document.softNavigations, 1, "Single soft navigation detected");
assert_equals(entries.length, 1, "Performance observer got an entry");
assert_equals(entries[0].name, test_origin + "/foo.html");
diff --git a/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js b/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js
index c9f2b41b552..48e7b58d8d1 100644
--- a/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js
+++ b/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js
@@ -8,6 +8,34 @@ const URL = 'foobar.html';
const readValue = (value, defaultValue) => {
return value !== undefined ? value : defaultValue;
};
+
+const withTimeoutMessage =
+ async (t, promise, message, timeout = 1000) => {
+ return Promise.race([
+ promise,
+ new Promise((resolve, reject) => {
+ t.step_timeout(() => {
+ reject(new Error(message));
+ }, timeout);
+ }),
+ ]);
+}
+
+// Helper method for use with history.back(), when we want to be
+// sure that its asynchronous effect has completed.
+const waitForUrlToEndWith = async (url) => {
+ return new Promise((resolve) => {
+ window.addEventListener('popstate', () => {
+ if (location.href.endsWith(url)) {
+ resolve();
+ } else {
+ reject(
+ 'Got ' + location.href + ' - expected URL ends with "' + url + '"');
+ }
+ }, {once: true});
+ });
+};
+
const testSoftNavigation = options => {
const addContent = options.addContent;
const link = options.link;
@@ -21,8 +49,10 @@ const testSoftNavigation = options => {
const interactionFunc = options.interactionFunc;
const eventPrepWork = options.eventPrepWork;
promise_test(async t => {
- await waitInitialLCP();
- const preClickLcp = await getLcpEntries();
+ await withTimeoutMessage(
+ t, waitInitialLCP(), 'Timed out waiting for initial LCP');
+ const preClickLcp = await withTimeoutMessage(
+ t, getLcpEntries(), 'Timed out waiting for LCP entries');
setEvent(t, link, pushState, addContent, pushUrl, eventType, eventPrepWork);
let first_navigation_id;
for (let i = 0; i < clicks; ++i) {
@@ -32,21 +62,28 @@ const testSoftNavigation = options => {
const soft_nav_promise = waitOnSoftNav();
interact(link, interactionFunc);
- const navigation_id = await soft_nav_promise;
+ const navigation_id = await withTimeoutMessage(
+ t, soft_nav_promise, 'Timed out waiting for soft navigation');
if (!first_navigation_id) {
first_navigation_id = navigation_id;
}
// Ensure paint timing entries are fired before moving on to the next
// click.
- await paint_entries_promise;
+ await withTimeoutMessage(
+ t, paint_entries_promise, 'Timed out waiting for paint entries');
}
assert_equals(
document.softNavigations, clicks,
'Soft Navigations detected are the same as the number of clicks');
- await validateSoftNavigationEntry(clicks, extraValidations, pushUrl);
+ await withTimeoutMessage(
+ t, validateSoftNavigationEntry(clicks, extraValidations, pushUrl),
+ 'Timed out waiting for soft navigation entry validation');
- await runEntryValidations(
- preClickLcp, first_navigation_id, clicks + 1, options.validate);
+ await withTimeoutMessage(
+ t,
+ runEntryValidations(
+ preClickLcp, first_navigation_id, clicks + 1, options.validate),
+ 'Timed out waiting for entry validations');
}, testName);
};
@@ -159,11 +196,12 @@ const setEvent =
const url = URL + '?' + counter;
if (pushState) {
- // Change the URL
+ // Change the URL; pushState may be asynchronous, e.g. to deal
+ // with history.back()'s asynchronous effect.
if (pushUrl) {
- pushState(url);
+ await pushState(url);
} else {
- pushState();
+ await pushState();
}
}
diff --git a/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-test-helper.js b/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-test-helper.js
new file mode 100644
index 00000000000..a572f55e66d
--- /dev/null
+++ b/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-test-helper.js
@@ -0,0 +1,92 @@
+/**
+ * @fileoverview Helper class for soft navigation tests.
+ *
+ * This class provides helper functions for soft navigation tests. It can be
+ * used to wait for performance entries and create promises with timeout
+ * messages.
+ */
+class SoftNavigationTestHelper {
+ /**
+ * Constructs a new instance of the helper class.
+ * @param {!Test} test The test object. See
+ * https://web-platform-tests.org/writing-tests/testharness-api.html#test-objects
+ */
+ constructor(test) {
+ this.test_ = test;
+ }
+
+ /**
+ * Wraps a promise with a timeout message, so that it rejects with this
+ * message if it does not resolve within the given timeout.
+ * @param {!Promise} promise The promise to wait for.
+ * @param {string} message The message to use if the promise times out.
+ * @param {number=} timeout The timeout in milliseconds. Defaults to 1000.
+ * @return {!Promise} The promise with a timeout message.
+ */
+ async withTimeoutMessage(promise, message, timeout = 1000) {
+ return Promise.race([
+ promise,
+ new Promise((resolve, reject) => {
+ this.test_.step_timeout(() => {
+ reject(new Error(message));
+ }, timeout);
+ }),
+ ]);
+ }
+
+ /**
+ * Creates a new promise with a timeout message, so that it rejects with this
+ * message if it does not resolve within the given timeout, and otherwise
+ * resolves.
+ * @param {!Function} executor The executor function to create the promise;
+ * see
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/Promise#executor
+ * @param {string} message The message to use if the promise times out.
+ * @param {number=} timeout The timeout in milliseconds. Defaults to 1000.
+ * @return {!Promise} The promise with a timeout message.
+ */
+ async newPromiseWithTimeoutMessage(executor, message, timeout = 1000) {
+ return this.withTimeoutMessage(new Promise(executor), message, timeout);
+ }
+
+ /**
+ * Waits for a number of buffered performance entries of a given type,
+ * optionally including soft navigation observations, with a timeout message.
+ * @param {string} type The type of the entries to wait for.
+ * @param {boolean} includeSoftNavigationObservations Whether to include
+ * soft navigation observations.
+ * @param {number} minNumEntries The minimum number of entries to wait for.
+ * @param {number=} timeout The timeout in milliseconds. Defaults to 1000.
+ * @return {!Promise} The promise, which either resolves with the entries or
+ * rejects with a timeout message.
+ */
+ async getBufferedPerformanceEntriesWithTimeout(
+ type, includeSoftNavigationObservations, minNumEntries, timeout = 1000) {
+ let observer;
+ return this
+ .newPromiseWithTimeoutMessage(
+ (resolve) => {
+ const entries = [];
+ observer = new PerformanceObserver((list) => {
+ entries.push(...list.getEntries());
+ if (entries.length >= minNumEntries) {
+ resolve(entries);
+ }
+ })
+ observer.observe({
+ type: type,
+ buffered: true,
+ includeSoftNavigationObservations:
+ includeSoftNavigationObservations,
+ });
+ },
+ `${minNumEntries} entries of type ${type}${
+ includeSoftNavigationObservations ?
+ ' with soft navigation observations' :
+ ''} never arrived`,
+ timeout)
+ .finally(() => {
+ observer.disconnect();
+ });
+ }
+}
diff --git a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/lcp.html b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/lcp.html
new file mode 100644
index 00000000000..eb19c01494d
--- /dev/null
+++ b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/lcp.html
@@ -0,0 +1,153 @@
+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8" />
+ <title>Soft Navigation Detection: LCP.</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/resources/testdriver.js"></script>
+ <script src="/resources/testdriver-vendor.js"></script>
+ <script src="/soft-navigation-heuristics/resources/soft-navigation-test-helper.js"></script>
+ <script>
+ // The click handler is triggered by user interaction; it modifies
+ // the DOM by adding an image to the page; this triggers both
+ // a soft navigation and a soft navigation LCP entry.
+ function clickHandler() {
+ const img = new Image();
+ img.src = "/images/lcp-256x256.png";
+ img.id = "lcp-img";
+ document.body.appendChild(img);
+ history.pushState({}, "", "/show-image");
+ }
+ </script>
+ </head>
+ <body>
+ <div id="click-target" onclick="clickHandler()">Click here!</div>
+
+ <script>
+ promise_test(async (t) => {
+ const helper = new SoftNavigationTestHelper(t);
+
+ // Wait for the initial LCP entry, prior to clicking, so that
+ // we may later observe the soft navigation LCP entry in addition.
+ const initial_lcp = await helper.getBufferedPerformanceEntriesWithTimeout(
+ /*type=*/ "largest-contentful-paint",
+ /*include_soft_navigation_observations=*/ false,
+ /*min_num_entries=*/ 1,
+ );
+
+ assert_equals(initial_lcp.length, 1, "There's one initial LCP entry.");
+ assert_equals(
+ initial_lcp[0].id,
+ "click-target",
+ "The initial LCP entry is the div for the click target.",
+ );
+
+ if (test_driver) {
+ test_driver.click(document.getElementById("click-target"));
+ }
+
+ // Now that we've clicked, we expect to see a soft navigation,
+ // and a soft navigation LCP entry; and since there was already
+ // an LCP entry, we expect two LCP entries.
+ const results = await Promise.allSettled([
+ helper.getBufferedPerformanceEntriesWithTimeout(
+ /*type=*/ "soft-navigation",
+ /*include_soft_navigation_observations=*/ true,
+ /*min_num_entries=*/ 1,
+ ),
+ helper.getBufferedPerformanceEntriesWithTimeout(
+ /*type=*/ "largest-contentful-paint",
+ /*include_soft_navigation_observations=*/ true,
+ /*min_num_entries=*/ 2,
+ ),
+ ]);
+
+ // If either or both of soft nav entry or soft nav LCP are missing,
+ // fail the test.
+ const errors = results.filter((r) => r.status === "rejected").map((r) => r.reason.message);
+ if (errors.length > 0) {
+ throw new AssertionError("PerformanceObservers failed: " + format_value(errors));
+ }
+
+ // Examine the soft navigation entries.
+ const soft_navs = results[0].value;
+ assert_equals(soft_navs.length, 1, "Expecting one soft navigation entry.");
+ assert_equals(
+ soft_navs[0].name.replace(/.*\//, ""),
+ "show-image",
+ "Expecting soft navigation to 'greeting'",
+ );
+
+ // Examine the soft navigation LCP entries.
+ const lcp_including_soft_nav = results[1].value;
+ assert_equals(
+ lcp_including_soft_nav.length,
+ 2,
+ "Expecting 2 entries: initial LCP and soft nav LCP.",
+ );
+
+ // Now observe the hard navs again. There should only be one entry.
+ // See also crbug.com/40073849: We really don't want to emit hard nav
+ // LCP entries for soft navigations unintentionally.
+ const observer = new PerformanceObserver(assert_unreached);
+ observer.observe({
+ type: "largest-contentful-paint",
+ buffered: true,
+ });
+ const hard_nav_lcp = observer.takeRecords();
+ observer.disconnect();
+
+ assert_equals(hard_nav_lcp.length, 1, "Expecting one entry for the hard nav LCP.");
+
+ // Compare the first soft nav LCP entry with the hard nav LCP entry.
+ assert_equals(
+ hard_nav_lcp[0].id,
+ "click-target",
+ "Hard nav LCP entry is (still) for the click target.",
+ );
+ assert_equals(
+ lcp_including_soft_nav[0].id,
+ "click-target",
+ "First soft nav LCP entry is for the click target.",
+ );
+ assert_equals(
+ lcp_including_soft_nav[1].id,
+ "lcp-img",
+ "Second soft nav LCP entry is for the image.",
+ );
+
+ assert_equals(
+ hard_nav_lcp[0],
+ lcp_including_soft_nav[0],
+ "Hard nav and first soft nav LCP entries are the same entry.",
+ );
+ // Since we don't rust assert_equals fully, we also compare
+ // render time and navigation ID. :-)
+ assert_equals(
+ hard_nav_lcp[0].renderTime,
+ lcp_including_soft_nav[0].renderTime,
+ "Hard nav and first soft nav LCP entries have the same render time.",
+ );
+ assert_equals(
+ hard_nav_lcp[0].navigationId,
+ lcp_including_soft_nav[0].navigationId,
+ "Hard nav and first soft nav LCP entries have the same navigation ID.",
+ );
+
+ // Compare the two soft nav LCP entries, and show that the navigation ID
+ // changes for the second one to be that of the soft navigation entry.
+ assert_not_equals(
+ lcp_including_soft_nav[0].navigationId,
+ lcp_including_soft_nav[1].navigationId,
+ "Soft nav LCP entries have have different navigation IDs.",
+ );
+ assert_equals(
+ lcp_including_soft_nav[1].navigationID,
+ soft_navs[0].navigationID,
+ "Second soft nav LCP entry has the same navigation ID as the soft nav entry.",
+ );
+ }, "Detect soft navigation and LCP after a click.");
+ </script>
+ </body>
+</html>
diff --git a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/task-attribution.html b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/task-attribution.html
index 8f6f93c8daf..0c27fbb0605 100644
--- a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/task-attribution.html
+++ b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/task-attribution.html
@@ -62,16 +62,6 @@
history.pushState({}, "", "/set-timeout-and-sync-url-update");
}
- // A soft navigation where the click handler synchronously updates its UI
- // and schedules the URL update with a setTimeout.
- // https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout
- function setTimeoutForUrlUpdate() {
- updateUI();
- setTimeout(() => {
- history.pushState({}, "", "/set-timeout-for-url-update");
- }, 10);
- }
-
// A soft navigation where the click handler schedules its work with
// scheduler.postTask.
// https://developer.mozilla.org/en-US/docs/Web/API/Scheduler/postTask
@@ -83,11 +73,11 @@
}
// A soft navigation where the click handler yields
- // (using scheduler.yield) between UI update and URL update.
+ // (using scheduler.yield) between URL and UI update.
async function withSchedulerYield() {
- updateUI();
- await scheduler.yield();
history.pushState({}, "", "/with-scheduler-yield");
+ await scheduler.yield();
+ updateUI();
}
// A soft navigation where the click handler schedules its work with
@@ -109,7 +99,6 @@
<div id="set-timeout-and-sync-url-update" onclick="setTimeoutAndSyncUrlUpdate()">
Click here!
</div>
- <div id="set-timeout-for-url-update" onclick="setTimeoutForUrlUpdate()">Click here!</div>
<div id="with-scheduler-post-task" onclick="withSchedulerPostTask()">Click here!</div>
<div id="with-scheduler-yield" onclick="withSchedulerYield()">Click here!</div>
<div id="with-request-animation-frame" onclick="withRequestAnimationFrame()">Click here!</div>
diff --git a/tests/wpt/tests/soft-navigation-heuristics/text-lcp-before-detection-second-softnav.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/text-lcp-before-detection-second-softnav.tentative.html
deleted file mode 100644
index bed27c35069..00000000000
--- a/tests/wpt/tests/soft-navigation-heuristics/text-lcp-before-detection-second-softnav.tentative.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<meta charset="utf-8">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/testdriver.js"></script>
-<script src="/resources/testdriver-vendor.js"></script>
-<script src="resources/soft-navigation-helper.js"></script>
-<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
-</head>
-<body>
- <main id=main>
- <div>
- <a id=link><img src="/images/lcp-256x256.png" id="img"></a>
- </div>
- </main>
- <script>
- const link = document.getElementById("link");
- let first_lcp_painted;
- let second_lcp_painted;
- (async () => {
- await new Promise(r => { first_lcp_painted = r; });
- addTextParagraphToMain("LOREM IPSUMR", "no lcp");
- (new PerformanceObserver(second_lcp_painted)).observe({type: "element"});
- })();
- testSoftNavigation({
- pushState: null,
- clicks: 2,
- addContent: async () => {
- // Add an LCP element.
- await new Promise(resolve => {
- const p = addTextParagraphToMain("Lorem Ipsum", /*element_timing=*/"first_lcp" + counter);
- p.id = "first_lcp" + counter;
- (new PerformanceObserver(resolve)).observe({type: "element"});
- });
- if(counter) {
- first_lcp_painted();
- // Wait for the unrelated LCP to be painted.
- await new Promise(r => { second_lcp_painted = r; });
- }
- const url = URL + "?" + counter;
- history.pushState({}, '', url);
- },
- link: link,
- validate: async () => {
- const lcps = await getLcpEntries();
- const ref_counter = counter-1;
- assert_equals(lcps.length, 2 + ref_counter, "Got 2 LCP entries");
- assert_equals(lcps[lcps.length - 1].id, "first_lcp" + ref_counter, "Got the first LCP");
- },
- test: "Second soft navigation text LCP discovered between user " +
- "interaction and soft navigation detection are properly " +
- "reported, while unrelated LCPs are ignored during that time. " +
- "As a side effect, we also test element timing."});
- </script>
-</body>
-</html>
-
-
-
-
diff --git a/tests/wpt/tests/soft-navigation-heuristics/text-lcp-before-detection.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/text-lcp-before-detection.tentative.html
deleted file mode 100644
index 11e82e539ff..00000000000
--- a/tests/wpt/tests/soft-navigation-heuristics/text-lcp-before-detection.tentative.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
-<meta charset="utf-8">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/testdriver.js"></script>
-<script src="/resources/testdriver-vendor.js"></script>
-<script src="resources/soft-navigation-helper.js"></script>
-<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
-</head>
-<body>
- <main id=main>
- <div>
- <a id=link><img src="/images/lcp-256x256.png" id="img"></a>
- </div>
- </main>
- <script>
- const link = document.getElementById("link");
- let first_lcp_painted;
- let second_lcp_painted;
- (async () => {
- await new Promise(r => { first_lcp_painted = r; });
- addTextParagraphToMain("LOREM IPSUMR", "no lcp");
- (new PerformanceObserver(second_lcp_painted)).observe({type: "element"});
- })();
- testSoftNavigation({
- pushState: null,
- addContent: async () => {
- // Add an LCP element.
- await new Promise(resolve => {
- const p = addTextParagraphToMain("Lorem Ipsum", /*element_timing=*/"first_lcp");
- p.id = "first_lcp";
- (new PerformanceObserver(resolve)).observe({type: "element"});
- });
- first_lcp_painted();
- // Wait for the unrelated LCP to be painted.
- await new Promise(r => { second_lcp_painted = r; });
- const url = URL + "?" + counter;
- history.pushState({}, '', url);
- },
- link: link,
- validate: async () => {
- const lcps = await getLcpEntries();
- assert_equals(lcps.length, 2, "Got 2 LCP entries");
- assert_equals(lcps[lcps.length - 1].id, "first_lcp", "Got the first LCP");
- },
- test: "Text LCP discovered between user interaction and soft " +
- "navigation detection are properly reported, while unrelated " +
- "LCPs are ignored during that time. As a side effect, we also " +
- "test element timing."});
- </script>
-</body>
-</html>
-
diff --git a/tests/wpt/tests/speculation-rules/prefetch/resources/basic-service-worker.js b/tests/wpt/tests/speculation-rules/prefetch/resources/basic-service-worker.js
index 59d7d8bae9e..7175d655a49 100644
--- a/tests/wpt/tests/speculation-rules/prefetch/resources/basic-service-worker.js
+++ b/tests/wpt/tests/speculation-rules/prefetch/resources/basic-service-worker.js
@@ -1,4 +1,25 @@
-const swOption = new URL(location.href).searchParams.get('sw');
+const originalSwOption = new URL(location.href).searchParams.get('sw');
+let swOption = originalSwOption;
+
+if (swOption === 'fetch-handler-navigation-preload') {
+ self.addEventListener('activate', event => {
+ if (self.registration.navigationPreload) {
+ event.waitUntil(self.registration.navigationPreload.enable());
+ }
+ });
+}
+
+if (swOption === 'race-fetch-handler' ||
+ swOption === 'race-fetch-handler-to-fallback' ||
+ swOption === 'race-fetch-handler-modify-url') {
+ swOption = swOption.substring('race-'.length);
+ self.addEventListener('install', event => {
+ event.addRoutes([{
+ condition: { urlPattern: { pathname: '/**/counting-executor.py' } },
+ source: 'race-network-and-fetch-handler'
+ }]);
+ });
+}
const interceptedRequests = [];
@@ -21,14 +42,15 @@ if (swOption !== 'no-fetch-handler') {
event.request.headers.forEach((value, key) => {
headers[key] = value;
});
- interceptedRequests.push({
+ const interceptedRequest = {
request: {
url: event.request.url,
headers: headers,
},
clientId: event.clientId,
resultingClientId: event.resultingClientId
- });
+ };
+ interceptedRequests.push(interceptedRequest);
if (swOption === 'fetch-handler') {
event.respondWith(fetch(event.request));
@@ -45,10 +67,34 @@ if (swOption !== 'no-fetch-handler') {
// because it's a https://fetch.spec.whatwg.org/#forbidden-request-header
const url = new URL(event.request.url);
url.searchParams.set('intercepted', 'true');
+ if (originalSwOption === 'race-fetch-handler-modify-url') {
+ // See the comment in `basic.sub.https.html` for delay value.
+ url.searchParams.set('delay', '500');
+ }
event.respondWith(fetch(url, {headers: event.request.headers}));
} else if (swOption === 'fetch-handler-modify-referrer') {
event.respondWith(fetch(event.request,
{referrer: new URL('/intercepted', location.href).href}));
+ } else if (swOption === 'fetch-handler-navigation-preload') {
+ event.respondWith((async () => {
+ try {
+ if (event.preloadResponse === 'undefined') {
+ interceptedRequest.preloadResponse = 'undefined';
+ return fetch(event.request);
+ }
+ const response = await event.preloadResponse;
+ if (response) {
+ interceptedRequest.preloadResponse = 'resolved';
+ return response;
+ } else {
+ interceptedRequest.preloadResponse = 'resolved to undefined';
+ return fetch(event.request);
+ }
+ } catch(e) {
+ interceptedRequest.preloadResponse = 'rejected';
+ throw e;
+ }
+ })());
} else {
// Do nothing to fallback to the network.
}
diff --git a/tests/wpt/tests/speculation-rules/prefetch/resources/counting-executor.py b/tests/wpt/tests/speculation-rules/prefetch/resources/counting-executor.py
index 3511fe4905e..bc610b1fe10 100644
--- a/tests/wpt/tests/speculation-rules/prefetch/resources/counting-executor.py
+++ b/tests/wpt/tests/speculation-rules/prefetch/resources/counting-executor.py
@@ -1,5 +1,6 @@
import json
import os.path
+import time
from wptserve.pipes import template
def main(request, response):
@@ -7,19 +8,28 @@ def main(request, response):
response.headers.set(b"Cache-Control", b"no-store")
uuid = request.GET[b"uuid"]
- request_count = request.server.stash.take(uuid)
- if request_count is None:
- request_count = {"prefetch": 0, "nonPrefetch": 0}
- if b"check" in request.GET:
- response.content = json.dumps(request_count)
- return
+ # The lock is needed because the server receives concurrent requests to the
+ # same `uuid` e.g. due to `race-network-and-fetch-handler`.
+ with request.server.stash.lock:
+ request_count = request.server.stash.take(uuid)
+ if request_count is None:
+ request_count = {"prefetch": 0, "nonPrefetch": 0}
+
+ if b"check" in request.GET:
+ response.content = json.dumps(request_count)
+ return
+
+ prefetch = request.headers.get(
+ "Sec-Purpose", b"").decode("utf-8").startswith("prefetch")
- prefetch = request.headers.get(
- "Sec-Purpose", b"").decode("utf-8").startswith("prefetch")
+ request_count["prefetch" if prefetch else "nonPrefetch"] += 1
+ request.server.stash.put(uuid, request_count)
- request_count["prefetch" if prefetch else "nonPrefetch"] += 1
- request.server.stash.put(uuid, request_count)
+ # This delay is after the `stash.put` above so that the request is counted
+ # upon received (i.e. we don't have to wait for the delay completion).
+ if b"delay" in request.GET:
+ time.sleep(float(request.GET[b"delay"]) / 1E3)
if b"location" in request.GET:
response.status = 302
diff --git a/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html b/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html
index 975a3e5092e..bb2d58dc9c9 100644
--- a/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html
+++ b/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html
@@ -33,6 +33,8 @@ window.requestHeaders = {
"referer": "{{header_or_default(Referer, NONEXISTENT)}}",
"sec-fetch-dest": "{{header_or_default(Sec-Fetch-Dest, NONEXISTENT)}}",
"sec-fetch-mode": "{{header_or_default(Sec-Fetch-Mode, NONEXISTENT)}}",
+ "service-worker-navigation-preload":
+ "{{header_or_default(Service-Worker-Navigation-Preload, NONEXISTENT)}}",
// Convert to the raw string to avoid backslashes from being processed as
// escape sequences.
// TODO(crbug.com/404573971): Remove `header_or_default` to reflect
diff --git a/tests/wpt/tests/speculation-rules/prefetch/resources/utils.sub.js b/tests/wpt/tests/speculation-rules/prefetch/resources/utils.sub.js
index adb15d4ea9e..dd577c00c1d 100644
--- a/tests/wpt/tests/speculation-rules/prefetch/resources/utils.sub.js
+++ b/tests/wpt/tests/speculation-rules/prefetch/resources/utils.sub.js
@@ -260,6 +260,13 @@ function assert_intercept_non_prefetch(interceptedRequest, expectedUrl) {
}
}
+function assert_served_by_navigation_preload(requestHeaders) {
+ assert_equals(
+ requestHeaders['service-worker-navigation-preload'],
+ 'true',
+ 'Service-Worker-Navigation-Preload');
+}
+
// Use nvs_header query parameter to ask the wpt server
// to populate No-Vary-Search response header.
function addNoVarySearchHeaderUsingQueryParam(url, value){
diff --git a/tests/wpt/tests/speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html b/tests/wpt/tests/speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html
index 5b2a4d00dba..7e4fd24423d 100644
--- a/tests/wpt/tests/speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html
+++ b/tests/wpt/tests/speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html
@@ -12,8 +12,12 @@
<meta name="variant" content="?origin=same-site&sw=fetch-handler-to-fallback">
<meta name="variant" content="?origin=same-site&sw=fetch-handler-modify-url">
<meta name="variant" content="?origin=same-site&sw=fetch-handler-modify-referrer">
+<meta name="variant" content="?origin=same-site&sw=fetch-handler-navigation-preload">
<meta name="variant" content="?origin=same-site&sw=no-fetch-handler">
<meta name="variant" content="?origin=same-site&sw=no-controller">
+<meta name="variant" content="?origin=same-site&sw=race-fetch-handler">
+<meta name="variant" content="?origin=same-site&sw=race-fetch-handler-to-fallback">
+<meta name="variant" content="?origin=same-site&sw=race-fetch-handler-modify-url">
<meta name="variant" content="?origin=same-site&sw=fetch-handler&clientId">
<meta name="variant" content="?origin=same-site&sw=fetch-handler-to-fallback&clientId">
@@ -38,15 +42,38 @@ setup(() => assertSpeculationRulesIsSupported());
// TODO(https://crbug.com/404573972): Rename "same-site" tests to
// "same-origin", and add same-site cross-origin tests.
const originOption = new URL(location.href).searchParams.get('origin');
-const swOption = new URL(location.href).searchParams.get('sw');
+const originalSwOption = new URL(location.href).searchParams.get('sw');
+
+// Used when checking the resulting behavior.
+// In the following race-network cases, race network requests work in parallel
+// with fetch handlers and the checked observed behavior are the same with
+// non-race-network cases.
+let swOption = originalSwOption;
+if (originalSwOption === 'race-fetch-handler') {
+ swOption = 'fetch-handler';
+}
+if (originalSwOption === 'race-fetch-handler-to-fallback') {
+ swOption = 'fetch-handler-to-fallback';
+}
promise_test(async t => {
const hostname = originOption === 'cross-site' ? '{{hosts[alt][www]}}'
: undefined;
const win = await spawnWindow(t, { protocol: 'https', hostname: hostname });
const nextUrl = win.getExecutorURL({ executor: 'counting-executor.py', protocol: 'https', page: 2 });
+ if (swOption === 'race-fetch-handler-modify-url') {
+ // We set:
+ // - For the race network request: 1.5 sec delay (here).
+ // - For the network request from the fetch handler: 0.5 sec delay (in
+ // `basic-service-worker.js`).
+ // So that:
+ // - The fetch handler wins and the modified request is used for serving.
+ // - The requests return responses after both of the requests reach the
+ // server and are recorded in the server-side request counts.
+ nextUrl.searchParams.set('delay', '1500');
+ }
- const swUrl = new URL('../../resources/basic-service-worker.js?sw=' + swOption, location.href).href;
+ const swUrl = new URL('../../resources/basic-service-worker.js?sw=' + originalSwOption, location.href).href;
// Register a SW not controlling any pages below, just to confirm such
// unrelated SWs in the same-origin doesn't affect the behavior.
@@ -120,8 +147,28 @@ promise_test(async t => {
assert_intercept_prefetch(interceptedRequests[0], nextUrl);
}
} else if (originOption === 'same-site' &&
+ swOption === 'fetch-handler-navigation-preload') {
+ // Check the behavior of `FetchEvent.preloadResponse` for prefetching
+ // requests.
+ // Here we allow >1 intercepted requests to check `preloadResponse`
+ // behavior even if e.g. prefetched response isn't served and there is
+ // second intercepted request (=non-prefetch navigation request).
+ assert_greater_than_equal(interceptedRequests.length, 1);
+ // The first intercepted request is a prefetch request.
+ assert_intercept_prefetch(interceptedRequests[0], nextUrl);
+ assert_equals(interceptedRequests[0].preloadResponse, 'resolved',
+ 'preloadResponse should be resolved');
+
+ assert_served_by_navigation_preload(headers);
+ assert_prefetched(headers, "Prefetched result should be served.");
+ assert_equals(requestCount.prefetch, 1,
+ 'a prefetch request should be sent to the server.');
+ assert_equals(requestCount.nonPrefetch, 0,
+ 'non-prefetch requests should not be sent to the server.');
+ } else if (originOption === 'same-site' &&
(swOption === 'fetch-handler-modify-url' ||
- swOption === 'fetch-handler-modify-referrer')) {
+ swOption === 'fetch-handler-modify-referrer' ||
+ swOption === 'race-fetch-handler-modify-url')) {
// When the ServiceWorker modifies the prefetch request
// (`fetch-handler-modify-*` cases below), still prefetch can work and be
// served, but Sec-Purpose header is dropped
@@ -129,11 +176,17 @@ promise_test(async t => {
assert_prefetched_without_sec_purpose(headers,
"Prefetched result should be served without Sec-Purpose.");
// `requestCount` checks the Sec-Purpose header so the prefetch request
- // without Sec-Prefetch is counted as nonPrefetch here.
+ // without Sec-Purpose is counted as nonPrefetch here.
assert_equals(requestCount.nonPrefetch, 1,
'a prefetch request without Sec-Purpose should be sent to the server.');
- assert_equals(requestCount.prefetch, 0,
- 'Other requests with Sec-Prefetch should not be sent to the server.');
+ if (swOption === 'race-fetch-handler-modify-url') {
+ // This racing network request is not used.
+ assert_equals(requestCount.prefetch, 1,
+ 'Race network request should be sent to the server with Sec-Purpose.');
+ } else {
+ assert_equals(requestCount.prefetch, 0,
+ 'Other requests with Sec-Purpose should not be sent to the server.');
+ }
// Check the modified URL/referrer to check if the prefetched and
// ServiceWorker-modified response is actually served.
@@ -167,5 +220,5 @@ promise_test(async t => {
}
}
-}, "Prefetch with ServiceWorker (" + swOption + ")");
+}, "Prefetch with ServiceWorker (" + originalSwOption + ")");
</script>
diff --git a/tests/wpt/tests/subresource-integrity/tentative/integrity-policy/parsing.html b/tests/wpt/tests/subresource-integrity/integrity-policy/parsing.html
index 205854419a7..205854419a7 100644
--- a/tests/wpt/tests/subresource-integrity/tentative/integrity-policy/parsing.html
+++ b/tests/wpt/tests/subresource-integrity/integrity-policy/parsing.html
diff --git a/tests/wpt/tests/subresource-integrity/tentative/integrity-policy/script.https.html b/tests/wpt/tests/subresource-integrity/integrity-policy/script.https.html
index 783374db920..783374db920 100644
--- a/tests/wpt/tests/subresource-integrity/tentative/integrity-policy/script.https.html
+++ b/tests/wpt/tests/subresource-integrity/integrity-policy/script.https.html
diff --git a/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.parser-inserted.html b/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.parser-inserted.html
index ccedc5ce4f9..0d688d39066 100644
--- a/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.parser-inserted.html
+++ b/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.parser-inserted.html
@@ -15,11 +15,11 @@
<!--
{
integrity: `ed25519-${kValidKeys['rfc']}`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`,
}
-->
<script integrity="ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs="
- src="/subresource-integrity/signatures/accept-signature-script.py?header=sig0%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22JrQLj5P%2F89iXES9%2BvFgrIy29clF9CC%2FoPPsw3c5D0bs%3D%22%3Btag%3D%22sri%22&counter=1"
+ src="/subresource-integrity/signatures/accept-signature-script.py?header=sig0%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22JrQLj5P%2F89iXES9%2BvFgrIy29clF9CC%2FoPPsw3c5D0bs%3D%22%3Btag%3D%22ed25519-integrity%22&counter=1"
id="test1"
></script>
<script>
@@ -32,11 +32,11 @@
<!--
{
integrity: `ed25519-${kValidKeys['rfc']} malformed-thing`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`,
}
-->
<script integrity="ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs= malformed-thing"
- src="/subresource-integrity/signatures/accept-signature-script.py?header=sig0%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22JrQLj5P%2F89iXES9%2BvFgrIy29clF9CC%2FoPPsw3c5D0bs%3D%22%3Btag%3D%22sri%22&counter=2"
+ src="/subresource-integrity/signatures/accept-signature-script.py?header=sig0%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22JrQLj5P%2F89iXES9%2BvFgrIy29clF9CC%2FoPPsw3c5D0bs%3D%22%3Btag%3D%22ed25519-integrity%22&counter=2"
id="test2"
></script>
<script>
@@ -49,12 +49,12 @@
<!--
{
integrity: `ed25519-${kValidKeys['arbitrary']} ed25519-${kValidKeys['rfc']}`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="sri", ` +
- `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="ed25519-integrity", ` +
+ `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`,
}
-->
<script integrity="ed25519-xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE= ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs="
- src="/subresource-integrity/signatures/accept-signature-script.py?header=sig0%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE%3D%22%3Btag%3D%22sri%22%2C+sig1%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22JrQLj5P%2F89iXES9%2BvFgrIy29clF9CC%2FoPPsw3c5D0bs%3D%22%3Btag%3D%22sri%22&counter=3"
+ src="/subresource-integrity/signatures/accept-signature-script.py?header=sig0%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE%3D%22%3Btag%3D%22ed25519-integrity%22%2C+sig1%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22JrQLj5P%2F89iXES9%2BvFgrIy29clF9CC%2FoPPsw3c5D0bs%3D%22%3Btag%3D%22ed25519-integrity%22&counter=3"
id="test3"
></script>
<script>
@@ -67,12 +67,12 @@
<!--
{
integrity: `ed25519-${kValidKeys['arbitrary']} malformed-thing ed25519-${kValidKeys['rfc']}`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="sri", ` +
- `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="ed25519-integrity", ` +
+ `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`,
}
-->
<script integrity="ed25519-xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE= malformed-thing ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs="
- src="/subresource-integrity/signatures/accept-signature-script.py?header=sig0%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE%3D%22%3Btag%3D%22sri%22%2C+sig1%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22JrQLj5P%2F89iXES9%2BvFgrIy29clF9CC%2FoPPsw3c5D0bs%3D%22%3Btag%3D%22sri%22&counter=4"
+ src="/subresource-integrity/signatures/accept-signature-script.py?header=sig0%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE%3D%22%3Btag%3D%22ed25519-integrity%22%2C+sig1%3D%28%22unencoded-digest%22%3Bsf%29%3Bkeyid%3D%22JrQLj5P%2F89iXES9%2BvFgrIy29clF9CC%2FoPPsw3c5D0bs%3D%22%3Btag%3D%22ed25519-integrity%22&counter=4"
id="test4"
></script>
<script>
diff --git a/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js b/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js
index 97e817e328c..291162c4459 100644
--- a/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js
+++ b/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js
@@ -6,35 +6,35 @@
let test_cases = [
{
integrity: `ed25519-${kValidKeys['rfc']}`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`,
},
{
integrity: `ed25519-${kValidKeys['rfc']} malformed-thing`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`,
},
{
integrity: `ed25519-${kValidKeys['rfc']} ed25519-${kValidKeys['rfc']}`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`,
},
{
integrity: `ed25519-${kValidKeys['arbitrary']} ed25519-${kValidKeys['rfc']}`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="sri", ` +
- `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="ed25519-integrity", ` +
+ `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`,
},
{
integrity: `ed25519-${kValidKeys['rfc']} ed25519-${kValidKeys['arbitrary']}`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri", ` +
- `sig1=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity", ` +
+ `sig1=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="ed25519-integrity"`,
},
{
integrity: `ed25519-${kValidKeys['arbitrary']} malformed-thing ed25519-${kValidKeys['rfc']}`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="sri", ` +
- `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="ed25519-integrity", ` +
+ `sig1=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`,
},
{
integrity: `ed25519-${kValidKeys['rfc']} malformed-thing ed25519-${kValidKeys['arbitrary']}`,
- header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri", ` +
- `sig1=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="sri"`,
+ header: `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity", ` +
+ `sig1=("unencoded-digest";sf);keyid="${kValidKeys['arbitrary']}";tag="ed25519-integrity"`,
},
];
diff --git a/tests/wpt/tests/subresource-integrity/signatures/tentative/helper.js b/tests/wpt/tests/subresource-integrity/signatures/tentative/helper.js
index c5b7de60747..744799d33fd 100644
--- a/tests/wpt/tests/subresource-integrity/signatures/tentative/helper.js
+++ b/tests/wpt/tests/subresource-integrity/signatures/tentative/helper.js
@@ -111,11 +111,11 @@ function generate_fetch_test(request_data, options, expectation, description) {
// in the header.
if (options.integrity?.includes(`ed25519-${kInvalidKey}`)) {
assert_equals(r.headers.get(kAcceptSignature),
- `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri", sig1=("unencoded-digest";sf);keyid="${kInvalidKey}";tag="sri"`,
+ `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity", sig1=("unencoded-digest";sf);keyid="${kInvalidKey}";tag="ed25519-integrity"`,
"`accept-signature` was set.");
} else if (options.integrity?.includes(`ed25519-${kValidKeys['rfc']}`)) {
assert_equals(r.headers.get(kAcceptSignature),
- `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="sri"`,
+ `sig0=("unencoded-digest";sf);keyid="${kValidKeys['rfc']}";tag="ed25519-integrity"`,
"`accept-signature` was set.");
}
});
diff --git a/tests/wpt/tests/svg/animations/mpath-zero-radius-crash.html b/tests/wpt/tests/svg/animations/mpath-zero-radius-crash.html
new file mode 100644
index 00000000000..a0528a27f5d
--- /dev/null
+++ b/tests/wpt/tests/svg/animations/mpath-zero-radius-crash.html
@@ -0,0 +1,18 @@
+<html>
+<head>
+ <script>
+ document.addEventListener("DOMContentLoaded", async () => {
+ const frame = document.createElementNS("http://www.w3.org/1999/xhtml", "frame")
+ document.documentElement.appendChild(frame)
+ frame.src = `data:text/html,` + encodeURIComponent(`<!doctype html>
+<svg>
+ <ellipse id="id_8" ry="100pt"></ellipse>
+ <animateMotion>
+ <desc></desc>
+ <mpath xlink:href="#id_8"></mpath>
+ </animateMotion>
+</svg>`);
+ })
+ </script>
+</head>
+</html>
diff --git a/tests/wpt/tests/svg/interact/scripted/svg-pointer-events-bbox.html b/tests/wpt/tests/svg/interact/scripted/svg-pointer-events-bbox.html
index 8db9149c231..06d34fec54b 100644
--- a/tests/wpt/tests/svg/interact/scripted/svg-pointer-events-bbox.html
+++ b/tests/wpt/tests/svg/interact/scripted/svg-pointer-events-bbox.html
@@ -131,25 +131,31 @@ function hitTest(point, element, shouldContain, optionalLabel) {
}, `${label} ${shouldContain ? 'contains' : 'does not contain'} point at (${point.x}, ${point.y})`);
}
-pointsOnCircle1.forEach(point => hitTest(point, circle1, true));
-pointsNotOnCircle1.forEach(point => hitTest(point, circle1, false));
-pointsInsideBBoxOfCircle1.forEach(point => hitTest(point, group1, true, 'group1'));
+setup({ explicit_done: true });
-pointsOnCircle2.forEach(point => hitTest(point, circle2, true));
-pointsInsideBBoxOfCircle2.forEach(point => hitTest(point, circle2, true, 'bbox of circle2'));
+document.fonts.ready.then(() => {
+ pointsOnCircle1.forEach(point => hitTest(point, circle1, true));
+ pointsNotOnCircle1.forEach(point => hitTest(point, circle1, false));
+ pointsInsideBBoxOfCircle1.forEach(point => hitTest(point, group1, true, 'group1'));
-pointsOnText1.forEach(point => hitTest(point, text1, true));
-pointsOnTspan1.forEach(point => hitTest(point, tspan1, true));
-pointsNotOnText1.forEach(point => hitTest(point, text1, false));
-pointsInsideBBoxOfText1.forEach(point => hitTest(point, text1, true, 'bbox of text1'));
+ pointsOnCircle2.forEach(point => hitTest(point, circle2, true));
+ pointsInsideBBoxOfCircle2.forEach(point => hitTest(point, circle2, true, 'bbox of circle2'));
-pointsOnText2.forEach(point => hitTest(point, text2, true));
-pointsOnTspan2.forEach(point => hitTest(point, tspan2, true));
-pointsNotOnText2.forEach(point => hitTest(point, text2, false));
-pointsInsideBBoxOfText2.forEach(point => hitTest(point, text2, true, 'bbox of text2'));
+ pointsOnText1.forEach(point => hitTest(point, text1, true));
+ pointsOnTspan1.forEach(point => hitTest(point, tspan1, true));
+ pointsNotOnText1.forEach(point => hitTest(point, text1, false));
+ pointsInsideBBoxOfText1.forEach(point => hitTest(point, text1, true, 'bbox of text1'));
-pointsOnText3.forEach(point => hitTest(point, text3, true));
-pointsNotOnText3.forEach(point => hitTest(point, text3, false));
+ pointsOnText2.forEach(point => hitTest(point, text2, true));
+ pointsOnTspan2.forEach(point => hitTest(point, tspan2, true));
+ pointsNotOnText2.forEach(point => hitTest(point, text2, false));
+ pointsInsideBBoxOfText2.forEach(point => hitTest(point, text2, true, 'bbox of text2'));
-pointsOnImage1.forEach(point => hitTest(point, image1, true));
+ pointsOnText3.forEach(point => hitTest(point, text3, true));
+ pointsNotOnText3.forEach(point => hitTest(point, text3, false));
+
+ pointsOnImage1.forEach(point => hitTest(point, image1, true));
+
+ done();
+});
</script>
diff --git a/tests/wpt/tests/svg/text/reftests/first-letter-ref.svg b/tests/wpt/tests/svg/text/reftests/first-letter-ref.svg
index 66f5c6d6828..72f866be1d9 100644
--- a/tests/wpt/tests/svg/text/reftests/first-letter-ref.svg
+++ b/tests/wpt/tests/svg/text/reftests/first-letter-ref.svg
@@ -1,4 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml">
+ <metadata>
+ <h:link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+ </metadata>
<style>
text {
font-family: Ahem;
diff --git a/tests/wpt/tests/svg/text/reftests/opacity-ref.svg b/tests/wpt/tests/svg/text/reftests/opacity-ref.svg
index 18c00ab332c..7b4dbba15e7 100644
--- a/tests/wpt/tests/svg/text/reftests/opacity-ref.svg
+++ b/tests/wpt/tests/svg/text/reftests/opacity-ref.svg
@@ -1,5 +1,7 @@
-<svg xmlns="http://www.w3.org/2000/svg">
- <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml">
+ <metadata>
+ <h:link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+ </metadata>
<style>
text {
font-size: 50px;
diff --git a/tests/wpt/tests/svg/text/scripted/getcharnumatposition.html b/tests/wpt/tests/svg/text/scripted/getcharnumatposition.html
index f17369b3742..15f5dc68737 100644
--- a/tests/wpt/tests/svg/text/scripted/getcharnumatposition.html
+++ b/tests/wpt/tests/svg/text/scripted/getcharnumatposition.html
@@ -26,47 +26,53 @@ function newPoint(x, y) {
return p;
}
-test(() => {
- const element = document.querySelector('#htb');
- assert_equals(element.getNumberOfChars(), 3);
- const start = 40;
- assert_equals(element.getCharNumAtPosition(newPoint(start - 10, 100)), -1);
- assert_equals(element.getCharNumAtPosition(newPoint(start + 10, 100)), 0);
- assert_equals(element.getCharNumAtPosition(newPoint(start + 30, 100)), 1);
- assert_equals(element.getCharNumAtPosition(newPoint(start + 50, 100)), 2);
- assert_equals(element.getCharNumAtPosition(newPoint(start + 70, 100)), -1);
-}, 'horizontal-tb');
+setup({ explicit_done: true });
-test(() => {
- const element = document.querySelector('#vlr');
- assert_equals(element.getNumberOfChars(), 3);
- const start = 120;
- assert_equals(element.getCharNumAtPosition(newPoint(40, start - 10)), -1);
- assert_equals(element.getCharNumAtPosition(newPoint(40, start + 10)), 0);
- assert_equals(element.getCharNumAtPosition(newPoint(40, start + 30)), 1);
- assert_equals(element.getCharNumAtPosition(newPoint(40, start + 50)), 2);
- assert_equals(element.getCharNumAtPosition(newPoint(40, start + 70)), -1);
-}, 'virtical-lr');
+document.fonts.ready.then(() => {
+ test(() => {
+ const element = document.querySelector('#htb');
+ assert_equals(element.getNumberOfChars(), 3);
+ const start = 40;
+ assert_equals(element.getCharNumAtPosition(newPoint(start - 10, 100)), -1);
+ assert_equals(element.getCharNumAtPosition(newPoint(start + 10, 100)), 0);
+ assert_equals(element.getCharNumAtPosition(newPoint(start + 30, 100)), 1);
+ assert_equals(element.getCharNumAtPosition(newPoint(start + 50, 100)), 2);
+ assert_equals(element.getCharNumAtPosition(newPoint(start + 70, 100)), -1);
+ }, 'horizontal-tb');
-test(() => {
- const element = document.querySelector('#vrl');
- assert_equals(element.getNumberOfChars(), 3);
- const start = 120;
- assert_equals(element.getCharNumAtPosition(newPoint(80, start - 10)), -1);
- assert_equals(element.getCharNumAtPosition(newPoint(80, start + 10)), 0);
- assert_equals(element.getCharNumAtPosition(newPoint(80, start + 30)), 1);
- assert_equals(element.getCharNumAtPosition(newPoint(80, start + 50)), 2);
- assert_equals(element.getCharNumAtPosition(newPoint(80, start + 70)), -1);
-}, 'virtical-rl');
+ test(() => {
+ const element = document.querySelector('#vlr');
+ assert_equals(element.getNumberOfChars(), 3);
+ const start = 120;
+ assert_equals(element.getCharNumAtPosition(newPoint(40, start - 10)), -1);
+ assert_equals(element.getCharNumAtPosition(newPoint(40, start + 10)), 0);
+ assert_equals(element.getCharNumAtPosition(newPoint(40, start + 30)), 1);
+ assert_equals(element.getCharNumAtPosition(newPoint(40, start + 50)), 2);
+ assert_equals(element.getCharNumAtPosition(newPoint(40, start + 70)), -1);
+ }, 'vertical-lr');
-test(() => {
- const element = document.querySelector('#srl');
- assert_equals(element.getNumberOfChars(), 3);
- const start = 200;
- assert_equals(element.getCharNumAtPosition(newPoint(80, start - 10)), -1);
- assert_equals(element.getCharNumAtPosition(newPoint(80, start + 10)), 0);
- assert_equals(element.getCharNumAtPosition(newPoint(80, start + 30)), 1);
- assert_equals(element.getCharNumAtPosition(newPoint(80, start + 50)), 2);
- assert_equals(element.getCharNumAtPosition(newPoint(80, start + 70)), -1);
-}, 'sideways-rl');
+ test(() => {
+ const element = document.querySelector('#vrl');
+ assert_equals(element.getNumberOfChars(), 3);
+ const start = 120;
+ assert_equals(element.getCharNumAtPosition(newPoint(80, start - 10)), -1);
+ assert_equals(element.getCharNumAtPosition(newPoint(80, start + 10)), 0);
+ assert_equals(element.getCharNumAtPosition(newPoint(80, start + 30)), 1);
+ assert_equals(element.getCharNumAtPosition(newPoint(80, start + 50)), 2);
+ assert_equals(element.getCharNumAtPosition(newPoint(80, start + 70)), -1);
+ }, 'vertical-rl');
+
+ test(() => {
+ const element = document.querySelector('#srl');
+ assert_equals(element.getNumberOfChars(), 3);
+ const start = 200;
+ assert_equals(element.getCharNumAtPosition(newPoint(80, start - 10)), -1);
+ assert_equals(element.getCharNumAtPosition(newPoint(80, start + 10)), 0);
+ assert_equals(element.getCharNumAtPosition(newPoint(80, start + 30)), 1);
+ assert_equals(element.getCharNumAtPosition(newPoint(80, start + 50)), 2);
+ assert_equals(element.getCharNumAtPosition(newPoint(80, start + 70)), -1);
+ }, 'sideways-rl');
+
+ done();
+});
</script>
diff --git a/tests/wpt/tests/tools/serve/serve.py b/tests/wpt/tests/tools/serve/serve.py
index 8343a54bcd0..8788a991e42 100644
--- a/tests/wpt/tests/tools/serve/serve.py
+++ b/tests/wpt/tests/tools/serve/serve.py
@@ -997,10 +997,10 @@ def start_servers(logger, host, ports, paths, routes, bind_address, config,
init_func = {
"http": start_http_server,
- "http-private": start_http_server,
+ "http-local": start_http_server,
"http-public": start_http_server,
"https": start_https_server,
- "https-private": start_https_server,
+ "https-local": start_https_server,
"https-public": start_https_server,
"h2": start_http2_server,
"ws": start_ws_server,
@@ -1238,10 +1238,10 @@ class ConfigBuilder(config.ConfigBuilder):
"server_host": None,
"ports": {
"http": [8000, "auto"],
- "http-private": ["auto"],
+ "http-local": ["auto"],
"http-public": ["auto"],
"https": [8443, 8444],
- "https-private": ["auto"],
+ "https-local": ["auto"],
"https-public": ["auto"],
"ws": ["auto"],
"wss": ["auto"],
diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browser.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browser.py
index 7b34fcc9544..da39c3b9b81 100644
--- a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browser.py
+++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browser.py
@@ -1,4 +1,4 @@
-from typing import Any, Mapping, MutableMapping
+from typing import Any, Mapping, MutableMapping, Optional
from ._module import BidiModule, command
@@ -27,8 +27,19 @@ class Browser(BidiModule):
return result["clientWindows"]
@command
- def create_user_context(self) -> Mapping[str, Any]:
- return {}
+ def create_user_context(
+ self, accept_insecure_certs: Optional[bool] = None,
+ proxy: Optional[Mapping[str, Any]] = None
+ ) -> Mapping[str, Any]:
+ params: MutableMapping[str, Any] = {}
+
+ if accept_insecure_certs is not None:
+ params["acceptInsecureCerts"] = accept_insecure_certs
+
+ if proxy is not None:
+ params["proxy"] = proxy
+
+ return params
@create_user_context.result
def _create_user_context(self, result: Mapping[str, Any]) -> Any:
diff --git a/tests/wpt/tests/tools/wpt/run.py b/tests/wpt/tests/tools/wpt/run.py
index 5ad9d544e4a..3eee16da2d6 100644
--- a/tests/wpt/tests/tools/wpt/run.py
+++ b/tests/wpt/tests/tools/wpt/run.py
@@ -513,6 +513,9 @@ class Chrome(BrowserSetup):
if kwargs["enable_webtransport_h3"] is None:
# To start the WebTransport over HTTP/3 test server.
kwargs["enable_webtransport_h3"] = True
+ elif browser_channel is not None:
+ # browser_channel is not set when running WPT in chromium
+ kwargs["enable_experimental"] = False
if os.getenv("TASKCLUSTER_ROOT_URL"):
# We are on Taskcluster, where our Docker container does not have
# enough capabilities to run Chrome with sandboxing. (gh-20133)
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/android_webview.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/android_webview.py
index c796be18a73..d336efe049f 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/android_webview.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/android_webview.py
@@ -86,17 +86,9 @@ class SystemWebViewShell(ChromeAndroidBrowserBase):
``wptrunner.webdriver.ChromeDriverServer``.
"""
- def __init__(self, logger, binary, webdriver_binary="chromedriver",
- adb_binary=None,
- device_serial=None,
- webdriver_args=None,
- stackwalk_binary=None,
- symbols_path=None):
+ def __init__(self, logger, *, binary=None, **kwargs):
"""Creates a new representation of Chrome. The `binary` argument gives
the browser binary to use for testing."""
- super().__init__(logger,
- webdriver_binary, adb_binary,
- device_serial, webdriver_args, stackwalk_binary,
- symbols_path)
+ super().__init__(logger, **kwargs)
self.binary = binary
self.wptserver_ports = _wptserve_ports
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/base.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/base.py
index fee8895ef3a..3e4b516c440 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/base.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/base.py
@@ -103,8 +103,12 @@ class Browser:
init_timeout: float = 30
- def __init__(self, logger: StructuredLogger):
+ def __init__(self, logger: StructuredLogger, *, manager_number: int, **kwargs: Any):
+ if kwargs:
+ logger.warning(f"Browser.__init__ kwargs: {kwargs!r}")
+ super().__init__()
self.logger = logger
+ self.manager_number = manager_number
def setup(self) -> None:
"""Used for browser-specific setup that happens at the start of a test run"""
@@ -167,9 +171,6 @@ class Browser:
class NullBrowser(Browser):
- def __init__(self, logger: StructuredLogger, **kwargs: Any):
- super().__init__(logger)
-
def start(self, group_metadata: GroupMetadata, **kwargs: Any) -> None:
"""No-op browser to use in scenarios where the TestRunnerManager shouldn't
actually own the browser process (e.g. Servo where we start one browser
@@ -305,7 +306,7 @@ class WebDriverBrowser(Browser):
env: Optional[Mapping[str, str]] = None,
supports_pac: bool = True,
**kwargs: Any):
- super().__init__(logger)
+ super().__init__(logger, **kwargs)
if webdriver_binary is None:
raise ValueError("WebDriver server binary must be given "
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py
index 24723734211..a817568493a 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py
@@ -140,13 +140,14 @@ def executor_kwargs(logger, test_type, test_environment, run_info_data, subsuite
# require local CDP access.
chrome_options["args"].append("--remote-debugging-pipe")
- # Classify `http-private`, `http-public` and https variants in the
+ # Classify `http-local`, `http-public` and https variants in the
# appropriate IP address spaces.
# For more details, see: https://github.com/web-platform-tests/rfcs/blob/master/rfcs/address_space_overrides.md
+ # and https://github.com/explainers-by-googlers/local-network-access
address_space_overrides_ports = [
- ("http-private", "private"),
+ ("http-local", "local"),
("http-public", "public"),
- ("https-private", "private"),
+ ("https-local", "local"),
("https-public", "public"),
]
address_space_overrides_arg = ",".join(
@@ -174,16 +175,26 @@ def executor_kwargs(logger, test_type, test_environment, run_info_data, subsuite
# https://chromium.googlesource.com/chromium/src/+/HEAD/docs/gpu/swiftshader.md
chrome_options["args"].extend(["--use-gl=angle", "--use-angle=swiftshader", "--enable-unsafe-swiftshader"])
- if kwargs["enable_experimental"]:
- chrome_options["args"].extend(["--enable-experimental-web-platform-features"])
-
# Copy over any other flags that were passed in via `--binary-arg` or the
# subsuite config.
binary_args = kwargs.get("binary_args", []) + subsuite.config.get("binary_args", [])
for arg in binary_args:
+ if arg == "--stable-release-mode":
+ continue
if arg not in chrome_options["args"]:
chrome_options["args"].append(arg)
+ # Enable experimental features based on stable release mode setting. It is
+ # unfortunately that we need to do this based on a content shell specific
+ # setting, we choose to do this because we can not dynamically set
+ # enable-experimental in run_wpt_tests.py.
+ if kwargs["enable_experimental"] is None and "--stable-release-mode" not in binary_args:
+ chrome_options["args"].extend(["--enable-experimental-web-platform-features",
+ "--enable-blink-test-features"])
+
+ # Upstream CI should always explicitly enable/disable experimental features.
+ if kwargs["enable_experimental"]:
+ chrome_options["args"].extend(["--enable-experimental-web-platform-features"])
# Pass the --headless=new flag to Chrome if WPT's own --headless flag was
# set. '--headless' should always mean the new headless mode, as the old
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome_android.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome_android.py
index 4ed7707c3be..2b3ffe53f9a 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome_android.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome_android.py
@@ -121,18 +121,15 @@ class LogcatRunner:
class ChromeAndroidBrowserBase(WebDriverBrowser):
def __init__(self,
logger,
- webdriver_binary="chromedriver",
+ *,
adb_binary=None,
device_serial=None,
- webdriver_args=None,
stackwalk_binary=None,
- symbols_path=None):
- super().__init__(logger,
- binary=None,
- webdriver_binary=webdriver_binary,
- webdriver_args=webdriver_args,)
+ symbols_path=None,
+ **kwargs):
+ super().__init__(logger, **kwargs)
self.adb_binary = adb_binary or "adb"
- self.device_serial = device_serial
+ self.device_serial = device_serial[self.manager_number]
self.stackwalk_binary = stackwalk_binary
self.symbols_path = symbols_path
self.logcat_runner = LogcatRunner(self.logger, self)
@@ -210,16 +207,7 @@ class ChromeAndroidBrowser(ChromeAndroidBrowserBase):
``wptrunner.webdriver.ChromeDriverServer``.
"""
- def __init__(self, logger, package_name,
- webdriver_binary="chromedriver",
- adb_binary=None,
- device_serial=None,
- webdriver_args=None,
- stackwalk_binary=None,
- symbols_path=None):
- super().__init__(logger,
- webdriver_binary, adb_binary,
- device_serial, webdriver_args, stackwalk_binary,
- symbols_path)
+ def __init__(self, logger, *, package_name, **kwargs):
+ super().__init__(logger, **kwargs)
self.package_name = package_name
self.wptserver_ports = _wptserve_ports
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox.py
index c63bfa2ceeb..f8629878213 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox.py
@@ -107,11 +107,8 @@ def check_args(**kwargs):
def browser_kwargs(logger, test_type, run_info_data, config, subsuite, **kwargs):
browser_kwargs = {"binary": kwargs["binary"],
"package_name": None,
- "webdriver_binary": kwargs["webdriver_binary"],
- "webdriver_args": kwargs["webdriver_args"].copy(),
"prefs_root": kwargs["prefs_root"],
"extra_prefs": kwargs["extra_prefs"].copy(),
- "test_type": test_type,
"debug_info": kwargs["debug_info"],
"symbols_path": kwargs["symbols_path"],
"stackwalk_binary": kwargs["stackwalk_binary"],
@@ -120,22 +117,35 @@ def browser_kwargs(logger, test_type, run_info_data, config, subsuite, **kwargs)
"e10s": kwargs["gecko_e10s"],
"disable_fission": kwargs["disable_fission"],
"stackfix_dir": kwargs["stackfix_dir"],
- "binary_args": kwargs["binary_args"].copy(),
- "timeout_multiplier": get_timeout_multiplier(test_type, run_info_data, **kwargs),
"leak_check": run_info_data["debug"] and (kwargs["leak_check"] is not False),
"asan": run_info_data.get("asan"),
"chaos_mode_flags": kwargs["chaos_mode_flags"],
"config": config,
"browser_channel": kwargs["browser_channel"],
"headless": kwargs["headless"],
- "preload_browser": kwargs["preload_browser"] and not kwargs["pause_after_test"] and not kwargs["num_test_groups"] == 1,
- "specialpowers_path": kwargs["specialpowers_path"],
"allow_list_paths": kwargs["allow_list_paths"],
"gmp_path": kwargs["gmp_path"] if "gmp_path" in kwargs else None,
"debug_test": kwargs["debug_test"]}
- if test_type == "wdspec" and kwargs["binary"]:
- browser_kwargs["webdriver_args"].extend(["--binary", kwargs["binary"]])
- browser_kwargs["binary_args"].extend(subsuite.config.get("binary_args", []))
+
+ if test_type == "wdspec":
+ browser_kwargs["webdriver_binary"] = kwargs["webdriver_binary"]
+ browser_kwargs["webdriver_args"] = kwargs["webdriver_args"].copy()
+
+ if kwargs["binary"]:
+ browser_kwargs["webdriver_args"].extend(["--binary", kwargs["binary"]])
+
+ else:
+ browser_kwargs["binary_args"] = kwargs["binary_args"].copy()
+ browser_kwargs["binary_args"].extend(subsuite.config.get("binary_args", []))
+ browser_kwargs["preload_browser"] = (
+ kwargs["preload_browser"] and
+ not kwargs["pause_after_test"] and
+ not kwargs["num_test_groups"] == 1
+ )
+ browser_kwargs["specialpowers_path"] = kwargs["specialpowers_path"]
+ browser_kwargs["test_type"] = test_type
+ browser_kwargs["timeout_multiplier"] = get_timeout_multiplier(test_type, run_info_data, **kwargs)
+
browser_kwargs["extra_prefs"].extend(subsuite.config.get("prefs", []))
return browser_kwargs
@@ -823,9 +833,7 @@ class FirefoxBrowser(Browser):
browser_channel="nightly", headless=None, preload_browser=False,
specialpowers_path=None, debug_test=False, allow_list_paths=None,
gmp_path=None, **kwargs):
- Browser.__init__(self, logger)
-
- self.logger = logger
+ super().__init__(logger, **kwargs)
if timeout_multiplier:
self.init_timeout = self.init_timeout * timeout_multiplier
@@ -931,7 +939,7 @@ class FirefoxWdSpecBrowser(WebDriverBrowser):
headless=None, debug_test=False, profile_creator_cls=ProfileCreator,
allow_list_paths=None, gmp_path=None, **kwargs):
- super().__init__(logger, binary, webdriver_binary, webdriver_args)
+ super().__init__(logger, binary, webdriver_binary, webdriver_args, **kwargs)
self.binary = binary
self.package_name = package_name
self.webdriver_binary = webdriver_binary
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py
index 32a82d7ccc4..7bb2e57d417 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py
@@ -47,35 +47,42 @@ def check_args(**kwargs):
def browser_kwargs(logger, test_type, run_info_data, config, **kwargs):
- return {"adb_binary": kwargs["adb_binary"],
- "webdriver_binary": kwargs["webdriver_binary"],
- "webdriver_args": kwargs["webdriver_args"].copy(),
- "binary": None,
- "package_name": kwargs["package_name"],
- "device_serial": kwargs["device_serial"],
- "prefs_root": kwargs["prefs_root"],
- "extra_prefs": kwargs["extra_prefs"].copy(),
- "test_type": test_type,
- "debug_info": kwargs["debug_info"],
- "symbols_path": kwargs["symbols_path"],
- "stackwalk_binary": kwargs["stackwalk_binary"],
- "certutil_binary": kwargs["certutil_binary"],
- "ca_certificate_path": config.ssl_config["ca_cert_path"],
- "stackfix_dir": kwargs["stackfix_dir"],
- "binary_args": kwargs["binary_args"].copy(),
- "timeout_multiplier": get_timeout_multiplier(test_type,
- run_info_data,
- **kwargs),
- "disable_fission": kwargs["disable_fission"],
- # desktop only
- "leak_check": False,
- "chaos_mode_flags": kwargs["chaos_mode_flags"],
- "config": config,
- "install_fonts": kwargs["install_fonts"],
- "tests_root": config.doc_root,
- "specialpowers_path": kwargs["specialpowers_path"],
- "debug_test": kwargs["debug_test"],
- "env_extras": dict([x.split('=') for x in kwargs.get("env", [])])}
+ browser_kwargs = {"adb_binary": kwargs["adb_binary"],
+ "package_name": kwargs["package_name"],
+ "device_serial": kwargs["device_serial"],
+ "prefs_root": kwargs["prefs_root"],
+ "extra_prefs": kwargs["extra_prefs"].copy(),
+ "debug_info": kwargs["debug_info"],
+ "symbols_path": kwargs["symbols_path"],
+ "stackwalk_binary": kwargs["stackwalk_binary"],
+ "certutil_binary": kwargs["certutil_binary"],
+ "ca_certificate_path": config.ssl_config["ca_cert_path"],
+ "stackfix_dir": kwargs["stackfix_dir"],
+ "disable_fission": kwargs["disable_fission"],
+ # desktop only
+ "leak_check": False,
+ "chaos_mode_flags": kwargs["chaos_mode_flags"],
+ "config": config,
+ "debug_test": kwargs["debug_test"],
+ }
+
+ if test_type == "wdspec":
+ browser_kwargs["webdriver_binary"] = kwargs["webdriver_binary"]
+ browser_kwargs["webdriver_args"] = kwargs["webdriver_args"].copy()
+ browser_kwargs["binary"] = None
+
+ else:
+ browser_kwargs["test_type"] = test_type
+ browser_kwargs["binary_args"] = kwargs["binary_args"].copy()
+ browser_kwargs["timeout_multiplier"] = get_timeout_multiplier(test_type,
+ run_info_data,
+ **kwargs)
+ browser_kwargs["install_fonts"] = kwargs["install_fonts"]
+ browser_kwargs["tests_root"] = config.doc_root
+ browser_kwargs["specialpowers_path"] = kwargs["specialpowers_path"]
+ browser_kwargs["env_extras"] = dict([x.split('=') for x in kwargs.get("env", [])])
+
+ return browser_kwargs
def executor_kwargs(logger, test_type, test_environment, run_info_data,
@@ -160,7 +167,7 @@ class ProfileCreator(FirefoxProfileCreator):
@staticmethod
def default_prefs():
- return {"fission.disableSessionHistoryInParent": True}
+ return {"fission.disableSessionHistoryInParent": False}
def _set_required_prefs(self, profile):
profile.set_preferences({
@@ -207,13 +214,13 @@ class FirefoxAndroidBrowser(Browser):
binary_args=None, timeout_multiplier=None, leak_check=False, asan=False,
chaos_mode_flags=None, config=None, browser_channel="nightly",
install_fonts=False, tests_root=None, specialpowers_path=None, adb_binary=None,
- debug_test=False, disable_fission=False, **kwargs):
+ debug_test=False, disable_fission=False, env_extras=None, **kwargs):
- super().__init__(logger)
+ super().__init__(logger, **kwargs)
self.prefs_root = prefs_root
self.test_type = test_type
self.package_name = package_name
- self.device_serial = device_serial
+ self.device_serial = device_serial[self.manager_number]
self.debug_info = debug_info
self.symbols_path = symbols_path
self.stackwalk_binary = stackwalk_binary
@@ -249,7 +256,7 @@ class FirefoxAndroidBrowser(Browser):
self.marionette_port = None
self.profile = None
self.runner = None
- self.env_extras = kwargs["env_extras"]
+ self.env_extras = env_extras
self._settings = {}
def settings(self, test):
@@ -372,29 +379,14 @@ class FirefoxAndroidBrowser(Browser):
class FirefoxAndroidWdSpecBrowser(FirefoxWdSpecBrowser):
- def __init__(self, logger, prefs_root, webdriver_binary, webdriver_args,
- extra_prefs=None, debug_info=None, symbols_path=None, stackwalk_binary=None,
- certutil_binary=None, ca_certificate_path=None,
- disable_fission=False, stackfix_dir=None, leak_check=False,
- asan=False, chaos_mode_flags=None, config=None,
- browser_channel="nightly", headless=None, debug_test=None,
- binary=None, package_name="org.mozilla.geckoview.test_runner", device_serial=None,
- adb_binary=None, profile_creator_cls=ProfileCreator, **kwargs):
-
- super().__init__(logger, None, package_name, prefs_root, webdriver_binary, webdriver_args,
- extra_prefs=extra_prefs, debug_info=debug_info, symbols_path=symbols_path,
- stackwalk_binary=stackwalk_binary, certutil_binary=certutil_binary,
- ca_certificate_path=ca_certificate_path,
- disable_fission=disable_fission, stackfix_dir=stackfix_dir,
- leak_check=leak_check, asan=asan,
- chaos_mode_flags=chaos_mode_flags, config=config,
- browser_channel=browser_channel, headless=headless,
- debug_test=debug_test, profile_creator_cls=profile_creator_cls, **kwargs)
+ def __init__(self, logger, config=None, device_serial=None, adb_binary=None, **kwargs):
+
+ super().__init__(logger, config=config, **kwargs)
self.config = config
- self.device_serial = device_serial
+ self.device_serial = device_serial[self.manager_number]
# This is just to support the same adb lookup as for other test types
- context = get_app_context("fennec")(adb_path=adb_binary, device_serial=device_serial)
+ context = get_app_context("fennec")(adb_path=adb_binary, device_serial=self.device_serial)
self.device = context.get_device(context.adb, self.device_serial)
def start(self, group_metadata, **kwargs):
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/safari.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/safari.py
index 44d289c7e34..fc3cc1138b3 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/safari.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/safari.py
@@ -146,24 +146,19 @@ class SafariBrowser(WebDriverBrowser):
"""Safari is backed by safaridriver, which is supplied through
``wptrunner.webdriver.SafariDriverServer``.
"""
- def __init__(self, logger, binary=None, webdriver_binary=None, webdriver_args=None,
- port=None, env=None, kill_safari=False, **kwargs):
+ def __init__(self, logger, kill_safari=False, **kwargs):
"""Creates a new representation of Safari. The `webdriver_binary`
argument gives the WebDriver binary to use for testing. (The browser
binary location cannot be specified, as Safari and SafariDriver are
coupled.) If `kill_safari` is True, then `Browser.stop` will stop Safari."""
super().__init__(logger,
- binary,
- webdriver_binary,
- webdriver_args=webdriver_args,
- port=None,
supports_pac=False,
- env=env)
+ **kwargs)
- if "/" not in webdriver_binary:
- wd_path = which(webdriver_binary)
+ if "/" not in self.webdriver_binary:
+ wd_path = which(self.webdriver_binary)
else:
- wd_path = webdriver_binary
+ wd_path = self.webdriver_binary
self.safari_path = self._find_safari_executable(wd_path)
logger.debug("WebDriver executable path: %s" % wd_path)
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/sauce.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/sauce.py
index 465aac6e497..6df7c848f02 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/sauce.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/sauce.py
@@ -222,7 +222,7 @@ class SauceBrowser(Browser):
init_timeout = 300
def __init__(self, logger, sauce_config, **kwargs):
- Browser.__init__(self, logger)
+ super().__init__(logger, **kwargs)
self.sauce_config = sauce_config
def start(self, **kwargs):
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/servodriver.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/servodriver.py
index 7121e1dafcc..5011a8fd859 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/servodriver.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/servodriver.py
@@ -6,8 +6,7 @@ import tempfile
from tools.serve.serve import make_hosts_file
from .base import (WebDriverBrowser,
- require_arg,
- get_free_port)
+ require_arg)
from .base import get_timeout_multiplier # noqa: F401
from ..executors import executor_kwargs as base_executor_kwargs
from ..executors.base import WdspecExecutor # noqa: F401
@@ -85,7 +84,6 @@ class ServoWebDriverBrowser(WebDriverBrowser):
server_config=None, binary_args=None,
user_stylesheets=None, headless=None, **kwargs):
hosts_path = write_hosts_file(server_config)
- port = get_free_port()
env = os.environ.copy()
env["HOST_FILE"] = hosts_path
env["RUST_BACKTRACE"] = "1"
@@ -95,7 +93,6 @@ class ServoWebDriverBrowser(WebDriverBrowser):
args = [
"--hard-fail",
- "--webdriver=%s" % port,
"-u", "Servo/wptrunner",
# See https://github.com/servo/servo/issues/30080.
# For some reason rustls does not like the certificate generated by the WPT tooling.
@@ -115,11 +112,14 @@ class ServoWebDriverBrowser(WebDriverBrowser):
if headless:
args += ["--headless"]
- WebDriverBrowser.__init__(self, env=env, logger=logger, host=webdriver_host, port=port,
- supports_pac=False, webdriver_binary=binary, webdriver_args=args,
- binary=binary)
+ super().__init__(logger, binary=binary, webdriver_binary=binary,
+ webdriver_args=args, host=webdriver_host, env=env,
+ supports_pac=False, **kwargs)
self.hosts_path = hosts_path
+ def make_command(self):
+ return [self.webdriver_binary, f"--webdriver={self.port}"] + self.webdriver_args
+
def cleanup(self):
- WebDriverBrowser.cleanup(self)
+ super().cleanup()
os.remove(self.hosts_path)
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/wktr.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/wktr.py
index d65f35ccb33..467a7034ed7 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/wktr.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/wktr.py
@@ -82,7 +82,7 @@ class WKTRBrowser(Browser):
"""
def __init__(self, logger, binary="WebKitTestRunner", binary_args=[], **kwargs):
- super().__init__(logger)
+ super().__init__(logger, **kwargs)
self._args = [binary] + binary_args
self._proc = None
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/environment.py b/tests/wpt/tests/tools/wptrunner/wptrunner/environment.py
index 868ed8f91e3..4b2ddfd9978 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/environment.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/environment.py
@@ -188,10 +188,10 @@ class TestEnvironment:
ports = {
"http": [8000, 8001],
- "http-private": [8002],
+ "http-local": [8002],
"http-public": [8003],
"https": [8443, 8444],
- "https-private": [8445],
+ "https-local": [8445],
"https-public": [8446],
"ws": [8888],
"wss": [8889],
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/base.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/base.py
index 26a0483b658..76d703e7829 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/base.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/base.py
@@ -494,6 +494,11 @@ class RefTestImplementation:
lhs = Image.open(io.BytesIO(base64.b64decode(screenshots[0]))).convert("RGB")
rhs = Image.open(io.BytesIO(base64.b64decode(screenshots[1]))).convert("RGB")
+ if lhs.size != rhs.size:
+ self.logger.info(
+ f"Images differ in size; {urls[0]} is {lhs.size}, {urls[1]} is {rhs.size}" +
+ ("" if page_idx is None else f" on page {page_idx + 1}")
+ )
self.check_if_solid_color(lhs, urls[0])
self.check_if_solid_color(rhs, urls[1])
diff = ImageChops.difference(lhs, rhs)
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py
index 08bc02cbc3c..93b26a73c83 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py
@@ -47,6 +47,7 @@ from .protocol import (AccessibilityProtocolPart,
DevicePostureProtocolPart,
VirtualPressureSourceProtocolPart,
DisplayFeaturesProtocolPart,
+ WebExtensionsProtocolPart,
merge_dicts)
@@ -738,6 +739,24 @@ class MarionetteDisplayFeaturesProtocolPart(DisplayFeaturesProtocolPart):
def clear_display_features(self):
raise NotImplementedError("clear_display_features not yet implemented")
+
+class MarionetteWebExtensionsProtocolPart(WebExtensionsProtocolPart):
+ def setup(self):
+ self.addons = Addons(self.parent.marionette)
+
+ def install_web_extension(self, extension):
+ if extension["type"] == "base64":
+ extension_id = self.addons.install(data=extension["value"], temp=True)
+ else:
+ path = self.parent.test_dir + extension["path"]
+ extension_id = self.addons.install(path, temp=True)
+
+ return {'extension': extension_id}
+
+ def uninstall_web_extension(self, extension_id):
+ return self.addons.uninstall(extension_id)
+
+
class MarionetteProtocol(Protocol):
implements = [MarionetteBaseProtocolPart,
MarionetteTestharnessProtocolPart,
@@ -761,7 +780,8 @@ class MarionetteProtocol(Protocol):
MarionetteVirtualSensorProtocolPart,
MarionetteDevicePostureProtocolPart,
MarionetteVirtualPressureSourceProtocolPart,
- MarionetteDisplayFeaturesProtocolPart]
+ MarionetteDisplayFeaturesProtocolPart,
+ MarionetteWebExtensionsProtocolPart]
def __init__(self, executor, browser, capabilities=None, timeout_multiplier=1, e10s=True, ccov=False):
do_delayed_imports()
@@ -955,6 +975,10 @@ class MarionetteTestharnessExecutor(TestharnessExecutor):
self.protocol.testharness.load_runner(new_environment["protocol"])
def do_test(self, test):
+ # TODO: followup to do this properly, pass test as state on the CallbackHandler:
+ # https://phabricator.services.mozilla.com/D244400?id=1030480#inline-1369921
+ self.protocol.test_dir = os.path.dirname(test.path)
+
timeout = (test.timeout * self.timeout_multiplier if self.debug_info is None
else None)
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
index 7ca46a05a7b..6bed90369b1 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
@@ -405,7 +405,7 @@ class WebDriverClickProtocolPart(ClickProtocolPart):
self.webdriver = self.parent.webdriver
def element(self, element):
- self.logger.info("click " + repr(element))
+ self.logger.debug("click " + repr(element))
return element.click()
@@ -414,15 +414,15 @@ class WebDriverCookiesProtocolPart(CookiesProtocolPart):
self.webdriver = self.parent.webdriver
def delete_all_cookies(self):
- self.logger.info("Deleting all cookies")
+ self.logger.debug("Deleting all cookies")
return self.webdriver.send_session_command("DELETE", "cookie")
def get_all_cookies(self):
- self.logger.info("Getting all cookies")
+ self.logger.debug("Getting all cookies")
return self.webdriver.send_session_command("GET", "cookie")
def get_named_cookie(self, name):
- self.logger.info("Getting cookie named %s" % name)
+ self.logger.debug("Getting cookie named %s" % name)
try:
return self.webdriver.send_session_command("GET", "cookie/%s" % name)
except webdriver_error.NoSuchCookieException:
@@ -434,15 +434,15 @@ class WebDriverWindowProtocolPart(WindowProtocolPart):
self.webdriver = self.parent.webdriver
def minimize(self):
- self.logger.info("Minimizing")
+ self.logger.debug("Minimizing")
return self.webdriver.window.minimize()
def set_rect(self, rect):
- self.logger.info("Restoring")
+ self.logger.debug("Restoring")
self.webdriver.window.rect = rect
def get_rect(self):
- self.logger.info("Getting rect")
+ self.logger.debug("Getting rect")
return self.webdriver.window.rect
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py
index 6b9a0de9bb2..af32f487c95 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py
@@ -335,6 +335,21 @@ class AccessibilityProtocolPart(ProtocolPart):
pass
+class WebExtensionsProtocolPart(ProtocolPart):
+ """Protocol part for managing WebExtensions"""
+ __metaclass__ = ABCMeta
+
+ name = "web_extensions"
+
+ @abstractmethod
+ def install_web_extension(self, extension):
+ pass
+
+ @abstractmethod
+ def uninstall_web_extension(self, extension_id):
+ pass
+
+
class BidiBluetoothProtocolPart(ProtocolPart):
"""Protocol part for managing BiDi events"""
__metaclass__ = ABCMeta
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/formatters/wptreport.py b/tests/wpt/tests/tools/wptrunner/wptrunner/formatters/wptreport.py
index 5919631ab71..600d45dfc26 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/formatters/wptreport.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/formatters/wptreport.py
@@ -26,8 +26,8 @@ class WptreportFormatter(BaseFormatter): # type: ignore
self.results = {}
def suite_start(self, data):
- self.results['run_info'] = data.get('run_info', {})
- self.results['time_start'] = data['time']
+ self.results["run_info"] = data.get("run_info", {})
+ self.results["time_start"] = data["time"]
self.results["results"] = []
self.results["subsuites"] = {}
@@ -35,7 +35,7 @@ class WptreportFormatter(BaseFormatter): # type: ignore
self.results["subsuites"][data["name"]] = data.get("run_info", {})
def suite_end(self, data):
- self.results['time_end'] = data['time']
+ self.results["time_end"] = data["time"]
for subsuite, results in self.raw_results.items():
for test_name, result in results.items():
result["test"] = test_name
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py b/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py
index 2c2da790e90..19c814bb6c9 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py
@@ -1,6 +1,8 @@
# mypy: allow-untyped-defs
+import random
import threading
+import time
import traceback
from queue import Empty
from collections import namedtuple, defaultdict
@@ -340,7 +342,8 @@ class TestRunnerManager(threading.Thread):
test_implementations, stop_flag, retry_index=0, rerun=1,
pause_after_test=False, pause_on_unexpected=False,
restart_on_unexpected=True, debug_info=None,
- capture_stdio=True, restart_on_new_group=True, recording=None, max_restarts=5):
+ capture_stdio=True, restart_on_new_group=True, recording=None,
+ max_restarts=5, max_restart_backoff=0):
"""Thread that owns a single TestRunner process and any processes required
by the TestRunner (e.g. the Firefox binary).
@@ -359,21 +362,7 @@ class TestRunnerManager(threading.Thread):
self.suite_name = suite_name
self.manager_number = index
self.test_implementation_key = None
-
- self.test_implementations = {}
- for key, test_implementation in test_implementations.items():
- browser_kwargs = test_implementation.browser_kwargs
- if browser_kwargs.get("device_serial"):
- browser_kwargs = browser_kwargs.copy()
- # Assign Android device to runner according to current manager index
- browser_kwargs["device_serial"] = browser_kwargs["device_serial"][index]
- self.test_implementations[key] = TestImplementation(
- test_implementation.executor_cls,
- test_implementation.executor_kwargs,
- test_implementation.browser_cls,
- browser_kwargs)
- else:
- self.test_implementations[key] = test_implementation
+ self.test_implementations = test_implementations
# Flags used to shut down this thread if we get a sigint
self.parent_stop_flag = stop_flag
@@ -391,6 +380,7 @@ class TestRunnerManager(threading.Thread):
self.capture_stdio = capture_stdio
self.restart_on_new_group = restart_on_new_group
self.max_restarts = max_restarts
+ self.max_restart_backoff = max_restart_backoff
assert recording is not None
self.recording = recording
@@ -595,6 +585,12 @@ class TestRunnerManager(threading.Thread):
if self.state.failure_count > self.max_restarts:
self.logger.critical("Max restarts exceeded")
return RunnerManagerState.error()
+ elif self.state.failure_count > 0 and self.max_restart_backoff:
+ # Subtract one so we start with 2**0 (i.e., 1)
+ base_backoff = min(self.max_restart_backoff, 2**(self.state.failure_count-1))
+ used_backoff = base_backoff + random.uniform(0, 1)
+ self.logger.info(f"Waiting {used_backoff:.2f}s before restarting browser")
+ time.sleep(used_backoff)
if (self.state.subsuite, self.state.test_type) != self.test_implementation_key:
if self.browser is not None:
@@ -602,6 +598,7 @@ class TestRunnerManager(threading.Thread):
self.browser.browser.cleanup()
impl = self.test_implementations[(self.state.subsuite, self.state.test_type)]
browser = impl.browser_cls(self.logger,
+ manager_number=self.manager_number,
**impl.browser_kwargs)
browser.setup()
self.browser = BrowserManager(self.logger,
@@ -1049,7 +1046,8 @@ class ManagerGroup:
capture_stdio=True,
restart_on_new_group=True,
recording=None,
- max_restarts=5):
+ max_restarts=5,
+ max_restart_backoff=0):
self.suite_name = suite_name
self.test_queue_builder = test_queue_builder
self.test_implementations = test_implementations
@@ -1064,6 +1062,7 @@ class ManagerGroup:
self.recording = recording
assert recording is not None
self.max_restarts = max_restarts
+ self.max_restart_backoff = max_restart_backoff
self.pool = set()
self.stop_flag = None
@@ -1096,7 +1095,8 @@ class ManagerGroup:
self.capture_stdio,
self.restart_on_new_group,
recording=self.recording,
- max_restarts=self.max_restarts)
+ max_restarts=self.max_restarts,
+ max_restart_backoff=self.max_restart_backoff)
manager.start()
self.pool.add(manager)
self.wait()
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/tests/browsers/test_base.py b/tests/wpt/tests/tools/wptrunner/wptrunner/tests/browsers/test_base.py
index a3d804336e1..f7bc6ea774d 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/tests/browsers/test_base.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/tests/browsers/test_base.py
@@ -35,7 +35,7 @@ def test_logging_immediate_exit():
with mock.patch.object(base, "wait_for_service", side_effect=CustomException):
browser = base.WebDriverBrowser(
- logger, webdriver_binary="echo", webdriver_args=["sample output"]
+ logger, manager_number=0, webdriver_binary="echo", webdriver_args=["sample output"]
)
try:
with pytest.raises(CustomException):
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/wptcommandline.py b/tests/wpt/tests/tools/wptrunner/wptrunner/wptcommandline.py
index 7bfeef31717..813af1efd61 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/wptcommandline.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/wptcommandline.py
@@ -69,6 +69,10 @@ scheme host and port.""")
help="Number of simultaneous processes to use")
parser.add_argument("--max-restarts", type=int, default=5,
help="Maximum number of browser restart retries")
+ parser.add_argument("--max-restart-backoff", type=int, default=0,
+ help="Increase duration between restart retries exponentially "
+ "until reaching this maximum number of seconds (zero will "
+ "always restart immediately)")
parser.add_argument("--no-capture-stdio", action="store_true",
help="Don't capture stdio and write to logging")
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/wptrunner.py b/tests/wpt/tests/tools/wptrunner/wptrunner/wptrunner.py
index 40a9aec8de1..15f017d870e 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/wptrunner.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/wptrunner.py
@@ -313,6 +313,7 @@ def run_test_iteration(test_status, test_loader, test_queue_builder,
kwargs["restart_on_new_group"],
recording=recording,
max_restarts=kwargs["max_restarts"],
+ max_restart_backoff=kwargs["max_restart_backoff"],
) as manager_group:
try:
handle_interrupt_signals()
diff --git a/tests/wpt/tests/tools/wptserve/wptserve/server.py b/tests/wpt/tests/tools/wptserve/wptserve/server.py
index 18638615425..ba68339190d 100644
--- a/tests/wpt/tests/tools/wptserve/wptserve/server.py
+++ b/tests/wpt/tests/tools/wptserve/wptserve/server.py
@@ -1,6 +1,7 @@
# mypy: allow-untyped-defs
import errno
+import http
import http.server
import os
import socket
@@ -342,6 +343,34 @@ class BaseWebTestRequestHandler(http.server.BaseHTTPRequestHandler):
self.setup()
return
+ def log_request(self, code="-", size="-"):
+ if isinstance(code, http.HTTPStatus):
+ code = code.value
+
+ self.logger.debug(
+ "{} - - [{}] {!r} {!s} {!s}".format(
+ self.address_string(),
+ self.log_date_time_string(),
+ self.requestline,
+ code,
+ size,
+ )
+ )
+
+ def log_error(self, format, *args):
+ self.logger.error(
+ "{} - - [{}] {}".format(
+ self.address_string(), self.log_date_time_string(), format % args
+ )
+ )
+
+ def log_message(self, format, *args):
+ self.logger.info(
+ "{} - - [{}] {}".format(
+ self.address_string(), self.log_date_time_string(), format % args
+ )
+ )
+
class Http2WebTestRequestHandler(BaseWebTestRequestHandler):
protocol_version = "HTTP/2.0"
diff --git a/tests/wpt/tests/wasm/core/js/binary.wast.js b/tests/wpt/tests/wasm/core/js/binary.wast.js
index d47a29e2e9d..468d0ba0a99 100644
--- a/tests/wpt/tests/wasm/core/js/binary.wast.js
+++ b/tests/wpt/tests/wasm/core/js/binary.wast.js
@@ -396,18 +396,18 @@ assert_malformed("\x00\x61\x73\x6d\x01\x00\x00\x00\x06\x01\x00\x05\x01\x00");
assert_malformed("\x00\x61\x73\x6d\x01\x00\x00\x00\x07\x01\x00\x06\x01\x00");
// binary.wast:1351
-assert_malformed("\x00\x61\x73\x6d\x01\x00\x00\x00\x03\x02\x01\x00\x08\x01\x00\x07\x01\x00");
+assert_malformed("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x08\x01\x00\x07\x01\x00");
-// binary.wast:1362
-assert_malformed("\x00\x61\x73\x6d\x01\x00\x00\x00\x03\x02\x01\x00\x09\x01\x00\x08\x01\x00");
+// binary.wast:1363
+assert_malformed("\x00\x61\x73\x6d\x01\x00\x00\x00\x01\x04\x01\x60\x00\x00\x03\x02\x01\x00\x09\x01\x00\x08\x01\x00");
-// binary.wast:1373
+// binary.wast:1375
assert_malformed("\x00\x61\x73\x6d\x01\x00\x00\x00\x0c\x01\x01\x09\x01\x00");
-// binary.wast:1383
+// binary.wast:1385
assert_malformed("\x00\x61\x73\x6d\x01\x00\x00\x00\x0a\x01\x00\x0c\x01\x01");
-// binary.wast:1393
+// binary.wast:1395
assert_malformed("\x00\x61\x73\x6d\x01\x00\x00\x00\x0b\x01\x00\x0a\x01\x00");
reinitializeRegistry();
})();
diff --git a/tests/wpt/tests/wasm/core/js/data.wast.js b/tests/wpt/tests/wasm/core/js/data.wast.js
index 4e1ad56ef75..88b519538de 100644
--- a/tests/wpt/tests/wasm/core/js/data.wast.js
+++ b/tests/wpt/tests/wasm/core/js/data.wast.js
@@ -1,186 +1,186 @@
(function data_wast_js() {
// data.wast:5
-let $1 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\xa3\x81\x80\x80\x00\x18\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63");
+let $1 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\xb3\x81\x80\x80\x00\x1c\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x01\x00\x01\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x00\x41\x00\x0b\x00\x00\x41\x01\x0b\x04\x61\x62\x63\x64\x00\x41\x00\x0b\x00\x00\x41\x00\x0b\x03\x61\x62\x63\x01\x00\x01\x04\x61\x62\x63\x64");
-// data.wast:35
+// data.wast:39
let $2 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x01\x61");
-// data.wast:39
+// data.wast:43
let $3 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x01\x61");
-// data.wast:44
+// data.wast:48
let $4 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\xa2\x80\x80\x80\x00\x05\x00\x41\x00\x0b\x01\x61\x00\x41\x03\x0b\x01\x62\x00\x41\xe4\x00\x0b\x03\x63\x64\x65\x00\x41\x05\x0b\x01\x78\x00\x41\x03\x0b\x01\x63");
-// data.wast:52
+// data.wast:56
let $5 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x01\x0b\xa7\x80\x80\x80\x00\x06\x00\x41\x00\x0b\x01\x61\x00\x41\x01\x0b\x01\x62\x00\x41\x02\x0b\x03\x63\x64\x65\x00\x41\x03\x0b\x01\x66\x00\x41\x02\x0b\x01\x67\x00\x41\x01\x0b\x01\x68");
-// data.wast:62
+// data.wast:66
let $6 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x98\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x0a\x67\x6c\x6f\x62\x61\x6c\x5f\x69\x33\x32\x03\x7f\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x01\x61");
-// data.wast:67
+// data.wast:71
let $7 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\xab\x80\x80\x80\x00\x02\x08\x73\x70\x65\x63\x74\x65\x73\x74\x0a\x67\x6c\x6f\x62\x61\x6c\x5f\x69\x33\x32\x03\x7f\x00\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x01\x61");
-// data.wast:73
+// data.wast:77
let $8 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x98\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x0a\x67\x6c\x6f\x62\x61\x6c\x5f\x69\x33\x32\x03\x7f\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x01\x61");
-// data.wast:78
+// data.wast:82
let $9 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\xab\x80\x80\x80\x00\x02\x08\x73\x70\x65\x63\x74\x65\x73\x74\x0a\x67\x6c\x6f\x62\x61\x6c\x5f\x69\x33\x32\x03\x7f\x00\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x01\x61");
-// data.wast:84
+// data.wast:88
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x06\x86\x80\x80\x80\x00\x01\x7f\x00\x41\x00\x0b\x0b\x87\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x01\x61");
-// data.wast:88
+// data.wast:92
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x06\x86\x80\x80\x80\x00\x01\x7f\x00\x41\x00\x0b\x0b\x87\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x01\x61");
-// data.wast:96
+// data.wast:100
let $10 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x8f\x80\x80\x80\x00\x02\x00\x41\x00\x0b\x01\x61\x00\x41\xff\xff\x03\x0b\x01\x62");
-// data.wast:101
+// data.wast:105
let $11 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x01\x0b\x8f\x80\x80\x80\x00\x02\x00\x41\x00\x0b\x01\x61\x00\x41\xff\xff\x03\x0b\x01\x62");
-// data.wast:107
+// data.wast:111
let $12 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x02\x0b\x89\x80\x80\x80\x00\x01\x00\x41\xff\xff\x07\x0b\x01\x61");
-// data.wast:112
+// data.wast:116
let $13 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x00\x0b\x86\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x00");
-// data.wast:116
+// data.wast:120
let $14 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x00\x0b\x86\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x00");
-// data.wast:121
+// data.wast:125
let $15 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x84\x80\x80\x80\x00\x01\x01\x00\x00\x0b\x86\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x00");
-// data.wast:126
+// data.wast:130
let $16 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x88\x80\x80\x80\x00\x01\x00\x41\x80\x80\x04\x0b\x00");
-// data.wast:131
+// data.wast:135
let $17 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x00\x0b\x86\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x00");
-// data.wast:135
+// data.wast:139
let $18 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x00\x0b\x86\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x00");
-// data.wast:140
+// data.wast:144
let $19 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x84\x80\x80\x80\x00\x01\x01\x00\x00\x0b\x86\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x00");
-// data.wast:145
+// data.wast:149
let $20 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x00\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x01\x61");
-// data.wast:150
+// data.wast:154
let $21 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x95\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x01\x00\x03\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x01\x61");
-// data.wast:155
+// data.wast:159
let $22 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\xab\x80\x80\x80\x00\x02\x08\x73\x70\x65\x63\x74\x65\x73\x74\x0a\x67\x6c\x6f\x62\x61\x6c\x5f\x69\x33\x32\x03\x7f\x00\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x00\x0b\x87\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x01\x61");
-// data.wast:161
+// data.wast:165
let $23 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\xac\x80\x80\x80\x00\x02\x08\x73\x70\x65\x63\x74\x65\x73\x74\x0a\x67\x6c\x6f\x62\x61\x6c\x5f\x69\x33\x32\x03\x7f\x00\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x01\x00\x03\x0b\x87\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x01\x61");
-// data.wast:167
+// data.wast:171
let $24 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x00\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x01\x0b\x01\x61");
-// data.wast:172
+// data.wast:176
let $25 = instance("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x95\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x01\x00\x03\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x01\x0b\x01\x61");
-// data.wast:179
+// data.wast:183
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x00\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x01\x61");
-// data.wast:187
+// data.wast:191
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x84\x80\x80\x80\x00\x01\x01\x00\x00\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x01\x61");
-// data.wast:195
+// data.wast:199
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x84\x80\x80\x80\x00\x01\x01\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x01\x61");
-// data.wast:202
+// data.wast:206
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x00\x0b\x86\x80\x80\x80\x00\x01\x00\x41\x01\x0b\x00");
-// data.wast:209
+// data.wast:213
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x84\x80\x80\x80\x00\x01\x01\x00\x01\x0b\x86\x80\x80\x80\x00\x01\x00\x41\x01\x0b\x00");
-// data.wast:226
+// data.wast:230
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x98\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x0a\x67\x6c\x6f\x62\x61\x6c\x5f\x69\x33\x32\x03\x7f\x00\x05\x83\x80\x80\x80\x00\x01\x00\x00\x0b\x87\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x01\x61");
-// data.wast:235
+// data.wast:239
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x84\x80\x80\x80\x00\x01\x01\x01\x02\x0b\x89\x80\x80\x80\x00\x01\x00\x41\x80\x80\x04\x0b\x01\x61");
-// data.wast:242
+// data.wast:246
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x01\x0b\x89\x80\x80\x80\x00\x01\x00\x41\x80\x80\x04\x0b\x01\x61");
-// data.wast:250
+// data.wast:254
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x02\x0b\x89\x80\x80\x80\x00\x01\x00\x41\x80\x80\x08\x0b\x01\x61");
-// data.wast:258
+// data.wast:262
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x84\x80\x80\x80\x00\x01\x01\x02\x03\x0b\x89\x80\x80\x80\x00\x01\x00\x41\x80\x80\x08\x0b\x01\x61");
-// data.wast:266
+// data.wast:270
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x7f\x0b\x01\x61");
-// data.wast:273
+// data.wast:277
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x7f\x0b\x01\x61");
-// data.wast:281
+// data.wast:285
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x02\x0b\x88\x80\x80\x80\x00\x01\x00\x41\x9c\x7f\x0b\x01\x61");
-// data.wast:288
+// data.wast:292
assert_uninstantiable("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x08\x73\x70\x65\x63\x74\x65\x73\x74\x06\x6d\x65\x6d\x6f\x72\x79\x02\x00\x01\x0b\x88\x80\x80\x80\x00\x01\x00\x41\x9c\x7f\x0b\x01\x61");
-// data.wast:298
+// data.wast:302
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x0b\x86\x80\x80\x80\x00\x01\x00\x41\x00\x0b\x00");
-// data.wast:306
+// data.wast:310
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x03\x01\x00\x00\x0b\x07\x01\x02\x01\x41\x00\x0b\x00");
-// data.wast:319
+// data.wast:323
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x0b\x06\x01\x00\x41\x00\x0b\x00");
-// data.wast:330
+// data.wast:334
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x0b\x07\x01\x02\x01\x41\x00\x0b\x00");
-// data.wast:342
+// data.wast:346
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x03\x01\x00\x00\x0b\x45\x01\x02\x01\x41\x00\x0b\x3e\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d");
-// data.wast:364
+// data.wast:368
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x0b\x45\x01\x02\x01\x41\x00\x0b\x3e\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d");
-// data.wast:383
+// data.wast:387
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x86\x80\x80\x80\x00\x01\x00\x42\x00\x0b\x00");
-// data.wast:391
+// data.wast:395
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x86\x80\x80\x80\x00\x01\x00\xd0\x70\x0b\x00");
-// data.wast:399
+// data.wast:403
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x84\x80\x80\x80\x00\x01\x00\x0b\x00");
-// data.wast:407
+// data.wast:411
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x88\x80\x80\x80\x00\x01\x00\x41\x00\x41\x00\x0b\x00");
-// data.wast:415
+// data.wast:419
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x04\x74\x65\x73\x74\x0a\x67\x6c\x6f\x62\x61\x6c\x2d\x69\x33\x32\x03\x7f\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x88\x80\x80\x80\x00\x01\x00\x23\x00\x23\x00\x0b\x00");
-// data.wast:424
+// data.wast:428
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x04\x74\x65\x73\x74\x0a\x67\x6c\x6f\x62\x61\x6c\x2d\x69\x33\x32\x03\x7f\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x88\x80\x80\x80\x00\x01\x00\x23\x00\x41\x00\x0b\x00");
-// data.wast:433
+// data.wast:437
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x00\x68\x0b\x00");
-// data.wast:441
+// data.wast:445
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x85\x80\x80\x80\x00\x01\x00\x01\x0b\x00");
-// data.wast:449
+// data.wast:453
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x01\x41\x00\x0b\x00");
-// data.wast:457
+// data.wast:461
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x87\x80\x80\x80\x00\x01\x00\x41\x00\x01\x0b\x00");
-// data.wast:465
+// data.wast:469
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x8b\x80\x80\x80\x00\x01\x04\x74\x65\x73\x74\x01\x67\x03\x7f\x01\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x86\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x00");
-// data.wast:474
+// data.wast:478
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x86\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x00");
-// data.wast:482
+// data.wast:486
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x94\x80\x80\x80\x00\x01\x04\x74\x65\x73\x74\x0a\x67\x6c\x6f\x62\x61\x6c\x2d\x69\x33\x32\x03\x7f\x00\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x86\x80\x80\x80\x00\x01\x00\x23\x01\x0b\x00");
-// data.wast:491
+// data.wast:495
assert_invalid("\x00\x61\x73\x6d\x01\x00\x00\x00\x02\x98\x80\x80\x80\x00\x01\x04\x74\x65\x73\x74\x0e\x67\x6c\x6f\x62\x61\x6c\x2d\x6d\x75\x74\x2d\x69\x33\x32\x03\x7f\x01\x05\x83\x80\x80\x80\x00\x01\x00\x01\x0b\x86\x80\x80\x80\x00\x01\x00\x23\x00\x0b\x00");
reinitializeRegistry();
})();
diff --git a/tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/accept_insecure_certs.py b/tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/accept_insecure_certs.py
new file mode 100644
index 00000000000..10e98febfbb
--- /dev/null
+++ b/tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/accept_insecure_certs.py
@@ -0,0 +1,14 @@
+import pytest
+
+from .. import get_user_context_ids
+
+pytestmark = pytest.mark.asyncio
+
+
+@pytest.mark.parametrize("accept_insecure_certs", [True, False])
+async def test_create_context(bidi_session, create_user_context,
+ accept_insecure_certs):
+ user_context = await create_user_context(
+ accept_insecure_certs=accept_insecure_certs)
+ # TODO: check the parameter is respected.
+ assert user_context in await get_user_context_ids(bidi_session)
diff --git a/tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/invalid.py b/tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/invalid.py
new file mode 100644
index 00000000000..9af6cdd5232
--- /dev/null
+++ b/tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/invalid.py
@@ -0,0 +1,68 @@
+import pytest
+
+import webdriver.bidi.error as error
+
+pytestmark = pytest.mark.asyncio
+
+
+# Even though the user context is not expected to be created, if the user agent
+# under the test does not support the parameter, the validation will not fail
+# and unexpected user context will be created and will not be closed. Using
+# `create_user_context` fixture guarantees the mistakenly created user context
+# is destroyed.
+
+@pytest.mark.parametrize("value", [42, "foo", {}, []])
+async def test_accept_insecure_certs_invalid_type(create_user_context, value):
+ with pytest.raises(error.InvalidArgumentException):
+ await create_user_context(accept_insecure_certs=value)
+
+
+@pytest.mark.parametrize("value", [False, 42, "foo", []])
+async def test_proxy_invalid_type(create_user_context, value):
+ with pytest.raises(error.InvalidArgumentException):
+ await create_user_context(
+ proxy=value)
+
+
+@pytest.mark.parametrize("value", [{}])
+async def test_proxy_invalid_value(create_user_context, value):
+ with pytest.raises(error.InvalidArgumentException):
+ await create_user_context(
+ proxy=value)
+
+
+@pytest.mark.parametrize("value", [False, 42, {}, []])
+async def test_proxy_proxy_type_invalid_type(create_user_context, value):
+ with pytest.raises(error.InvalidArgumentException):
+ await create_user_context(
+ proxy={
+ "proxyType": value
+ })
+
+
+async def test_proxy_proxy_type_invalid_value(create_user_context):
+ with pytest.raises(error.InvalidArgumentException):
+ await create_user_context(
+ proxy={
+ "proxyType": "SOME_UNKNOWN_TYPE"
+ })
+
+
+async def test_proxy_proxy_type_manual_socks_version_without_socks_proxy(
+ create_user_context):
+ with pytest.raises(error.InvalidArgumentException):
+ await create_user_context(
+ proxy={
+ "proxyType": "manual",
+ "socksVersion": 0
+ })
+
+
+async def test_proxy_proxy_type_manual_socks_proxy_without_socks_version(
+ create_user_context):
+ with pytest.raises(error.InvalidArgumentException):
+ await create_user_context(
+ proxy={
+ "proxyType": "manual",
+ "socksProxy": "127.0.0.1:1080"
+ })
diff --git a/tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/proxy.py b/tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/proxy.py
new file mode 100644
index 00000000000..fb59228e090
--- /dev/null
+++ b/tests/wpt/tests/webdriver/tests/bidi/browser/create_user_context/proxy.py
@@ -0,0 +1,74 @@
+import pytest
+
+from .. import get_user_context_ids
+
+pytestmark = pytest.mark.asyncio
+
+
+@pytest.fixture
+def create_user_context_with_proxy(bidi_session, create_user_context):
+ async def create_user_context_with_proxy(proxy):
+ user_context = await create_user_context(proxy=proxy)
+
+ assert user_context in await get_user_context_ids(bidi_session)
+
+ return user_context
+
+ return create_user_context_with_proxy
+
+
+async def test_system(create_user_context_with_proxy):
+ await create_user_context_with_proxy({
+ "proxyType": "system"
+ })
+ # TODO: check the proxy is actually set.
+
+
+async def test_autodetect(
+ create_user_context_with_proxy):
+ await create_user_context_with_proxy({
+ "proxyType": "autodetect"
+ })
+ # TODO: check the proxy is actually set.
+
+
+async def test_direct(create_user_context_with_proxy):
+ await create_user_context_with_proxy({
+ "proxyType": "direct"
+ })
+ # TODO: check the proxy is actually set.
+
+
+@pytest.mark.parametrize("ftpProxy", [None, "127.0.0.1:21"])
+@pytest.mark.parametrize("httpProxy", [None, "127.0.0.1:80"])
+@pytest.mark.parametrize("sslProxy", [None, "127.0.0.1:443"])
+@pytest.mark.parametrize("noProxy", [None, ["127.0.0.1"]])
+@pytest.mark.parametrize("socks", [None, {
+ "socksProxy": "127.0.0.1:1080",
+ "socksVersion": 5}])
+async def test_manual(create_user_context_with_proxy,
+ ftpProxy, httpProxy, sslProxy,
+ noProxy, socks):
+ proxy = {
+ "proxyType": "manual"
+ }
+
+ if ftpProxy is not None:
+ proxy["ftpProxy"] = ftpProxy
+
+ if httpProxy is not None:
+ proxy["httpProxy"] = httpProxy
+
+ if sslProxy is not None:
+ proxy["sslProxy"] = sslProxy
+
+ if noProxy is not None:
+ proxy["noProxy"] = noProxy
+
+ if socks is not None:
+ proxy.update(socks)
+
+ await create_user_context_with_proxy(proxy)
+ # TODO: check the proxy is actually set.
+
+# TODO: test "proxyType": "pac"
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_cached.py b/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_cached.py
index e8119d29d9e..6577b9fe08f 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_cached.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent_cached.py
@@ -105,7 +105,9 @@ async def test_page_with_cached_link_stylesheet(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events after reload, for the document and the stylesheet.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -172,7 +174,9 @@ async def test_page_with_cached_import_stylesheet(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events after reload, for the document and the stylesheet.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -264,7 +268,9 @@ async def test_page_with_cached_duplicated_stylesheets(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect three events after reload, for the document and the 2 stylesheets.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -338,7 +344,9 @@ async def test_page_with_cached_script_javascript(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events, one for the document and one for the javascript file.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -446,7 +454,9 @@ async def test_page_with_cached_javascript_module(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events, one for the document and one for the javascript module.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -548,7 +558,9 @@ async def test_page_with_cached_image(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events, one for the document and one for the image.
wait = AsyncPoll(bidi_session, timeout=2)
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/response_completed/response_completed_cached.py b/tests/wpt/tests/webdriver/tests/bidi/network/response_completed/response_completed_cached.py
index 2c7ea02d601..4c024f3c4bb 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/network/response_completed/response_completed_cached.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/response_completed/response_completed_cached.py
@@ -249,7 +249,9 @@ async def test_page_with_cached_link_stylesheet(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events after reload, for the document and the stylesheet.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -324,7 +326,9 @@ async def test_page_with_cached_import_stylesheet(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect three events after reload, for the document and the 2 stylesheets.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -418,7 +422,9 @@ async def test_page_with_cached_duplicated_stylesheets(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect three events after reload, for the document and the 2 stylesheets.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -491,7 +497,9 @@ async def test_page_with_cached_script_javascript(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events, one for the document and one for the javascript file.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -622,7 +630,9 @@ async def test_page_with_cached_javascript_module(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events, one for the document and one for the javascript module.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -727,7 +737,9 @@ async def test_page_with_cached_image(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events, one for the document and one for the image.
wait = AsyncPoll(bidi_session, timeout=2)
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/response_started/response_started_cached.py b/tests/wpt/tests/webdriver/tests/bidi/network/response_started/response_started_cached.py
index db34035fca1..2b7e25bcd9f 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/network/response_started/response_started_cached.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/response_started/response_started_cached.py
@@ -258,7 +258,9 @@ async def test_page_with_cached_link_stylesheet(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events after reload, for the document and the stylesheet.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -330,7 +332,9 @@ async def test_page_with_cached_import_stylesheet(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect three events after reload, for the document and the 2 stylesheets.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -427,7 +431,9 @@ async def test_page_with_cached_duplicated_stylesheets(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect three events after reload, for the document and the 2 stylesheets.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -506,7 +512,9 @@ async def test_page_with_cached_script_javascript(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events, one for the document and one for the javascript file.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -629,7 +637,9 @@ async def test_page_with_cached_javascript_module(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events, one for the document and one for the javascript module.
wait = AsyncPoll(bidi_session, timeout=2)
@@ -731,7 +741,9 @@ async def test_page_with_cached_image(
)
# Reload the page.
- await bidi_session.browsing_context.reload(context=top_context["context"])
+ await bidi_session.browsing_context.reload(
+ context=top_context["context"], wait="complete"
+ )
# Expect two events, one for the document and one for the image.
wait = AsyncPoll(bidi_session, timeout=2)
diff --git a/tests/wpt/tests/webdriver/tests/classic/new_session/merge.py b/tests/wpt/tests/webdriver/tests/classic/new_session/merge.py
index 4d36926fd3f..32991b322a0 100644
--- a/tests/wpt/tests/webdriver/tests/classic/new_session/merge.py
+++ b/tests/wpt/tests/webdriver/tests/classic/new_session/merge.py
@@ -41,42 +41,61 @@ def test_merge_invalid(new_session, add_browser_capabilities, key, value):
def test_merge_platform_name(new_session, add_browser_capabilities, target_platform):
+ always_match = add_browser_capabilities({})
+
+ if "platformName" in always_match:
+ platform_name = always_match.pop("platformName")
+ else:
+ platform_name = target_platform
+
+ # Remove pageLoadStrategy so we can use it to validate the merging of the firstMatch
+ # capabilities, and guarantee platformName isn't simply ignored.
+ if "pageLoadStrategy" in always_match:
+ del always_match["pageLoadStrategy"]
+
response, _ = new_session({"capabilities": {
- "alwaysMatch": add_browser_capabilities({"timeouts": {"script": 10}}),
+ "alwaysMatch": always_match,
"firstMatch": [{
- "platformName": target_platform.upper(),
+ "platformName": platform_name.upper(),
"pageLoadStrategy": "none",
}, {
- "platformName": target_platform,
+ "platformName": platform_name,
"pageLoadStrategy": "eager",
}]}})
value = assert_success(response)
- assert value["capabilities"]["platformName"] == target_platform
+ assert value["capabilities"]["platformName"] == platform_name
assert value["capabilities"]["pageLoadStrategy"] == "eager"
def test_merge_browserName(new_session, add_browser_capabilities):
- response, _ = new_session(
- {"capabilities": {"alwaysMatch": add_browser_capabilities({})}})
- value = assert_success(response)
+ always_match = add_browser_capabilities({})
+
+ if "browserName" in always_match:
+ browser_name = always_match.pop("browserName")
+ else:
+ response, _ = new_session(
+ {"capabilities": {"alwaysMatch": always_match}})
+ value = assert_success(response)
+ browser_name = value["capabilities"]["browserName"]
- browser_settings = {
- "browserName": value["capabilities"]["browserName"],
- "browserVersion": value["capabilities"]["browserVersion"],
- }
+ # Remove pageLoadStrategy so we can use it to validate the merging of the firstMatch
+ # capabilities, and guarantee browserName isn't simply ignored.
+ if "pageLoadStrategy" in always_match:
+ del always_match["pageLoadStrategy"]
response, _ = new_session({"capabilities": {
- "alwaysMatch": add_browser_capabilities({"timeouts": {"script": 10}}),
+ "alwaysMatch": always_match,
"firstMatch": [{
- "browserName": browser_settings["browserName"] + "invalid",
+ "browserName": browser_name + "invalid",
"pageLoadStrategy": "none",
}, {
- "browserName": browser_settings["browserName"],
+ "browserName": browser_name,
"pageLoadStrategy": "eager",
}]}}, delete_existing_session=True)
+
value = assert_success(response)
- assert value["capabilities"]["browserName"] == browser_settings['browserName']
+ assert value["capabilities"]["browserName"] == browser_name
assert value["capabilities"]["pageLoadStrategy"] == "eager"
diff --git a/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py b/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py
index 0996821cfef..9942f729f65 100644
--- a/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py
+++ b/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py
@@ -499,9 +499,11 @@ async def create_user_context(bidi_session):
user_contexts = []
- async def create_user_context():
+ async def create_user_context(accept_insecure_certs=None, proxy=None):
nonlocal user_contexts
- user_context = await bidi_session.browser.create_user_context()
+ user_context = await bidi_session.browser.create_user_context(
+ accept_insecure_certs=accept_insecure_certs, proxy=proxy
+ )
user_contexts.append(user_context)
return user_context
diff --git a/tests/wpt/tests/webnn/conformance_tests/abs.https.any.js b/tests/wpt/tests/webnn/conformance_tests/abs.https.any.js
index de6a5761df4..ea4370c84dc 100644
--- a/tests/wpt/tests/webnn/conformance_tests/abs.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/abs.https.any.js
@@ -591,6 +591,34 @@ const absTests = [
}
}
}
+ },
+
+ // int64 tests
+ {
+ 'name': 'abs int64 4D tensor',
+ 'graph': {
+ 'inputs': {
+ 'absInput': {
+ 'data': [
+ // int64 range: [/* -(2**63) */ –9223372036854775808,
+ // /* 2**63 - 1 */ 92233720368547758087]
+ BigInt(-(2**63)) + 1n, -100n, 0n, 100n, BigInt(2**63) - 1n
+ ],
+ 'descriptor': {shape: [1, 1, 1, 5], dataType: 'int64'}
+ }
+ },
+ 'operators': [{
+ 'name': 'abs',
+ 'arguments': [{'input': 'absInput'}],
+ 'outputs': 'absOutput'
+ }],
+ 'expectedOutputs': {
+ 'absOutput': {
+ 'data': [BigInt(2**63) - 1n, 100n, 0n, 100n, BigInt(2**63) - 1n],
+ 'descriptor': {shape: [1, 1, 1, 5], dataType: 'int64'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/arg_min_max.https.any.js b/tests/wpt/tests/webnn/conformance_tests/arg_min_max.https.any.js
index e08a8cabd1a..f8e4d801056 100644
--- a/tests/wpt/tests/webnn/conformance_tests/arg_min_max.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/arg_min_max.https.any.js
@@ -767,6 +767,172 @@ const argMinMaxTests = [
}
},
+ {
+ 'name': 'argMin int8 4D tensor, axis=0, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMinInput': {
+ 'data': [
+ -128, -50, -5, -1, 0, 11, 50, 126, -127, -50, 0, 0, 1, 10, 50, 127
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'int8'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMin',
+ 'arguments': [
+ {'input': 'argMinInput'}, {'axis': 0},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int64'}}
+ ],
+ 'outputs': 'argMinOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMinOutput': {
+ 'data': [0n, 0n, 0n, 0n, 0n, 1n, 0n, 0n],
+ 'descriptor': {shape: [1, 2, 2, 2], dataType: 'int64'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'argMin uint8 4D tensor, axis=1, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMinInput': {
+ 'data': [
+ 0, 0, 254, 10, 1, 255, 1, 11, 21, 50, 128, 254, 20, 50, 127, 255
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'uint8'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMin',
+ 'arguments': [
+ {'input': 'argMinInput'}, {'axis': 1},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int32'}}
+ ],
+ 'outputs': 'argMinOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMinOutput': {
+ 'data': [0, 0, 1, 0, 1, 0, 1, 0],
+ 'descriptor': {shape: [2, 1, 2, 2], dataType: 'int32'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'argMin int32 4D tensor, axis=0, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMinInput': {
+ 'data': [
+ 3, -24, 5, -48, 40, 60, -82, -96, 71, 38, -39, 31,
+ -82, -96, -25, -16, 66, 82, -82, -96, 39, 42, 82, 85
+ ],
+ 'descriptor': {shape: [2, 1, 4, 3], dataType: 'int32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMin',
+ 'arguments': [
+ {'input': 'argMinInput'}, {'axis': 0},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int64'}}
+ ],
+ 'outputs': 'argMinOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMinOutput': {
+ 'data': [1n, 1n, 1n, 0n, 0n, 0n, 0n, 0n, 1n, 0n, 0n, 0n],
+ 'descriptor': {shape: [1, 1, 4, 3], dataType: 'int64'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'argMin uint32 4D tensor, axis=1, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMinInput': {
+ 'data': [
+ 0, 0, 254, 10, 1, 512, 1, 11, 21, 50, 128, 254, 20, 50, 127, 512
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'uint32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMin',
+ 'arguments': [
+ {'input': 'argMinInput'}, {'axis': 1},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int32'}}
+ ],
+ 'outputs': 'argMinOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMinOutput': {
+ 'data': [0, 0, 1, 0, 1, 0, 1, 0],
+ 'descriptor': {shape: [2, 1, 2, 2], dataType: 'int32'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'argMin int64 4D tensor, axis=0, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMinInput': {
+ 'data': [
+ 3n, -24n, 5n, -48n, 40n, 60n, -82n, 96n, 71n, 38n, -39n, 31n,
+ -82n, -96n, -25n, -16n, 66n, 82n, -82n, 96n, 39n, 42n, 82n, 85n
+ ],
+ 'descriptor': {shape: [2, 1, 4, 3], dataType: 'int64'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMin',
+ 'arguments': [
+ {'input': 'argMinInput'}, {'axis': 0},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int64'}}
+ ],
+ 'outputs': 'argMinOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMinOutput': {
+ 'data': [1n, 1n, 1n, 0n, 0n, 0n, 0n, 0n, 1n, 0n, 0n, 0n],
+ 'descriptor': {shape: [1, 1, 4, 3], dataType: 'int64'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'argMin uint64 4D tensor, axis=1, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMinInput': {
+ 'data': [
+ 0n, 0n, 254n, 10n, 1n, 512n, 1n, 11n,
+ 21n, 50n, 128n, 254n, 20n, 50n, 127n, 512n
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'uint64'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMin',
+ 'arguments': [
+ {'input': 'argMinInput'}, {'axis': 1},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int32'}}
+ ],
+ 'outputs': 'argMinOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMinOutput': {
+ 'data': [0, 0, 1, 0, 1, 0, 1, 0],
+ 'descriptor': {shape: [2, 1, 2, 2], dataType: 'int32'}
+ }
+ }
+ }
+ },
+
// argMax tests
{
'name': 'argMax float32 1D constant tensor, axis=0, default options',
@@ -1494,6 +1660,172 @@ const argMinMaxTests = [
}
}
},
+
+ {
+ 'name': 'argMax int8 4D tensor, axis=0, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMaxInput': {
+ 'data': [
+ -128, -50, -5, -1, 0, 11, 50, 126, -127, -50, 0, 0, 1, 10, 50, 127
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'int8'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMax',
+ 'arguments': [
+ {'input': 'argMaxInput'}, {'axis': 0},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int64'}}
+ ],
+ 'outputs': 'argMaxOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMaxOutput': {
+ 'data': [1n, 0n, 1n, 1n, 1n, 0n, 0n, 1n],
+ 'descriptor': {shape: [1, 2, 2, 2], dataType: 'int64'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'argMax uint8 4D tensor, axis=1, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMaxInput': {
+ 'data': [
+ 0, 0, 254, 10, 1, 255, 1, 11, 21, 50, 128, 254, 20, 50, 127, 255
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'uint8'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMax',
+ 'arguments': [
+ {'input': 'argMaxInput'}, {'axis': 1},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int32'}}
+ ],
+ 'outputs': 'argMaxOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMaxOutput': {
+ 'data': [1, 1, 0, 1, 0, 0, 0, 1],
+ 'descriptor': {shape: [2, 1, 2, 2], dataType: 'int32'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'argMax int32 4D tensor, axis=0, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMaxInput': {
+ 'data': [
+ 3, -24, 5, -48, 40, 60, -82, 96, 71, 38, -39, 31,
+ -82, -96, -25, -16, 66, 82, -82, 96, 39, 42, 82, 85
+ ],
+ 'descriptor': {shape: [2, 1, 4, 3], dataType: 'int32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMax',
+ 'arguments': [
+ {'input': 'argMaxInput'}, {'axis': 0},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int64'}}
+ ],
+ 'outputs': 'argMaxOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMaxOutput': {
+ 'data': [0n, 0n, 0n, 1n, 1n, 1n, 0n, 0n, 0n, 1n, 1n, 1n],
+ 'descriptor': {shape: [1, 1, 4, 3], dataType: 'int64'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'argMax uint32 4D tensor, axis=1, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMaxInput': {
+ 'data': [
+ 0, 0, 254, 10, 1, 512, 1, 11, 21, 50, 128, 254, 20, 50, 127, 512
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'uint32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMax',
+ 'arguments': [
+ {'input': 'argMaxInput'}, {'axis': 1},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int32'}}
+ ],
+ 'outputs': 'argMaxOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMaxOutput': {
+ 'data': [1, 1, 0, 1, 0, 0, 0, 1],
+ 'descriptor': {shape: [2, 1, 2, 2], dataType: 'int32'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'argMax int64 4D tensor, axis=0, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMaxInput': {
+ 'data': [
+ 3n, -24n, 5n, -48n, 40n, 60n, -82n, 96n, 71n, 38n, -39n, 31n,
+ -82n, -96n, -25n, -16n, 66n, 82n, -82n, 96n, 39n, 42n, 82n, 85n
+ ],
+ 'descriptor': {shape: [2, 1, 4, 3], dataType: 'int64'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMax',
+ 'arguments': [
+ {'input': 'argMaxInput'}, {'axis': 0},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int64'}}
+ ],
+ 'outputs': 'argMaxOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMaxOutput': {
+ 'data': [0n, 0n, 0n, 1n, 1n, 1n, 0n, 0n, 0n, 1n, 1n, 1n],
+ 'descriptor': {shape: [1, 1, 4, 3], dataType: 'int64'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'argMax uint64 4D tensor, axis=1, all options',
+ 'graph': {
+ 'inputs': {
+ 'argMaxInput': {
+ 'data': [
+ 0n, 0n, 254n, 10n, 1n, 512n, 1n, 11n,
+ 21n, 50n, 128n, 254n, 20n, 50n, 127n, 512n
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'uint64'}
+ }
+ },
+ 'operators': [{
+ 'name': 'argMax',
+ 'arguments': [
+ {'input': 'argMaxInput'}, {'axis': 1},
+ {'options': {'keepDimensions': true, 'outputDataType': 'int32'}}
+ ],
+ 'outputs': 'argMaxOutput'
+ }],
+ 'expectedOutputs': {
+ 'argMaxOutput': {
+ 'data': [1, 1, 0, 1, 0, 0, 0, 1],
+ 'descriptor': {shape: [2, 1, 2, 2], dataType: 'int32'}
+ }
+ }
+ }
+ }
];
if (navigator.ml) {
diff --git a/tests/wpt/tests/webnn/conformance_tests/expand.https.any.js b/tests/wpt/tests/webnn/conformance_tests/expand.https.any.js
index 2304cf9e9c9..821c9b83ec2 100644
--- a/tests/wpt/tests/webnn/conformance_tests/expand.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/expand.https.any.js
@@ -16,11 +16,8 @@
// MLOperand input, sequence<[EnforceRange] unsigned long> newShape);
-const getExpandPrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 0, float16: 0};
- const expectedDataType =
- getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs);
- return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
+const getExpandPrecisionTolerance = () => {
+ return {metricType: 'ULP', value: 0};
};
const expandTests = [
@@ -718,6 +715,621 @@ const expandTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'expand float16 0D scalar to 1D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [24]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 0D scalar to 2D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [4, 6]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 0D scalar to 3D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 3, 4]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 0D scalar to 4D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 2, 2, 3]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 0D scalar to 5D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 2, 3, 1, 2]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [2, 2, 3, 1, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 1D constant tensor to 1D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [1], dataType: 'float16'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [24]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 1D tensor to 1D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [24]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 1D tensor to 2D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [4, 6]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 1D tensor to 3D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 3, 4]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 1D tensor to 4D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 2, 2, 3]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 1D tensor to 5D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 2, 3, 1, 2]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [2, 2, 3, 1, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 2D tensor to 2D (1st dimension)',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data':
+ [10.8984375, -29.390625, -73.75, 22.453125, -97.5625, -76.9375],
+ 'descriptor': {shape: [1, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [4, 6]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ 10.8984375, -29.390625, -73.75, 22.453125, -97.5625, -76.9375,
+ 10.8984375, -29.390625, -73.75, 22.453125, -97.5625, -76.9375,
+ 10.8984375, -29.390625, -73.75, 22.453125, -97.5625, -76.9375,
+ 10.8984375, -29.390625, -73.75, 22.453125, -97.5625, -76.9375
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 2D tensor to 2D (2nd dimension)',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [4.96484375, 66.125, 75.3125, 50],
+ 'descriptor': {shape: [4, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [4, 6]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ 4.96484375, 4.96484375, 4.96484375, 4.96484375, 4.96484375,
+ 4.96484375, 66.125, 66.125, 66.125, 66.125,
+ 66.125, 66.125, 75.3125, 75.3125, 75.3125,
+ 75.3125, 75.3125, 75.3125, 50, 50,
+ 50, 50, 50, 50
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 2D tensor to 2D (all dimensions)',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [1, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [4, 6]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 2D tensor to 3D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [4.96484375, 66.125, 75.3125, 50],
+ 'descriptor': {shape: [4, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 4, 3]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ 4.96484375, 4.96484375, 4.96484375, 66.125, 66.125, 66.125,
+ 75.3125, 75.3125, 75.3125, 50, 50, 50,
+ 4.96484375, 4.96484375, 4.96484375, 66.125, 66.125, 66.125,
+ 75.3125, 75.3125, 75.3125, 50, 50, 50
+ ],
+ 'descriptor': {shape: [2, 4, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 2D tensor to 4D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data':
+ [10.8984375, -29.390625, -73.75, 22.453125, -97.5625, -76.9375],
+ 'descriptor': {shape: [1, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 1, 2, 6]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ 10.8984375, -29.390625, -73.75, 22.453125, -97.5625, -76.9375,
+ 10.8984375, -29.390625, -73.75, 22.453125, -97.5625, -76.9375,
+ 10.8984375, -29.390625, -73.75, 22.453125, -97.5625, -76.9375,
+ 10.8984375, -29.390625, -73.75, 22.453125, -97.5625, -76.9375
+ ],
+ 'descriptor': {shape: [2, 1, 2, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 2D tensor to 5D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [-6.4609375],
+ 'descriptor': {shape: [1, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 1, 3, 2, 2]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375, -6.4609375,
+ -6.4609375, -6.4609375, -6.4609375, -6.4609375
+ ],
+ 'descriptor': {shape: [2, 1, 3, 2, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 3D tensor to 3D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [21.6875, -72.8125],
+ 'descriptor': {shape: [1, 2, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 2, 6]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ 21.6875, 21.6875, 21.6875, 21.6875, 21.6875, 21.6875,
+ -72.8125, -72.8125, -72.8125, -72.8125, -72.8125, -72.8125,
+ 21.6875, 21.6875, 21.6875, 21.6875, 21.6875, 21.6875,
+ -72.8125, -72.8125, -72.8125, -72.8125, -72.8125, -72.8125
+ ],
+ 'descriptor': {shape: [2, 2, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 3D tensor to 4D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [21.6875, -72.8125],
+ 'descriptor': {shape: [1, 2, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 2, 2, 3]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ 21.6875, 21.6875, 21.6875, -72.8125, -72.8125, -72.8125,
+ 21.6875, 21.6875, 21.6875, -72.8125, -72.8125, -72.8125,
+ 21.6875, 21.6875, 21.6875, -72.8125, -72.8125, -72.8125,
+ 21.6875, 21.6875, 21.6875, -72.8125, -72.8125, -72.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 3D tensor to 5D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [21.6875, -72.8125],
+ 'descriptor': {shape: [1, 2, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 1, 2, 2, 3]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ 21.6875, 21.6875, 21.6875, -72.8125, -72.8125, -72.8125,
+ 21.6875, 21.6875, 21.6875, -72.8125, -72.8125, -72.8125,
+ 21.6875, 21.6875, 21.6875, -72.8125, -72.8125, -72.8125,
+ 21.6875, 21.6875, 21.6875, -72.8125, -72.8125, -72.8125
+ ],
+ 'descriptor': {shape: [2, 1, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 4D tensor to 4D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [12.796875, -26.546875],
+ 'descriptor': {shape: [2, 1, 1, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 3, 2, 2]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ 12.796875, 12.796875, 12.796875, 12.796875, 12.796875,
+ 12.796875, 12.796875, 12.796875, 12.796875, 12.796875,
+ 12.796875, 12.796875, -26.546875, -26.546875, -26.546875,
+ -26.546875, -26.546875, -26.546875, -26.546875, -26.546875,
+ -26.546875, -26.546875, -26.546875, -26.546875
+ ],
+ 'descriptor': {shape: [2, 3, 2, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'expand float16 4D tensor to 5D',
+ 'graph': {
+ 'inputs': {
+ 'expandInput': {
+ 'data': [12.796875, -26.546875],
+ 'descriptor': {shape: [2, 1, 1, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'expand',
+ 'arguments': [{'input': 'expandInput'}, {'newShape': [2, 2, 3, 1, 2]}],
+ 'outputs': 'expandOutput'
+ }],
+ 'expectedOutputs': {
+ 'expandOutput': {
+ 'data': [
+ 12.796875, 12.796875, 12.796875, 12.796875, 12.796875,
+ 12.796875, -26.546875, -26.546875, -26.546875, -26.546875,
+ -26.546875, -26.546875, 12.796875, 12.796875, 12.796875,
+ 12.796875, 12.796875, 12.796875, -26.546875, -26.546875,
+ -26.546875, -26.546875, -26.546875, -26.546875
+ ],
+ 'descriptor': {shape: [2, 2, 3, 1, 2], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/gather.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gather.https.any.js
index c3bb635bdce..f0b75e1cf41 100644
--- a/tests/wpt/tests/webnn/conformance_tests/gather.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/gather.https.any.js
@@ -20,11 +20,8 @@
// optional MLGatherOptions options = {});
-const getGatherPrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 0, float16: 0};
- const expectedDataType =
- getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs);
- return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
+const getGatherPrecisionTolerance = () => {
+ return {metricType: 'ULP', value: 0};
};
const gatherTests = [
@@ -962,6 +959,750 @@ const gatherTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name':
+ 'gather float16 1D tensor and uint32 0D scalar indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [4],
+ 'descriptor': {shape: [], dataType: 'uint32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput':
+ {'data': [89.0625], 'descriptor': {shape: [], dataType: 'float16'}}
+ }
+ }
+ },
+ {
+ 'name':
+ 'gather float16 1D tensor and int64 0D scalar indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [4],
+ 'descriptor': {shape: [], dataType: 'int64'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput':
+ {'data': [89.0625], 'descriptor': {shape: [], dataType: 'float16'}}
+ }
+ }
+ },
+ {
+ 'name':
+ 'gather float16 1D tensor and int32 0D scalar indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [4],
+ 'descriptor': {shape: [], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput':
+ {'data': [89.0625], 'descriptor': {shape: [], dataType: 'float16'}}
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 1D tensor and int32 1D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [16, 20, 6, 11, 17, 19, 13, 17],
+ 'descriptor': {shape: [8], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ 10.828125, 0.9130859375, 43.84375, -50.40625, -19.6875, 43.125,
+ 55.625, -19.6875
+ ],
+ 'descriptor': {shape: [8], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 1D tensor and int32 2D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [14, 9, 21, 17],
+ 'descriptor': {shape: [2, 2], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [44.90625, 41.9375, -7.69921875, -19.6875],
+ 'descriptor': {shape: [2, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 1D tensor and int32 3D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data':
+ [17, 19, 14, 16, 13, 0, 5, 15, 18, 18, 6, 20, 7, 22, 5, 1, 4, 19],
+ 'descriptor': {shape: [2, 3, 3], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ -19.6875, 43.125, 44.90625, 10.828125, 55.625, -66.0625, -45.90625,
+ 56.84375, -37.6875, -37.6875, 43.84375, 0.9130859375, 48.8125,
+ 25.765625, -45.90625, -68.9375, 89.0625, 43.125
+ ],
+ 'descriptor': {shape: [2, 3, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 1D tensor and int32 4D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [18, 18, 22, 11, 8, 15, 12, 11, 7, 13, 7, 7],
+ 'descriptor': {shape: [1, 2, 2, 3], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ -37.6875, -37.6875, 25.765625, -50.40625, 51.8125, 56.84375,
+ 90.3125, -50.40625, 48.8125, 55.625, 48.8125, 48.8125
+ ],
+ 'descriptor': {shape: [1, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 2D tensor and 0D scalar indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [12, 2], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [11],
+ 'descriptor': {shape: [], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [25.765625, 73.625],
+ 'descriptor': {shape: [2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 2D tensor and 1D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [12, 2], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [1, 10, 9, 0, 3, 5, 3, 8],
+ 'descriptor': {shape: [8], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ -77, -26.15625, 0.9130859375, -7.69921875, -37.6875, 43.125,
+ -66.0625, -68.9375, 43.84375, 48.8125, -1.1298828125, -50.40625,
+ 43.84375, 48.8125, 10.828125, -19.6875
+ ],
+ 'descriptor': {shape: [8, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 2D tensor and 2D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [12, 2], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [4, 8, 9, 10],
+ 'descriptor': {shape: [2, 2], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ 51.8125, 41.9375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875
+ ],
+ 'descriptor': {shape: [2, 2, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 2D tensor and 3D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [12, 2], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [8, 2, 2, 3, 4, 1, 2, 2, 7, 11, 4, 11, 6, 6, 7, 3, 11, 10],
+ 'descriptor': {shape: [2, 3, 3], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ 10.828125, -19.6875, 89.0625, -45.90625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -77, -26.15625, 89.0625, -45.90625, 89.0625,
+ -45.90625, 44.90625, 56.84375, 25.765625, 73.625,
+ 51.8125, 41.9375, 25.765625, 73.625, 90.3125,
+ 55.625, 90.3125, 55.625, 44.90625, 56.84375,
+ 43.84375, 48.8125, 25.765625, 73.625, 0.9130859375,
+ -7.69921875
+ ],
+ 'descriptor': {shape: [2, 3, 3, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 2D tensor and 4D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [12, 2], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [6, 9, 7, 3, 4, 7, 4, 3, 7, 7, 6, 0],
+ 'descriptor': {shape: [1, 2, 2, 3], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ 90.3125, 55.625, -37.6875, 43.125, 44.90625, 56.84375,
+ 43.84375, 48.8125, 51.8125, 41.9375, 44.90625, 56.84375,
+ 51.8125, 41.9375, 43.84375, 48.8125, 44.90625, 56.84375,
+ 44.90625, 56.84375, 90.3125, 55.625, -66.0625, -68.9375
+ ],
+ 'descriptor': {shape: [1, 2, 2, 3, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 3D tensor and 2D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [3, 4, 2], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [2, 1, 1, 1],
+ 'descriptor': {shape: [2, 2], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625,
+ 51.8125, 41.9375, -1.1298828125, -50.40625,
+ 90.3125, 55.625, 44.90625, 56.84375,
+ 51.8125, 41.9375, -1.1298828125, -50.40625,
+ 90.3125, 55.625, 44.90625, 56.84375,
+ 51.8125, 41.9375, -1.1298828125, -50.40625,
+ 90.3125, 55.625, 44.90625, 56.84375
+ ],
+ 'descriptor': {shape: [2, 2, 4, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 4D tensor and 2D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [8, 1, 1, 3], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [0, 0, 7, 4],
+ 'descriptor': {shape: [2, 2], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -66.0625, -68.9375, -77, -7.69921875,
+ 25.765625, 73.625, 90.3125, 55.625, 44.90625
+ ],
+ 'descriptor': {shape: [2, 2, 1, 1, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 5D tensor and 1D indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [4, 2, 1, 1, 3], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [3, 2, 2],
+ 'descriptor': {shape: [3], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ -37.6875, 43.125, 0.9130859375, -7.69921875, 25.765625, 73.625,
+ 90.3125, 55.625, 44.90625, 56.84375, 10.828125, -19.6875, 90.3125,
+ 55.625, 44.90625, 56.84375, 10.828125, -19.6875
+ ],
+ 'descriptor': {shape: [3, 2, 1, 1, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 3D tensor and 1D indices options.axis=1',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [3, 4, 2], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [1, 1, 2],
+ 'descriptor': {shape: [3], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [
+ {'input': 'gatherInput'}, {'indices': 'gatherIndices'},
+ {'options': {'axis': 1}}
+ ],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ -77, -26.15625, -77, -26.15625, 89.0625, -45.90625, -1.1298828125,
+ -50.40625, -1.1298828125, -50.40625, 90.3125, 55.625, -37.6875,
+ 43.125, -37.6875, 43.125, 0.9130859375, -7.69921875
+ ],
+ 'descriptor': {shape: [3, 3, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 3D tensor and 2D indices options.axis=2',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [3, 4, 2], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [0, 0, 0, 1],
+ 'descriptor': {shape: [2, 2], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [
+ {'input': 'gatherInput'}, {'indices': 'gatherIndices'},
+ {'options': {'axis': 2}}
+ ],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ -66.0625, -66.0625, -66.0625, -68.9375, -77,
+ -77, -77, -26.15625, 89.0625, 89.0625,
+ 89.0625, -45.90625, 43.84375, 43.84375, 43.84375,
+ 48.8125, 51.8125, 51.8125, 51.8125, 41.9375,
+ -1.1298828125, -1.1298828125, -1.1298828125, -50.40625, 90.3125,
+ 90.3125, 90.3125, 55.625, 44.90625, 44.90625,
+ 44.90625, 56.84375, 10.828125, 10.828125, 10.828125,
+ -19.6875, -37.6875, -37.6875, -37.6875, 43.125,
+ 0.9130859375, 0.9130859375, 0.9130859375, -7.69921875, 25.765625,
+ 25.765625, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [3, 4, 2, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 4D tensor and 2D indices explict options.axis=0',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [8, 1, 1, 3], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [0, 0, 7, 4],
+ 'descriptor': {shape: [2, 2], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [
+ {'input': 'gatherInput'}, {'indices': 'gatherIndices'},
+ {'options': {'axis': 0}}
+ ],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -66.0625, -68.9375, -77, -7.69921875,
+ 25.765625, 73.625, 90.3125, 55.625, 44.90625
+ ],
+ 'descriptor': {shape: [2, 2, 1, 1, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gather float16 5D tensor and 0D scalar indices options.axis=4',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [4, 2, 1, 1, 3], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [1],
+ 'descriptor': {shape: [], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [
+ {'input': 'gatherInput'}, {'indices': 'gatherIndices'},
+ {'options': {'axis': 4}}
+ ],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ -68.9375, 89.0625, 48.8125, -1.1298828125, 55.625, 10.828125,
+ 43.125, 25.765625
+ ],
+ 'descriptor': {shape: [4, 2, 1, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'gather float16 2D tensor and int32 0D negative indices default options',
+ 'graph': {
+ 'inputs': {
+ 'gatherInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625,
+ -45.90625, 43.84375, 48.8125, 51.8125, 41.9375,
+ -1.1298828125, -50.40625, 90.3125, 55.625, 44.90625,
+ 56.84375, 10.828125, -19.6875, -37.6875, 43.125,
+ 0.9130859375, -7.69921875, 25.765625, 73.625
+ ],
+ 'descriptor': {shape: [2, 12], dataType: 'float16'}
+ },
+ 'gatherIndices': {
+ 'data': [-2],
+ 'descriptor': {shape: [], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gather',
+ 'arguments': [{'input': 'gatherInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherOutput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125, 41.9375, -1.1298828125, -50.40625
+ ],
+ 'descriptor': {shape: [12], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/gatherElements.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gatherElements.https.any.js
index 4482c36865f..32299529f47 100644
--- a/tests/wpt/tests/webnn/conformance_tests/gatherElements.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/gatherElements.https.any.js
@@ -99,7 +99,6 @@ const gatherElementsTests = [
}
}
},
- ,
{
'name': 'gatherElements float32 2D input and int32 indices options.axis=0',
'graph': {
@@ -240,6 +239,171 @@ const gatherElementsTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'gatherElements float16 2D input and uint32 indices options.axis=1',
+ 'graph': {
+ 'inputs': {
+ 'gatherElementsInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125
+ ],
+ 'descriptor': {'shape': [3, 3], 'dataType': 'float16'}
+ },
+ 'gatherElementsIndices': {
+ 'data': [1, 0, 2, 2, 1, 0],
+ 'descriptor': {'shape': [3, 2], 'dataType': 'uint32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherElements',
+ 'arguments': [
+ {'input': 'gatherElementsInput'},
+ {'indices': 'gatherElementsIndices'}, {'options': {'axis': 1}}
+ ],
+ 'outputs': 'gatherElementsOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherElementsOutput': {
+ 'data': [-68.9375, -66.0625, -45.90625, -45.90625, 48.8125, 43.84375],
+ 'descriptor': {'shape': [3, 2], 'dataType': 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gatherElements float16 2D input and int32 indices options.axis=1',
+ 'graph': {
+ 'inputs': {
+ 'gatherElementsInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125
+ ],
+ 'descriptor': {'shape': [3, 3], 'dataType': 'float16'}
+ },
+ 'gatherElementsIndices': {
+ 'data': [1, 0, 2, 2, 1, 0],
+ 'descriptor': {'shape': [3, 2], 'dataType': 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherElements',
+ 'arguments': [
+ {'input': 'gatherElementsInput'},
+ {'indices': 'gatherElementsIndices'}, {'options': {'axis': 1}}
+ ],
+ 'outputs': 'gatherElementsOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherElementsOutput': {
+ 'data': [-68.9375, -66.0625, -45.90625, -45.90625, 48.8125, 43.84375],
+ 'descriptor': {'shape': [3, 2], 'dataType': 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gatherElements float16 2D input and int32 indices options.axis=0',
+ 'graph': {
+ 'inputs': {
+ 'gatherElementsInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125
+ ],
+ 'descriptor': {'shape': [3, 3], 'dataType': 'float16'}
+ },
+ 'gatherElementsIndices': {
+ 'data': [1, 0, 2, 2, 1, 0],
+ 'descriptor': {'shape': [2, 3], 'dataType': 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherElements',
+ 'arguments': [
+ {'input': 'gatherElementsInput'},
+ {'indices': 'gatherElementsIndices'}, {'options': {'axis': 0}}
+ ],
+ 'outputs': 'gatherElementsOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherElementsOutput': {
+ 'data': [-26.15625, -68.9375, 51.8125, 43.84375, 89.0625, -77],
+ 'descriptor': {'shape': [2, 3], 'dataType': 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gatherElements float16 3D input and int32 indices options.axis=0',
+ 'graph': {
+ 'inputs': {
+ 'gatherElementsInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125
+ ],
+ 'descriptor': {'shape': [2, 2, 2], 'dataType': 'float16'}
+ },
+ 'gatherElementsIndices': {
+ 'data': [1, 0, 0, 1],
+ 'descriptor': {'shape': [1, 2, 2], 'dataType': 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherElements',
+ 'arguments': [
+ {'input': 'gatherElementsInput'}, {'indices': 'gatherElementsIndices'}
+ ],
+ 'outputs': 'gatherElementsOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherElementsOutput': {
+ 'data': [89.0625, -68.9375, -77, 48.8125],
+ 'descriptor': {'shape': [1, 2, 2], 'dataType': 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gatherElements float16 3D input and int32 negative indices',
+ 'graph': {
+ 'inputs': {
+ 'gatherElementsInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125
+ ],
+ 'descriptor': {'shape': [2, 2, 2], 'dataType': 'float16'}
+ },
+ 'gatherElementsIndices': {
+ 'data': [-1, 0, 0, -1],
+ 'descriptor': {'shape': [1, 2, 2], 'dataType': 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherElements',
+ 'arguments': [
+ {'input': 'gatherElementsInput'}, {'indices': 'gatherElementsIndices'}
+ ],
+ 'outputs': 'gatherElementsOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherElementsOutput': {
+ 'data': [89.0625, -68.9375, -77, 48.8125],
+ 'descriptor': {'shape': [1, 2, 2], 'dataType': 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/gatherND.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gatherND.https.any.js
index 0377b777e4d..ddf8626f17a 100644
--- a/tests/wpt/tests/webnn/conformance_tests/gatherND.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/gatherND.https.any.js
@@ -344,6 +344,235 @@ const gatherNDTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'gatherND float16 3D input and 2D indices',
+ 'graph': {
+ 'inputs': {
+ 'gatherNDInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125, 41.9375, -1.1298828125, -50.40625, 90.3125,
+ 55.625, 44.90625, 56.84375
+ ],
+ 'descriptor': {shape: [2, 2, 4], dataType: 'float16'}
+ },
+ 'gatherNDIndices': {
+ 'data': [1, 0, 0, 1, 1, 1],
+ 'descriptor': {shape: [3, 2], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherND',
+ 'arguments':
+ [{'input': 'gatherNDInput'}, {'indices': 'gatherNDIndices'}],
+ 'outputs': 'gatherNDOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherNDOutput': {
+ 'data': [
+ 51.8125, 41.9375, -1.1298828125, -50.40625, 89.0625, -45.90625,
+ 43.84375, 48.8125, 90.3125, 55.625, 44.90625, 56.84375
+ ],
+ 'descriptor': {shape: [3, 4], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gatherND float16 4D input and 1D int32 indices',
+ 'graph': {
+ 'inputs': {
+ 'gatherNDInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125, 41.9375, -1.1298828125, -50.40625, 90.3125,
+ 55.625, 44.90625, 56.84375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'float16'}
+ },
+ 'gatherNDIndices': {
+ 'data': [1, 0, 0],
+ 'descriptor': {shape: [3], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherND',
+ 'arguments':
+ [{'input': 'gatherNDInput'}, {'indices': 'gatherNDIndices'}],
+ 'outputs': 'gatherNDOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherNDOutput': {
+ 'data': [51.8125, 41.9375],
+ 'descriptor': {shape: [2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gatherND float16 4D input and 1D uint32 indices',
+ 'graph': {
+ 'inputs': {
+ 'gatherNDInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125, 41.9375, -1.1298828125, -50.40625, 90.3125,
+ 55.625, 44.90625, 56.84375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'float16'}
+ },
+ 'gatherNDIndices': {
+ 'data': [1, 0, 0],
+ 'descriptor': {shape: [3], dataType: 'uint32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherND',
+ 'arguments':
+ [{'input': 'gatherNDInput'}, {'indices': 'gatherNDIndices'}],
+ 'outputs': 'gatherNDOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherNDOutput': {
+ 'data': [51.8125, 41.9375],
+ 'descriptor': {shape: [2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gatherND float16 4D input and 1D int64 indices',
+ 'graph': {
+ 'inputs': {
+ 'gatherNDInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125, 41.9375, -1.1298828125, -50.40625, 90.3125,
+ 55.625, 44.90625, 56.84375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'float16'}
+ },
+ 'gatherNDIndices': {
+ 'data': [1, 0, 0],
+ 'descriptor': {shape: [3], dataType: 'int64'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherND',
+ 'arguments':
+ [{'input': 'gatherNDInput'}, {'indices': 'gatherNDIndices'}],
+ 'outputs': 'gatherNDOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherNDOutput': {
+ 'data': [51.8125, 41.9375],
+ 'descriptor': {shape: [2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gatherND float16 4D input and 1D minimum indices',
+ 'graph': {
+ 'inputs': {
+ 'gatherNDInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125, 41.9375, -1.1298828125, -50.40625, 90.3125,
+ 55.625, 44.90625, 56.84375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'float16'}
+ },
+ 'gatherNDIndices': {
+ 'data': [-2, -2, -2],
+ 'descriptor': {shape: [3], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherND',
+ 'arguments':
+ [{'input': 'gatherNDInput'}, {'indices': 'gatherNDIndices'}],
+ 'outputs': 'gatherNDOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherNDOutput': {
+ 'data': [-66.0625, -68.9375],
+ 'descriptor': {shape: [2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gatherND float16 4D input and 1D maximum indices',
+ 'graph': {
+ 'inputs': {
+ 'gatherNDInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125, 41.9375, -1.1298828125, -50.40625, 90.3125,
+ 55.625, 44.90625, 56.84375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 2], dataType: 'float16'}
+ },
+ 'gatherNDIndices': {
+ 'data': [1, 1, 1],
+ 'descriptor': {shape: [3], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherND',
+ 'arguments':
+ [{'input': 'gatherNDInput'}, {'indices': 'gatherNDIndices'}],
+ 'outputs': 'gatherNDOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherNDOutput': {
+ 'data': [44.90625, 56.84375],
+ 'descriptor': {shape: [2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'gatherND float16 2D input and 2D negative indices',
+ 'graph': {
+ 'inputs': {
+ 'gatherNDInput': {
+ 'data': [
+ -66.0625, -68.9375, -77, -26.15625, 89.0625, -45.90625, 43.84375,
+ 48.8125, 51.8125, 41.9375, -1.1298828125, -50.40625, 90.3125,
+ 55.625, 44.90625, 56.84375
+ ],
+ 'descriptor': {shape: [4, 4], dataType: 'float16'}
+ },
+ 'gatherNDIndices': {
+ 'data': [-1, -2, -3, -4],
+ 'descriptor': {shape: [2, 2], dataType: 'int32'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'gatherND',
+ 'arguments':
+ [{'input': 'gatherNDInput'}, {'indices': 'gatherNDIndices'}],
+ 'outputs': 'gatherNDOutput'
+ }],
+ 'expectedOutputs': {
+ 'gatherNDOutput': {
+ 'data': [44.90625, 89.0625],
+ 'descriptor': {shape: [2], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/neg.https.any.js b/tests/wpt/tests/webnn/conformance_tests/neg.https.any.js
index 8bc10475453..5c5045d355e 100644
--- a/tests/wpt/tests/webnn/conformance_tests/neg.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/neg.https.any.js
@@ -604,6 +604,34 @@ const negTests = [
}
}
}
+ },
+
+ // int64 tests
+ {
+ 'name': 'neg int64 4D tensor',
+ 'graph': {
+ 'inputs': {
+ 'negInput': {
+ 'data': [
+ // int64 range: [/* -(2**63) */ –9223372036854775808,
+ // /* 2**63 - 1 */ 92233720368547758087]
+ BigInt(-(2**63)) + 1n, -100n, 0n, 100n, BigInt(2**63) - 1n
+ ],
+ 'descriptor': {shape: [1, 1, 1, 5], dataType: 'int64'}
+ }
+ },
+ 'operators': [{
+ 'name': 'neg',
+ 'arguments': [{'input': 'negInput'}],
+ 'outputs': 'negOutput'
+ }],
+ 'expectedOutputs': {
+ 'negOutput': {
+ 'data': [BigInt(2**63) - 1n, 100n, 0, -100n, BigInt(-(2**63)) + 1n],
+ 'descriptor': {shape: [1, 1, 1, 5], dataType: 'int64'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js b/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js
index 54289aa9b46..c2ba0e45b8f 100644
--- a/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js
@@ -14,8 +14,7 @@
// enum MLPaddingMode {
// "constant",
// "edge",
-// "reflection",
-// "symmetric"
+// "reflection"
// };
//
// dictionary MLPadOptions {
@@ -29,11 +28,8 @@
// optional MLPadOptions options = {});
-const getPadPrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 0, float16: 0};
- const expectedDataType =
- getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs);
- return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
+const getPadPrecisionTolerance = () => {
+ return {metricType: 'ULP', value: 0};
};
const padTests = [
@@ -678,49 +674,360 @@ const padTests = [
}
}
},
+
+
+ // float16 tests
{
- 'name': 'pad float32 4D tensor options.mode=\'symmetric\'',
+ 'name': 'pad float16 1D constant tensor default options',
'graph': {
'inputs': {
'padInput': {
'data': [
- 22.76361846923828, -21.168529510498047, -91.66168975830078,
- 16.863798141479492, 60.51472091674805, -70.56755065917969,
- -60.643272399902344, -47.8821907043457, 68.72557830810547
+ 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75
],
- 'descriptor': {shape: [1, 3, 3, 1], dataType: 'float32'}
+ 'descriptor': {shape: [9], dataType: 'float16'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'pad',
+ 'arguments': [
+ {'input': 'padInput'}, {'beginningPadding': [1]},
+ {'endingPadding': [1]}
+ ],
+ 'outputs': 'padOutput'
+ }],
+ 'expectedOutputs': {
+ 'padOutput': {
+ 'data': [
+ 0, 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75, 0
+ ],
+ 'descriptor': {shape: [11], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'pad float16 1D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'padInput': {
+ 'data': [
+ 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75
+ ],
+ 'descriptor': {shape: [9], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'pad',
+ 'arguments': [
+ {'input': 'padInput'}, {'beginningPadding': [1]},
+ {'endingPadding': [1]}
+ ],
+ 'outputs': 'padOutput'
+ }],
+ 'expectedOutputs': {
+ 'padOutput': {
+ 'data': [
+ 0, 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75, 0
+ ],
+ 'descriptor': {shape: [11], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'pad float16 2D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'padInput': {
+ 'data': [
+ 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75
+ ],
+ 'descriptor': {shape: [3, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'pad',
+ 'arguments': [
+ {'input': 'padInput'}, {'beginningPadding': [1, 1]},
+ {'endingPadding': [1, 1]}
+ ],
+ 'outputs': 'padOutput'
+ }],
+ 'expectedOutputs': {
+ 'padOutput': {
+ 'data': [
+ 0, 0, 0, 0, 0,
+ 0, 22.765625, -21.171875, -91.6875, 0,
+ 0, 16.859375, 60.5, -70.5625, 0,
+ 0, -60.65625, -47.875, 68.75, 0,
+ 0, 0, 0, 0, 0
+ ],
+ 'descriptor': {shape: [5, 5], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'pad float16 3D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'padInput': {
+ 'data': [
+ 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75
+ ],
+ 'descriptor': {shape: [1, 3, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'pad',
+ 'arguments': [
+ {'input': 'padInput'}, {'beginningPadding': [1, 1, 1]},
+ {'endingPadding': [1, 1, 1]}
+ ],
+ 'outputs': 'padOutput'
+ }],
+ 'expectedOutputs': {
+ 'padOutput': {
+ 'data': [
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 22.765625, -21.171875, -91.6875, 0, 0,
+ 16.859375, 60.5, -70.5625, 0, 0, -60.65625,
+ -47.875, 68.75, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,
+ 0, 0, 0
+ ],
+ 'descriptor': {shape: [3, 5, 5], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'pad float16 4D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'padInput': {
+ 'data': [
+ 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75
+ ],
+ 'descriptor': {shape: [1, 3, 3, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'pad',
+ 'arguments': [
+ {'input': 'padInput'}, {'beginningPadding': [0, 1, 1, 1]},
+ {'endingPadding': [0, 1, 1, 1]}
+ ],
+ 'outputs': 'padOutput'
+ }],
+ 'expectedOutputs': {
+ 'padOutput': {
+ 'data': [
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 22.765625, 0, 0, -21.171875, 0,
+ 0, -91.6875, 0, 0, 0, 0, 0, 0, 0, 0, 16.859375, 0,
+ 0, 60.5, 0, 0, -70.5625, 0, 0, 0, 0, 0, 0, 0,
+ 0, -60.65625, 0, 0, -47.875, 0, 0, 68.75, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0
+ ],
+ 'descriptor': {shape: [1, 5, 5, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'pad float16 5D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'padInput': {
+ 'data': [
+ 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75
+ ],
+ 'descriptor': {shape: [1, 3, 3, 1, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'pad',
+ 'arguments': [
+ {'input': 'padInput'}, {'beginningPadding': [0, 1, 1, 0, 1]},
+ {'endingPadding': [0, 1, 1, 0, 1]}
+ ],
+ 'outputs': 'padOutput'
+ }],
+ 'expectedOutputs': {
+ 'padOutput': {
+ 'data': [
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 22.765625, 0, 0, -21.171875, 0,
+ 0, -91.6875, 0, 0, 0, 0, 0, 0, 0, 0, 16.859375, 0,
+ 0, 60.5, 0, 0, -70.5625, 0, 0, 0, 0, 0, 0, 0,
+ 0, -60.65625, 0, 0, -47.875, 0, 0, 68.75, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0
+ ],
+ 'descriptor': {shape: [1, 5, 5, 1, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'pad float16 2D tensor explicit options.mode=\'constant\'',
+ 'graph': {
+ 'inputs': {
+ 'padInput': {
+ 'data': [
+ 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75
+ ],
+ 'descriptor': {shape: [3, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'pad',
+ 'arguments': [
+ {'input': 'padInput'}, {'beginningPadding': [1, 1]},
+ {'endingPadding': [1, 1]}, {'options': {'mode': 'constant'}}
+ ],
+ 'outputs': 'padOutput'
+ }],
+ 'expectedOutputs': {
+ 'padOutput': {
+ 'data': [
+ 0, 0, 0, 0, 0,
+ 0, 22.765625, -21.171875, -91.6875, 0,
+ 0, 16.859375, 60.5, -70.5625, 0,
+ 0, -60.65625, -47.875, 68.75, 0,
+ 0, 0, 0, 0, 0
+ ],
+ 'descriptor': {shape: [5, 5], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'pad float16 2D tensor options.value default constant mode',
+ 'graph': {
+ 'inputs': {
+ 'padInput': {
+ 'data': [
+ 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75
+ ],
+ 'descriptor': {shape: [3, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'pad',
+ 'arguments': [
+ {'input': 'padInput'}, {'beginningPadding': [1, 1]},
+ {'endingPadding': [1, 1]}, {'options': {'value': 1}}
+ ],
+ 'outputs': 'padOutput'
+ }],
+ 'expectedOutputs': {
+ 'padOutput': {
+ 'data': [
+ 1, 1, 1, 1, 1,
+ 1, 22.765625, -21.171875, -91.6875, 1,
+ 1, 16.859375, 60.5, -70.5625, 1,
+ 1, -60.65625, -47.875, 68.75, 1,
+ 1, 1, 1, 1, 1
+ ],
+ 'descriptor': {shape: [5, 5], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'pad float16 4D tensor options.mode=\'edge\'',
+ 'graph': {
+ 'inputs': {
+ 'padInput': {
+ 'data': [
+ 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75
+ ],
+ 'descriptor': {shape: [1, 3, 3, 1], dataType: 'float16'}
}
},
'operators': [{
'name': 'pad',
'arguments': [
{'input': 'padInput'}, {'beginningPadding': [0, 2, 2, 0]},
- {'endingPadding': [0, 2, 2, 0]}, {'options': {'mode': 'symmetric'}}
+ {'endingPadding': [0, 2, 2, 0]}, {'options': {'mode': 'edge'}}
],
'outputs': 'padOutput'
}],
'expectedOutputs': {
'padOutput': {
'data': [
- 60.51472091674805, 16.863798141479492, 16.863798141479492,
- 60.51472091674805, -70.56755065917969, -70.56755065917969,
- 60.51472091674805, -21.168529510498047, 22.76361846923828,
- 22.76361846923828, -21.168529510498047, -91.66168975830078,
- -91.66168975830078, -21.168529510498047, -21.168529510498047,
- 22.76361846923828, 22.76361846923828, -21.168529510498047,
- -91.66168975830078, -91.66168975830078, -21.168529510498047,
- 60.51472091674805, 16.863798141479492, 16.863798141479492,
- 60.51472091674805, -70.56755065917969, -70.56755065917969,
- 60.51472091674805, -47.8821907043457, -60.643272399902344,
- -60.643272399902344, -47.8821907043457, 68.72557830810547,
- 68.72557830810547, -47.8821907043457, -47.8821907043457,
- -60.643272399902344, -60.643272399902344, -47.8821907043457,
- 68.72557830810547, 68.72557830810547, -47.8821907043457,
- 60.51472091674805, 16.863798141479492, 16.863798141479492,
- 60.51472091674805, -70.56755065917969, -70.56755065917969,
- 60.51472091674805
+ 22.765625, 22.765625, 22.765625, -21.171875, -91.6875, -91.6875,
+ -91.6875, 22.765625, 22.765625, 22.765625, -21.171875, -91.6875,
+ -91.6875, -91.6875, 22.765625, 22.765625, 22.765625, -21.171875,
+ -91.6875, -91.6875, -91.6875, 16.859375, 16.859375, 16.859375,
+ 60.5, -70.5625, -70.5625, -70.5625, -60.65625, -60.65625,
+ -60.65625, -47.875, 68.75, 68.75, 68.75, -60.65625,
+ -60.65625, -60.65625, -47.875, 68.75, 68.75, 68.75,
+ -60.65625, -60.65625, -60.65625, -47.875, 68.75, 68.75,
+ 68.75
],
- 'descriptor': {shape: [1, 7, 7, 1], dataType: 'float32'}
+ 'descriptor': {shape: [1, 7, 7, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'pad float16 4D tensor options.mode=\'reflection\'',
+ 'graph': {
+ 'inputs': {
+ 'padInput': {
+ 'data': [
+ 22.765625, -21.171875, -91.6875, 16.859375, 60.5, -70.5625,
+ -60.65625, -47.875, 68.75
+ ],
+ 'descriptor': {shape: [1, 3, 3, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'pad',
+ 'arguments': [
+ {'input': 'padInput'}, {'beginningPadding': [0, 2, 2, 0]},
+ {'endingPadding': [0, 2, 2, 0]}, {'options': {'mode': 'reflection'}}
+ ],
+ 'outputs': 'padOutput'
+ }],
+ 'expectedOutputs': {
+ 'padOutput': {
+ 'data': [
+ 68.75, -47.875, -60.65625, -47.875, 68.75, -47.875,
+ -60.65625, -70.5625, 60.5, 16.859375, 60.5, -70.5625,
+ 60.5, 16.859375, -91.6875, -21.171875, 22.765625, -21.171875,
+ -91.6875, -21.171875, 22.765625, -70.5625, 60.5, 16.859375,
+ 60.5, -70.5625, 60.5, 16.859375, 68.75, -47.875,
+ -60.65625, -47.875, 68.75, -47.875, -60.65625, -70.5625,
+ 60.5, 16.859375, 60.5, -70.5625, 60.5, 16.859375,
+ -91.6875, -21.171875, 22.765625, -21.171875, -91.6875, -21.171875,
+ 22.765625
+ ],
+ 'descriptor': {shape: [1, 7, 7, 1], dataType: 'float16'}
}
}
}
diff --git a/tests/wpt/tests/webnn/conformance_tests/prelu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/prelu.https.any.js
index cfd043ce617..cc6e0052e28 100644
--- a/tests/wpt/tests/webnn/conformance_tests/prelu.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/prelu.https.any.js
@@ -1207,6 +1207,36 @@ const preluTests = [
}
}
}
+ },
+
+ // int64 tests
+ {
+ 'name': 'prelu int64 2D constant tensors',
+ 'graph': {
+ 'inputs': {
+ 'preluInput': {
+ 'data': [-4, -2, -1, 0, 0, 0, 1, 2, 4],
+ 'descriptor': {shape: [3, 3], dataType: 'int64'},
+ 'constant': true
+ },
+ 'preluSlope': {
+ 'data': [-5, 0, 5, -5, 0, 5, -5, 0, 5],
+ 'descriptor': {shape: [3, 3], dataType: 'int64'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'prelu',
+ 'arguments': [{'input': 'preluInput'}, {'slope': 'preluSlope'}],
+ 'outputs': 'preluOutput'
+ }],
+ 'expectedOutputs': {
+ 'preluOutput': {
+ 'data': [20, 0, -5, 0, 0, 0, 1, 2, 4],
+ 'descriptor': {shape: [3, 3], dataType: 'int64'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/qdq_subgraph.https.any.js b/tests/wpt/tests/webnn/conformance_tests/qdq_subgraph.https.any.js
index 70e8cab0d95..ac384c917b3 100644
--- a/tests/wpt/tests/webnn/conformance_tests/qdq_subgraph.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/qdq_subgraph.https.any.js
@@ -688,6 +688,93 @@ const subgraphTests = [
}
},
{
+ 'name': 'quantized gather',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [
+ 2.549168109893799, 4.794857501983643, 7.413617134094238,
+ 8.413617134094238, 6.108623504638672, 3.549168109893799,
+ ],
+ 'descriptor': {shape: [2, 3], dataType: 'float32'},
+ 'constant': false
+ },
+ 'inputScale': {
+ 'data': [0.343092918395996],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'inputZeroPoint': {
+ 'data': [-128],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ 'gatherIndices': {
+ 'data': [1],
+ 'descriptor': {shape: [], dataType: 'int32'},
+ 'constant': true
+ },
+ 'outputScale': {
+ 'data': [0.343092918395996],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'outputZeroPoint': {
+ 'data': [-128],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ },
+ 'operators': [
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'input'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'quantizedInput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedInput'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'dequantizedInput'
+ },
+ {
+ 'name': 'gather',
+ 'arguments': [{'input': 'dequantizedInput'}, {'indices': 'gatherIndices'}],
+ 'outputs': 'gatherOutput'
+ },
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'gatherOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'quantizedGatherOutput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedGatherOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'output'
+ }
+ ],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 8.577322959899902, 6.17567253112793, 3.430929183959961,
+ ],
+ 'descriptor': {shape: [3], dataType: 'float32'}
+ }
+ }
+ }
+ },
+ {
'name': 'quantized transpose',
'graph': {
'inputs': {
@@ -1594,6 +1681,171 @@ const subgraphTests = [
}
}
},
+ {
+ 'name': 'quantized slice',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [
+ 1.6811466217041016, 0.0479511022567749, 0.33355462551116943,
+ -0.1988269537687301, -0.0041167140007019, -0.0634240251779556,
+ ],
+ 'descriptor': {shape: [2, 3], dataType: 'float32'},
+ 'constant': false
+ },
+ 'inputScale': {
+ 'data': [0.003921568859368563],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'inputZeroPoint': {
+ 'data': [16],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ 'outputScale': {
+ 'data': [0.003921568859368563],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'outputZeroPoint': {
+ 'data': [16],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ },
+ 'operators': [
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'input'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'quantizedInput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedInput'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'dequantizedInput'
+ },
+ {
+ 'name': 'slice',
+ 'arguments': [{'input': 'dequantizedInput'}, {'starts': [0, 1]}, {'sizes': [1, 2]}],
+ 'outputs': 'sliceOutput'
+ },
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'sliceOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'quantizedSliceOutput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedSliceOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'output'
+ }
+ ],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 0.0470588281750679, 0.3333333432674408,
+ ],
+ 'descriptor': {shape: [1, 2], dataType: 'float32'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'quantized softmax',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [
+ 0.6811466217041016, 0.0479511022567749, 0.33355462551116943,
+ 0.19882695376873016, 0.41167140007019043, 0.07934240251779556,
+ ],
+ 'descriptor': {shape: [2, 3], dataType: 'float32'},
+ 'constant': false
+ },
+ 'inputScale': {
+ 'data': [0.00390625],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'inputZeroPoint': {
+ 'data': [-128],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ 'outputScale': {
+ 'data': [0.00390625],
+ 'descriptor': {shape: [1], dataType: 'float32'},
+ 'constant': true
+ },
+ 'outputZeroPoint': {
+ 'data': [-128],
+ 'descriptor': {shape: [1], dataType: 'int8'},
+ 'constant': true
+ },
+ },
+ 'operators': [
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'input'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'quantizedInput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedInput'},
+ {'scale': 'inputScale', 'zeroPoint': 'inputZeroPoint'}
+ ],
+ 'outputs': 'dequantizedInput'
+ },
+ {
+ 'name': 'softmax',
+ 'arguments': [{'input': 'dequantizedInput'}, {'axis': 0}],
+ 'outputs': 'softmaxOutput'
+ },
+ {
+ 'name': 'quantizeLinear',
+ 'arguments': [
+ {'input': 'softmaxOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'quantizedSoftmaxOutput'
+ },
+ {
+ 'name': 'dequantizeLinear',
+ 'arguments': [
+ {'input': 'quantizedSoftmaxOutput'},
+ {'scale': 'outputScale', 'zeroPoint': 'outputZeroPoint'}
+ ],
+ 'outputs': 'output'
+ }
+ ],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 0.6171875, 0.41015625, 0.5625,
+ 0.3828125, 0.58984375, 0.4375,
+ ],
+ 'descriptor': {shape: [2, 3], dataType: 'float32'}
+ }
+ }
+ }
+ },
];
if (navigator.ml) {
diff --git a/tests/wpt/tests/webnn/conformance_tests/reduce_l1.https.any.js b/tests/wpt/tests/webnn/conformance_tests/reduce_l1.https.any.js
index 1e6b163cff3..cb09f1cab93 100644
--- a/tests/wpt/tests/webnn/conformance_tests/reduce_l1.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/reduce_l1.https.any.js
@@ -1132,6 +1132,64 @@ const reduceL1Tests = [
}
}
}
+ },
+ {
+ 'name':
+ 'reduceL1 int32 4D tensor options.axes with options.keepDimensions=true',
+ 'graph': {
+ 'inputs': {
+ 'reduceL1Input': {
+ 'data': [
+ 5, 50, 1, 84, 15, 52, 9, 28, 12, 11, 86, 64,
+ 71, 76, 41, 97, 31, 6, 61, 69, 38, 52, 22, 99
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'int32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reduceL1',
+ 'arguments': [
+ {'input': 'reduceL1Input'},
+ {'options': {'axes': [1, 3], 'keepDimensions': true}}
+ ],
+ 'outputs': 'reduceL1Output'
+ }],
+ 'expectedOutputs': {
+ 'reduceL1Output': {
+ 'data': [105, 312, 356, 307],
+ 'descriptor': {shape: [2, 1, 2, 1], dataType: 'int32'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'reduceL1 uint32 4D tensor options.axes with options.keepDimensions=false',
+ 'graph': {
+ 'inputs': {
+ 'reduceL1Input': {
+ 'data': [
+ 5, 50, 1, 84, 15, 52, 9, 28, 12, 11, 86, 64,
+ 71, 76, 41, 97, 31, 6, 61, 69, 38, 52, 22, 99
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint32'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reduceL1',
+ 'arguments': [
+ {'input': 'reduceL1Input'},
+ {'options': {'axes': [0, 2], 'keepDimensions': false}}
+ ],
+ 'outputs': 'reduceL1Output'
+ }],
+ 'expectedOutputs': {
+ 'reduceL1Output': {
+ 'data': [257, 172, 100, 133, 205, 213],
+ 'descriptor': {shape: [2, 3], dataType: 'uint32'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js
index 63ef9fa9ff0..05e9e32bf85 100644
--- a/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js
@@ -636,6 +636,34 @@ const reluTests = [
}
}
},
+
+ // int64 tests
+ {
+ 'name': 'relu int64 4D tensor',
+ 'graph': {
+ 'inputs': {
+ 'reluInput': {
+ 'data': [
+ // int64 range: [/* -(2**63) */ –9223372036854775808,
+ // /* 2**63 - 1 */ 92233720368547758087]
+ BigInt(-(2**63)) + 1n, -100n, 0n, 100n, BigInt(2**63) - 1n
+ ],
+ 'descriptor': {shape: [1, 1, 1, 5], dataType: 'int64'}
+ }
+ },
+ 'operators': [{
+ 'name': 'relu',
+ 'arguments': [{'input': 'reluInput'}],
+ 'outputs': 'reluOutput'
+ }],
+ 'expectedOutputs': {
+ 'reluOutput': {
+ 'data': [0n, 0n, 0n, 100n, BigInt(2**63) - 1n],
+ 'descriptor': {shape: [1, 1, 1, 5], dataType: 'int64'}
+ }
+ }
+ }
+ }
];
if (navigator.ml) {
diff --git a/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js b/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js
index 05b8ea21e67..8345f09ae92 100644
--- a/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js
@@ -1312,6 +1312,1053 @@ const reshapeTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'reshape float16 tensor to a new shape (reorder all dimensions)',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [4, 2, 3]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'reshape float16 constant tensor to a new shape (reorder all dimensions)',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [4, 2, 3]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape float16 tensor to a new shape (reduce dimensions)',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 1, 1, 1, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [4, 1, 1, 6]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 1, 1, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape float16 tensor to a new shape (extend dimensions)',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [2, 2, 2, 3, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape float16 tensor to a new shape (4D to 4D)',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [3, 2, 2, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [4, 2, 3, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 2, 3, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape float16 tensor to 1D tensor',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [3, 2, 2, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [24]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (squeeze) float16 2D tensor by eliminating one dimension',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [24]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (squeeze) float16 3D tensor by eliminating one dimension',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 1, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [4, 6]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (squeeze) float16 3D tensor by eliminating two dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 24, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [24]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (squeeze) float16 4D tensor by eliminating two dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 4, 1, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [4, 6]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (squeeze) float16 4D tensor by eliminating all dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [-33.8125],
+ 'descriptor': {shape: [1, 1, 1, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': []}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput':
+ {'data': [-33.8125], 'descriptor': {shape: [], dataType: 'float16'}}
+ }
+ }
+ },
+ {
+ 'name':
+ 'reshape (squeeze) float16 5D tensor by eliminating four dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 1, 1, 24, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [24]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (squeeze) float16 2D tensor by eliminating 1st dimension',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [24]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'reshape (squeeze) float16 3D tensor by eliminating 2nd and 3rd dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24, 1, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [24]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'reshape (squeeze) float16 4D tensor by eliminating 1st and 4th dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 4, 6, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [4, 6]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'reshape (squeeze) float16 5D tensor by eliminating 2nd and 3rd dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 1, 1, 12, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [2, 12, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 12, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'reshape (squeeze) float16 5D tensor by eliminating 1st, 2nd and 5th dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 1, 1, 24, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [1, 24]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (unsqueeze) float16 0D tensor to 4D',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput':
+ {'data': [-33.8125], 'descriptor': {shape: [], dataType: 'float16'}}
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [1, 1, 1, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [-33.8125],
+ 'descriptor': {shape: [1, 1, 1, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (unsqueeze) float16 1D tensor by adding one dimension',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [1, 24]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (unsqueeze) float16 1D tensor by adding two dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [1, 24, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 24, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (unsqueeze) float16 1D tensor to 5D',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments':
+ [{'input': 'reshapeInput'}, {'newShape': [1, 1, 1, 24, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 1, 1, 24, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'reshape (unsqueeze) float16 1D tensor by adding 2nd and 3rd dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [24, 1, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24, 1, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (unsqueeze) float16 2D tensor by adding one dimension',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [4, 1, 6]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 1, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (unsqueeze) float16 2D tensor by adding two dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [1, 4, 1, 6]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 4, 1, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (unsqueeze) float16 2D tensor by adding 1st dimension',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [1, 24]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'reshape (unsqueeze) float16 2D tensor by adding 1st and 4th dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [1, 4, 6, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 4, 6, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'reshape (unsqueeze) float16 3D tensor by adding 2nd and 3rd dimensions',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 12, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments':
+ [{'input': 'reshapeInput'}, {'newShape': [2, 1, 1, 12, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 1, 1, 12, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (unsqueeze) float16 4D tensor by adding 2nd dimension',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [2, 1, 2, 2, 3]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 1, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (unsqueeze) float16 5D tensor by adding 4th dimension',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 1, 4, 3, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments':
+ [{'input': 'reshapeInput'}, {'newShape': [2, 1, 4, 1, 3, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 1, 4, 1, 3, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (flatten) float16 3D tensor to 2D',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [2, 12]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 12], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (flatten) float16 4D to 2D',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [4, 6]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (flatten) float16 4D to 2D exclusive 1st dimension',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [1, 24]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [1, 24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reshape (flatten) float16 4D to 2D exclusive 4th dimension',
+ 'graph': {
+ 'inputs': {
+ 'reshapeInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reshape',
+ 'arguments': [{'input': 'reshapeInput'}, {'newShape': [24, 1]}],
+ 'outputs': 'reshapeOutput'
+ }],
+ 'expectedOutputs': {
+ 'reshapeOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375,
+ 27.640625, -96.875, 83.6875, 50.59375, -20.1875, -1.390625,
+ -96.9375, 65.3125, 34.84375, 62, -2.869140625, 27.90625
+ ],
+ 'descriptor': {shape: [24, 1], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/reverse.https.any.js b/tests/wpt/tests/webnn/conformance_tests/reverse.https.any.js
index 3cc2b9bc0cd..8c76d04b1ee 100644
--- a/tests/wpt/tests/webnn/conformance_tests/reverse.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/reverse.https.any.js
@@ -146,6 +146,120 @@ const reverseTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'reverse float16 2D input with default options',
+ 'graph': {
+ 'inputs': {
+ 'reverseInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375
+ ],
+ 'descriptor': {shape: [3, 4], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reverse',
+ 'arguments': [{'input': 'reverseInput'}],
+ 'outputs': 'reverseOutput'
+ }],
+ 'expectedOutputs': {
+ 'reverseOutput': {
+ 'data': [
+ -64.4375, -80.0625, -44.78125, -96.125, 12.0703125, -63.15625,
+ -91.3125, -23.796875, -91.875, 88.0625, 99.5625, -30.0625
+ ],
+ 'descriptor': {shape: [3, 4], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reverse float16 3D input options.axes=[1, 2]',
+ 'graph': {
+ 'inputs': {
+ 'reverseInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375
+ ],
+ 'descriptor': {shape: [3, 2, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reverse',
+ 'arguments': [{'input': 'reverseInput'}, {'options': {'axes': [1, 2]}}],
+ 'outputs': 'reverseOutput'
+ }],
+ 'expectedOutputs': {
+ 'reverseOutput': {
+ 'data': [
+ -91.875, 88.0625, 99.5625, -30.0625, 12.0703125, -63.15625,
+ -91.3125, -23.796875, -64.4375, -80.0625, -44.78125, -96.125
+ ],
+ 'descriptor': {shape: [3, 2, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reverse float16 4D input options.axes=[3, 1]',
+ 'graph': {
+ 'inputs': {
+ 'reverseInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375
+ ],
+ 'descriptor': {shape: [3, 2, 1, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reverse',
+ 'arguments': [{'input': 'reverseInput'}, {'options': {'axes': [3, 1]}}],
+ 'outputs': 'reverseOutput'
+ }],
+ 'expectedOutputs': {
+ 'reverseOutput': {
+ 'data': [
+ -91.875, 88.0625, 99.5625, -30.0625, 12.0703125, -63.15625,
+ -91.3125, -23.796875, -64.4375, -80.0625, -44.78125, -96.125
+ ],
+ 'descriptor': {shape: [3, 2, 1, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'reverse float16 4D input options.axes=[]',
+ 'graph': {
+ 'inputs': {
+ 'reverseInput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375
+ ],
+ 'descriptor': {shape: [2, 1, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'reverse',
+ 'arguments': [{'input': 'reverseInput'}, {'options': {'axes': []}}],
+ 'outputs': 'reverseOutput'
+ }],
+ 'expectedOutputs': {
+ 'reverseOutput': {
+ 'data': [
+ -30.0625, 99.5625, 88.0625, -91.875, -23.796875, -91.3125,
+ -63.15625, 12.0703125, -96.125, -44.78125, -80.0625, -64.4375
+ ],
+ 'descriptor': {shape: [2, 1, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/scatterElements.https.any.js b/tests/wpt/tests/webnn/conformance_tests/scatterElements.https.any.js
index d2625630e07..d988719d840 100644
--- a/tests/wpt/tests/webnn/conformance_tests/scatterElements.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/scatterElements.https.any.js
@@ -14,7 +14,7 @@ const getScatterElementsPrecisionTolerance = () => {
const scatterElementsTests = [
{
- 'name': 'Scatter elements along axis 0',
+ 'name': 'scatterElements float32 tensors along axis 0',
'graph': {
'inputs': {
'input': {
@@ -23,7 +23,7 @@ const scatterElementsTests = [
},
'indices': {
'data': [1, 0, 2, 0, 2, 1],
- 'descriptor': {shape: [2, 3], dataType: 'int32'},
+ 'descriptor': {shape: [2, 3], dataType: 'int32'}
},
'updates': {
'data': [1.0, 1.1, 1.2, 2.0, 2.1, 2.2],
@@ -47,7 +47,7 @@ const scatterElementsTests = [
}
},
{
- 'name': 'Scatter elements along axis 0 and constant indices',
+ 'name': 'scatterElements float32 tensors along axis 0 and constant indices',
'graph': {
'inputs': {
'input': {
@@ -81,17 +81,15 @@ const scatterElementsTests = [
}
},
{
- 'name': 'Scatter elements along axis 1',
+ 'name': 'scatterElements float32 tensors along axis 1',
'graph': {
'inputs': {
'input': {
'data': [1.0, 2.0, 3.0, 4.0, 5.0],
'descriptor': {shape: [1, 5], dataType: 'float32'}
},
- 'indices': {
- 'data': [1, 3],
- 'descriptor': {shape: [1, 2], dataType: 'int32'},
- },
+ 'indices':
+ {'data': [1, 3], 'descriptor': {shape: [1, 2], dataType: 'int32'}},
'updates': {
'data': [1.1, 2.1],
'descriptor': {shape: [1, 2], dataType: 'float32'}
@@ -114,7 +112,7 @@ const scatterElementsTests = [
}
},
{
- 'name': 'Scatter elements along axis 1 and constant indices',
+ 'name': 'scatterElements float32 tensors along axis 1 and constant indices',
'graph': {
'inputs': {
'input': {
@@ -146,6 +144,144 @@ const scatterElementsTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'scatterElements float16 tensors along axis 0',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [0, 0, 0, 0, 0, 0, 0, 0, 0],
+ 'descriptor': {shape: [3, 3], dataType: 'float16'}
+ },
+ 'indices': {
+ 'data': [1, 0, 2, 0, 2, 1],
+ 'descriptor': {shape: [2, 3], dataType: 'int32'}
+ },
+ 'updates': {
+ 'data': [1, 1.099609375, 1.2001953125, 2, 2.099609375, 2.19921875],
+ 'descriptor': {shape: [2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'scatterElements',
+ 'arguments': [
+ {'input': 'input'}, {'indices': 'indices'}, {'updates': 'updates'},
+ {'options': {'axis': 0}}
+ ],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 2, 1.099609375, 0, 1, 0, 2.19921875, 0, 2.099609375, 1.2001953125
+ ],
+ 'descriptor': {shape: [3, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'scatterElements float16 tensors along axis 0 and constant indices',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [0, 0, 0, 0, 0, 0, 0, 0, 0],
+ 'descriptor': {shape: [3, 3], dataType: 'float16'}
+ },
+ 'indices': {
+ 'data': [1, 0, 2, 0, 2, 1],
+ 'descriptor': {shape: [2, 3], dataType: 'int32'},
+ 'constant': true
+ },
+ 'updates': {
+ 'data': [1, 1.099609375, 1.2001953125, 2, 2.099609375, 2.19921875],
+ 'descriptor': {shape: [2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'scatterElements',
+ 'arguments': [
+ {'input': 'input'}, {'indices': 'indices'}, {'updates': 'updates'},
+ {'options': {'axis': 0}}
+ ],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 2, 1.099609375, 0, 1, 0, 2.19921875, 0, 2.099609375, 1.2001953125
+ ],
+ 'descriptor': {shape: [3, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'scatterElements float16 tensors along axis 1',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [1, 2, 3, 4, 5],
+ 'descriptor': {shape: [1, 5], dataType: 'float16'}
+ },
+ 'indices':
+ {'data': [1, 3], 'descriptor': {shape: [1, 2], dataType: 'int32'}},
+ 'updates': {
+ 'data': [1.099609375, 2.099609375],
+ 'descriptor': {shape: [1, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'scatterElements',
+ 'arguments': [
+ {'input': 'input'}, {'indices': 'indices'}, {'updates': 'updates'},
+ {'options': {'axis': 1}}
+ ],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [1, 1.099609375, 3, 2.099609375, 5],
+ 'descriptor': {shape: [1, 5], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'scatterElements float16 tensors along axis 1 and constant indices',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [1, 2, 3, 4, 5],
+ 'descriptor': {shape: [1, 5], dataType: 'float16'}
+ },
+ 'indices': {
+ 'data': [1, 3],
+ 'descriptor': {shape: [1, 2], dataType: 'int32'},
+ 'constant': true
+ },
+ 'updates': {
+ 'data': [1.099609375, 2.099609375],
+ 'descriptor': {shape: [1, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'scatterElements',
+ 'arguments': [
+ {'input': 'input'}, {'indices': 'indices'}, {'updates': 'updates'},
+ {'options': {'axis': 1}}
+ ],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [1, 1.099609375, 3, 2.099609375, 5],
+ 'descriptor': {shape: [1, 5], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/scatterND.https.any.js b/tests/wpt/tests/webnn/conformance_tests/scatterND.https.any.js
index e512e41ea3f..8505d143c76 100644
--- a/tests/wpt/tests/webnn/conformance_tests/scatterND.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/scatterND.https.any.js
@@ -14,7 +14,8 @@ const getScatterNDPrecisionTolerance = () => {
const scatterNDTests = [
{
- 'name': 'Insert individual elements in a tensor by index',
+ 'name':
+ 'scatterND 1D float32 tensors (Insert individual elements in a tensor by index)',
'graph': {
'inputs': {
'input': {
@@ -23,7 +24,7 @@ const scatterNDTests = [
},
'indices': {
'data': [4, 3, 1, 7],
- 'descriptor': {shape: [4, 1], dataType: 'int32'},
+ 'descriptor': {shape: [4, 1], dataType: 'int32'}
},
'updates': {
'data': [9, 10, 11, 12],
@@ -46,21 +47,20 @@ const scatterNDTests = [
}
},
{
- 'name': 'Insert entire slices of a higher rank tensor',
+ 'name':
+ 'scatterND 3D float32 tensors (Insert entire slices of a higher rank tensor)',
'graph': {
'inputs': {
'input': {
'data': [
1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6,
7, 8, 8, 7, 6, 5, 4, 3, 2, 1, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4,
- 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8,
+ 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8
],
'descriptor': {shape: [4, 4, 4], dataType: 'float32'}
},
- 'indices': {
- 'data': [0, 2],
- 'descriptor': {shape: [2, 1], dataType: 'int32'},
- },
+ 'indices':
+ {'data': [0, 2], 'descriptor': {shape: [2, 1], dataType: 'int32'}},
'updates': {
'data': [
5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8,
@@ -87,6 +87,83 @@ const scatterNDTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name':
+ 'scatterND 1D float16 tensors (Insert individual elements in a tensor by index)',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [1, 2, 3, 4, 5, 6, 7, 8],
+ 'descriptor': {shape: [8], dataType: 'float16'}
+ },
+ 'indices': {
+ 'data': [4, 3, 1, 7],
+ 'descriptor': {shape: [4, 1], dataType: 'int32'}
+ },
+ 'updates': {
+ 'data': [9, 10, 11, 12],
+ 'descriptor': {shape: [4], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'scatterND',
+ 'arguments': [
+ {'input': 'input'}, {'indices': 'indices'}, {'updates': 'updates'}
+ ],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [1, 11, 3, 10, 9, 6, 7, 12],
+ 'descriptor': {shape: [8], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'scatterND 3D float16 tensors (Insert entire slices of a higher rank tensor)',
+ 'graph': {
+ 'inputs': {
+ 'input': {
+ 'data': [
+ 1, 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6,
+ 7, 8, 8, 7, 6, 5, 4, 3, 2, 1, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4,
+ 5, 6, 7, 8, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8
+ ],
+ 'descriptor': {shape: [4, 4, 4], dataType: 'float16'}
+ },
+ 'indices':
+ {'data': [0, 2], 'descriptor': {shape: [2, 1], dataType: 'int32'}},
+ 'updates': {
+ 'data': [
+ 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8,
+ 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4
+ ],
+ 'descriptor': {shape: [2, 4, 4], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'scatterND',
+ 'arguments': [
+ {'input': 'input'}, {'indices': 'indices'}, {'updates': 'updates'}
+ ],
+ 'outputs': 'output'
+ }],
+ 'expectedOutputs': {
+ 'output': {
+ 'data': [
+ 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 1, 2, 3, 4, 5, 6,
+ 7, 8, 8, 7, 6, 5, 4, 3, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,
+ 4, 4, 4, 4, 8, 7, 6, 5, 4, 3, 2, 1, 1, 2, 3, 4, 5, 6, 7, 8
+ ],
+ 'descriptor': {shape: [4, 4, 4], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/slice.https.any.js b/tests/wpt/tests/webnn/conformance_tests/slice.https.any.js
index 7083bc09394..6be61a9c253 100644
--- a/tests/wpt/tests/webnn/conformance_tests/slice.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/slice.https.any.js
@@ -16,11 +16,8 @@
// sequence<[EnforceRange] unsigned long>sizes);
-const getSlicePrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 0, float16: 0};
- const expectedDataType =
- getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs);
- return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
+const getSlicePrecisionTolerance = () => {
+ return {metricType: 'ULP', value: 0};
};
const sliceTests = [
@@ -346,6 +343,290 @@ const sliceTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'slice float16 1D constant tensor',
+ 'graph': {
+ 'inputs': {
+ 'sliceInput': {
+ 'data': [
+ 28.84375, 97.9375, -68.1875, 14.9765625, 90.25,
+ 76.5625, -24.5625, 79.5625, 65.1875, 57.4375,
+ 74.4375, -4.51171875, 0.54248046875, 80.4375, 28.328125,
+ 74, -74.5625, -27.3125, -70.4375, 59.8125,
+ -58.46875, 79.8125, -9.859375, 42.65625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'slice',
+ 'arguments':
+ [{'input': 'sliceInput'}, {'starts': [12]}, {'sizes': [12]}],
+ 'outputs': 'sliceOutput'
+ }],
+ 'expectedOutputs': {
+ 'sliceOutput': {
+ 'data': [
+ 0.54248046875, 80.4375, 28.328125, 74, -74.5625, -27.3125, -70.4375,
+ 59.8125, -58.46875, 79.8125, -9.859375, 42.65625
+ ],
+ 'descriptor': {shape: [12], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'slice float16 1D tensor',
+ 'graph': {
+ 'inputs': {
+ 'sliceInput': {
+ 'data': [
+ 28.84375, 97.9375, -68.1875, 14.9765625, 90.25,
+ 76.5625, -24.5625, 79.5625, 65.1875, 57.4375,
+ 74.4375, -4.51171875, 0.54248046875, 80.4375, 28.328125,
+ 74, -74.5625, -27.3125, -70.4375, 59.8125,
+ -58.46875, 79.8125, -9.859375, 42.65625
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'slice',
+ 'arguments':
+ [{'input': 'sliceInput'}, {'starts': [12]}, {'sizes': [12]}],
+ 'outputs': 'sliceOutput'
+ }],
+ 'expectedOutputs': {
+ 'sliceOutput': {
+ 'data': [
+ 0.54248046875, 80.4375, 28.328125, 74, -74.5625, -27.3125, -70.4375,
+ 59.8125, -58.46875, 79.8125, -9.859375, 42.65625
+ ],
+ 'descriptor': {shape: [12], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'slice float16 2D tensor',
+ 'graph': {
+ 'inputs': {
+ 'sliceInput': {
+ 'data': [
+ 28.84375, 97.9375, -68.1875, 14.9765625, 90.25,
+ 76.5625, -24.5625, 79.5625, 65.1875, 57.4375,
+ 74.4375, -4.51171875, 0.54248046875, 80.4375, 28.328125,
+ 74, -74.5625, -27.3125, -70.4375, 59.8125,
+ -58.46875, 79.8125, -9.859375, 42.65625
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'slice',
+ 'arguments':
+ [{'input': 'sliceInput'}, {'starts': [2, 2]}, {'sizes': [2, 4]}],
+ 'outputs': 'sliceOutput'
+ }],
+ 'expectedOutputs': {
+ 'sliceOutput': {
+ 'data': [
+ 28.328125, 74, -74.5625, -27.3125, -58.46875, 79.8125, -9.859375,
+ 42.65625
+ ],
+ 'descriptor': {shape: [2, 4], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'slice float16 3D tensor',
+ 'graph': {
+ 'inputs': {
+ 'sliceInput': {
+ 'data': [
+ 28.84375, 97.9375, -68.1875, 14.9765625, 90.25,
+ 76.5625, -24.5625, 79.5625, 65.1875, 57.4375,
+ 74.4375, -4.51171875, 0.54248046875, 80.4375, 28.328125,
+ 74, -74.5625, -27.3125, -70.4375, 59.8125,
+ -58.46875, 79.8125, -9.859375, 42.65625
+ ],
+ 'descriptor': {shape: [4, 3, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'slice',
+ 'arguments': [
+ {'input': 'sliceInput'}, {'starts': [1, 1, 1]}, {'sizes': [3, 2, 1]}
+ ],
+ 'outputs': 'sliceOutput'
+ }],
+ 'expectedOutputs': {
+ 'sliceOutput': {
+ 'data': [57.4375, -4.51171875, 74, -27.3125, 79.8125, 42.65625],
+ 'descriptor': {shape: [3, 2, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'slice float16 4D tensor',
+ 'graph': {
+ 'inputs': {
+ 'sliceInput': {
+ 'data': [
+ 28.84375, 97.9375, -68.1875, 14.9765625, 90.25,
+ 76.5625, -24.5625, 79.5625, 65.1875, 57.4375,
+ 74.4375, -4.51171875, 0.54248046875, 80.4375, 28.328125,
+ 74, -74.5625, -27.3125, -70.4375, 59.8125,
+ -58.46875, 79.8125, -9.859375, 42.65625
+ ],
+ 'descriptor': {shape: [2, 2, 3, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'slice',
+ 'arguments': [
+ {'input': 'sliceInput'}, {'starts': [1, 0, 2, 1]},
+ {'sizes': [1, 2, 1, 1]}
+ ],
+ 'outputs': 'sliceOutput'
+ }],
+ 'expectedOutputs': {
+ 'sliceOutput': {
+ 'data': [-27.3125, 42.65625],
+ 'descriptor': {shape: [1, 2, 1, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'slice float16 5D tensor',
+ 'graph': {
+ 'inputs': {
+ 'sliceInput': {
+ 'data': [
+ 28.84375, 97.9375, -68.1875, 14.9765625, 90.25,
+ 76.5625, -24.5625, 79.5625, 65.1875, 57.4375,
+ 74.4375, -4.51171875, 0.54248046875, 80.4375, 28.328125,
+ 74, -74.5625, -27.3125, -70.4375, 59.8125,
+ -58.46875, 79.8125, -9.859375, 42.65625
+ ],
+ 'descriptor': {shape: [2, 2, 3, 2, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'slice',
+ 'arguments': [
+ {'input': 'sliceInput'}, {'starts': [1, 0, 2, 1, 0]},
+ {'sizes': [1, 2, 1, 1, 1]}
+ ],
+ 'outputs': 'sliceOutput'
+ }],
+ 'expectedOutputs': {
+ 'sliceOutput': {
+ 'data': [-27.3125, 42.65625],
+ 'descriptor': {shape: [1, 2, 1, 1, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'slice float16 2D tensor with strides',
+ 'graph': {
+ 'inputs': {
+ 'sliceInput': {
+ 'data': [
+ 28.84375, 97.9375, -68.1875, 14.9765625, 90.25,
+ 76.5625, -24.5625, 79.5625, 65.1875, 57.4375,
+ 74.4375, -4.51171875, 0.54248046875, 80.4375, 28.328125,
+ 74, -74.5625, -27.3125, -70.4375, 59.8125,
+ -58.46875, 79.8125, -70.4375, 42.65625
+ ],
+ 'descriptor': {shape: [2, 12], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'slice',
+ 'arguments': [
+ {'input': 'sliceInput'}, {'starts': [0, 2]}, {'sizes': [2, 10]},
+ {'options': {'strides': [1, 4]}}
+ ],
+ 'outputs': 'sliceOutput'
+ }],
+ 'expectedOutputs': {
+ 'sliceOutput': {
+ 'data': [-68.1875, -24.5625, 74.4375, 28.328125, -70.4375, -70.4375],
+ 'descriptor': {shape: [2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'slice float16 3D tensor with strides',
+ 'graph': {
+ 'inputs': {
+ 'sliceInput': {
+ 'data': [
+ 28.84375, 97.9375, -68.1875, 14.9765625, 90.25,
+ 76.5625, -24.5625, 79.5625, 65.1875, 57.4375,
+ 74.4375, -4.51171875, 0.54248046875, 80.4375, 28.328125,
+ 74, -74.5625, -27.3125, -70.4375, 59.8125,
+ -58.46875, 79.8125, -9.859375, 42.65625
+ ],
+ 'descriptor': {shape: [4, 3, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'slice',
+ 'arguments': [
+ {'input': 'sliceInput'}, {'starts': [0, 0, 1]}, {'sizes': [4, 3, 1]},
+ {'options': {'strides': [3, 2, 1]}}
+ ],
+ 'outputs': 'sliceOutput'
+ }],
+ 'expectedOutputs': {
+ 'sliceOutput': {
+ 'data': [97.9375, 76.5625, 59.8125, 42.65625],
+ 'descriptor': {shape: [2, 2, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'slice float16 4D tensor with strides',
+ 'graph': {
+ 'inputs': {
+ 'sliceInput': {
+ 'data': [
+ 28.84375, 97.9375, -68.1875, 14.9765625, 90.25,
+ 76.5625, -24.5625, 79.5625, 65.1875, 57.4375,
+ 74.4375, -4.51171875, 0.54248046875, 80.4375, 28.328125,
+ 74, -74.5625, -27.3125, -70.4375, 59.8125,
+ -58.46875, 79.8125, -9.859375, 42.65625
+ ],
+ 'descriptor': {shape: [2, 2, 3, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'slice',
+ 'arguments': [
+ {'input': 'sliceInput'}, {'starts': [1, 1, 1, 1]},
+ {'sizes': [1, 1, 1, 1]}, {'options': {'strides': [2, 2, 2, 2]}}
+ ],
+ 'outputs': 'sliceOutput'
+ }],
+ 'expectedOutputs': {
+ 'sliceOutput': {
+ 'data': [79.8125],
+ 'descriptor': {shape: [1, 1, 1, 1], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/split.https.any.js b/tests/wpt/tests/webnn/conformance_tests/split.https.any.js
index b9345f5d179..c805be25257 100644
--- a/tests/wpt/tests/webnn/conformance_tests/split.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/split.https.any.js
@@ -21,13 +21,8 @@
// splits, optional MLSplitOptions options = {});
-const getSplitPrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 0, float16: 0};
- const dataType =
- graphResources
- .expectedOutputs[Object.keys(graphResources.expectedOutputs)[0]]
- .descriptor.dataType;
- return {metricType: 'ULP', value: toleranceValueDict[dataType]};
+const getSplitPrecisionTolerance = () => {
+ return {metricType: 'ULP', value: 0};
};
const splitTests = [
@@ -347,7 +342,7 @@ const splitTests = [
'name': 'split',
'arguments': [{'input': 'splitInput'}, {'splits': [3, 3, 3, 3]}],
'outputs':
- ['splitOutput1', 'splitOutput2', 'splitOutput3', 'splitOutput4'],
+ ['splitOutput1', 'splitOutput2', 'splitOutput3', 'splitOutput4']
}],
'expectedOutputs': {
'splitOutput1': {
@@ -403,8 +398,7 @@ const splitTests = [
'name': 'split',
'arguments':
[{'input': 'splitInput'}, {'splits': 3}, {'options': {'axis': 0}}],
- 'outputs': ['splitOutput1', 'splitOutput2', 'splitOutput3'],
-
+ 'outputs': ['splitOutput1', 'splitOutput2', 'splitOutput3']
}],
'expectedOutputs': {
'splitOutput1': {
@@ -528,6 +522,404 @@ const splitTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'split float16 1D constant tensor number splits default options',
+ 'graph': {
+ 'inputs': {
+ 'splitInput': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875,
+ -68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875,
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375,
+ -27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'split',
+ 'arguments': [{'input': 'splitInput'}, {'splits': 3}],
+ 'outputs': ['splitOutput1', 'splitOutput2', 'splitOutput3']
+ }],
+ 'expectedOutputs': {
+ 'splitOutput1': {
+ 'data':
+ [-64.5, -84.625, -68, -23.453125, -85.625, 46.875, -68.125, 76],
+ 'descriptor': {shape: [8], dataType: 'float16'}
+ },
+ 'splitOutput2': {
+ 'data': [
+ -61.0625, -90.9375, 53.90625, 84.1875, -95.5625, -52.40625, -29,
+ 71.625
+ ],
+ 'descriptor': {shape: [8], dataType: 'float16'}
+ },
+ 'splitOutput3': {
+ 'data': [
+ 50.65625, 21.359375, -27.125, 65.125, -30.40625, -6.8203125,
+ 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [8], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'split float16 1D tensor number splits default options',
+ 'graph': {
+ 'inputs': {
+ 'splitInput': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875,
+ -68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875,
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375,
+ -27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'split',
+ 'arguments': [{'input': 'splitInput'}, {'splits': 3}],
+ 'outputs': ['splitOutput1', 'splitOutput2', 'splitOutput3']
+ }],
+ 'expectedOutputs': {
+ 'splitOutput1': {
+ 'data':
+ [-64.5, -84.625, -68, -23.453125, -85.625, 46.875, -68.125, 76],
+ 'descriptor': {shape: [8], dataType: 'float16'}
+ },
+ 'splitOutput2': {
+ 'data': [
+ -61.0625, -90.9375, 53.90625, 84.1875, -95.5625, -52.40625, -29,
+ 71.625
+ ],
+ 'descriptor': {shape: [8], dataType: 'float16'}
+ },
+ 'splitOutput3': {
+ 'data': [
+ 50.65625, 21.359375, -27.125, 65.125, -30.40625, -6.8203125,
+ 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [8], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'split float16 2D tensor number splits default options',
+ 'graph': {
+ 'inputs': {
+ 'splitInput': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875,
+ -68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875,
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375,
+ -27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [8, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'split',
+ 'arguments': [{'input': 'splitInput'}, {'splits': 2}],
+ 'outputs': ['splitOutput1', 'splitOutput2']
+ }],
+ 'expectedOutputs': {
+ 'splitOutput1': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875, -68.125, 76,
+ -61.0625, -90.9375, 53.90625, 84.1875
+ ],
+ 'descriptor': {shape: [4, 3], dataType: 'float16'}
+ },
+ 'splitOutput2': {
+ 'data': [
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375, -27.125,
+ 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [4, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'split float16 3D tensor number splits default options',
+ 'graph': {
+ 'inputs': {
+ 'splitInput': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875,
+ -68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875,
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375,
+ -27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [4, 3, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'split',
+ 'arguments': [{'input': 'splitInput'}, {'splits': 2}],
+ 'outputs': ['splitOutput1', 'splitOutput2']
+ }],
+ 'expectedOutputs': {
+ 'splitOutput1': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875, -68.125, 76,
+ -61.0625, -90.9375, 53.90625, 84.1875
+ ],
+ 'descriptor': {shape: [2, 3, 2], dataType: 'float16'}
+ },
+ 'splitOutput2': {
+ 'data': [
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375, -27.125,
+ 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [2, 3, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'split float16 4D tensor number splits default options',
+ 'graph': {
+ 'inputs': {
+ 'splitInput': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875,
+ -68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875,
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375,
+ -27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [12, 1, 1, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'split',
+ 'arguments': [{'input': 'splitInput'}, {'splits': 4}],
+ 'outputs':
+ ['splitOutput1', 'splitOutput2', 'splitOutput3', 'splitOutput4']
+ }],
+ 'expectedOutputs': {
+ 'splitOutput1': {
+ 'data': [-64.5, -84.625, -68, -23.453125, -85.625, 46.875],
+ 'descriptor': {shape: [3, 1, 1, 2], dataType: 'float16'}
+ },
+ 'splitOutput2': {
+ 'data': [-68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875],
+ 'descriptor': {shape: [3, 1, 1, 2], dataType: 'float16'}
+ },
+ 'splitOutput3': {
+ 'data': [-95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375],
+ 'descriptor': {shape: [3, 1, 1, 2], dataType: 'float16'}
+ },
+ 'splitOutput4': {
+ 'data': [-27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125],
+ 'descriptor': {shape: [3, 1, 1, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'split float16 5D tensor number splits default options',
+ 'graph': {
+ 'inputs': {
+ 'splitInput': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875,
+ -68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875,
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375,
+ -27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [6, 1, 1, 2, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'split',
+ 'arguments': [{'input': 'splitInput'}, {'splits': 2}],
+ 'outputs': ['splitOutput1', 'splitOutput2']
+ }],
+ 'expectedOutputs': {
+ 'splitOutput1': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875, -68.125, 76,
+ -61.0625, -90.9375, 53.90625, 84.1875
+ ],
+ 'descriptor': {shape: [3, 1, 1, 2, 2], dataType: 'float16'}
+ },
+ 'splitOutput2': {
+ 'data': [
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375, -27.125,
+ 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [3, 1, 1, 2, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'split float16 4D tensor array splits default options',
+ 'graph': {
+ 'inputs': {
+ 'splitInput': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875,
+ -68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875,
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375,
+ -27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [12, 1, 1, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'split',
+ 'arguments': [{'input': 'splitInput'}, {'splits': [3, 3, 3, 3]}],
+ 'outputs':
+ ['splitOutput1', 'splitOutput2', 'splitOutput3', 'splitOutput4']
+ }],
+ 'expectedOutputs': {
+ 'splitOutput1': {
+ 'data': [-64.5, -84.625, -68, -23.453125, -85.625, 46.875],
+ 'descriptor': {shape: [3, 1, 1, 2], dataType: 'float16'}
+ },
+ 'splitOutput2': {
+ 'data': [-68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875],
+ 'descriptor': {shape: [3, 1, 1, 2], dataType: 'float16'}
+ },
+ 'splitOutput3': {
+ 'data': [-95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375],
+ 'descriptor': {shape: [3, 1, 1, 2], dataType: 'float16'}
+ },
+ 'splitOutput4': {
+ 'data': [-27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125],
+ 'descriptor': {shape: [3, 1, 1, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'split float16 4D tensor number splits options.axis',
+ 'graph': {
+ 'inputs': {
+ 'splitInput': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875,
+ -68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875,
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375,
+ -27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [12, 1, 1, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'split',
+ 'arguments':
+ [{'input': 'splitInput'}, {'splits': 3}, {'options': {'axis': 0}}],
+ 'outputs': ['splitOutput1', 'splitOutput2', 'splitOutput3']
+ }],
+ 'expectedOutputs': {
+ 'splitOutput1': {
+ 'data':
+ [-64.5, -84.625, -68, -23.453125, -85.625, 46.875, -68.125, 76],
+ 'descriptor': {shape: [4, 1, 1, 2], dataType: 'float16'}
+ },
+ 'splitOutput2': {
+ 'data': [
+ -61.0625, -90.9375, 53.90625, 84.1875, -95.5625, -52.40625, -29,
+ 71.625
+ ],
+ 'descriptor': {shape: [4, 1, 1, 2], dataType: 'float16'}
+ },
+ 'splitOutput3': {
+ 'data': [
+ 50.65625, 21.359375, -27.125, 65.125, -30.40625, -6.8203125,
+ 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [4, 1, 1, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'split float16 5D tensor array splits=[3, 3] options.axis=2',
+ 'graph': {
+ 'inputs': {
+ 'splitInput': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875,
+ -68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875,
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375,
+ -27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [1, 1, 6, 2, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'split',
+ 'arguments': [
+ {'input': 'splitInput'}, {'splits': [3, 3]}, {'options': {'axis': 2}}
+ ],
+ 'outputs': ['splitOutput1', 'splitOutput2']
+ }],
+ 'expectedOutputs': {
+ 'splitOutput1': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875, -68.125, 76,
+ -61.0625, -90.9375, 53.90625, 84.1875
+ ],
+ 'descriptor': {shape: [1, 1, 3, 2, 2], dataType: 'float16'}
+ },
+ 'splitOutput2': {
+ 'data': [
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375, -27.125,
+ 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [1, 1, 3, 2, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'split float16 5D tensor array splits=[2, 4] options.axis=0',
+ 'graph': {
+ 'inputs': {
+ 'splitInput': {
+ 'data': [
+ -64.5, -84.625, -68, -23.453125, -85.625, 46.875,
+ -68.125, 76, -61.0625, -90.9375, 53.90625, 84.1875,
+ -95.5625, -52.40625, -29, 71.625, 50.65625, 21.359375,
+ -27.125, 65.125, -30.40625, -6.8203125, 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [6, 1, 1, 2, 2], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'split',
+ 'arguments': [
+ {'input': 'splitInput'}, {'splits': [2, 4]}, {'options': {'axis': 0}}
+ ],
+ 'outputs': ['splitOutput1', 'splitOutput2']
+ }],
+ 'expectedOutputs': {
+ 'splitOutput1': {
+ 'data':
+ [-64.5, -84.625, -68, -23.453125, -85.625, 46.875, -68.125, 76],
+ 'descriptor': {shape: [2, 1, 1, 2, 2], dataType: 'float16'}
+ },
+ 'splitOutput2': {
+ 'data': [
+ -61.0625, -90.9375, 53.90625, 84.1875, -95.5625, -52.40625, -29,
+ 71.625, 50.65625, 21.359375, -27.125, 65.125, -30.40625, -6.8203125,
+ 46.6875, -21.125
+ ],
+ 'descriptor': {shape: [4, 1, 1, 2, 2], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js b/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js
index 1a46c35b320..03057a62ee8 100644
--- a/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js
@@ -128,6 +128,127 @@ const testCreateTensorFails = (testName, tensorDescriptor) => {
}, `${testName} / ${tensorDescriptor.dataType}`);
};
+/**
+ * WebNN create constant tensor test.
+ * @param {String} testName - The name of the test operation.
+ * @param {MLOperandDescriptor} descriptor - The intended operand specs.
+ */
+const testCreateConstantTensor = (testName, descriptor) => {
+ let mlContext;
+ let isConstantTensorSupported = false;
+ promise_setup(async () => {
+ try {
+ mlContext = await navigator.ml.createContext(contextOptions);
+ } catch (error) {
+ throw new AssertionError(
+ `Unable to create context for ${variant} variant. ${error}`);
+ }
+
+ // Check if WebNN has constant tensor support.
+ try {
+ await mlContext.createConstantTensor(
+ {
+ dataType: 'float32',
+ shape: [1],
+ },
+ new Float32Array([0xAA]));
+ isConstantTensorSupported = true;
+ } catch (error) {
+ if (error.name !== 'NotSupportedError') {
+ throw error;
+ }
+ }
+ });
+
+ promise_test(async t => {
+ if (!isConstantTensorSupported) {
+ return;
+ }
+
+ const inputData =
+ new TypedArrayDict[descriptor.dataType](sizeOfShape(descriptor.shape))
+ .fill(0xAA);
+ if (!mlContext.opSupportLimits().constant.dataTypes.includes(
+ descriptor.dataType)) {
+ await promise_rejects_js(
+ t, TypeError, mlContext.createConstantTensor(descriptor, inputData));
+ return;
+ }
+
+ const mlTensor =
+ await mlContext.createConstantTensor(descriptor, inputData);
+ assert_true(mlTensor.constant, 'constant tensors should be constant.');
+ assert_false(mlTensor.readable, 'constant tensors should not be readable.');
+ assert_false(mlTensor.writable, 'constant tensors should not be writable.');
+ }, `${testName} / ${descriptor.dataType}`);
+
+ promise_test(async t => {
+ if (!isConstantTensorSupported) {
+ return;
+ }
+
+ try {
+ const inputDataTooBig = new TypedArrayDict[descriptor.dataType](
+ sizeOfShape(descriptor.shape) + 1);
+ await promise_rejects_js(
+ t, TypeError,
+ mlContext.createConstantTensor(descriptor, inputDataTooBig));
+ } catch (error) {
+ if (error instanceof RangeError) {
+ return; // Skip test when dataType is too big.
+ } else {
+ throw error;
+ }
+ }
+ }, `${testName} / ${descriptor.dataType} / source data too big`);
+
+ promise_test(async t => {
+ if (!isConstantTensorSupported) {
+ return;
+ }
+
+ try {
+ const inputDataTooSmall = new TypedArrayDict[descriptor.dataType](
+ sizeOfShape(descriptor.shape) - 1);
+ await promise_rejects_js(
+ t, TypeError,
+ mlContext.createConstantTensor(descriptor, inputDataTooSmall));
+ } catch (error) {
+ if (error instanceof RangeError) {
+ return; // Skip test when dataType is too big.
+ } else {
+ throw error;
+ }
+ }
+ }, `${testName} / ${descriptor.dataType} / source data too small`);
+};
+
+/**
+ * Same as above, but expect constant tensor creation to fail.
+ * @param {String} testName - The name of the test operation.
+ * @param {MLOperandDescriptor} descriptor - The intended operand specs.
+ */
+const testCreateConstantTensorFails = (testName, descriptor) => {
+ let mlContext;
+
+ promise_setup(async () => {
+ try {
+ mlContext = await navigator.ml.createContext(contextOptions);
+ } catch (error) {
+ throw new AssertionError(
+ `Unable to create context for ${variant} variant. ${error}`);
+ }
+ });
+
+ promise_test(async t => {
+ await promise_rejects_js(
+ t, TypeError,
+ mlContext.createConstantTensor(
+ descriptor,
+ new TypedArrayDict[descriptor.dataType](
+ sizeOfShape(descriptor.shape))));
+ }, `${testName} / ${descriptor.dataType}`);
+};
promise_test(async t => {
const tensorDescriptor = {
@@ -424,6 +545,7 @@ const testDispatchTensor = (testName) => {
const shape = [3, 5];
let inputs = {};
let outputs = {};
+ let isConstantTensorSupported = false;
promise_setup(async () => {
try {
mlContext = await navigator.ml.createContext(contextOptions);
@@ -431,6 +553,22 @@ const testDispatchTensor = (testName) => {
throw new AssertionError(
`Unable to create context for ${variant} variant. ${e}`);
}
+
+ // Check if WebNN has constant tensor support.
+ try {
+ await mlContext.createConstantTensor(
+ {
+ dataType: 'float32',
+ shape: [1],
+ },
+ new Float32Array([0xAA]));
+ isConstantTensorSupported = true;
+ } catch (error) {
+ if (error.name !== 'NotSupportedError') {
+ throw error;
+ }
+ }
+
// Construct a simple graph: A = B + C, with two outputs.
const builder = new MLGraphBuilder(mlContext);
const tensorDescriptor = {
@@ -1089,6 +1227,98 @@ const testDispatchTensor = (testName) => {
mlContext, dispatchOutputs['output1'],
new Float32Array(sizeOfShape(shape)).fill(3));
}, `${testName} / same name diff outputs tensors destroy`);
+
+ promise_test(async () => {
+ if (!isConstantTensorSupported) {
+ return;
+ }
+
+ let constantTensor = await mlContext.createConstantTensor(
+ {
+ dataType: 'float32',
+ shape: shape,
+ },
+ new Float32Array(sizeOfShape(shape)).fill(3.0));
+
+ const builder = new MLGraphBuilder(mlContext);
+ const lhsConstantOperand = builder.constant(constantTensor);
+ const rhsConstantOperand = builder.constant(constantTensor);
+ const outputOperand = builder.add(lhsConstantOperand, rhsConstantOperand);
+ const graphWithOnlyConstants =
+ await builder.build({'output': outputOperand});
+
+ const outputTensor = await mlContext.createTensor(
+ getDescriptorFromTensor(outputs['output1']));
+
+ // Output = LHS + RHS = 3 + 3 = 6
+ mlContext.dispatch(graphWithOnlyConstants, {}, {'output': outputTensor});
+
+ await assert_tensor_data_equals(
+ mlContext, outputTensor,
+ new Float32Array(sizeOfShape(shape)).fill(6.0));
+ }, `${testName} / same constant same graph`);
+
+ promise_test(async () => {
+ if (!isConstantTensorSupported) {
+ return;
+ }
+
+ const rhsConstantTensor = await mlContext.createConstantTensor(
+ {
+ dataType: 'float32',
+ shape: shape,
+ },
+ new Float32Array(sizeOfShape(shape)).fill(3.0));
+
+ const lhsInputOperandDesc = {dataType: 'float32', shape};
+
+ let graphWithConstants;
+ {
+ const builder = new MLGraphBuilder(mlContext);
+ const lhsOperand = builder.input('lhs', lhsInputOperandDesc);
+ const rhsConstantOperand = builder.constant(rhsConstantTensor);
+ const outputOperand = builder.sub(lhsOperand, rhsConstantOperand);
+ graphWithConstants = await builder.build({'output': outputOperand});
+ }
+
+ const lhsTensor =
+ await mlContext.createTensor(getDescriptorFromTensor(inputs['lhs']));
+ mlContext.writeTensor(
+ lhsTensor, new Float32Array(sizeOfShape(shape)).fill(5.0));
+
+ const outputTensor = await mlContext.createTensor(
+ getDescriptorFromTensor(outputs['output1']));
+
+ // Output = LHS - RHS = 5 - 3 = 2
+ mlContext.dispatch(
+ graphWithConstants, {
+ 'lhs': lhsTensor,
+ },
+ {'output': outputTensor});
+
+ // Create another graph reusing the same constants.
+ {
+ const builder = new MLGraphBuilder(mlContext);
+ const lhsOperand = builder.input('lhs', lhsInputOperandDesc);
+ const rhsConstantOperand = builder.constant(rhsConstantTensor);
+ const outputOperand = builder.sub(lhsOperand, rhsConstantOperand);
+ graphWithConstants = await builder.build({'output': outputOperand});
+ }
+
+ mlContext.writeTensor(
+ lhsTensor, new Float32Array(sizeOfShape(shape)).fill(4.0));
+
+ // Output = LHS - RHS = 4 - 3 = 1
+ mlContext.dispatch(
+ graphWithConstants, {
+ 'lhs': lhsTensor,
+ },
+ {'output': outputTensor});
+
+ await assert_tensor_data_equals(
+ mlContext, outputTensor,
+ new Float32Array(sizeOfShape(shape)).fill(1.0));
+ }, `${testName} / same constant multiple graphs`);
};
if (navigator.ml) {
@@ -1104,6 +1334,14 @@ if (navigator.ml) {
shape: [kMaxUnsignedLong, kMaxUnsignedLong, kMaxUnsignedLong]
});
+ testCreateConstantTensor('createConstant', {dataType: 'int32', shape: [4]});
+ testCreateConstantTensor(
+ 'createConstant', {dataType: 'uint8', shape: [3, 2, 4]});
+
+ testCreateConstantTensorFails(
+ 'createConstantFailsEmptyDimension',
+ {dataType: 'int32', shape: [2, 0, 3]});
+
testDestroyTensor('destroyTwice');
testReadTensor('read');
testWriteTensor('write');
diff --git a/tests/wpt/tests/webnn/conformance_tests/tile.https.any.js b/tests/wpt/tests/webnn/conformance_tests/tile.https.any.js
index 822944b3e99..29a24871816 100644
--- a/tests/wpt/tests/webnn/conformance_tests/tile.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/tile.https.any.js
@@ -17,7 +17,7 @@
// MLOperatorOptions options = {});
-const getTilePrecisionTolerance = (graphResources) => {
+const getTilePrecisionTolerance = () => {
return {metricType: 'ULP', value: 0};
};
@@ -46,6 +46,55 @@ const tileTests = [
}
},
{
+ 'name': 'tile float16 1D constant tensor',
+ 'graph': {
+ 'inputs': {
+ 'tileInput': {
+ 'data': [1, 2, 3, 4],
+ 'descriptor': {shape: [4], dataType: 'float16'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'tile',
+ 'arguments': [{'input': 'tileInput'}, {'repetitions': [2]}],
+ 'outputs': 'tileOutput'
+ }],
+ 'expectedOutputs': {
+ 'tileOutput': {
+ 'data': [1, 2, 3, 4, 1, 2, 3, 4],
+ 'descriptor': {shape: [8], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'tile float16 2D tensor',
+ 'graph': {
+ 'inputs': {
+ 'tileInput': {
+ 'data': [1, 2, 3, 4],
+ 'descriptor': {shape: [2, 2], dataType: 'float16'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'tile',
+ 'arguments': [{'input': 'tileInput'}, {'repetitions': [2, 3]}],
+ 'outputs': 'tileOutput'
+ }],
+ 'expectedOutputs': {
+ 'tileOutput': {
+ 'data': [
+ 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4,
+ 1, 2, 1, 2, 1, 2, 3, 4, 3, 4, 3, 4
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
'name': 'tile uint32 2D tensor',
'graph': {
'inputs': {
diff --git a/tests/wpt/tests/webnn/conformance_tests/transpose.https.any.js b/tests/wpt/tests/webnn/conformance_tests/transpose.https.any.js
index 8a5afc1be2f..413b159f743 100644
--- a/tests/wpt/tests/webnn/conformance_tests/transpose.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/transpose.https.any.js
@@ -20,11 +20,8 @@
// MLOperand input, optional MLTransposeOptions options = {});
-const getTransposePrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 0, float16: 0};
- const expectedDataType =
- getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs);
- return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
+const getTransposePrecisionTolerance = () => {
+ return {metricType: 'ULP', value: 0};
};
const transposeTests = [
@@ -501,6 +498,205 @@ const transposeTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'transpose float16 1D constant tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'transposeInput': {
+ 'data': [
+ -45.6875, 53.46875, -60.125, 38.09375, 78.625, -69.25,
+ 1.84375, 92.8125, 56.09375, 77.0625, 57.46875, -84.75,
+ 46.375, -84.875, 56.71875, -25.6875, 5.62109375, -25.65625,
+ 99.4375, -87.5625, -65.375, -66, 38.46875, 2.19921875
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'transpose',
+ 'arguments': [{'input': 'transposeInput'}],
+ 'outputs': 'transposeOutput'
+ }],
+ 'expectedOutputs': {
+ 'transposeOutput': {
+ 'data': [
+ -45.6875, 53.46875, -60.125, 38.09375, 78.625, -69.25,
+ 1.84375, 92.8125, 56.09375, 77.0625, 57.46875, -84.75,
+ 46.375, -84.875, 56.71875, -25.6875, 5.62109375, -25.65625,
+ 99.4375, -87.5625, -65.375, -66, 38.46875, 2.19921875
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'transpose float16 1D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'transposeInput': {
+ 'data': [
+ -45.6875, 53.46875, -60.125, 38.09375, 78.625, -69.25,
+ 1.84375, 92.8125, 56.09375, 77.0625, 57.46875, -84.75,
+ 46.375, -84.875, 56.71875, -25.6875, 5.62109375, -25.65625,
+ 99.4375, -87.5625, -65.375, -66, 38.46875, 2.19921875
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'transpose',
+ 'arguments': [{'input': 'transposeInput'}],
+ 'outputs': 'transposeOutput'
+ }],
+ 'expectedOutputs': {
+ 'transposeOutput': {
+ 'data': [
+ -45.6875, 53.46875, -60.125, 38.09375, 78.625, -69.25,
+ 1.84375, 92.8125, 56.09375, 77.0625, 57.46875, -84.75,
+ 46.375, -84.875, 56.71875, -25.6875, 5.62109375, -25.65625,
+ 99.4375, -87.5625, -65.375, -66, 38.46875, 2.19921875
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'transpose float16 3D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'transposeInput': {
+ 'data': [
+ -45.6875, 53.46875, -60.125, 38.09375, 78.625, -69.25,
+ 1.84375, 92.8125, 56.09375, 77.0625, 57.46875, -84.75,
+ 46.375, -84.875, 56.71875, -25.6875, 5.62109375, -25.65625,
+ 99.4375, -87.5625, -65.375, -66, 38.46875, 2.19921875
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'transpose',
+ 'arguments': [{'input': 'transposeInput'}],
+ 'outputs': 'transposeOutput'
+ }],
+ 'expectedOutputs': {
+ 'transposeOutput': {
+ 'data': [
+ -45.6875, 46.375, 78.625, 5.62109375, 56.09375, -65.375,
+ 53.46875, -84.875, -69.25, -25.65625, 77.0625, -66,
+ -60.125, 56.71875, 1.84375, 99.4375, 57.46875, 38.46875,
+ 38.09375, -25.6875, 92.8125, -87.5625, -84.75, 2.19921875
+ ],
+ 'descriptor': {shape: [4, 3, 2], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'transpose float16 5D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'transposeInput': {
+ 'data': [
+ -45.6875, 53.46875, -60.125, 38.09375, 78.625, -69.25,
+ 1.84375, 92.8125, 56.09375, 77.0625, 57.46875, -84.75,
+ 46.375, -84.875, 56.71875, -25.6875, 5.62109375, -25.65625,
+ 99.4375, -87.5625, -65.375, -66, 38.46875, 2.19921875
+ ],
+ 'descriptor': {shape: [1, 2, 1, 3, 4], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'transpose',
+ 'arguments': [{'input': 'transposeInput'}],
+ 'outputs': 'transposeOutput'
+ }],
+ 'expectedOutputs': {
+ 'transposeOutput': {
+ 'data': [
+ -45.6875, 46.375, 78.625, 5.62109375, 56.09375, -65.375,
+ 53.46875, -84.875, -69.25, -25.65625, 77.0625, -66,
+ -60.125, 56.71875, 1.84375, 99.4375, 57.46875, 38.46875,
+ 38.09375, -25.6875, 92.8125, -87.5625, -84.75, 2.19921875
+ ],
+ 'descriptor': {shape: [4, 3, 1, 2, 1], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'transpose float16 1D tensor options.permutation',
+ 'graph': {
+ 'inputs': {
+ 'transposeInput': {
+ 'data': [
+ -45.6875, 53.46875, -60.125, 38.09375, 78.625, -69.25,
+ 1.84375, 92.8125, 56.09375, 77.0625, 57.46875, -84.75,
+ 46.375, -84.875, 56.71875, -25.6875, 5.62109375, -25.65625,
+ 99.4375, -87.5625, -65.375, -66, 38.46875, 2.19921875
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'transpose',
+ 'arguments':
+ [{'input': 'transposeInput'}, {'options': {'permutation': [0]}}],
+ 'outputs': 'transposeOutput'
+ }],
+ 'expectedOutputs': {
+ 'transposeOutput': {
+ 'data': [
+ -45.6875, 53.46875, -60.125, 38.09375, 78.625, -69.25,
+ 1.84375, 92.8125, 56.09375, 77.0625, 57.46875, -84.75,
+ 46.375, -84.875, 56.71875, -25.6875, 5.62109375, -25.65625,
+ 99.4375, -87.5625, -65.375, -66, 38.46875, 2.19921875
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'transpose float16 5D tensor options.permutation',
+ 'graph': {
+ 'inputs': {
+ 'transposeInput': {
+ 'data': [
+ -45.6875, 53.46875, -60.125, 38.09375, 78.625, -69.25,
+ 1.84375, 92.8125, 56.09375, 77.0625, 57.46875, -84.75,
+ 46.375, -84.875, 56.71875, -25.6875, 5.62109375, -25.65625,
+ 99.4375, -87.5625, -65.375, -66, 38.46875, 2.19921875
+ ],
+ 'descriptor': {shape: [1, 2, 1, 3, 4], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'transpose',
+ 'arguments': [
+ {'input': 'transposeInput'},
+ {'options': {'permutation': [1, 3, 0, 4, 2]}}
+ ],
+ 'outputs': 'transposeOutput'
+ }],
+ 'expectedOutputs': {
+ 'transposeOutput': {
+ 'data': [
+ -45.6875, 53.46875, -60.125, 38.09375, 78.625, -69.25,
+ 1.84375, 92.8125, 56.09375, 77.0625, 57.46875, -84.75,
+ 46.375, -84.875, 56.71875, -25.6875, 5.62109375, -25.65625,
+ 99.4375, -87.5625, -65.375, -66, 38.46875, 2.19921875
+ ],
+ 'descriptor': {shape: [2, 3, 1, 4, 1], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/triangular.https.any.js b/tests/wpt/tests/webnn/conformance_tests/triangular.https.any.js
index bf1f51471de..8006672f17d 100644
--- a/tests/wpt/tests/webnn/conformance_tests/triangular.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/triangular.https.any.js
@@ -23,11 +23,8 @@
// MLOperand input, optional MLTriangularOptions options = {});
-const getTriangularPrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 0, float16: 0};
- const expectedDataType =
- getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs);
- return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
+const getTriangularPrecisionTolerance = () => {
+ return {metricType: 'ULP', value: 0};
};
const triangularTests = [
@@ -773,6 +770,540 @@ const triangularTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'triangular float16 2D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments': [{'input': 'triangularInput'}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 0, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 0, 0, -29.921875, 67.5, 42.125, -70.25,
+ 0, 0, 0, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'triangular float16 3D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments': [{'input': 'triangularInput'}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, 0, -21.421875,
+ 24.671875, -50.34375, 0, 0, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 0, -70.25,
+ 20.890625, 71.375, 0, 0, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'triangular float16 4D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments': [{'input': 'triangularInput'}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, 0, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 0, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 0, 42.125, -70.25,
+ 20.890625, 71.375, -85, 0, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'triangular float16 5D tensor default options',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 1, 4, 1, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments': [{'input': 'triangularInput'}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 1, 4, 1, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'triangular float16 4D tensor explict options.upper=true',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments':
+ [{'input': 'triangularInput'}, {'options': {'upper': true}}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, 0, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 0, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 0, 42.125, -70.25,
+ 20.890625, 71.375, -85, 0, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'triangular float16 4D tensor options.upper=false',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments':
+ [{'input': 'triangularInput'}, {'options': {'upper': false}}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, 0, 0, -98.5, -94.5, 0, 24.671875, 0,
+ 0, 97.25, 73.375, 0, 41.65625, 0, 0, 67.5,
+ 42.125, 0, 20.890625, 0, 0, -89, 77.5625, 0
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'triangular float16 4D tensor explict options.diagonal=0',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments':
+ [{'input': 'triangularInput'}, {'options': {'diagonal': 0}}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, 0, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 0, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 0, 42.125, -70.25,
+ 20.890625, 71.375, -85, 0, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'triangular float16 4D tensor options.diagonal=1',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments':
+ [{'input': 'triangularInput'}, {'options': {'diagonal': 1}}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 0, -86.1875, 50.375, 0, 0, -21.421875,
+ 0, -50.34375, -37.03125, 0, 0, -75.125,
+ 0, 58.875, -29.921875, 0, 0, -70.25,
+ 0, 71.375, -85, 0, 0, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'triangular float16 4D tensor options.diagonal=-1',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments':
+ [{'input': 'triangularInput'}, {'options': {'diagonal': -1}}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'triangular float16 4D tensor fully zero options.diagonal=3',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments':
+ [{'input': 'triangularInput'}, {'options': {'diagonal': 3}}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'triangular float16 4D tensor fully copied options.diagonal=-2',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments':
+ [{'input': 'triangularInput'}, {'options': {'diagonal': -2}}],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'triangular float16 4D tensor options.upper=true options.diagonal=1',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments': [
+ {'input': 'triangularInput'},
+ {'options': {'upper': true, 'diagonal': 1}}
+ ],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 0, -86.1875, 50.375, 0, 0, -21.421875,
+ 0, -50.34375, -37.03125, 0, 0, -75.125,
+ 0, 58.875, -29.921875, 0, 0, -70.25,
+ 0, 71.375, -85, 0, 0, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'triangular float16 4D tensor options.upper=false options.diagonal=1',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments': [
+ {'input': 'triangularInput'},
+ {'options': {'upper': false, 'diagonal': 1}}
+ ],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, -86.1875, 0, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, 0, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, 0, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, 0, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'triangular float16 4D tensor options.upper=false options.diagonal=-1',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments': [
+ {'input': 'triangularInput'},
+ {'options': {'upper': false, 'diagonal': -1}}
+ ],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 0, 0, 0, -98.5, 0, 0, 0, 0, 0, 97.25, 0, 0,
+ 0, 0, 0, 67.5, 0, 0, 0, 0, 0, -89, 0, 0
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'triangular float16 4D tensor fully copied options.upper=false options.diagonal=3',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments': [
+ {'input': 'triangularInput'},
+ {'options': {'upper': false, 'diagonal': 3}}
+ ],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name':
+ 'triangular float16 4D tensor fully zero options.upper=false options.diagonal=-2',
+ 'graph': {
+ 'inputs': {
+ 'triangularInput': {
+ 'data': [
+ 84.9375, -86.1875, 50.375, -98.5, -94.5, -21.421875,
+ 24.671875, -50.34375, -37.03125, 97.25, 73.375, -75.125,
+ 41.65625, 58.875, -29.921875, 67.5, 42.125, -70.25,
+ 20.890625, 71.375, -85, -89, 77.5625, 91.0625
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'triangular',
+ 'arguments': [
+ {'input': 'triangularInput'},
+ {'options': {'upper': false, 'diagonal': -2}}
+ ],
+ 'outputs': 'triangularOutput'
+ }],
+ 'expectedOutputs': {
+ 'triangularOutput': {
+ 'data': [
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/conformance_tests/where.https.any.js b/tests/wpt/tests/webnn/conformance_tests/where.https.any.js
index 13291216a59..21975b46103 100644
--- a/tests/wpt/tests/webnn/conformance_tests/where.https.any.js
+++ b/tests/wpt/tests/webnn/conformance_tests/where.https.any.js
@@ -16,11 +16,8 @@
// falseValue);
-const getWherePrecisionTolerance = (graphResources) => {
- const toleranceValueDict = {float32: 0, float16: 0};
- const expectedDataType =
- getExpectedDataTypeOfSingleOutput(graphResources.expectedOutputs);
- return {metricType: 'ULP', value: toleranceValueDict[expectedDataType]};
+const getWherePrecisionTolerance = () => {
+ return {metricType: 'ULP', value: 0};
};
const whereTests = [
@@ -1009,6 +1006,834 @@ const whereTests = [
}
}
}
+ },
+
+ // float16 tests
+ {
+ 'name': 'where float16 0D scalars',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition':
+ {'data': [247], 'descriptor': {shape: [], dataType: 'uint8'}},
+ 'inputTrueValue': {
+ 'data': [-22.84375],
+ 'descriptor': {shape: [], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [-50.03125],
+ 'descriptor': {shape: [], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [-22.84375],
+ 'descriptor': {shape: [], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 1D constant tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [
+ 241, 0, 85, 0, 227, 51, 202, 0, 104, 227, 129, 129,
+ 175, 134, 130, 140, 103, 46, 158, 17, 0, 41, 94, 0
+ ],
+ 'descriptor': {shape: [24], dataType: 'uint8'},
+ 'constant': true
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'},
+ 'constant': true
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'},
+ 'constant': true
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, 66.75, -1.53515625, -21.6875, 29.59375,
+ -37.09375, -6.6640625, 65.5625, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ 18.875, -23.296875, 30.84375, -75.4375
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 1D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [
+ 241, 0, 85, 0, 227, 51, 202, 0, 104, 227, 129, 129,
+ 175, 134, 130, 140, 103, 46, 158, 17, 0, 41, 94, 0
+ ],
+ 'descriptor': {shape: [24], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, 66.75, -1.53515625, -21.6875, 29.59375,
+ -37.09375, -6.6640625, 65.5625, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ 18.875, -23.296875, 30.84375, -75.4375
+ ],
+ 'descriptor': {shape: [24], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 2D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [
+ 241, 0, 85, 0, 227, 51, 202, 0, 104, 227, 129, 129,
+ 175, 134, 130, 140, 103, 46, 158, 17, 0, 41, 94, 0
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, 66.75, -1.53515625, -21.6875, 29.59375,
+ -37.09375, -6.6640625, 65.5625, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ 18.875, -23.296875, 30.84375, -75.4375
+ ],
+ 'descriptor': {shape: [4, 6], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 3D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [
+ 241, 0, 85, 0, 227, 51, 202, 0, 104, 227, 129, 129,
+ 175, 134, 130, 140, 103, 46, 158, 17, 0, 41, 94, 0
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, 66.75, -1.53515625, -21.6875, 29.59375,
+ -37.09375, -6.6640625, 65.5625, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ 18.875, -23.296875, 30.84375, -75.4375
+ ],
+ 'descriptor': {shape: [2, 3, 4], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [
+ 241, 0, 85, 0, 227, 51, 202, 0, 104, 227, 129, 129,
+ 175, 134, 130, 140, 103, 46, 158, 17, 0, 41, 94, 0
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, 66.75, -1.53515625, -21.6875, 29.59375,
+ -37.09375, -6.6640625, 65.5625, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ 18.875, -23.296875, 30.84375, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 5D tensors',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [
+ 241, 0, 85, 0, 227, 51, 202, 0, 104, 227, 129, 129,
+ 175, 134, 130, 140, 103, 46, 158, 17, 0, 41, 94, 0
+ ],
+ 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, 66.75, -1.53515625, -21.6875, 29.59375,
+ -37.09375, -6.6640625, 65.5625, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ 18.875, -23.296875, 30.84375, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors only broadcast condition 0D to 4D',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition':
+ {'data': [247], 'descriptor': {shape: [], dataType: 'uint8'}},
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors only broadcast condition 1D to 4D',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [253, 222, 0],
+ 'descriptor': {shape: [3], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, 90, -39.8125, -83.75, 29.59375, -46.46875,
+ -6.6640625, -83.125, 35.15625, -45.46875, 50.375, 60.75,
+ 47.5, -21.953125, 34.3125, -76.8125, 67, 91.125,
+ -29.078125, -12.1875, 18.875, -23.296875, 30.84375, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors only broadcast condition 2D to 4D',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [103, 0],
+ 'descriptor': {shape: [2, 1], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, 90, -1.53515625, -21.6875, -67.375, -46.46875,
+ -6.6640625, -83.125, -90.5, 11.9609375, 76.625, 60.75,
+ 47.5, -21.953125, 42.90625, 7.70703125, -82.25, 91.125,
+ -29.078125, -12.1875, -10.859375, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors only broadcast condition 3D to 4D',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [235, 0, 93, 213, 0, 117],
+ 'descriptor': {shape: [1, 2, 3], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, 66.75, -1.53515625, -83.75, -67.375, -37.09375,
+ -6.6640625, 65.5625, -90.5, -45.46875, 76.625, 46.5,
+ 47.5, -30.390625, 42.90625, -76.8125, -82.25, 40.09375,
+ -29.078125, 75, -10.859375, -23.296875, 48.875, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors only broadcast condition 4D to 4D',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [0, 165, 0, 90],
+ 'descriptor': {shape: [1, 2, 2, 1], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -83.75, 29.59375, -37.09375,
+ -55.90625, 65.5625, 35.15625, -45.46875, 50.375, 46.5,
+ -93.9375, -30.390625, 34.3125, -76.8125, 67, 40.09375,
+ 22.9375, 75, 18.875, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors only broadcast trueValues 2D to 4D',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [
+ 241, 0, 85, 0, 227, 51, 202, 0, 104, 227, 129, 129,
+ 175, 134, 130, 140, 103, 46, 158, 17, 0, 41, 94, 0
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data':
+ [38.78125, 18.203125, -11.5390625, -82.75, -18.609375, -75.75],
+ 'descriptor': {shape: [2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 38.78125, 66.75, -11.5390625, -21.6875, -18.609375, -75.75,
+ 38.78125, 65.5625, -11.5390625, -82.75, -18.609375, -75.75,
+ 38.78125, 18.203125, -11.5390625, -82.75, -18.609375, -75.75,
+ 38.78125, 18.203125, 18.875, -82.75, -18.609375, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors only broadcast trueValues 4D to 4D',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [
+ 241, 0, 85, 0, 227, 51, 202, 0, 104, 227, 129, 129,
+ 175, 134, 130, 140, 103, 46, 158, 17, 0, 41, 94, 0
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [-29.171875, 32.1875, -6.1484375, -24.828125],
+ 'descriptor': {shape: [2, 2, 1, 1], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [
+ 90.4375, 66.75, -39.8125, -21.6875, -67.375, -46.46875,
+ -55.90625, 65.5625, 35.15625, 11.9609375, 76.625, 60.75,
+ -93.9375, -30.390625, 34.3125, 7.70703125, -82.25, 91.125,
+ 22.9375, 75, 18.875, 62.3125, 48.875, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ -29.171875, 66.75, -29.171875, -21.6875, -29.171875,
+ -29.171875, 32.1875, 65.5625, 32.1875, 32.1875,
+ 32.1875, 32.1875, -6.1484375, -6.1484375, -6.1484375,
+ -6.1484375, -6.1484375, -6.1484375, -24.828125, -24.828125,
+ 18.875, -24.828125, -24.828125, -75.4375
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors only broadcast falseValues 3D to 4D',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [
+ 241, 0, 85, 0, 227, 51, 202, 0, 104, 227, 129, 129,
+ 175, 134, 130, 140, 103, 46, 158, 17, 0, 41, 94, 0
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [-86.625, -67.75, -30.734375, -93.5],
+ 'descriptor': {shape: [2, 2, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, -86.625, -1.53515625, -67.75, 29.59375,
+ -37.09375, -6.6640625, -30.734375, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -30.734375, -23.296875, 30.84375, -93.5
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors only broadcast falseValues 4D to 4D',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [
+ 241, 0, 85, 0, 227, 51, 202, 0, 104, 227, 129, 129,
+ 175, 134, 130, 140, 103, 46, 158, 17, 0, 41, 94, 0
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data': [
+ 70.25, 90, -1.53515625, -83.75, 29.59375,
+ -37.09375, -6.6640625, -83.125, -90.5, -45.46875,
+ 50.375, 46.5, 47.5, -21.953125, 42.90625,
+ -76.8125, 67, 40.09375, -29.078125, -12.1875,
+ -10.859375, -23.296875, 30.84375, -58.8125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [17.78125, -1.9892578125, -57.28125, -80, 66.875, -31.328125],
+ 'descriptor': {shape: [1, 2, 1, 3], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 70.25, -1.9892578125, -1.53515625, 17.78125,
+ 29.59375, -37.09375, -6.6640625, 66.875,
+ -90.5, -45.46875, 50.375, 46.5,
+ 47.5, -21.953125, 42.90625, -76.8125,
+ 67, 40.09375, -29.078125, -12.1875,
+ -31.328125, -23.296875, 30.84375, -31.328125
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
+ },
+ {
+ 'name': 'where float16 4D tensors all broadcast 4D',
+ 'graph': {
+ 'inputs': {
+ 'inputCondition': {
+ 'data': [58, 217],
+ 'descriptor': {shape: [2, 1, 1, 1], dataType: 'uint8'}
+ },
+ 'inputTrueValue': {
+ 'data':
+ [38.78125, 18.203125, -11.5390625, -82.75, -18.609375, -75.75],
+ 'descriptor': {shape: [2, 3], dataType: 'float16'}
+ },
+ 'inputFalseValue': {
+ 'data': [-86.625, -67.75, -30.734375, -93.5],
+ 'descriptor': {shape: [2, 2, 1], dataType: 'float16'}
+ }
+ },
+ 'operators': [{
+ 'name': 'where',
+ 'arguments': [
+ {'condition': 'inputCondition'}, {'trueValue': 'inputTrueValue'},
+ {'falseValue': 'inputFalseValue'}
+ ],
+ 'outputs': 'whereOutput'
+ }],
+ 'expectedOutputs': {
+ 'whereOutput': {
+ 'data': [
+ 38.78125, 18.203125, -11.5390625, -82.75, -18.609375, -75.75,
+ 38.78125, 18.203125, -11.5390625, -82.75, -18.609375, -75.75,
+ 38.78125, 18.203125, -11.5390625, -82.75, -18.609375, -75.75,
+ 38.78125, 18.203125, -11.5390625, -82.75, -18.609375, -75.75
+ ],
+ 'descriptor': {shape: [2, 2, 2, 3], dataType: 'float16'}
+ }
+ }
+ }
}
];
diff --git a/tests/wpt/tests/webnn/validation_tests/pad.https.any.js b/tests/wpt/tests/webnn/validation_tests/pad.https.any.js
index 75486a50b32..fb285ed8277 100644
--- a/tests/wpt/tests/webnn/validation_tests/pad.https.any.js
+++ b/tests/wpt/tests/webnn/validation_tests/pad.https.any.js
@@ -83,6 +83,50 @@ const tests = [
},
},
{
+ name:
+ '[pad] Throw if beginningPadding[index] is equal to inputShape[index] on reflection mode.',
+ input: {dataType: 'float32', shape: [2, 3]},
+ beginningPadding: [2, 0],
+ endingPadding: [1, 2],
+ options: {
+ mode: 'reflection',
+ label: label,
+ },
+ },
+ {
+ name:
+ '[pad] Throw if beginningPadding[index] is greater than inputShape[index] on reflection mode.',
+ input: {dataType: 'float32', shape: [2, 3]},
+ beginningPadding: [3, 0],
+ endingPadding: [1, 2],
+ options: {
+ mode: 'reflection',
+ label: label,
+ },
+ },
+ {
+ name:
+ '[pad] Throw if endingPadding[index] is equal to inputShape[index] on reflection mode.',
+ input: {dataType: 'float32', shape: [2, 3]},
+ beginningPadding: [1, 0],
+ endingPadding: [1, 3],
+ options: {
+ mode: 'reflection',
+ label: label,
+ },
+ },
+ {
+ name:
+ '[pad] Throw if endingPadding[index] is greater than inputShape[index] on reflection mode.',
+ input: {dataType: 'float32', shape: [2, 3]},
+ beginningPadding: [1, 0],
+ endingPadding: [1, 4],
+ options: {
+ mode: 'reflection',
+ label: label,
+ },
+ },
+ {
name: '[pad] Throw if the padding of one dimension is too large.',
input: {dataType: 'float32', shape: [2, 3]},
beginningPadding: [2294967295, 0],
diff --git a/tests/wpt/tests/webrtc/RTCPeerConnection-addTransceiver-renegotiation.https.html b/tests/wpt/tests/webrtc/RTCPeerConnection-addTransceiver-renegotiation.https.html
new file mode 100644
index 00000000000..76259c57686
--- /dev/null
+++ b/tests/wpt/tests/webrtc/RTCPeerConnection-addTransceiver-renegotiation.https.html
@@ -0,0 +1,75 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>RTCPeerConnection: media flows to a second unidirectional transceiver added through renegotiation.</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="RTCPeerConnection-helper.js"></script>
+<script>
+ 'use strict';
+
+ async function doTest(t, kind, firstTransceiverDirection) {
+ const pc1 = new RTCPeerConnection();
+ const pc2 = new RTCPeerConnection();
+ t.add_cleanup(() => pc1.close());
+ t.add_cleanup(() => pc2.close());
+
+ exchangeIceCandidates(pc1, pc2);
+
+ // Add a transceiver that we won't use and negotiate.
+ pc1.addTransceiver(kind, {direction: "recvonly"});
+ await pc1.setLocalDescription();
+ await pc2.setRemoteDescription(pc1.localDescription);
+ const [sendTransceiver1] = pc2.getTransceivers();
+ sendTransceiver1.direction = firstTransceiverDirection;
+ await pc2.setLocalDescription();
+ await pc1.setRemoteDescription(pc2.localDescription);
+
+ // Add another transceiver, that we will use, and renegotiate.
+ const stream = await getNoiseStream({[kind]: true});
+ const [track] = stream.getTracks();
+ t.add_cleanup(() => track.stop());
+
+ pc1.addTransceiver(kind, {direction: "recvonly"});
+ await pc1.setLocalDescription();
+ await pc2.setRemoteDescription(pc1.localDescription);
+ const [, sendTransceiver2] = pc2.getTransceivers();
+ sendTransceiver2.direction = "sendonly";
+ sendTransceiver2.sender.replaceTrack(track);
+
+ await pc2.setLocalDescription();
+ await pc1.setRemoteDescription(pc2.localDescription);
+
+ const [, recvTransceiver] = pc1.getTransceivers();
+ const {receiver} = recvTransceiver;
+ const threshold = 10;
+ let inboundStats, timedout = false;
+ t.step_timeout(() => timedout = true, 2000);
+ while (!timedout) {
+ const stats = await receiver.getStats();
+ inboundStats = [...stats.values()].find(({type}) => type == "inbound-rtp");
+ if (inboundStats?.packetsReceived > threshold) break;
+ await new Promise(r => t.step_timeout(r, 50));
+ }
+ assert_greater_than(inboundStats?.packetsReceived,
+ threshold,
+ "packets received indicates media flow."
+ );
+ }
+
+ promise_test(async t => {
+ await doTest(t, "video", "sendonly");
+ }, "Video flows to RTCPeerConnection's second transceiver added through renegotiation, with first transceiver also sending");
+
+ promise_test(async t => {
+ await doTest(t, "audio", "sendonly");
+ }, "Audio flows to RTCPeerConnection's second transceiver added through renegotiation, with first transceiver also sending");
+
+ promise_test(async t => {
+ await doTest(t, "video", "inactive");
+ }, "Video flows to RTCPeerConnection's second transceiver added through renegotiation, with first transceiver inactive");
+
+ promise_test(async t => {
+ await doTest(t, "audio", "inactive");
+ }, "Audio flows to RTCPeerConnection's second transceiver added through renegotiation, with first transceiver inactive");
+
+</script>
diff --git a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https.html b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https.html
index e120f0b7dd1..c3942c9ab25 100644
--- a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https.html
@@ -17,7 +17,7 @@ const fakeDeviceInitParams = {
};
xr_session_promise_test("Ensures depth data is not available when cleared in the controller, `cpu-optimized`",
- dataUnavailableTestFunctionGenerator(/*isCpuOptimized=*/true),
+ dataUnavailableTestFunction,
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
diff --git a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https.html b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https.html
index c6ac8c60b0a..6af5febff74 100644
--- a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https.html
@@ -16,7 +16,7 @@ const fakeDeviceInitParams = {
};
xr_session_promise_test("Ensures appropriate depth methods and attributes throw when not run in an active frame, `cpu-optimized`",
- inactiveFrameTestFunctionGenerator(/*isCpuOptimized=*/true),
+ inactiveFrameTestFunction,
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
diff --git a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewDepthData.https.html b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewDepthData.https.html
new file mode 100644
index 00000000000..a2316fac8c1
--- /dev/null
+++ b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewDepthData.https.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>WebXR Depth Sensing Test: XRDepthInformation.data buffer with matchDepthView and offset depth data (CPU)</title>
+<link rel="help" href="https://immersive-web.github.io/depth-sensing/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/webxr/resources/webxr_util.js"></script>
+<script src="/webxr/resources/webxr_test_constants.js"></script>
+<script src="/webxr/resources/webxr_test_constants_fake_depth.js"></script>
+<script src="/webxr/resources/webxr_test_asserts.js"></script>
+
+<canvas id="webgl-canvas"></canvas>
+<script>
+
+const offsetMatchDepthViewDataTestGenerator = function(matchDepthView) {
+ return function(session, controller, t, sessionObjects) {
+ return session.requestReferenceSpace('viewer').then((viewerSpace) => new Promise((resolve, reject) => {
+ const rafCb = function(time, frame) {
+ const pose = frame.getViewerPose(viewerSpace);
+
+ for (const view of pose.views) {
+ const depthInformation = frame.getDepthInformation(view);
+ t.step(() => {
+ assert_not_equals(depthInformation, null, "Depth information should not be null.");
+ assert_not_equals(depthInformation.data, null, "Depth information data ArrayBuffer should not be null.");
+
+ // OFFSET_DEPTH_SENSING_DATA.depthData is a Uint8Array.
+ // We need its underlying ArrayBuffer for comparison with depthInformation.data.
+ const rawDeviceDepthArrayBuffer = OFFSET_DEPTH_SENSING_DATA.depthData.buffer;
+ const pageVisibleDepthArrayBuffer = depthInformation.data;
+
+ if (matchDepthView) {
+ // When matchDepthView is true, depth data should be reprojected to the XRView.
+ // This reprojected data must be different from the raw device data.
+ assert_array_buffer_not_equals(
+ pageVisibleDepthArrayBuffer,
+ rawDeviceDepthArrayBuffer,
+ "Page depth data ArrayBuffer SHOULD NOT match raw device depth data ArrayBuffer when matchDepthView is true.");
+ } else {
+ // When matchDepthView is false, depth data should be the raw device data,
+ // without reprojection to the XRView.
+ assert_array_buffer_equals(
+ pageVisibleDepthArrayBuffer,
+ rawDeviceDepthArrayBuffer,
+ "Page depth data ArrayBuffer SHOULD match raw device depth data ArrayBuffer when matchDepthView is false.");
+ }
+ });
+ }
+ resolve();
+ };
+
+ session.requestAnimationFrame(rafCb);
+ }));
+ };
+};
+
+const fakeDeviceInitParams = {
+ supportedModes: ["immersive-ar"],
+ views: VALID_VIEWS,
+ supportedFeatures: ALL_FEATURES,
+ depthSensingData: OFFSET_DEPTH_SENSING_DATA,
+};
+
+xr_session_promise_test(
+ `XRDepthInformation.data matches raw device data when matchDepthView is false with offset depth (CPU)`,
+ offsetMatchDepthViewDataTestGenerator(/*matchDepthView=*/false),
+ fakeDeviceInitParams,
+ 'immersive-ar',
+ {
+ requiredFeatures: ['depth-sensing'],
+ depthSensing: {
+ usagePreference: ['cpu-optimized'],
+ dataFormatPreference: [OFFSET_DEPTH_SENSING_DATA.depthFormat],
+ matchDepthView: false
+ }
+});
+
+xr_session_promise_test(
+ `XRDepthInformation.data does NOT match raw device data when matchDepthView is true with offset depth (CPU)`,
+ offsetMatchDepthViewDataTestGenerator(/*matchDepthView=*/true),
+ fakeDeviceInitParams,
+ 'immersive-ar',
+ {
+ requiredFeatures: ['depth-sensing'],
+ depthSensing: {
+ usagePreference: ['cpu-optimized'],
+ dataFormatPreference: [OFFSET_DEPTH_SENSING_DATA.depthFormat],
+ matchDepthView: true
+ }
+ }
+);
+</script>
diff --git a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html
index f3256106e90..306ad03fa04 100644
--- a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_matchDepthViewIdentity.https.html
@@ -14,17 +14,11 @@ const fakeDeviceInitParams = {
supportedModes: ["immersive-ar"],
views: VALID_VIEWS,
supportedFeatures: ALL_FEATURES,
- depthSensingData: DEPTH_SENSING_DATA,
+ depthSensingData: OFFSET_DEPTH_SENSING_DATA,
};
-function matchDepthViewFalsePlaceholderTest(session) {
- // Currently we just assert that we are able to get a session when
- // matchDepthView is false. If we got to this point, we have a session.
- return Promise.resolve();
-}
-
-xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDepthView is unset, `cpu-optimized`",
- depthViewGeometryTestGenerator(/*isCpuOptimized=*/true),
+xr_session_promise_test("Ensures XRViewGeometry values match XRView when matchDepthView is unset, `cpu-optimized`",
+ depthViewGeometryTestGenerator(/*matchDepthView=*/true),
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
@@ -34,8 +28,8 @@ xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDe
},
});
-xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDepthView=true, `cpu-optimized`",
- depthViewGeometryTestGenerator(/*isCpuOptimized=*/true),
+xr_session_promise_test("Ensures XRViewGeometry values match XRView when matchDepthView=true, `cpu-optimized`",
+ depthViewGeometryTestGenerator(/*matchDepthView=*/true),
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
@@ -46,8 +40,8 @@ xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDe
},
});
-xr_session_promise_test("Ensures session can be created when matchDepthView=false, `cpu-optimized`",
- matchDepthViewFalsePlaceholderTest,
+xr_session_promise_test("Ensures XRViewGeometry values do not match XRView when matchDepthView=false, `cpu-optimized`",
+ depthViewGeometryTestGenerator(/*matchDepthView=*/false),
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
diff --git a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_pauseResume.https.html b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_pauseResume.https.html
index 47469f4a0ea..78c5c89f7a9 100644
--- a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_pauseResume.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_pauseResume.https.html
@@ -17,7 +17,7 @@ const fakeDeviceInitParams = {
};
xr_session_promise_test("Ensures appropriate data availability with (pause|resume)DepthSensing, `cpu-optimized`",
- pauseResumeTestFunctionGenerator(/*isCpuOptimized=*/true),
+ pauseResumeTestFunction,
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
diff --git a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https.html b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https.html
index 6a411ace451..04b346ebfcb 100644
--- a/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https.html
@@ -16,7 +16,7 @@ const fakeDeviceInitParams = {
};
xr_session_promise_test("Ensures getDepthInformation() throws when run with stale XRView, `cpu-optimized`",
- staleViewsTestFunctionGenerator(/*isCpuOptimized=*/true),
+ staleViewsTestFunction,
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
diff --git a/tests/wpt/tests/webxr/depth-sensing/dataUnavailableTests.js b/tests/wpt/tests/webxr/depth-sensing/dataUnavailableTests.js
index 7460af71326..cd503aa5f14 100644
--- a/tests/wpt/tests/webxr/depth-sensing/dataUnavailableTests.js
+++ b/tests/wpt/tests/webxr/depth-sensing/dataUnavailableTests.js
@@ -6,53 +6,52 @@ const TestStates = Object.freeze({
"ShouldSucceedTestDone": 3,
});
-const dataUnavailableTestFunctionGenerator = function(isCpuOptimized) {
- return (session, controller, t, sessionObjects) => {
- let state = TestStates.ShouldSucceedScheduleRAF;
-
- return session.requestReferenceSpace('viewer').then((viewerSpace) => {
- let done = false;
-
- const glBinding = new XRWebGLBinding(session, sessionObjects.gl);
-
- const rafCb = function(time, frame) {
- const pose = frame.getViewerPose(viewerSpace);
- for(const view of pose.views) {
- const depthInformation = isCpuOptimized ? frame.getDepthInformation(view)
- : glBinding.getDepthInformation(view);
-
- if (state == TestStates.ShouldSucceedScheduleRAF
- || state == TestStates.ShouldSucceedTestDone) {
- t.step(() => {
- assert_not_equals(depthInformation, null);
- });
- } else {
- t.step(() => {
- assert_equals(depthInformation, null);
- });
- }
+const dataUnavailableTestFunction = function(session, controller, t, sessionObjects) {
+ let state = TestStates.ShouldSucceedScheduleRAF;
+ const isCpuOptimized = session.depthUsage === 'cpu-optimized';
+
+ return session.requestReferenceSpace('viewer').then((viewerSpace) => {
+ let done = false;
+
+ const glBinding = new XRWebGLBinding(session, sessionObjects.gl);
+
+ const rafCb = function(time, frame) {
+ const pose = frame.getViewerPose(viewerSpace);
+ for(const view of pose.views) {
+ const depthInformation = isCpuOptimized ? frame.getDepthInformation(view)
+ : glBinding.getDepthInformation(view);
+
+ if (state == TestStates.ShouldSucceedScheduleRAF
+ || state == TestStates.ShouldSucceedTestDone) {
+ t.step(() => {
+ assert_not_equals(depthInformation, null);
+ });
+ } else {
+ t.step(() => {
+ assert_equals(depthInformation, null);
+ });
}
-
- switch(state) {
- case TestStates.ShouldSucceedScheduleRAF:
- controller.clearDepthSensingData();
- state = TestStates.ShouldFailScheduleRAF;
- session.requestAnimationFrame(rafCb);
- break;
- case TestStates.ShouldFailScheduleRAF:
- controller.setDepthSensingData(DEPTH_SENSING_DATA);
- state = TestStates.ShouldSucceedTestDone;
- session.requestAnimationFrame(rafCb);
- break;
- case TestStates.ShouldSucceedTestDone:
- done = true;
- break;
- }
- };
-
- session.requestAnimationFrame(rafCb);
-
- return t.step_wait(() => done);
- });
- };
-}; \ No newline at end of file
+ }
+
+ switch(state) {
+ case TestStates.ShouldSucceedScheduleRAF:
+ controller.clearDepthSensingData();
+ state = TestStates.ShouldFailScheduleRAF;
+ session.requestAnimationFrame(rafCb);
+ break;
+ case TestStates.ShouldFailScheduleRAF:
+ controller.setDepthSensingData(DEPTH_SENSING_DATA);
+ state = TestStates.ShouldSucceedTestDone;
+ session.requestAnimationFrame(rafCb);
+ break;
+ case TestStates.ShouldSucceedTestDone:
+ done = true;
+ break;
+ }
+ };
+
+ session.requestAnimationFrame(rafCb);
+
+ return t.step_wait(() => done);
+ });
+};
diff --git a/tests/wpt/tests/webxr/depth-sensing/depth_type_request_respected.https.html b/tests/wpt/tests/webxr/depth-sensing/depth_type_request_respected.https.html
index 2846c9ce10b..8eb3c36cbb4 100644
--- a/tests/wpt/tests/webxr/depth-sensing/depth_type_request_respected.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/depth_type_request_respected.https.html
@@ -6,6 +6,20 @@
<script>
+const SMOOTH_DEPTH_ONLY_DEVICE = {
+ ...IMMERSIVE_AR_DEVICE,
+ depthSupport: {
+ depthTypes: ["smooth"]
+ }
+};
+
+const RAW_DEPTH_ONLY_DEVICE = {
+ ...IMMERSIVE_AR_DEVICE,
+ depthSupport: {
+ depthTypes: ["raw"]
+ }
+};
+
const depthTypeFunctionGenerator = function(expectedSessionDepthType) {
return (session, controller, t) => new Promise((resolve) => {
t.step(()=> {
@@ -16,6 +30,20 @@ const depthTypeFunctionGenerator = function(expectedSessionDepthType) {
});
}
+// While only requesting a depth type that is unsupported is allowed, the spec
+// does not require that the actual supported type be returned. So we simply
+// test that e.g. if a device does not support smooth depth it doesn't say it
+// does.
+const unexpectedDepthTypeFunctionGenerator = function(unexpectedSessionDepthType) {
+ return (session, controller, t) => new Promise((resolve) => {
+ t.step(()=> {
+ assert_false(session.depthType === unexpectedSessionDepthType);
+ });
+
+ resolve();
+ });
+}
+
xr_session_promise_test(
"Can grant sessions that request a raw depth type",
depthTypeFunctionGenerator("raw"),
@@ -71,4 +99,32 @@ xr_session_promise_test(
},
});
+xr_session_promise_test(
+ "Unsupported depth type does not block creation - raw",
+ unexpectedDepthTypeFunctionGenerator("raw"),
+ SMOOTH_DEPTH_ONLY_DEVICE,
+ 'immersive-ar',
+ {
+ 'requiredFeatures': ['depth-sensing'],
+ depthSensing: {
+ usagePreference: [],
+ dataFormatPreference: [],
+ depthTypeRequest: ["raw"],
+ },
+ });
+
+xr_session_promise_test(
+ "Unsupported depth type does not block creation - smooth",
+ unexpectedDepthTypeFunctionGenerator("smooth"),
+ RAW_DEPTH_ONLY_DEVICE,
+ 'immersive-ar',
+ {
+ 'requiredFeatures': ['depth-sensing'],
+ depthSensing: {
+ usagePreference: [],
+ dataFormatPreference: [],
+ depthTypeRequest: ["smooth"],
+ },
+ });
+
</script>
diff --git a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https.html b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https.html
index 018edf76934..de67b712e01 100644
--- a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https.html
@@ -17,7 +17,7 @@ const fakeDeviceInitParams = {
};
xr_session_promise_test("Ensures depth data is not available when cleared in the controller, `gpu-optimized`",
- dataUnavailableTestFunctionGenerator(/*isCpuOptimized=*/false),
+ dataUnavailableTestFunction,
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
diff --git a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_inactiveFrame.https.html b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_inactiveFrame.https.html
index 8528b4f80d8..9bd850ab9c9 100644
--- a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_inactiveFrame.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_inactiveFrame.https.html
@@ -16,7 +16,7 @@ const fakeDeviceInitParams = {
};
xr_session_promise_test("Ensures appropriate depth methods and attributes throw when not run in an active frame, `gpu-optimized`",
- testFunctionGenerator(/*isCpuOptimized=*/false),
+ inactiveFrameTestFunction,
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
diff --git a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html
index 1813ddd449e..a6f1eb184e9 100644
--- a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_matchDepthViewIdentity.https.html
@@ -14,17 +14,11 @@ const fakeDeviceInitParams = {
supportedModes: ["immersive-ar"],
views: VALID_VIEWS,
supportedFeatures: ALL_FEATURES,
- depthSensingData: DEPTH_SENSING_DATA,
+ depthSensingData: OFFSET_DEPTH_SENSING_DATA,
};
-function matchDepthViewFalsePlaceholderTest(session) {
- // Currently we just assert that we are able to get a session when
- // matchDepthView is false. If we got to this point, we have a session.
- return Promise.resolve();
-}
-
-xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDepthView is unset, `gpu-optimized`",
- depthViewGeometryTestGenerator(/*isCpuOptimized=*/false),
+xr_session_promise_test("Ensures XRViewGeometry values match XRView when matchDepthView is unset, `gpu-optimized`",
+ depthViewGeometryTestGenerator(/*matchDepthView=*/true),
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
@@ -34,8 +28,8 @@ xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDe
},
});
-xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDepthView=true, `gpu-optimized`",
- depthViewGeometryTestGenerator(/*isCpuOptimized=*/false),
+xr_session_promise_test("Ensures XRViewGeometry values match XRView when matchDepthView=true, `gpu-optimized`",
+ depthViewGeometryTestGenerator(/*matchDepthView=*/true),
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
@@ -46,8 +40,8 @@ xr_session_promise_test("Ensures XRViewGeometry values are identity when matchDe
},
});
-xr_session_promise_test("Ensures session can be created when matchDepthView=false, `gpu-optimized`",
- matchDepthViewFalsePlaceholderTest,
+xr_session_promise_test("Ensures XRViewGeometry values do not match XRView when matchDepthView=false, `gpu-optimized`",
+ depthViewGeometryTestGenerator(/*matchDepthView=*/false),
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
diff --git a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_pauseResume.https.html b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_pauseResume.https.html
index d51edb8cd3b..8be32feb807 100644
--- a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_pauseResume.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_pauseResume.https.html
@@ -17,7 +17,7 @@ const fakeDeviceInitParams = {
};
xr_session_promise_test("Ensures appropriate data availability with (pause|resume)DepthSensing, `gpu-optimized`",
- pauseResumeTestFunctionGenerator(/*isCpuOptimized=*/false),
+ pauseResumeTestFunction,
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
diff --git a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https.html b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https.html
index ecd0d479f7a..95a0c6f7825 100644
--- a/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https.html
+++ b/tests/wpt/tests/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https.html
@@ -16,7 +16,7 @@ const fakeDeviceInitParams = {
};
xr_session_promise_test("Ensures getDepthInformation() throws when not run with stale XRView, `gpu-optimized`",
- staleViewsTestFunctionGenerator(/*isCpuOptimized=*/false),
+ staleViewsTestFunction,
fakeDeviceInitParams,
'immersive-ar', {
requiredFeatures: ['depth-sensing'],
diff --git a/tests/wpt/tests/webxr/depth-sensing/inactiveFrameTests.js b/tests/wpt/tests/webxr/depth-sensing/inactiveFrameTests.js
index 0cc42595537..e08d9b5a12d 100644
--- a/tests/wpt/tests/webxr/depth-sensing/inactiveFrameTests.js
+++ b/tests/wpt/tests/webxr/depth-sensing/inactiveFrameTests.js
@@ -1,42 +1,40 @@
'use strict';
+const inactiveFrameTestFunction = function(session, controller, t, sessionObjects) {
+ const isCpuOptimized = session.depthUsage === 'cpu-optimized';
+ return session.requestReferenceSpace('viewer').then((viewerSpace) => {
+ let callbacksKickedOff = false;
+ let callbackCounter = 0;
-const inactiveFrameTestFunctionGenerator = function(isCpuOptimized) {
- return (session, controller, t, sessionObjects) => {
- return session.requestReferenceSpace('viewer').then((viewerSpace) => {
- let callbacksKickedOff = false;
- let callbackCounter = 0;
+ const glBinding = new XRWebGLBinding(session, sessionObjects.gl);
- const glBinding = new XRWebGLBinding(session, sessionObjects.gl);
-
- const rafCb = function(time, frame) {
- const pose = frame.getViewerPose(viewerSpace);
- for(const view of pose.views) {
- const callback = () => {
- t.step(() => {
- assert_throws_dom("InvalidStateError",
- () => isCpuOptimized ? frame.getDepthInformation(view)
- : glBinding.getDepthInformation(view),
- "getDepthInformation() should throw when ran outside RAF");
- assert_throws_dom("InvalidStateError",
- () => session.pauseDepthSensing(),
- "pauseDepthSensing() should thrown when ran outside RAF");
- assert_throws_dom("InvalidStateError",
- () => session.resumeDepthSensing(),
- "resumeDepthSensing() should thrown when ran outside RAF");
- });
- callbackCounter--;
- }
-
- t.step_timeout(callback, 10);
- callbackCounter++;
+ const rafCb = function(time, frame) {
+ const pose = frame.getViewerPose(viewerSpace);
+ for(const view of pose.views) {
+ const callback = () => {
+ t.step(() => {
+ assert_throws_dom("InvalidStateError",
+ () => isCpuOptimized ? frame.getDepthInformation(view)
+ : glBinding.getDepthInformation(view),
+ "getDepthInformation() should throw when ran outside RAF");
+ assert_throws_dom("InvalidStateError",
+ () => session.pauseDepthSensing(),
+ "pauseDepthSensing() should thrown when ran outside RAF");
+ assert_throws_dom("InvalidStateError",
+ () => session.resumeDepthSensing(),
+ "resumeDepthSensing() should thrown when ran outside RAF");
+ });
+ callbackCounter--;
}
- callbacksKickedOff = true;
- };
+ t.step_timeout(callback, 10);
+ callbackCounter++;
+ }
+
+ callbacksKickedOff = true;
+ };
- session.requestAnimationFrame(rafCb);
+ session.requestAnimationFrame(rafCb);
- return t.step_wait(() => callbacksKickedOff && (callbackCounter == 0));
- });
- };
+ return t.step_wait(() => callbacksKickedOff && (callbackCounter == 0));
+ });
};
diff --git a/tests/wpt/tests/webxr/depth-sensing/matchDepthViewValues.js b/tests/wpt/tests/webxr/depth-sensing/matchDepthViewValues.js
index 697f4deb8ff..3c76a5e9576 100644
--- a/tests/wpt/tests/webxr/depth-sensing/matchDepthViewValues.js
+++ b/tests/wpt/tests/webxr/depth-sensing/matchDepthViewValues.js
@@ -5,11 +5,12 @@
// TODO: Expand the WebXrTestApi to specify a viewGeometry that this can validate
// as well.
-const depthViewGeometryTestGenerator = function(isCpuOptimized) {
+const depthViewGeometryTestGenerator = (matchDepthView) => {
return (session, controller, t, sessionObjects) => {
return session.requestReferenceSpace('viewer').then((viewerSpace) => new Promise((resolve) => {
+ const isCpuOptimized = session.depthUsage === 'cpu-optimized';
const glBinding = new XRWebGLBinding(session, sessionObjects.gl);
const rafCb = function(time, frame) {
@@ -17,10 +18,17 @@ const depthViewGeometryTestGenerator = function(isCpuOptimized) {
for(const view of pose.views) {
const depthInformation = isCpuOptimized ? frame.getDepthInformation(view)
: glBinding.getDepthInformation(view);
- t.step(()=> {
- assert_matrix_approx_equals(view.projectionMatrix, depthInformation.projectionMatrix);
- assert_transform_approx_equals(view.transform, depthInformation.transform);
- });
+ if (matchDepthView) {
+ t.step(()=> {
+ assert_matrix_approx_equals(view.projectionMatrix, depthInformation.projectionMatrix);
+ assert_transform_approx_equals(view.transform, depthInformation.transform);
+ });
+ } else {
+ t.step(() => {
+ assert_matrix_significantly_not_equals(view.projectionMatrix, depthInformation.projectionMatrix);
+ assert_transform_significantly_not_equals(view.transform, depthInformation.transform);
+ });
+ }
}
resolve();
}
diff --git a/tests/wpt/tests/webxr/depth-sensing/pauseResumeTests.js b/tests/wpt/tests/webxr/depth-sensing/pauseResumeTests.js
index e7513ef61c1..82bb72170be 100644
--- a/tests/wpt/tests/webxr/depth-sensing/pauseResumeTests.js
+++ b/tests/wpt/tests/webxr/depth-sensing/pauseResumeTests.js
@@ -7,110 +7,108 @@ const TestStates = Object.freeze({
});
const framesToWait = 10;
+const pauseResumeTestFunction = function(session, controller, t, sessionObjects) {
+ const isCpuOptimized = session.depthUsage === 'cpu-optimized';
+ let state = TestStates.ShouldSucceedPauseScheduleRAF;
-const pauseResumeTestFunctionGenerator = function(isCpuOptimized) {
- return (session, controller, t, sessionObjects) => {
- let state = TestStates.ShouldSucceedPauseScheduleRAF;
+ return session.requestReferenceSpace('viewer').then((viewerSpace) => {
+ let done = false;
- return session.requestReferenceSpace('viewer').then((viewerSpace) => {
- let done = false;
+ const glBinding = new XRWebGLBinding(session, sessionObjects.gl);
- const glBinding = new XRWebGLBinding(session, sessionObjects.gl);
+ let stepFrameCount = 0;
+ let advanceState = false;
- let stepFrameCount = 0;
- let advanceState = false;
+ const rafCb = function(time, frame) {
+ const pose = frame.getViewerPose(viewerSpace);
+ stepFrameCount++;
+ for(const view of pose.views) {
+ const depthInformation = isCpuOptimized ? frame.getDepthInformation(view)
+ : glBinding.getDepthInformation(view);
- const rafCb = function(time, frame) {
- const pose = frame.getViewerPose(viewerSpace);
- stepFrameCount++;
- for(const view of pose.views) {
- const depthInformation = isCpuOptimized ? frame.getDepthInformation(view)
- : glBinding.getDepthInformation(view);
+ if (state == TestStates.ShouldSucceedPauseScheduleRAF
+ || state == TestStates.ShouldSucceedTestDone) {
+ t.step(() => {
+ assert_true(session.depthActive);
+ });
+ // We have no guarantees about when data should start returning,
+ // so we need to potentially wait a few frames.
- if (state == TestStates.ShouldSucceedPauseScheduleRAF
- || state == TestStates.ShouldSucceedTestDone) {
+ // Final chance. If we haven't advanced the state by now, fail the
+ // test if it doesn't pass this time.
+ if (stepFrameCount >= framesToWait) {
t.step(() => {
- assert_true(session.depthActive);
+ assert_not_equals(depthInformation, null);
});
- // We have no guarantees about when data should start returning,
- // so we need to potentially wait a few frames.
-
- // Final chance. If we haven't advanced the state by now, fail the
- // test if it doesn't pass this time.
- if (stepFrameCount >= framesToWait) {
- t.step(() => {
- assert_not_equals(depthInformation, null);
- });
- }
+ }
- // Either we have data, or we've waited long enough to keep moving.
- if (depthInformation != null || stepFrameCount >= framesToWait) {
- advanceState = true;
- }
- } else {
- // Depth should stop being available immediately.
- t.step(() => {
- assert_false(session.depthActive);
- assert_equals(depthInformation, null);
- });
+ // Either we have data, or we've waited long enough to keep moving.
+ if (depthInformation != null || stepFrameCount >= framesToWait) {
advanceState = true;
}
+ } else {
+ // Depth should stop being available immediately.
+ t.step(() => {
+ assert_false(session.depthActive);
+ assert_equals(depthInformation, null);
+ });
+ advanceState = true;
}
+ }
- switch(state) {
- case TestStates.ShouldSucceedPauseScheduleRAF:
- if (advanceState) {
- session.pauseDepthSensing();
- for(const view of pose.views) {
- const newDepthInformation = isCpuOptimized ? frame.getDepthInformation(view)
- : glBinding.getDepthInformation(view);
- t.step(()=> {
- // depthActive state should update and stop returning depth info
- // immediately.
- assert_false(session.depthActive);
- assert_equals(newDepthInformation, null);
- });
- }
- state = TestStates.ShouldFailResumeScheduleRAF;
- stepFrameCount = 0;
- advanceState = false;
- }
- session.requestAnimationFrame(rafCb);
- break;
- case TestStates.ShouldFailResumeScheduleRAF:
- if (advanceState) {
- session.resumeDepthSensing();
- // In pausing depth sensing, any controller data may have been
- // thrown away since the UA can "tear down" any depth controller.
- // So attempt to repopulate the data once we've resumed it.
- controller.setDepthSensingData(DEPTH_SENSING_DATA);
- t.step(()=> {
- // While depth data may not return for a few frames, depthActive
- // should be updated immediately.
- assert_true(session.depthActive);
+ switch(state) {
+ case TestStates.ShouldSucceedPauseScheduleRAF:
+ if (advanceState) {
+ session.pauseDepthSensing();
+ for(const view of pose.views) {
+ const newDepthInformation = isCpuOptimized ? frame.getDepthInformation(view)
+ : glBinding.getDepthInformation(view);
+ t.step(()=> {
+ // depthActive state should update and stop returning depth info
+ // immediately.
+ assert_false(session.depthActive);
+ assert_equals(newDepthInformation, null);
});
- state = TestStates.ShouldSucceedTestDone;
- stepFrameCount = 0;
- advanceState = false;
}
+ state = TestStates.ShouldFailResumeScheduleRAF;
+ stepFrameCount = 0;
+ advanceState = false;
+ }
+ session.requestAnimationFrame(rafCb);
+ break;
+ case TestStates.ShouldFailResumeScheduleRAF:
+ if (advanceState) {
+ session.resumeDepthSensing();
+ // In pausing depth sensing, any controller data may have been
+ // thrown away since the UA can "tear down" any depth controller.
+ // So attempt to repopulate the data once we've resumed it.
+ controller.setDepthSensingData(DEPTH_SENSING_DATA);
+ t.step(()=> {
+ // While depth data may not return for a few frames, depthActive
+ // should be updated immediately.
+ assert_true(session.depthActive);
+ });
+ state = TestStates.ShouldSucceedTestDone;
+ stepFrameCount = 0;
+ advanceState = false;
+ }
+ session.requestAnimationFrame(rafCb);
+ break;
+ case TestStates.ShouldSucceedTestDone:
+ // If we are advancing the state, we can stop pumping the rAF, but
+ // if we're still waiting for data to come back we need to keep it
+ // going.
+ if (advanceState) {
+ done = true;
+ } else {
session.requestAnimationFrame(rafCb);
- break;
- case TestStates.ShouldSucceedTestDone:
- // If we are advancing the state, we can stop pumping the rAF, but
- // if we're still waiting for data to come back we need to keep it
- // going.
- if (advanceState) {
- done = true;
- } else {
- session.requestAnimationFrame(rafCb);
- }
- break;
- }
- };
+ }
+ break;
+ }
+ };
- session.requestAnimationFrame(rafCb);
+ session.requestAnimationFrame(rafCb);
- return t.step_wait(() => done);
- });
- };
+ return t.step_wait(() => done);
+ });
};
diff --git a/tests/wpt/tests/webxr/depth-sensing/staleViewsTests.js b/tests/wpt/tests/webxr/depth-sensing/staleViewsTests.js
index b1f11c9651d..4080ea62309 100644
--- a/tests/wpt/tests/webxr/depth-sensing/staleViewsTests.js
+++ b/tests/wpt/tests/webxr/depth-sensing/staleViewsTests.js
@@ -1,39 +1,38 @@
'use strict';
-const staleViewsTestFunctionGenerator = function(isCpuOptimized) {
- return (session, controller, t, sessionObjects) => {
- let done = false;
-
- const staleViews = new Set();
-
- return session.requestReferenceSpace('viewer').then((viewerSpace) => {
- const glBinding = new XRWebGLBinding(session, sessionObjects.gl);
-
- const secondRafCb = function(time, frame) {
- for(const view of staleViews) {
- t.step(() => {
- assert_throws_dom("InvalidStateError",
- () => isCpuOptimized ? frame.getDepthInformation(view)
- : glBinding.getDepthInformation(view),
- "getDepthInformation() should throw when run with stale XRView");
- });
- }
-
- done = true;
- };
-
- const firstRafCb = function(time, frame) {
- const pose = frame.getViewerPose(viewerSpace);
- for(const view of pose.views) {
- staleViews.add(view);
- }
-
- session.requestAnimationFrame(secondRafCb);
- };
-
- session.requestAnimationFrame(firstRafCb);
-
- return t.step_wait(() => done);
- });
- };
-}; \ No newline at end of file
+const staleViewsTestFunction = function(session, controller, t, sessionObjects) {
+ const isCpuOptimized = session.depthUsage === 'cpu-optimized';
+ let done = false;
+
+ const staleViews = new Set();
+
+ return session.requestReferenceSpace('viewer').then((viewerSpace) => {
+ const glBinding = new XRWebGLBinding(session, sessionObjects.gl);
+
+ const secondRafCb = function(time, frame) {
+ for(const view of staleViews) {
+ t.step(() => {
+ assert_throws_dom("InvalidStateError",
+ () => isCpuOptimized ? frame.getDepthInformation(view)
+ : glBinding.getDepthInformation(view),
+ "getDepthInformation() should throw when run with stale XRView");
+ });
+ }
+
+ done = true;
+ };
+
+ const firstRafCb = function(time, frame) {
+ const pose = frame.getViewerPose(viewerSpace);
+ for(const view of pose.views) {
+ staleViews.add(view);
+ }
+
+ session.requestAnimationFrame(secondRafCb);
+ };
+
+ session.requestAnimationFrame(firstRafCb);
+
+ return t.step_wait(() => done);
+ });
+};
diff --git a/tests/wpt/tests/webxr/resources/webxr_test_asserts.js b/tests/wpt/tests/webxr/resources/webxr_test_asserts.js
index a82f7aaf90a..586e8de2b48 100644
--- a/tests/wpt/tests/webxr/resources/webxr_test_asserts.js
+++ b/tests/wpt/tests/webxr/resources/webxr_test_asserts.js
@@ -16,6 +16,41 @@ const get_mismatched_component = function(p1, p2, epsilon = FLOAT_EPSILON) {
return null;
}
+// Internal helper to find the mismatched component for orientations.
+// Considers that q and -q represent the same orientation.
+// Returns the component name ('x', 'y', 'z', 'w') of the first mismatch
+// Returns null if q1 is approximately equal to q2 or -q2.
+const get_mismatched_orientation_component = function(q1, q2, epsilon) {
+ const direct_mismatch = get_mismatched_component(q1, q2, epsilon);
+ // q1 == q2, for our purposes there is no mismatched component.
+ if (direct_mismatch === null) {
+ return null;
+ }
+ // q1 != q2, but check q1 vs -q2
+ const q2_flipped = flip_quaternion(q2);
+ if (get_mismatched_component(q1, q2_flipped, epsilon) === null) {
+ return null;
+ }
+ // q1 is not approx equal to q2 or -q2.
+ // both q2 and q2_flipped have non-null mismatchecs, but for ease of debugging
+ // return the mismatch from the direct comparison.
+ return direct_mismatch;
+};
+
+// Internal helper to find the index of the first mismatched matrix element.
+// Returns the index (0-15) or -1 if matrices are approximately equal.
+const get_mismatched_matrix_element_index = function(m1, m2, epsilon, prefix="") {
+ assert_equals(m1.length, 16, prefix + "m1 must have length of 16");
+ assert_equals(m2.length, 16, prefix + "m2 must have length of 16");
+
+ for (let i = 0; i < 16; ++i) {
+ if (Math.abs(m1[i] - m2[i]) > epsilon) {
+ return i;
+ }
+ }
+ return -1;
+}
+
// |p1|, |p2| - objects with x, y, z, w components that are floating point numbers.
// |epsilon| - float specifying precision
// |prefix| - string used as a prefix for logging
@@ -38,6 +73,28 @@ const assert_point_approx_equals = function(p1, p2, epsilon = FLOAT_EPSILON, pre
}
};
+// |p1|, |p2| - objects with x, y, z, w components that are floating point numbers.
+// |epsilon| - float specifying precision
+// |prefix| - string used as a prefix for logging
+const assert_point_significantly_not_equals = function(p1, p2, epsilon = FLOAT_EPSILON, prefix = "") {
+ if (p1 == null || p2 == null) {
+ assert_not_equals(p2, p1, prefix + "p1 and p2 are both null");
+ return;
+ }
+
+ const mismatched_component = get_mismatched_component(p1, p2, epsilon);
+ if (mismatched_component === null) {
+ let error_message = prefix + ' Point comparison failed (expected significant difference).\n';
+ error_message += ` p1: {x: ${p1.x}, y: ${p1.y}, z: ${p1.z}, w: ${p1.w}}\n`;
+ error_message += ` p2: {x: ${p2.x}, y: ${p2.y}, z: ${p2.z}, w: ${p2.w}}\n`;
+ error_message += ` Difference in components did not exceeded the given epsilon.\n`;
+ assert_unreached(error_message);
+ }
+};
+
+// |q1|, |q2| - objects with x, y, z, w components that are floating point numbers.
+// |epsilon| - float specifying precision
+// |prefix| - string used as a prefix for logging
const assert_orientation_approx_equals = function(q1, q2, epsilon = FLOAT_EPSILON, prefix = "") {
if (q1 == null && q2 == null) {
return;
@@ -46,37 +103,35 @@ const assert_orientation_approx_equals = function(q1, q2, epsilon = FLOAT_EPSILO
assert_not_equals(q1, null, prefix + "q1 must be non-null");
assert_not_equals(q2, null, prefix + "q2 must be non-null");
- const q2_flipped = flip_quaternion(q2);
-
- const mismatched_component = get_mismatched_component(q1, q2, epsilon);
- const mismatched_component_flipped = get_mismatched_component(q1, q2_flipped, epsilon);
-
- if (mismatched_component !== null && mismatched_component_flipped !== null) {
- // q1 doesn't match neither q2 nor -q2, so it definitely does not represent the same orientations,
- // log an assert failure.
+ const mismatched_component = get_mismatched_orientation_component(q1, q2, epsilon);
+ // q1 doesn't match neither q2 nor -q2, so it definitely does not represent the same orientations,
+ // log an assert failure.
+ if (mismatched_component !== null) {
let error_message = prefix + ' Orientation comparison failed.\n';
- error_message += ` p1: {x: ${q1.x}, y: ${q1.y}, z: ${q1.z}, w: ${q1.w}}\n`;
- error_message += ` p2: {x: ${q2.x}, y: ${q2.y}, z: ${q2.z}, w: ${q2.w}}\n`;
- error_message += ` Difference in component ${mismatched_component} exceeded the given epsilon.\n`;
+ error_message += ` q1: {x: ${q1.x}, y: ${q1.y}, z: ${q1.z}, w: ${q1.w}}\n`;
+ error_message += ` q2: {x: ${q2.x}, y: ${q2.y}, z: ${q2.z}, w: ${q2.w}}\n`;
+ error_message += ` Neither q2 nor -q2 are approximately equal to q1.\n`;
+ error_message += ` For q1 vs q2, difference in component ${mismatched_component} exceeded the given epsilon.\n`;
assert_approx_equals(q2[mismatched_component], q1[mismatched_component], epsilon, error_message);
}
-}
+};
-// |p1|, |p2| - objects with x, y, z, w components that are floating point numbers.
+// |q1|, |q2| - objects with x, y, z, w components that are floating point numbers.
// |epsilon| - float specifying precision
// |prefix| - string used as a prefix for logging
-const assert_point_significantly_not_equals = function(p1, p2, epsilon = FLOAT_EPSILON, prefix = "") {
-
- assert_not_equals(p1, null, prefix + "p1 must be non-null");
- assert_not_equals(p2, null, prefix + "p2 must be non-null");
-
- let mismatched_component = get_mismatched_component(p1, p2, epsilon);
+const assert_orientation_significantly_not_equals = function(q1, q2, epsilon = FLOAT_EPSILON, prefix = "") {
+ if (q1 == null || q2 == null) {
+ assert_not_equals(q2, q1, prefix + "q1 and q2 are both null");
+ return;
+ }
+ const mismatched_component = get_mismatched_orientation_component(q1, q2, epsilon);
+ // IF there is no mismatch q1 matches either q2 or -q2 (which are equivalent).
if (mismatched_component === null) {
- let error_message = prefix + ' Point comparison failed.\n';
- error_message += ` p1: {x: ${p1.x}, y: ${p1.y}, z: ${p1.z}, w: ${p1.w}}\n`;
- error_message += ` p2: {x: ${p2.x}, y: ${p2.y}, z: ${p2.z}, w: ${p2.w}}\n`;
- error_message += ` Difference in components did not exceeded the given epsilon.\n`;
+ let error_message = prefix + ' Orientation comparison failed (expected significant difference).\n';
+ error_message += ` q1: {x: ${q1.x}, y: ${q1.y}, z: ${q1.z}, w: ${q1.w}}\n`;
+ error_message += ` q2: {x: ${q2.x}, y: ${q2.y}, z: ${q2.z}, w: ${q2.w}}\n`;
+ error_message += ` q1 is approximately equal to q2 or -q2, but a significant difference was expected.\n`;
assert_unreached(error_message);
}
};
@@ -96,6 +151,25 @@ const assert_transform_approx_equals = function(t1, t2, epsilon = FLOAT_EPSILON,
assert_orientation_approx_equals(t1.orientation, t2.orientation, epsilon, prefix + "orientations must be equal");
};
+// |t1|, |t2| - objects containing position and orientation.
+// |epsilon| - float specifying precision
+// |prefix| - string used as a prefix for logging
+const assert_transform_significantly_not_equals = function(t1, t2, epsilon = FLOAT_EPSILON, prefix = "") {
+ if (t1 == null || t2 == null) {
+ assert_not_equals(t1, t2, prefix + "t1 and t2 cannot both be null.");
+ return;
+ }
+
+ // It is okay for one of position or orientation to be equal; but not for both
+ // to be equal in order for the transform to not be equal.
+ let mismatched_position = get_mismatched_component(t1.position, t2.position, epsilon);
+ let mismatched_orientation = get_mismatched_orientation_component(t1.orientation, t2.orientation, epsilon);
+ if (mismatched_position === null && mismatched_orientation === null) {
+ assert_point_significantly_not_equals(t1.position, t2.position, epsilon, prefix + "positions must not be equal");
+ assert_orientation_significantly_not_equals(t1.orientation, t2.orientation, epsilon, prefix + "orientations must not be equal");
+ }
+}
+
// |m1|, |m2| - arrays of floating point numbers
// |epsilon| - float specifying precision
// |prefix| - string used as a prefix for logging
@@ -110,15 +184,8 @@ const assert_matrix_approx_equals = function(m1, m2, epsilon = FLOAT_EPSILON, pr
assert_equals(m1.length, 16, prefix + "m1 must have length of 16");
assert_equals(m2.length, 16, prefix + "m2 must have length of 16");
- let mismatched_element = -1;
- for (let i = 0; i < 16; ++i) {
- if (Math.abs(m1[i] - m2[i]) > epsilon) {
- mismatched_element = i;
- break;
- }
- }
-
- if (mismatched_element > -1) {
+ const mismatched_element = get_mismatched_matrix_element_index(m1, m2, epsilon, prefix);
+ if (mismatched_element !== -1) {
let error_message = prefix + 'Matrix comparison failed.\n';
error_message += ' Difference in element ' + mismatched_element +
' exceeded the given epsilon.\n';
@@ -132,44 +199,26 @@ const assert_matrix_approx_equals = function(m1, m2, epsilon = FLOAT_EPSILON, pr
}
};
-// |m1|, |m2| - arrays of floating point numbers
+// |m1|, |m2| - arrays of floating point numbers.
// |epsilon| - float specifying precision
// |prefix| - string used as a prefix for logging
const assert_matrix_significantly_not_equals = function(m1, m2, epsilon = FLOAT_EPSILON, prefix = "") {
- if (m1 == null && m2 == null) {
+ if (m1 == null || m2 == null) {
+ assert_not_equals(m1, m2, prefix + "m1 and m2 must not both be null");
return;
}
- assert_not_equals(m1, null, prefix + "m1 must be non-null");
- assert_not_equals(m2, null, prefix + "m2 must be non-null");
-
assert_equals(m1.length, 16, prefix + "m1 must have length of 16");
assert_equals(m2.length, 16, prefix + "m2 must have length of 16");
- let mismatch = false;
- for (let i = 0; i < 16; ++i) {
- if (Math.abs(m1[i] - m2[i]) > epsilon) {
- mismatch = true;
- break;
- }
- }
-
- if (!mismatch) {
- let m1_str = '[';
- let m2_str = '[';
- for (let i = 0; i < 16; ++i) {
- m1_str += m1[i] + (i < 15 ? ', ' : '');
- m2_str += m2[i] + (i < 15 ? ', ' : '');
- }
- m1_str += ']';
- m2_str += ']';
-
- let error_message = prefix + 'Matrix comparison failed.\n';
+ const mismatched_index = get_mismatched_matrix_element_index(m1, m2, epsilon, prefix);
+ if (mismatched_index === -1) {
+ let error_message = prefix + ' Matrix comparison failed (expected significant difference).\n';
error_message +=
' No element exceeded the given epsilon ' + epsilon + '.\n';
- error_message += ' Matrix A: ' + m1_str + '\n';
- error_message += ' Matrix B: ' + m2_str + '\n';
+ error_message += ' Matrix 1: [' + m1.join(',') + ']\n';
+ error_message += ' Matrix 2: [' + m2.join(',') + ']\n';
assert_unreached(error_message);
}
@@ -183,3 +232,57 @@ const assert_ray_approx_equals = function(r1, r2, epsilon = FLOAT_EPSILON, prefi
assert_point_approx_equals(r1.direction, r2.direction, epsilon, prefix + "direction:");
assert_matrix_approx_equals(r1.matrix, r2.matrix, epsilon, prefix + "matrix:");
};
+
+// |actualBuffer|, |expectedBuffer| - ArrayBuffer objects
+// |message| - string used as a prefix for logging
+const assert_array_buffer_equals = function(actualBuffer, expectedBuffer, message = "ArrayBuffers should be equal") {
+ if (actualBuffer == null && expectedBuffer == null) {
+ return;
+ }
+
+ assert_not_equals(actualBuffer, null, message + " (actualBuffer is null)");
+ assert_not_equals(expectedBuffer, null, message + " (expectedBuffer is null)");
+
+ assert_equals(actualBuffer.byteLength, expectedBuffer.byteLength, message + " (byteLength mismatch)");
+
+ const actualView = new Uint8Array(actualBuffer);
+ const expectedView = new Uint8Array(expectedBuffer);
+
+ for (let i = 0; i < actualView.length; i++) {
+ // Check each byte. If a mismatch is found, assert_equals will fail the test
+ // and provide a detailed message.
+ if (actualView[i] !== expectedView[i]) {
+ assert_equals(actualView[i], expectedView[i], `${message} (mismatch at byte ${i})`);
+ return;
+ }
+ }
+ // If the loop completes without an assert_equals failure, the buffers are identical.
+};
+
+// |actualBuffer|, |expectedBuffer| - ArrayBuffer objects
+// |message| - string used as a prefix for logging
+const assert_array_buffer_not_equals = function(actualBuffer, expectedBuffer, message = "ArrayBuffers should not be equal") {
+ if (actualBuffer == null || expectedBuffer == null) {
+ assert_not_equals(actualBuffer, expectedBuffer, message+ " (actualBuffer and expectedBuffer both null)");
+ return;
+ }
+
+ assert_not_equals(actualBuffer, null, message + " (actualBuffer is null)");
+ assert_not_equals(expectedBuffer, null, message + " (expectedBuffer is null)");
+
+ if (actualBuffer.byteLength !== expectedBuffer.byteLength) {
+ return;
+ }
+
+ const actualView = new Uint8Array(actualBuffer);
+ const expectedView = new Uint8Array(expectedBuffer);
+
+ for (let i = 0; i < actualView.length; i++) {
+ // Once one byte is different, then the two buffers aren't the same and we
+ // can return.
+ if (actualView[i] !== expectedView[i]) {
+ return;
+ }
+ }
+ assert_unreached(`${message} (buffers are identical`);
+};
diff --git a/tests/wpt/tests/webxr/resources/webxr_test_constants.js b/tests/wpt/tests/webxr/resources/webxr_test_constants.js
index d0d4fa27474..c08cdd9b251 100644
--- a/tests/wpt/tests/webxr/resources/webxr_test_constants.js
+++ b/tests/wpt/tests/webxr/resources/webxr_test_constants.js
@@ -25,8 +25,12 @@ const VALID_POSE_TRANSFORM = {
orientation: [0.5, 0.5, 0.5, 0.5]
};
-const VALID_PROJECTION_MATRIX =
- [1, 0, 0, 0, 0, 1, 0, 0, 3, 2, -1, -1, 0, 0, -0.2, 0];
+const VALID_PROJECTION_MATRIX = [
+ 1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 3, 2, -1, -1,
+ 0, 0, -0.2, 0
+];
// This is a decomposed version of the above.
const VALID_FIELD_OF_VIEW = {
@@ -36,6 +40,16 @@ const VALID_FIELD_OF_VIEW = {
rightDegrees: 75.9637
};
+// This is roughly equivalent to the above, but with a different near plane.
+// The fact that it's the same isn't too concerning, since to be the same
+// ViewGeometry it'd also need the same offset.
+const VALID_DEPTH_PROJECTION_MATRIX = [
+ 1, 0, 0, 0,
+ 0, 1, 0, 0,
+ 3, 2, -1, -1,
+ 0, 0, -0.002, 0
+];
+
// A valid input grip matrix for when we don't care about specific values
const VALID_GRIP = [1, 0, 0, 0,
0, 1, 0, 0,
@@ -94,6 +108,13 @@ const RIGHT_OFFSET = {
orientation: [0, 0, 0, 1]
};
+// Most depth tests at present are effectively monocular, so just ensure we
+// substantially overlap the left eye.
+const DEPTH_OFFSET = {
+ position: [-0.1, 0.01, 0],
+ orientation: [0, 0, 0, 1]
+};
+
const FIRST_PERSON_OFFSET = {
position: [0, 0.1, 0],
orientation: [0, 0, 0, 1]
diff --git a/tests/wpt/tests/webxr/resources/webxr_test_constants_fake_depth.js b/tests/wpt/tests/webxr/resources/webxr_test_constants_fake_depth.js
index b350db3a27a..c3d9c44bbaa 100644
--- a/tests/wpt/tests/webxr/resources/webxr_test_constants_fake_depth.js
+++ b/tests/wpt/tests/webxr/resources/webxr_test_constants_fake_depth.js
@@ -3,7 +3,7 @@
// This file introduces constants used to mock depth data for depth sensing API.
const convertDepthBufferToArrayBuffer = function (data, desiredFormat) {
- if(desiredFormat == "luminance-alpha") {
+ if(desiredFormat == "luminance-alpha" || desiredFormat == "unsigned-short") {
const result = new ArrayBuffer(data.length * 2); // each entry has 2 bytes
const view = new Uint16Array(result);
@@ -52,6 +52,7 @@ const createDepthSensingData = function() {
return {
depthData: convertDepthBufferToArrayBuffer(depthSensingBuffer, "luminance-alpha"),
+ depthFormat: "luminance-alpha",
width: depthSensingBufferWidth,
height: depthSensingBufferHeight,
normDepthBufferFromNormView: depthSensingBufferFromViewerTransform,
@@ -61,6 +62,12 @@ const createDepthSensingData = function() {
const DEPTH_SENSING_DATA = createDepthSensingData();
+const OFFSET_DEPTH_SENSING_DATA = {
+ ...DEPTH_SENSING_DATA,
+ projectionMatrix: VALID_DEPTH_PROJECTION_MATRIX,
+ viewOffset: DEPTH_OFFSET,
+};
+
// Returns expected depth value at |column|, |row| coordinates, expressed
// in depth buffer's coordinate system.
const getExpectedValueAt = function(column, row) {
diff --git a/tests/wpt/tests/xhr/formdata/append.any.js b/tests/wpt/tests/xhr/formdata/append.any.js
index fb365618d20..6871f69df59 100644
--- a/tests/wpt/tests/xhr/formdata/append.any.js
+++ b/tests/wpt/tests/xhr/formdata/append.any.js
@@ -19,13 +19,13 @@
assert_equals(create_formdata(['key', null], ['key', 'value1']).get('key'), "null");
}, 'testFormDataAppendNull2');
test(function() {
- var before = new Date(new Date().getTime() - 2000); // two seconds ago, in case there's clock drift
+ var before = new Date(new Date().getTime() - 2000).getTime(); // two seconds ago, in case there's clock drift
var fd = create_formdata(['key', new Blob(), 'blank.txt']).get('key');
assert_equals(fd.name, "blank.txt");
assert_equals(fd.type, "");
assert_equals(fd.size, 0);
assert_greater_than_equal(fd.lastModified, before);
- assert_less_than_equal(fd.lastModified, new Date());
+ assert_less_than_equal(fd.lastModified, new Date().getTime());
}, 'testFormDataAppendEmptyBlob');
function create_formdata() {