aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2019-08-19 10:18:55 -0400
committerGitHub <noreply@github.com>2019-08-19 10:18:55 -0400
commit8fd06759dc3bb9b551720043292ee5911bf35541 (patch)
treeb047061eb31caaff2fb798a170e006b7666bce1f
parent4f4c2be144bf1c8d7fb8c9c67320c1c2352818f6 (diff)
parent76712d7d25f8b48d78e6be87aaefd0e55d1f7d09 (diff)
downloadservo-8fd06759dc3bb9b551720043292ee5911bf35541.tar.gz
servo-8fd06759dc3bb9b551720043292ee5911bf35541.zip
Auto merge of #24002 - servo-wpt-sync:wpt_update_19-08-2019, r=servo-wpt-sync
Sync WPT with upstream (19-08-2019) Automated downstream sync of changes from upstream as of 19-08-2019. [no-wpt-sync] <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24002) <!-- Reviewable:end -->
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini2
-rw-r--r--tests/wpt/metadata/MANIFEST.json1969
-rw-r--r--tests/wpt/metadata/css/css-paint-api/color-custom-property-animation.https.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-upright-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-vertical-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-transforms/animation/list-interpolation.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-transforms/animation/matrix-interpolation.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-transforms/animation/rotate-interpolation.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-transforms/animation/scale-interpolation.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-transforms/animation/translate-interpolation.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini97
-rw-r--r--tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini2
-rw-r--r--tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-001.html.ini3
-rw-r--r--tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-002.html.ini3
-rw-r--r--tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-003.html.ini3
-rw-r--r--tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-004.html.ini3
-rw-r--r--tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-001.html.ini3
-rw-r--r--tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-002.html.ini3
-rw-r--r--tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-003.html.ini3
-rw-r--r--tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-004.html.ini3
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini15
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini4
-rw-r--r--tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini4
-rw-r--r--tests/wpt/metadata/performance-timeline/not-clonable.html.ini4
-rw-r--r--tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini3
-rw-r--r--tests/wpt/metadata/resource-timing/resource_TAO_origin.htm.ini3
-rw-r--r--tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini3
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini1
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini3
-rw-r--r--tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini2
-rw-r--r--tests/wpt/metadata/webxr/xrInputSource_sameObject.https.html.ini4
-rw-r--r--tests/wpt/metadata/webxr/xrPose_transform_sameObject.https.html.ini4
-rw-r--r--tests/wpt/metadata/webxr/xrSession_sameObject.https.html.ini4
-rw-r--r--tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini4
-rw-r--r--tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini1
-rw-r--r--tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/.azure-pipelines.yml12
-rw-r--r--tests/wpt/web-platform-tests/css/css-box/parsing/padding-computed.html51
-rw-r--r--tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001-ref.html53
-rw-r--r--tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001.html59
-rw-r--r--tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-computed.html36
-rw-r--r--tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-invalid.html26
-rw-r--r--tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-valid.html25
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/absolute-ref.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-absolute-ref.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/absolute.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-absolute.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/flex-ref.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-flex-ref.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/flex.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-flex.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/floats-ref.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-floats-ref.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/floats.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-floats.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/inflow-ref.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-inflow-ref.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/inflow.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-inflow.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/negative-ref.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-negative-ref.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/negative.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-negative.https.html)3
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-invalid.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-invalid.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-invalid.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/support/layout-child-sizes-worklet.js (renamed from tests/wpt/web-platform-tests/css/css-layout-api/support/layout-child-sizes-worklet.js)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-block-none.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-none.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-none.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-fixed.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-fixed.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-grid.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-grid.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-percentage.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-percentage.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-ref.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-ref.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-block-size-quirky-body-iframe.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-block-size.js (renamed from tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-inline-size.js (renamed from tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-inline-size.js)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/crash-multicol.https.html9
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/bad-return.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-return.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/constructor-error.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/fallback-constructor-error.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/error.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-error.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/fallback-ref.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/fallback-ref.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/invalid-child.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-invalid-child.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/invalid-fragment.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-invalid-fragment.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/no-promise.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-no-promise.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/unresolved-promise.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-unresolved-promise.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child/absolute.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child/before-after.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child/fixed.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child/float.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inflow.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inlines-dynamic.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines-dynamic.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inlines.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child/support/layout-child-worklet.js (renamed from tests/wpt/web-platform-tests/css/css-layout-api/support/layout-child-worklet.js)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/layout-child/text.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/htb-ltr.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-htb-ltr.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/htb-rtl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-htb-rtl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/ref.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-ref.html)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/support/layout-position-child-worklet.js (renamed from tests/wpt/web-platform-tests/css/css-layout-api/support/layout-position-child-worklet.js)0
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vlr-ltr.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vlr-ltr.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vlr-rtl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vlr-rtl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vrl-ltr.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vrl-ltr.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vrl-rtl.https.html (renamed from tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vrl-rtl.https.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-lists/nested-list-with-list-style-type-none.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation-ref.html12
-rw-r--r--tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation.https.html57
-rw-r--r--tests/wpt/web-platform-tests/css/css-position/animations/bottom-interpolation.html78
-rw-r--r--tests/wpt/web-platform-tests/css/css-position/animations/left-interpolation.html76
-rw-r--r--tests/wpt/web-platform-tests/css/css-position/animations/right-interpolation.html77
-rw-r--r--tests/wpt/web-platform-tests/css/css-position/animations/top-interpolation.html79
-rw-r--r--tests/wpt/web-platform-tests/css/css-sizing/animation/width-interpolation.html99
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html18
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html18
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html20
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html20
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html31
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html31
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001.html26
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-002.html29
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001.html25
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-002.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/animation/list-interpolation.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/animation/matrix-interpolation.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/animation/resources/interpolation-testcommon.js79
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/animation/rotate-interpolation.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/animation/scale-interpolation.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transforms/animation/translate-interpolation.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html5
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/properties-value-001.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/properties-value-002.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/properties-value-003.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/properties-value-auto-001.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/properties-value-implicit-001.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-001.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-002.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-003.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/pseudo-elements-001.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/support/runParallelAsyncHarness.js9
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/transitions-animatable-properties-01.html179
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/ex-unit-001.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html61
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-angle-invalid.html69
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/available-size-006.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/available-size-007.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/available-size-008.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/available-size-009.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/available-size-010.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/available-size-015.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/available-size-016.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/available-size-019.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/relpos-inline-overflowing-block-vrl.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht3
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+arabic.pngbin0 -> 3764 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+latin.pngbin0 -> 4013 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/mn-orientation.pngbin0 -> 2013 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_ar_wrap.pngbin0 -> 3958 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_en_wrap.pngbin0 -> 4148 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/world.pngbin0 -> 19377 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+arabic.pngbin0 -> 6289 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+latin.pngbin0 -> 6303 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/zh-orientation.pngbin0 -> 4011 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_ar_wrap.pngbin0 -> 6323 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_en_wrap.pngbin0 -> 6368 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-001-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-002-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-001-manual.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-002-manual.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-004-manual.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-001-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-002-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-003-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-005-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-006-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-007-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-008-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-009-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-010-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-012-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-014-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-015-manual.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-001-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-002-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-003-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-004-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-005-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-006-manual.html5
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-table-001-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-001-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-002-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-003-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-005-manual.html12
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-007-manual.html10
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-008-manual.html10
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-009-manual.html10
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-010-manual.html10
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-012-manual.html12
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-014-manual.html10
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-015-manual.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-001-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-002-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-003-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-004-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-005-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-006-manual.html5
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-table-001-manual.html4
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/of-type-selectors-ref.xhtml7
-rw-r--r--tests/wpt/web-platform-tests/css/selectors/of-type-selectors.xhtml14
-rw-r--r--tests/wpt/web-platform-tests/css/support/interpolation-testcommon.js374
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html30
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/reporting/oversized.jpgbin0 -> 1655 bytes
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/reporting/unoptimized-lossy-images-reporting.html3
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html1
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js2
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html29
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html1
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/assumptions/document-fonts-ready.html32
-rw-r--r--tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl7
-rw-r--r--tests/wpt/web-platform-tests/interfaces/webxr.idl11
-rw-r--r--tests/wpt/web-platform-tests/intersection-observer/cross-origin-iframe.sub.html (renamed from tests/wpt/web-platform-tests/intersection-observer/cross-origin-iframe.html)2
-rw-r--r--tests/wpt/web-platform-tests/intersection-observer/resources/cross-origin-subframe.html48
-rw-r--r--tests/wpt/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js1
-rw-r--r--tests/wpt/web-platform-tests/performance-timeline/not-clonable.html10
-rw-r--r--tests/wpt/web-platform-tests/performance-timeline/resources/postmessage-entry.html17
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html82
-rw-r--r--tests/wpt/web-platform-tests/shadow-dom/directionality-002-ref.html6
-rw-r--r--tests/wpt/web-platform-tests/shadow-dom/directionality-002.tentative.html25
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/correct-events-for-short-animations-with-syncbases.html52
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html37
-rw-r--r--tests/wpt/web-platform-tests/svg/text/parsing/text-anchor-computed.svg21
-rw-r--r--tests/wpt/web-platform-tests/tools/ci/tests/test_update_pr_preview.py43
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html10
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html38
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html2
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js56
-rw-r--r--tests/wpt/web-platform-tests/webgpu/cts.html34
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/allowed_characters.js7
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/collect_garbage.js48
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/fixture.js105
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/gpu/implementation.js19
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/id.js4
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/index.js9
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/listing.js4
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/loader.js52
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/logger.js121
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/params/combine.js58
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/params/exclude.js34
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/params/filter.js33
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/params/index.js54
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/params/options.js36
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_by_group.js49
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_one_file.js102
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/test_filter/index.js6
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/test_filter/internal.js4
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/test_filter/load_filter.js71
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/test_group.js134
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/url_query.js32
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/util/index.js27
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/util/stack.js94
-rw-r--r--tests/wpt/web-platform-tests/webgpu/framework/version.js3
-rw-r--r--tests/wpt/web-platform-tests/webgpu/runtime/wpt.js42
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/create_mapped.spec.js27
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map.spec.js53
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_detach.spec.js83
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_oom.spec.js33
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/mapping_test.js39
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/canvas/context_creation.spec.js18
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/basic.spec.js16
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/compute/basic.spec.js90
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/copies.spec.js169
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/basic.spec.js60
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/rendering.spec.js117
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/examples.spec.js71
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/fences.spec.js126
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/gpu_test.js75
-rw-r--r--tests/wpt/web-platform-tests/webgpu/suites/cts/index.js52
-rw-r--r--tests/wpt/web-platform-tests/webxr/events_input_sources_change.https.html18
-rw-r--r--tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html18
-rw-r--r--tests/wpt/web-platform-tests/webxr/events_session_select.https.html16
-rw-r--r--tests/wpt/web-platform-tests/webxr/navigator_xr_sameObject.https.html33
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html2
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrFrame_getPose.https.html2
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html2
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrFrame_session_sameObject.https.html26
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrInputSource_sameObject.https.html63
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrPose_transform_sameObject.https.html43
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html2
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrRigidTransform_sameObject.https.html38
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrSession_end.https.html5
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html2
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html2
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrSession_sameObject.https.html67
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html4
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrView_sameObject.https.html38
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrViewerPose_views_sameObject.https.html34
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https.html26
353 files changed, 6510 insertions, 1289 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini
index 76b398963ae..a9e46713244 100644
--- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini
+++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini
@@ -7,7 +7,7 @@
expected: FAIL
[Opening a blob URL in a new window immediately before revoking it works.]
- expected: FAIL
+ expected: TIMEOUT
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: FAIL
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index b460cc44e7a..15ec7336ee8 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -115461,6 +115461,18 @@
{}
]
],
+ "css/css-display/display-flow-root-list-item-001.html": [
+ [
+ "css/css-display/display-flow-root-list-item-001.html",
+ [
+ [
+ "/css/css-display/display-flow-root-list-item-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-display/display-inline-dynamic-001.html": [
[
"css/css-display/display-inline-dynamic-001.html",
@@ -127243,60 +127255,60 @@
{}
]
],
- "css/css-layout-api/auto-block-size-absolute.https.html": [
+ "css/css-layout-api/auto-block-size/absolute.https.html": [
[
- "css/css-layout-api/auto-block-size-absolute.https.html",
+ "css/css-layout-api/auto-block-size/absolute.https.html",
[
[
- "/css/css-layout-api/auto-block-size-absolute-ref.html",
+ "/css/css-layout-api/auto-block-size/absolute-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/auto-block-size-flex.https.html": [
+ "css/css-layout-api/auto-block-size/flex.https.html": [
[
- "css/css-layout-api/auto-block-size-flex.https.html",
+ "css/css-layout-api/auto-block-size/flex.https.html",
[
[
- "/css/css-layout-api/auto-block-size-flex-ref.html",
+ "/css/css-layout-api/auto-block-size/flex-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/auto-block-size-floats.https.html": [
+ "css/css-layout-api/auto-block-size/floats.https.html": [
[
- "css/css-layout-api/auto-block-size-floats.https.html",
+ "css/css-layout-api/auto-block-size/floats.https.html",
[
[
- "/css/css-layout-api/auto-block-size-floats-ref.html",
+ "/css/css-layout-api/auto-block-size/floats-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/auto-block-size-inflow.https.html": [
+ "css/css-layout-api/auto-block-size/inflow.https.html": [
[
- "css/css-layout-api/auto-block-size-inflow.https.html",
+ "css/css-layout-api/auto-block-size/inflow.https.html",
[
[
- "/css/css-layout-api/auto-block-size-inflow-ref.html",
+ "/css/css-layout-api/auto-block-size/inflow-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/auto-block-size-negative.https.html": [
+ "css/css-layout-api/auto-block-size/negative.https.html": [
[
- "css/css-layout-api/auto-block-size-negative.https.html",
+ "css/css-layout-api/auto-block-size/negative.https.html",
[
[
- "/css/css-layout-api/auto-block-size-negative-ref.html",
+ "/css/css-layout-api/auto-block-size/negative-ref.html",
"=="
]
],
@@ -127615,9 +127627,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127627,9 +127639,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127639,9 +127651,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127651,9 +127663,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127663,9 +127675,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-block-none.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-block-none.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-block-none.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-block-none.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127675,9 +127687,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127687,9 +127699,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127699,9 +127711,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127711,9 +127723,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-fixed.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-fixed.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-fixed.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-fixed.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127723,9 +127735,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127735,9 +127747,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127747,9 +127759,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127759,9 +127771,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127771,9 +127783,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127783,9 +127795,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127795,9 +127807,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-flex-none.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-flex-none.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-flex-none.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-flex-none.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127807,9 +127819,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127819,9 +127831,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127831,9 +127843,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127843,9 +127855,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-grid-none.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-grid-none.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-grid-none.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-grid-none.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127855,9 +127867,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127867,9 +127879,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127879,9 +127891,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127891,9 +127903,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127903,9 +127915,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127915,9 +127927,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127927,9 +127939,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-percentage.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-percentage.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-percentage.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-percentage.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127939,9 +127951,9 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html": [
+ "css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html": [
[
- "css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html",
+ "css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -127951,240 +127963,240 @@
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-fixed.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-fixed.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-fixed.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-fixed.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-grid.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-grid.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-grid.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-grid.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/constraints-fixed-inline-size-percentage.https.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-percentage.https.html": [
[
- "css/css-layout-api/constraints-fixed-inline-size-percentage.https.html",
+ "css/css-layout-api/constraints/fixed-inline-size-percentage.https.html",
[
[
- "/css/css-layout-api/constraints-fixed-inline-size-ref.html",
+ "/css/css-layout-api/constraints/fixed-inline-size-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/fallback-constructor-error.https.html": [
+ "css/css-layout-api/fallback-layout/bad-return.https.html": [
[
- "css/css-layout-api/fallback-constructor-error.https.html",
+ "css/css-layout-api/fallback-layout/bad-return.https.html",
[
[
- "/css/css-layout-api/fallback-ref.html",
+ "/css/css-layout-api/fallback-layout/fallback-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/fallback-layout-error.https.html": [
+ "css/css-layout-api/fallback-layout/constructor-error.https.html": [
[
- "css/css-layout-api/fallback-layout-error.https.html",
+ "css/css-layout-api/fallback-layout/constructor-error.https.html",
[
[
- "/css/css-layout-api/fallback-ref.html",
+ "/css/css-layout-api/fallback-layout/fallback-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/fallback-layout-invalid-child.https.html": [
+ "css/css-layout-api/fallback-layout/error.https.html": [
[
- "css/css-layout-api/fallback-layout-invalid-child.https.html",
+ "css/css-layout-api/fallback-layout/error.https.html",
[
[
- "/css/css-layout-api/fallback-ref.html",
+ "/css/css-layout-api/fallback-layout/fallback-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/fallback-layout-invalid-fragment.https.html": [
+ "css/css-layout-api/fallback-layout/invalid-child.https.html": [
[
- "css/css-layout-api/fallback-layout-invalid-fragment.https.html",
+ "css/css-layout-api/fallback-layout/invalid-child.https.html",
[
[
- "/css/css-layout-api/fallback-ref.html",
+ "/css/css-layout-api/fallback-layout/fallback-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/fallback-layout-no-promise.https.html": [
+ "css/css-layout-api/fallback-layout/invalid-fragment.https.html": [
[
- "css/css-layout-api/fallback-layout-no-promise.https.html",
+ "css/css-layout-api/fallback-layout/invalid-fragment.https.html",
[
[
- "/css/css-layout-api/fallback-ref.html",
+ "/css/css-layout-api/fallback-layout/fallback-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/fallback-layout-return.https.html": [
+ "css/css-layout-api/fallback-layout/no-promise.https.html": [
[
- "css/css-layout-api/fallback-layout-return.https.html",
+ "css/css-layout-api/fallback-layout/no-promise.https.html",
[
[
- "/css/css-layout-api/fallback-ref.html",
+ "/css/css-layout-api/fallback-layout/fallback-ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/fallback-layout-unresolved-promise.https.html": [
+ "css/css-layout-api/fallback-layout/unresolved-promise.https.html": [
[
- "css/css-layout-api/fallback-layout-unresolved-promise.https.html",
+ "css/css-layout-api/fallback-layout/unresolved-promise.https.html",
[
[
- "/css/css-layout-api/fallback-ref.html",
+ "/css/css-layout-api/fallback-layout/fallback-ref.html",
"=="
]
],
@@ -128239,9 +128251,9 @@
{}
]
],
- "css/css-layout-api/layout-child-absolute.https.html": [
+ "css/css-layout-api/layout-child/absolute.https.html": [
[
- "css/css-layout-api/layout-child-absolute.https.html",
+ "css/css-layout-api/layout-child/absolute.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -128251,9 +128263,9 @@
{}
]
],
- "css/css-layout-api/layout-child-before-after.https.html": [
+ "css/css-layout-api/layout-child/before-after.https.html": [
[
- "css/css-layout-api/layout-child-before-after.https.html",
+ "css/css-layout-api/layout-child/before-after.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -128263,9 +128275,9 @@
{}
]
],
- "css/css-layout-api/layout-child-fixed.https.html": [
+ "css/css-layout-api/layout-child/fixed.https.html": [
[
- "css/css-layout-api/layout-child-fixed.https.html",
+ "css/css-layout-api/layout-child/fixed.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -128275,9 +128287,9 @@
{}
]
],
- "css/css-layout-api/layout-child-float.https.html": [
+ "css/css-layout-api/layout-child/float.https.html": [
[
- "css/css-layout-api/layout-child-float.https.html",
+ "css/css-layout-api/layout-child/float.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -128287,9 +128299,9 @@
{}
]
],
- "css/css-layout-api/layout-child-inflow.https.html": [
+ "css/css-layout-api/layout-child/inflow.https.html": [
[
- "css/css-layout-api/layout-child-inflow.https.html",
+ "css/css-layout-api/layout-child/inflow.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -128299,9 +128311,9 @@
{}
]
],
- "css/css-layout-api/layout-child-inlines.https.html": [
+ "css/css-layout-api/layout-child/inlines.https.html": [
[
- "css/css-layout-api/layout-child-inlines.https.html",
+ "css/css-layout-api/layout-child/inlines.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -128311,9 +128323,9 @@
{}
]
],
- "css/css-layout-api/layout-child-text.https.html": [
+ "css/css-layout-api/layout-child/text.https.html": [
[
- "css/css-layout-api/layout-child-text.https.html",
+ "css/css-layout-api/layout-child/text.https.html",
[
[
"/css/css-layout-api/green-square-ref.html",
@@ -128323,72 +128335,72 @@
{}
]
],
- "css/css-layout-api/position-fragment-htb-ltr.https.html": [
+ "css/css-layout-api/position-fragment/htb-ltr.https.html": [
[
- "css/css-layout-api/position-fragment-htb-ltr.https.html",
+ "css/css-layout-api/position-fragment/htb-ltr.https.html",
[
[
- "/css/css-layout-api/position-fragment-ref.html",
+ "/css/css-layout-api/position-fragment/ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/position-fragment-htb-rtl.https.html": [
+ "css/css-layout-api/position-fragment/htb-rtl.https.html": [
[
- "css/css-layout-api/position-fragment-htb-rtl.https.html",
+ "css/css-layout-api/position-fragment/htb-rtl.https.html",
[
[
- "/css/css-layout-api/position-fragment-ref.html",
+ "/css/css-layout-api/position-fragment/ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/position-fragment-vlr-ltr.https.html": [
+ "css/css-layout-api/position-fragment/vlr-ltr.https.html": [
[
- "css/css-layout-api/position-fragment-vlr-ltr.https.html",
+ "css/css-layout-api/position-fragment/vlr-ltr.https.html",
[
[
- "/css/css-layout-api/position-fragment-ref.html",
+ "/css/css-layout-api/position-fragment/ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/position-fragment-vlr-rtl.https.html": [
+ "css/css-layout-api/position-fragment/vlr-rtl.https.html": [
[
- "css/css-layout-api/position-fragment-vlr-rtl.https.html",
+ "css/css-layout-api/position-fragment/vlr-rtl.https.html",
[
[
- "/css/css-layout-api/position-fragment-ref.html",
+ "/css/css-layout-api/position-fragment/ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/position-fragment-vrl-ltr.https.html": [
+ "css/css-layout-api/position-fragment/vrl-ltr.https.html": [
[
- "css/css-layout-api/position-fragment-vrl-ltr.https.html",
+ "css/css-layout-api/position-fragment/vrl-ltr.https.html",
[
[
- "/css/css-layout-api/position-fragment-ref.html",
+ "/css/css-layout-api/position-fragment/ref.html",
"=="
]
],
{}
]
],
- "css/css-layout-api/position-fragment-vrl-rtl.https.html": [
+ "css/css-layout-api/position-fragment/vrl-rtl.https.html": [
[
- "css/css-layout-api/position-fragment-vrl-rtl.https.html",
+ "css/css-layout-api/position-fragment/vrl-rtl.https.html",
[
[
- "/css/css-layout-api/position-fragment-ref.html",
+ "/css/css-layout-api/position-fragment/ref.html",
"=="
]
],
@@ -134383,6 +134395,18 @@
{}
]
],
+ "css/css-paint-api/color-custom-property-animation.https.html": [
+ [
+ "css/css-paint-api/color-custom-property-animation.https.html",
+ [
+ [
+ "/css/css-paint-api/color-custom-property-animation-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-paint-api/custom-property-animation-on-main-thread.https.html": [
[
"css/css-paint-api/custom-property-animation-on-main-thread.https.html",
@@ -142959,6 +142983,118 @@
{}
]
],
+ "css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html": [
+ [
+ "css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html": [
+ [
+ "css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html": [
+ [
+ "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html": [
+ [
+ "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-upright-001.html": [
+ [
+ "css/css-text-decor/text-decoration-skip-ink-upright-001.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html",
+ "!="
+ ],
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-upright-002.html": [
+ [
+ "css/css-text-decor/text-decoration-skip-ink-upright-002.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-002-ref.html",
+ "=="
+ ],
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-vertical-001.html": [
+ [
+ "css/css-text-decor/text-decoration-skip-ink-vertical-001.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html",
+ "!="
+ ],
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-vertical-002.html": [
+ [
+ "css/css-text-decor/text-decoration-skip-ink-vertical-002.html",
+ [
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-002-ref.html",
+ "=="
+ ],
+ [
+ "/css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-text-decor/text-decoration-style-multiple.html": [
[
"css/css-text-decor/text-decoration-style-multiple.html",
@@ -202597,18 +202733,6 @@
{}
]
],
- "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html": [
- [
- "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html",
- [
- [
- "/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref-2.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"html/rendering/replaced-elements/the-select-element/select-1-block-size-001.html": [
[
"html/rendering/replaced-elements/the-select-element/select-1-block-size-001.html",
@@ -205505,6 +205629,18 @@
{}
]
],
+ "shadow-dom/directionality-002.tentative.html": [
+ [
+ "shadow-dom/directionality-002.tentative.html",
+ [
+ [
+ "/shadow-dom/directionality-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"shadow-dom/layout-slot-no-longer-assigned.html": [
[
"shadow-dom/layout-slot-no-longer-assigned.html",
@@ -211137,6 +211273,18 @@
{}
]
],
+ "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html": [
+ [
+ "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html",
+ [
+ [
+ "/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref-2.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"infrastructure/assumptions/ahem-ref.html": [
[
"infrastructure/assumptions/ahem-ref.html",
@@ -245278,6 +245426,9 @@
"css/css-display/display-flow-root-001-ref.html": [
[]
],
+ "css/css-display/display-flow-root-list-item-001-ref.html": [
+ []
+ ],
"css/css-display/display-inline-dynamic-001-ref.html": [
[]
],
@@ -251791,19 +251942,19 @@
"css/css-layout-api/META.yml": [
[]
],
- "css/css-layout-api/auto-block-size-absolute-ref.html": [
+ "css/css-layout-api/auto-block-size/absolute-ref.html": [
[]
],
- "css/css-layout-api/auto-block-size-flex-ref.html": [
+ "css/css-layout-api/auto-block-size/flex-ref.html": [
[]
],
- "css/css-layout-api/auto-block-size-floats-ref.html": [
+ "css/css-layout-api/auto-block-size/floats-ref.html": [
[]
],
- "css/css-layout-api/auto-block-size-inflow-ref.html": [
+ "css/css-layout-api/auto-block-size/inflow-ref.html": [
[]
],
- "css/css-layout-api/auto-block-size-negative-ref.html": [
+ "css/css-layout-api/auto-block-size/negative-ref.html": [
[]
],
"css/css-layout-api/box-tree-registered-ref.html": [
@@ -251812,40 +251963,40 @@
"css/css-layout-api/box-tree-unregistered-ref.html": [
[]
],
- "css/css-layout-api/constraints-fixed-inline-size-ref.html": [
+ "css/css-layout-api/child-constraints/support/layout-child-sizes-worklet.js": [
[]
],
- "css/css-layout-api/fallback-ref.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-ref.html": [
[]
],
- "css/css-layout-api/green-square-ref.html": [
+ "css/css-layout-api/constraints/support/constraints-fixed-block-size-quirky-body-iframe.html": [
[]
],
- "css/css-layout-api/position-fragment-ref.html": [
+ "css/css-layout-api/constraints/support/constraints-fixed-block-size.js": [
[]
],
- "css/css-layout-api/style-map-multi-ref.html": [
+ "css/css-layout-api/constraints/support/constraints-fixed-inline-size.js": [
[]
],
- "css/css-layout-api/style-map-ref.html": [
+ "css/css-layout-api/fallback-layout/fallback-ref.html": [
[]
],
- "css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html": [
+ "css/css-layout-api/green-square-ref.html": [
[]
],
- "css/css-layout-api/support/constraints-fixed-block-size.js": [
+ "css/css-layout-api/layout-child/support/layout-child-worklet.js": [
[]
],
- "css/css-layout-api/support/constraints-fixed-inline-size.js": [
+ "css/css-layout-api/position-fragment/ref.html": [
[]
],
- "css/css-layout-api/support/layout-child-sizes-worklet.js": [
+ "css/css-layout-api/position-fragment/support/layout-position-child-worklet.js": [
[]
],
- "css/css-layout-api/support/layout-child-worklet.js": [
+ "css/css-layout-api/style-map-multi-ref.html": [
[]
],
- "css/css-layout-api/support/layout-position-child-worklet.js": [
+ "css/css-layout-api/style-map-ref.html": [
[]
],
"css/css-lists/META.yml": [
@@ -253033,6 +253184,9 @@
"css/css-paint-api/background-repeat-x-ref.html": [
[]
],
+ "css/css-paint-api/color-custom-property-animation-ref.html": [
+ []
+ ],
"css/css-paint-api/geometry-background-image-001-ref.html": [
[]
],
@@ -254827,6 +254981,30 @@
"css/css-text-decor/reference/text-decoration-skip-ink-004-notref.html": [
[]
],
+ "css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html": [
+ []
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html": [
+ []
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html": [
+ []
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html": [
+ []
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html": [
+ []
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html": [
+ []
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html": [
+ []
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html": [
+ []
+ ],
"css/css-text-decor/reference/text-decoration-style-multiple-ref.html": [
[]
],
@@ -256744,9 +256922,6 @@
"css/css-transforms/META.yml": [
[]
],
- "css/css-transforms/animation/resources/interpolation-testcommon.js": [
- []
- ],
"css/css-transforms/composited-under-rotateY-180deg-clip-perspective-ref.html": [
[]
],
@@ -260137,6 +260312,21 @@
"css/css-writing-modes/support/margin-collapse-2em-space-wm-vert.png": [
[]
],
+ "css/css-writing-modes/support/mn+arabic.png": [
+ []
+ ],
+ "css/css-writing-modes/support/mn+latin.png": [
+ []
+ ],
+ "css/css-writing-modes/support/mn-orientation.png": [
+ []
+ ],
+ "css/css-writing-modes/support/mn_ar_wrap.png": [
+ []
+ ],
+ "css/css-writing-modes/support/mn_en_wrap.png": [
+ []
+ ],
"css/css-writing-modes/support/opaque-square-40x160.png": [
[]
],
@@ -260338,6 +260528,9 @@
"css/css-writing-modes/support/wm-propagation-body-035-exp-res.png": [
[]
],
+ "css/css-writing-modes/support/world.png": [
+ []
+ ],
"css/css-writing-modes/support/yellow-square-59x59.png": [
[]
],
@@ -260353,6 +260546,21 @@
"css/css-writing-modes/support/yellow-square-vert-redline-right-59x59.png": [
[]
],
+ "css/css-writing-modes/support/zh+arabic.png": [
+ []
+ ],
+ "css/css-writing-modes/support/zh+latin.png": [
+ []
+ ],
+ "css/css-writing-modes/support/zh-orientation.png": [
+ []
+ ],
+ "css/css-writing-modes/support/zh_ar_wrap.png": [
+ []
+ ],
+ "css/css-writing-modes/support/zh_en_wrap.png": [
+ []
+ ],
"css/css-writing-modes/table-progression-001-ref.html": [
[]
],
@@ -266383,6 +266591,12 @@
"feature-policy/reporting/midi-reporting.https.html.headers": [
[]
],
+ "feature-policy/reporting/oversized-images-reporting.html.headers": [
+ []
+ ],
+ "feature-policy/reporting/oversized.jpg": [
+ []
+ ],
"feature-policy/reporting/payment-report-only.https.html.headers": [
[]
],
@@ -271942,9 +272156,6 @@
"html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref-2.html": [
[]
],
- "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html": [
- []
- ],
"html/rendering/replaced-elements/the-select-element/select-1-block-size-ref.html": [
[]
],
@@ -276646,6 +276857,9 @@
"performance-timeline/performanceobservers.js": [
[]
],
+ "performance-timeline/resources/postmessage-entry.html": [
+ []
+ ],
"performance-timeline/resources/square.png": [
[]
],
@@ -281101,6 +281315,9 @@
"shadow-dom/directionality-001-ref.html": [
[]
],
+ "shadow-dom/directionality-002-ref.html": [
+ []
+ ],
"shadow-dom/focus/resources/shadow-utils.js": [
[]
],
@@ -287410,6 +287627,126 @@
"webgl/common.js": [
[]
],
+ "webgpu/framework/allowed_characters.js": [
+ []
+ ],
+ "webgpu/framework/collect_garbage.js": [
+ []
+ ],
+ "webgpu/framework/fixture.js": [
+ []
+ ],
+ "webgpu/framework/gpu/implementation.js": [
+ []
+ ],
+ "webgpu/framework/id.js": [
+ []
+ ],
+ "webgpu/framework/index.js": [
+ []
+ ],
+ "webgpu/framework/listing.js": [
+ []
+ ],
+ "webgpu/framework/loader.js": [
+ []
+ ],
+ "webgpu/framework/logger.js": [
+ []
+ ],
+ "webgpu/framework/params/combine.js": [
+ []
+ ],
+ "webgpu/framework/params/exclude.js": [
+ []
+ ],
+ "webgpu/framework/params/filter.js": [
+ []
+ ],
+ "webgpu/framework/params/index.js": [
+ []
+ ],
+ "webgpu/framework/params/options.js": [
+ []
+ ],
+ "webgpu/framework/test_filter/filter_by_group.js": [
+ []
+ ],
+ "webgpu/framework/test_filter/filter_one_file.js": [
+ []
+ ],
+ "webgpu/framework/test_filter/index.js": [
+ []
+ ],
+ "webgpu/framework/test_filter/internal.js": [
+ []
+ ],
+ "webgpu/framework/test_filter/load_filter.js": [
+ []
+ ],
+ "webgpu/framework/test_group.js": [
+ []
+ ],
+ "webgpu/framework/url_query.js": [
+ []
+ ],
+ "webgpu/framework/util/index.js": [
+ []
+ ],
+ "webgpu/framework/util/stack.js": [
+ []
+ ],
+ "webgpu/framework/version.js": [
+ []
+ ],
+ "webgpu/runtime/wpt.js": [
+ []
+ ],
+ "webgpu/suites/cts/buffers/create_mapped.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/buffers/map.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/buffers/map_detach.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/buffers/map_oom.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/buffers/mapping_test.js": [
+ []
+ ],
+ "webgpu/suites/cts/canvas/context_creation.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/command_buffer/basic.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/command_buffer/compute/basic.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/command_buffer/copies.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/command_buffer/render/basic.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/command_buffer/render/rendering.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/examples.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/fences.spec.js": [
+ []
+ ],
+ "webgpu/suites/cts/gpu_test.js": [
+ []
+ ],
+ "webgpu/suites/cts/index.js": [
+ []
+ ],
"webmessaging/META.yml": [
[]
],
@@ -313098,6 +313435,12 @@
{}
]
],
+ "css/css-box/parsing/padding-computed.html": [
+ [
+ "css/css-box/parsing/padding-computed.html",
+ {}
+ ]
+ ],
"css/css-box/parsing/padding-invalid.html": [
[
"css/css-box/parsing/padding-invalid.html",
@@ -317028,6 +317371,24 @@
{}
]
],
+ "css/css-inline/parsing/line-height-computed.html": [
+ [
+ "css/css-inline/parsing/line-height-computed.html",
+ {}
+ ]
+ ],
+ "css/css-inline/parsing/line-height-invalid.html": [
+ [
+ "css/css-inline/parsing/line-height-invalid.html",
+ {}
+ ]
+ ],
+ "css/css-inline/parsing/line-height-valid.html": [
+ [
+ "css/css-inline/parsing/line-height-valid.html",
+ {}
+ ]
+ ],
"css/css-layout-api/at-supports-rule.https.html": [
[
"css/css-layout-api/at-supports-rule.https.html",
@@ -317052,9 +317413,9 @@
{}
]
],
- "css/css-layout-api/layout-child-inlines-dynamic.https.html": [
+ "css/css-layout-api/layout-child/inlines-dynamic.https.html": [
[
- "css/css-layout-api/layout-child-inlines-dynamic.https.html",
+ "css/css-layout-api/layout-child/inlines-dynamic.https.html",
{}
]
],
@@ -317106,6 +317467,12 @@
{}
]
],
+ "css/css-lists/nested-list-with-list-style-type-none.html": [
+ [
+ "css/css-lists/nested-list-with-list-style-type-none.html",
+ {}
+ ]
+ ],
"css/css-lists/parsing/counter-increment-invalid.html": [
[
"css/css-lists/parsing/counter-increment-invalid.html",
@@ -318168,6 +318535,30 @@
{}
]
],
+ "css/css-position/animations/bottom-interpolation.html": [
+ [
+ "css/css-position/animations/bottom-interpolation.html",
+ {}
+ ]
+ ],
+ "css/css-position/animations/left-interpolation.html": [
+ [
+ "css/css-position/animations/left-interpolation.html",
+ {}
+ ]
+ ],
+ "css/css-position/animations/right-interpolation.html": [
+ [
+ "css/css-position/animations/right-interpolation.html",
+ {}
+ ]
+ ],
+ "css/css-position/animations/top-interpolation.html": [
+ [
+ "css/css-position/animations/top-interpolation.html",
+ {}
+ ]
+ ],
"css/css-position/inheritance.html": [
[
"css/css-position/inheritance.html",
@@ -320214,6 +320605,12 @@
{}
]
],
+ "css/css-sizing/animation/width-interpolation.html": [
+ [
+ "css/css-sizing/animation/width-interpolation.html",
+ {}
+ ]
+ ],
"css/css-sizing/aspect-ratio-affects-container-width-when-height-changes.html": [
[
"css/css-sizing/aspect-ratio-affects-container-width-when-height-changes.html",
@@ -323664,14 +324061,6 @@
{}
]
],
- "css/css-transitions/transitions-animatable-properties-01.html": [
- [
- "css/css-transitions/transitions-animatable-properties-01.html",
- {
- "timeout": "long"
- }
- ]
- ],
"css/css-transitions/zero-duration-multiple-transition.html": [
[
"css/css-transitions/zero-duration-multiple-transition.html",
@@ -326144,6 +326533,18 @@
{}
]
],
+ "css/css-values/minmax-angle-computed.html": [
+ [
+ "css/css-values/minmax-angle-computed.html",
+ {}
+ ]
+ ],
+ "css/css-values/minmax-angle-invalid.html": [
+ [
+ "css/css-values/minmax-angle-invalid.html",
+ {}
+ ]
+ ],
"css/css-values/rgba-011.html": [
[
"css/css-values/rgba-011.html",
@@ -343502,6 +343903,12 @@
{}
]
],
+ "feature-policy/reporting/oversized-images-reporting.html": [
+ [
+ "feature-policy/reporting/oversized-images-reporting.html",
+ {}
+ ]
+ ],
"feature-policy/reporting/payment-report-only.https.html": [
[
"feature-policy/reporting/payment-report-only.https.html",
@@ -362266,6 +362673,12 @@
{}
]
],
+ "infrastructure/assumptions/document-fonts-ready.html": [
+ [
+ "infrastructure/assumptions/document-fonts-ready.html",
+ {}
+ ]
+ ],
"infrastructure/assumptions/html-elements.html": [
[
"infrastructure/assumptions/html-elements.html",
@@ -362721,9 +363134,9 @@
{}
]
],
- "intersection-observer/cross-origin-iframe.html": [
+ "intersection-observer/cross-origin-iframe.sub.html": [
[
- "intersection-observer/cross-origin-iframe.html",
+ "intersection-observer/cross-origin-iframe.sub.html",
{}
]
],
@@ -378978,6 +379391,12 @@
{}
]
],
+ "performance-timeline/not-clonable.html": [
+ [
+ "performance-timeline/not-clonable.html",
+ {}
+ ]
+ ],
"performance-timeline/observer-buffered-false.any.js": [
[
"performance-timeline/observer-buffered-false.any.html",
@@ -400606,6 +401025,12 @@
{}
]
],
+ "svg/animations/correct-events-for-short-animations-with-syncbases.html": [
+ [
+ "svg/animations/correct-events-for-short-animations-with-syncbases.html",
+ {}
+ ]
+ ],
"svg/animations/cyclic-syncbase.html": [
[
"svg/animations/cyclic-syncbase.html",
@@ -400678,6 +401103,12 @@
{}
]
],
+ "svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html": [
+ [
+ "svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html",
+ {}
+ ]
+ ],
"svg/animations/single-values-animation.html": [
[
"svg/animations/single-values-animation.html",
@@ -402094,6 +402525,12 @@
{}
]
],
+ "svg/text/parsing/text-anchor-computed.svg": [
+ [
+ "svg/text/parsing/text-anchor-computed.svg",
+ {}
+ ]
+ ],
"svg/text/parsing/text-anchor-invalid.svg": [
[
"svg/text/parsing/text-anchor-invalid.svg",
@@ -409226,6 +409663,56 @@
}
]
],
+ "webgpu/cts.html": [
+ [
+ "webgpu/cts.html?q=cts:buffers/create_mapped:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:buffers/map:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:buffers/map_detach:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:buffers/map_oom:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:canvas/context_creation:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:command_buffer/basic:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:command_buffer/compute/basic:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:command_buffer/copies:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:command_buffer/render/basic:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:command_buffer/render/rendering:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:examples:",
+ {}
+ ],
+ [
+ "webgpu/cts.html?q=cts:fences:",
+ {}
+ ]
+ ],
"webmessaging/Channel_postMessage_Blob.htm": [
[
"webmessaging/Channel_postMessage_Blob.htm",
@@ -415292,6 +415779,12 @@
}
]
],
+ "webxr/navigator_xr_sameObject.https.html": [
+ [
+ "webxr/navigator_xr_sameObject.https.html",
+ {}
+ ]
+ ],
"webxr/render_state_vertical_fov_immersive.https.html": [
[
"webxr/render_state_vertical_fov_immersive.https.html",
@@ -415412,6 +415905,12 @@
{}
]
],
+ "webxr/xrFrame_session_sameObject.https.html": [
+ [
+ "webxr/xrFrame_session_sameObject.https.html",
+ {}
+ ]
+ ],
"webxr/xrInputSource_add_remove.https.html": [
[
"webxr/xrInputSource_add_remove.https.html",
@@ -415436,6 +415935,18 @@
{}
]
],
+ "webxr/xrInputSource_sameObject.https.html": [
+ [
+ "webxr/xrInputSource_sameObject.https.html",
+ {}
+ ]
+ ],
+ "webxr/xrPose_transform_sameObject.https.html": [
+ [
+ "webxr/xrPose_transform_sameObject.https.html",
+ {}
+ ]
+ ],
"webxr/xrRay_constructor.https.html": [
[
"webxr/xrRay_constructor.https.html",
@@ -415478,6 +415989,12 @@
{}
]
],
+ "webxr/xrRigidTransform_sameObject.https.html": [
+ [
+ "webxr/xrRigidTransform_sameObject.https.html",
+ {}
+ ]
+ ],
"webxr/xrSession_cancelAnimationFrame.https.html": [
[
"webxr/xrSession_cancelAnimationFrame.https.html",
@@ -415544,6 +416061,12 @@
{}
]
],
+ "webxr/xrSession_sameObject.https.html": [
+ [
+ "webxr/xrSession_sameObject.https.html",
+ {}
+ ]
+ ],
"webxr/xrSession_viewer_referenceSpace.https.html": [
[
"webxr/xrSession_viewer_referenceSpace.https.html",
@@ -415580,6 +416103,18 @@
{}
]
],
+ "webxr/xrView_sameObject.https.html": [
+ [
+ "webxr/xrView_sameObject.https.html",
+ {}
+ ]
+ ],
+ "webxr/xrViewerPose_views_sameObject.https.html": [
+ [
+ "webxr/xrViewerPose_views_sameObject.https.html",
+ {}
+ ]
+ ],
"webxr/xrViewport_valid.https.html": [
[
"webxr/xrViewport_valid.https.html",
@@ -415598,6 +416133,12 @@
{}
]
],
+ "webxr/xrWebGLLayer_framebuffer_sameObject.https.html": [
+ [
+ "webxr/xrWebGLLayer_framebuffer_sameObject.https.html",
+ {}
+ ]
+ ],
"webxr/xrWebGLLayer_framebuffer_scale.https.html": [
[
"webxr/xrWebGLLayer_framebuffer_scale.https.html",
@@ -441168,7 +441709,7 @@
},
"paths": {
".azure-pipelines.yml": [
- "4a4e9c7ff5ead2be22dda7ab7b50071bd70817e4",
+ "5799d624b4efc1e974b3cbeec0e7d9a9f6cf2e17",
"support"
],
".codecov.yml": [
@@ -540903,6 +541444,10 @@
"1bfeec236460ff47ccbea842ceffd3abe733a61b",
"testharness"
],
+ "css/css-box/parsing/padding-computed.html": [
+ "f1186c4530d04c41eacbdffeb1a03e966e1becf5",
+ "testharness"
+ ],
"css/css-box/parsing/padding-invalid.html": [
"3e3a560c2f71877494577f9dbc5c2eecfbab8a62",
"testharness"
@@ -544555,6 +545100,14 @@
"3d1dcb020df129dd10d66bb4b04d62c3c280cfb6",
"reftest"
],
+ "css/css-display/display-flow-root-list-item-001-ref.html": [
+ "00bfbca26a6036692746a8c2689831f1fcc21427",
+ "support"
+ ],
+ "css/css-display/display-flow-root-list-item-001.html": [
+ "6c5bece5864aa15f7bd34b26055ed755b43db1f1",
+ "reftest"
+ ],
"css/css-display/display-inline-dynamic-001-ref.html": [
"8b5f5015f9ebc818cbf48666773440a359e1d740",
"support"
@@ -560311,6 +560864,18 @@
"1a6c7a400cbec8117953389b5c54854991a66ad0",
"testharness"
],
+ "css/css-inline/parsing/line-height-computed.html": [
+ "dff6fc6702e678840718153031dc2d01b02f5470",
+ "testharness"
+ ],
+ "css/css-inline/parsing/line-height-invalid.html": [
+ "e7d4ae62460d58c863e0a7b9568ecd7c72aef197",
+ "testharness"
+ ],
+ "css/css-inline/parsing/line-height-valid.html": [
+ "663e2638d8b4869561ea24748c8e54077079371c",
+ "testharness"
+ ],
"css/css-layout-api/META.yml": [
"c85c2d4ccc0b02f3e22ca444952fb7583d96e7c7",
"support"
@@ -560319,44 +560884,44 @@
"0f23325ce60d67c445745377b443fa0b0de5954d",
"testharness"
],
- "css/css-layout-api/auto-block-size-absolute-ref.html": [
+ "css/css-layout-api/auto-block-size/absolute-ref.html": [
"416d57c43fa72e401fc833ecd214e09470fb3980",
"support"
],
- "css/css-layout-api/auto-block-size-absolute.https.html": [
- "bf81b21a4bbd2ded687b1aa18bc71036550206b2",
+ "css/css-layout-api/auto-block-size/absolute.https.html": [
+ "7a726f6e00c09422bb46520a4d63de8e37af6942",
"reftest"
],
- "css/css-layout-api/auto-block-size-flex-ref.html": [
+ "css/css-layout-api/auto-block-size/flex-ref.html": [
"e71b104c7421fad3f95f46484accb56b4f01c38f",
"support"
],
- "css/css-layout-api/auto-block-size-flex.https.html": [
- "5b152bb645ff21750c8d6b703d4ad6225a6504e0",
+ "css/css-layout-api/auto-block-size/flex.https.html": [
+ "96fe3c79a938b1ab3f21bd8cd647c6ea375d776b",
"reftest"
],
- "css/css-layout-api/auto-block-size-floats-ref.html": [
+ "css/css-layout-api/auto-block-size/floats-ref.html": [
"368d3d8693fec1b3b0dadc2c6d1862d224e8fa21",
"support"
],
- "css/css-layout-api/auto-block-size-floats.https.html": [
- "342c57b5300e257c8fd456489c9c57f9be0913bc",
+ "css/css-layout-api/auto-block-size/floats.https.html": [
+ "b36f89da24530683b6687c799e3260d453af8352",
"reftest"
],
- "css/css-layout-api/auto-block-size-inflow-ref.html": [
+ "css/css-layout-api/auto-block-size/inflow-ref.html": [
"73f84811b18e9f64edabe8577748ab018fced4d1",
"support"
],
- "css/css-layout-api/auto-block-size-inflow.https.html": [
- "7daef6e4c85c1931d16548720d528e4adfe98589",
+ "css/css-layout-api/auto-block-size/inflow.https.html": [
+ "2239b27894c239360743a1c0f2b52bfce2f2f506",
"reftest"
],
- "css/css-layout-api/auto-block-size-negative-ref.html": [
+ "css/css-layout-api/auto-block-size/negative-ref.html": [
"665b5c6620b5698f57abf63fbc01a836d8a065f6",
"support"
],
- "css/css-layout-api/auto-block-size-negative.https.html": [
- "392edd125aea56db857f39264abf22c6e84b337b",
+ "css/css-layout-api/auto-block-size/negative.https.html": [
+ "a1a76d94aa3d8f2c3bd922088777c935aa8f72f2",
"reftest"
],
"css/css-layout-api/box-tree-registered-ref.html": [
@@ -560376,89 +560941,93 @@
"reftest"
],
"css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html": [
- "0da20ee837155760bda86679355053bae821ac37",
+ "6ec8e4062fcce4ed95d326596735de9f44ce4cbb",
"reftest"
],
"css/css-layout-api/child-constraints/available-block-size-invalid.https.html": [
- "dfbc812556fbf606734755781fb8d25600964d25",
+ "32a0f11a4ec70f17a54d7bd1345d17cf421dc202",
"reftest"
],
"css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html": [
- "c8e84ae51703800e1d2031fc1b4efbe61330a528",
+ "536af3b5a46b9eb156ae249be1fa2a315c08bd8d",
"reftest"
],
"css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html": [
- "94cf75fc93fc84c0954917ac2784f1216d84ff19",
+ "6205c01d104feef599255ada7f96e567ec79ff49",
"reftest"
],
"css/css-layout-api/child-constraints/available-inline-size-invalid.https.html": [
- "136d13fa703a55a0432e3ab6d50556073175b8e9",
+ "8bb18aaa4ba2b127257170c4a0c6f84048693477",
"reftest"
],
"css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html": [
- "392a6b514228a03c04c19e83d163e76fc43036fb",
+ "1b8d01f02476526bcf327e21f4919153ce346dbf",
"reftest"
],
"css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html": [
- "960fb7d7dcfb1da96b1a925090e5c58d1c4a7b4a",
+ "9bf4d40ad613390ba41581d52de0f4d52cf2e5f9",
"reftest"
],
"css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html": [
- "0e9b5570abeb52ff833e0549d8e8464a02482c07",
+ "eb104a180d75a2c041fd21c2ca00cb44e4568831",
"reftest"
],
"css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html": [
- "62efe992fb3ed4029d63da14d6525e9d0964919d",
+ "8bd969271e0c257ec2c374eda0cb03d1b0a84912",
"reftest"
],
"css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html": [
- "1352ea917835c37fca3e9740349262c2f2139c59",
+ "ce8ff95dd0d15d9d05c8bf022e3ccb5e5eaa2deb",
"reftest"
],
"css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html": [
- "9c30c212fae3a7add6dc3c56f7acae26b969e231",
+ "71c7355b9cdb206235c8bf1c834c42d42c10f52d",
"reftest"
],
"css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html": [
- "dedcaa0ee83c3cbc7be138024290a3281a76b9ed",
+ "631c5f82815569d4274c24ad73607d03085b7051",
"reftest"
],
"css/css-layout-api/child-constraints/fixed-block-size.https.html": [
- "eea540ca59f2d7dd312b0ff723d4c3b6cee9e954",
+ "737cc4da75b440cdd7dece9b8a4872805bcb014c",
"reftest"
],
"css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html": [
- "22bd3e7c1258d729d901c64ab6d854ee42e309a8",
+ "4fc3c2e77d99291630bdcd9d8e505976a6183e55",
"reftest"
],
"css/css-layout-api/child-constraints/fixed-inline-size.https.html": [
- "0a05a46fe69f85836c1a125e63b9dc579a343a0b",
+ "0fdf4aca3a76a1afe6349e0d157d8eb0bd3e0561",
"reftest"
],
"css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html": [
- "99224c73f5b5fc676fd16146c6f1b5877cb555fa",
+ "84bda1ddf5a87384e61c0ff5ebd894be09b8a638",
"reftest"
],
"css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html": [
- "8116d5a9b0881364246156962d9ec2e4df65114b",
+ "98d285b015d4adda92df3f42b988499ec57d620a",
"reftest"
],
"css/css-layout-api/child-constraints/percentage-size-invalid.https.html": [
- "932380a6163ed71c825675424563c3b0180c4eaa",
+ "04355355528a4312e24d3b975d7c603f551ac141",
"reftest"
],
"css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html": [
- "39a360d079d3deab244305a26a5ab4ca905ff796",
+ "527149b67a8cd89ec6337484bc5e1c4da5e5e8cc",
"reftest"
],
"css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html": [
- "70640ef0b29da555f70585eb5b6042ede9a47b0c",
+ "2d3d496fa5f2465a1b3790ff341a77060d95512c",
"reftest"
],
"css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html": [
- "07132579621deb3c10650ab5172fdd5e24ec6076",
+ "577b98ad983eeb733e235db1fc9885ca62a880a3",
"reftest"
],
+ "css/css-layout-api/child-constraints/support/layout-child-sizes-worklet.js": [
+ "5956c9a70c2ba650318fd6bbbc859f1cc8002f08",
+ "support"
+ ],
"css/css-layout-api/computed-style-layout-function.https.html": [
"d115009c6ca43dc5b2d72934cfe3cf3dbe5af626",
"testharness"
@@ -560475,210 +561044,222 @@
"4bea061917ab74c542534e23c33b5135c8a01d15",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html": [
- "4a376d7ae24de5a86451e3cc85261ac21a070f59",
+ "css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html": [
+ "8e177dbf3369c8a8094fae5c617bde081b248625",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html": [
- "7a695e0d8dcf5a2f32b5151d0f7fbfdb850fffbd",
+ "css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html": [
+ "7b10f11d7ddd8c75e3d76b2fd762d040ea486c56",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html": [
- "7cbee8295ce0bb341705e0e7012c4d440c0091ad",
+ "css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html": [
+ "73c29000cfdc6d50388f4619fdc639185e6c85bf",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html": [
- "6f36abe73bcee18dd20b3cc825cfeb4ee7b66523",
+ "css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html": [
+ "704b66d64aaeb724a66f94f09e003096b789db72",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-block-none.https.html": [
- "4fd6441c0aa63c3533250689ae5acf37eb65ab06",
+ "css/css-layout-api/constraints/fixed-block-size-block-none.https.html": [
+ "6c023f5162837beb379d5995fa9a59016ae1fe9c",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html": [
- "accdd7c8b009680ba3291d44c698a9e20403c532",
+ "css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html": [
+ "8af6afde26952faf53ab272c56f1e51d8ce9db27",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html": [
- "845683dc6d5715996e4855db88ad1b7632675fa5",
+ "css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html": [
+ "4d76ed97850f01051e3fdc74b22ef32e418b6222",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html": [
- "a319129a27d2b0e034bf9ff856bac505c346e73b",
+ "css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html": [
+ "bbc0a2fde87207deb4c1cd5eefa47f1dff2a06ad",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-fixed.https.html": [
- "646a514d18c99261d0d48ebd2fbb56373aac1570",
+ "css/css-layout-api/constraints/fixed-block-size-fixed.https.html": [
+ "45376ac295c460d81a84d25a715085180bc4eb6f",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html": [
- "bb12d15dbc7a375d7ba6ba0e31446ff89e51b93d",
+ "css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html": [
+ "25fc685a67b2b3082edf297d6d29d83ce1cc5ffe",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html": [
- "8435b021c978c69d1e67694ec0d0d2419edf2b8b",
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html": [
+ "8df99ee835bb212f28ade5f0db4496857c3f44bf",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html": [
- "68a3c19764315ead1453b14fe73a3a897c0b2a92",
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html": [
+ "da53fa86ad8c5114d40887490d8014af1089d849",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html": [
- "a0c416f5338f08679deead337442000f1f4efd61",
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html": [
+ "1d4249e9252797a00311bb0d1629a791618f9efe",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html": [
- "be448da4ec18f04d4f1e80b353150890d0116565",
+ "css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html": [
+ "c71e202b0ceda991010ba7a76d3815ad74ad4882",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html": [
- "d79445e16e89bfc750dc5bd0365280e4319a5458",
+ "css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html": [
+ "f77b84910a557a71063bfc7a1e64e7697922bd5f",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-flex-none.https.html": [
- "f34a0d88a95657e8877d2cd965b05a4f3b8138ff",
+ "css/css-layout-api/constraints/fixed-block-size-flex-none.https.html": [
+ "9ef11daccf71535da0836455cfd2d4003f6f719c",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html": [
- "ee8e27b38cbdcf3205ed87bb9a940ec8f3bd86eb",
+ "css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html": [
+ "111120673e758e36394bdeb1c07347b067a9bc7a",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html": [
- "bbf358e1129150ca5d6486dc2373c182b8f55eda",
+ "css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html": [
+ "c72ed3e04d8f3f5eef05e9d2ff576024736acb58",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html": [
- "1b1e43879f1fc39dc49af5b26c9aa519cb88092d",
+ "css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html": [
+ "cfaf38295f848bdac90f8e0687f496d110cd85ca",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-grid-none.https.html": [
- "27b68a0961135253120f5e02bba6b5b3c9064ead",
+ "css/css-layout-api/constraints/fixed-block-size-grid-none.https.html": [
+ "5c7381523e5175062cad19c02017699bceaf9597",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html": [
- "108c90db4f4f80cd3a72f87bf8e06087a78fccf9",
+ "css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html": [
+ "c738ad546d220f3893b2b63d4ea6dd46debdda15",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html": [
- "f93ad5be3631219987f2d1c5d2be09daf12084ca",
+ "css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html": [
+ "2e83f42c8662262dbb301a07859c3b985f9e63ab",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html": [
- "db82767f782d60daa895d7d9e39251324aafd560",
+ "css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html": [
+ "2c004cd9169a27659a92e7686d88d05a992cd603",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html": [
- "94a20387442c36b5041e40194aa7ceda405a3274",
+ "css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html": [
+ "ab02cb4b03f4bf141f4e3540b0b2e0e38c27a6d6",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html": [
- "9bd9044991cdde7c113f8fdbd08a2048a77746f9",
+ "css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html": [
+ "285ce941b2cd85b301f45e69076570d8f7eb3fbf",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html": [
- "8c7a8c5d3ea11ac3a5ac6e4269340baa10e266a5",
+ "css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html": [
+ "870bc526f874a5999987cff9a12a93159e8130db",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-percentage.https.html": [
- "693553e14e267676f213b998df8c4fe525ee459a",
+ "css/css-layout-api/constraints/fixed-block-size-percentage.https.html": [
+ "335556550d28988c095fdac828caae9f3ba76d5d",
"reftest"
],
- "css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html": [
- "7601e8b6bb4cee2e55deda5cb9603f94904bffea",
+ "css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html": [
+ "150426d45c79d881cd50bfcb52edb00df27bd963",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html": [
- "6b3662a16d43dcd5087ac4b277bec0435481eae9",
+ "css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html": [
+ "3b81c4d13d408df528dbd33777403866e390eaa0",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html": [
- "632a5dddfac21e78c5161ae6b2d84200a9d2c9e9",
+ "css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html": [
+ "ec94e59a17de50a46616d9402763abe157f2b684",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html": [
- "a8f4dd31ac9b41d6394fe009a6400cef356bca11",
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html": [
+ "2758462bd3357f288a758ea1fe23e7b3799c0e2c",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html": [
- "2eb6197c0774ecd86ee6be73b9d9c48cbdfa3051",
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html": [
+ "862b9ad3b287db2939c00d29f1ad181568f5d3cf",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html": [
- "751ea5ef759357deb7837fabeab95fe42855bde2",
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html": [
+ "0c15fd12eed4e04fceb64b4a2ffee3ced1fd1203",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html": [
- "1458a8bbb7987b37e713b83f4c3bb876429f9e8f",
+ "css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html": [
+ "c513c3d8441c370af8be533a8c14d5ed7aa6945a",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html": [
- "39ea818216de1668f0b6d8edc478c6b570bf0e80",
+ "css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html": [
+ "93b0c110d97d6573a9f9b19b9b5aeac04658fde5",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-fixed.https.html": [
- "6434d339196ea7c113368576830cc55d35308676",
+ "css/css-layout-api/constraints/fixed-inline-size-fixed.https.html": [
+ "d8e8062f83fce06b7ae6bc20c7527ce4ae333fa3",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html": [
- "263d45e5b0b9dd11c73e2f53c6c795fbea541588",
+ "css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html": [
+ "b9159965a07b0e6d108a08e9535b4b0b259c26fe",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html": [
- "d2589e62e78061502e6515356dbe871552103c83",
+ "css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html": [
+ "c2532c1460b838f9367a95bf4771a7474c0405d3",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-grid.https.html": [
- "94eca6b5967697617270c7bb63e76cf4cbfb093b",
+ "css/css-layout-api/constraints/fixed-inline-size-grid.https.html": [
+ "45f9f491e7b7bf6c24af4167407f37500ca75788",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html": [
- "0efabcb31abb6c7df237e4666d659404a147a4cc",
+ "css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html": [
+ "2e3504377726a11fa52b3194596daf8f29a20d2a",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-percentage.https.html": [
- "4b5a5675ac0d9d1f9cf24e06f3e35a8a6a2f9a70",
+ "css/css-layout-api/constraints/fixed-inline-size-percentage.https.html": [
+ "c9041cf0eac2436260c2ff3e5e775fb3f9430854",
"reftest"
],
- "css/css-layout-api/constraints-fixed-inline-size-ref.html": [
+ "css/css-layout-api/constraints/fixed-inline-size-ref.html": [
"e5727c0e2d2efa2b8487da66d0828487d7571497",
"support"
],
+ "css/css-layout-api/constraints/support/constraints-fixed-block-size-quirky-body-iframe.html": [
+ "da770e6caf1da462983fc6741b58c4084a8da438",
+ "support"
+ ],
+ "css/css-layout-api/constraints/support/constraints-fixed-block-size.js": [
+ "25d73ef61568477784a002dfeb591b7f5c8d0b30",
+ "support"
+ ],
+ "css/css-layout-api/constraints/support/constraints-fixed-inline-size.js": [
+ "3636f366547342a04253864016bf89ed392ea48a",
+ "support"
+ ],
"css/css-layout-api/crash-multicol.https.html": [
- "dbcbd183def6a4c3374e127736944b72d9651c74",
+ "5f175100e55ba48fa8cda6f2cd626affee0e3b09",
"testharness"
],
- "css/css-layout-api/fallback-constructor-error.https.html": [
+ "css/css-layout-api/fallback-layout/bad-return.https.html": [
+ "4c90ae7d336682c948a237937c01475a6fa4cdae",
+ "reftest"
+ ],
+ "css/css-layout-api/fallback-layout/constructor-error.https.html": [
"3f711af2e7ae955ded29895bc64eb52cac7f487e",
"reftest"
],
- "css/css-layout-api/fallback-layout-error.https.html": [
+ "css/css-layout-api/fallback-layout/error.https.html": [
"4c44f2168b2fb1e5c1071f40a355ea9a79714730",
"reftest"
],
- "css/css-layout-api/fallback-layout-invalid-child.https.html": [
+ "css/css-layout-api/fallback-layout/fallback-ref.html": [
+ "63bb91e90ca00f02d108f562ed857058df2443ca",
+ "support"
+ ],
+ "css/css-layout-api/fallback-layout/invalid-child.https.html": [
"567c3f7f74590eb8fcb9defd724533738f36023f",
"reftest"
],
- "css/css-layout-api/fallback-layout-invalid-fragment.https.html": [
+ "css/css-layout-api/fallback-layout/invalid-fragment.https.html": [
"2e33e8761d32118154ced40882a095d30001c0fc",
"reftest"
],
- "css/css-layout-api/fallback-layout-no-promise.https.html": [
+ "css/css-layout-api/fallback-layout/no-promise.https.html": [
"e7b22a4c5cd21a892799e4f711704bcdc6d57ce3",
"reftest"
],
- "css/css-layout-api/fallback-layout-return.https.html": [
- "4c90ae7d336682c948a237937c01475a6fa4cdae",
- "reftest"
- ],
- "css/css-layout-api/fallback-layout-unresolved-promise.https.html": [
+ "css/css-layout-api/fallback-layout/unresolved-promise.https.html": [
"369c56e4f9483537cf531fc1f20aea6f93fea88b",
"reftest"
],
- "css/css-layout-api/fallback-ref.html": [
- "63bb91e90ca00f02d108f562ed857058df2443ca",
- "support"
- ],
"css/css-layout-api/fragment-data-function-failure.https.html": [
"8496967be06401d5a21d097f4ad9db410758b49d",
"reftest"
@@ -560703,64 +561284,72 @@
"f11405b8e8cce153f1521f09965c873090cadbb9",
"testharness"
],
- "css/css-layout-api/layout-child-absolute.https.html": [
- "26513f4fac745f7aca5b922882a23003b20a2230",
+ "css/css-layout-api/layout-child/absolute.https.html": [
+ "7c47e38e7ad929a22c958f8e7aa33ca19e6002f7",
"reftest"
],
- "css/css-layout-api/layout-child-before-after.https.html": [
- "4923f26cf9d0e3af710dbc338f5db696230e9534",
+ "css/css-layout-api/layout-child/before-after.https.html": [
+ "373392ddfd143355979edaa5a6f1585c2aedb655",
"reftest"
],
- "css/css-layout-api/layout-child-fixed.https.html": [
- "264fc638d5222c280d78da2ec882154fb7308d8c",
+ "css/css-layout-api/layout-child/fixed.https.html": [
+ "95d8852b7da266598f32f713c9f1e80bc3731488",
"reftest"
],
- "css/css-layout-api/layout-child-float.https.html": [
- "6e40893e3b34369a84e8ca065616f87276b720a5",
+ "css/css-layout-api/layout-child/float.https.html": [
+ "e8db261774b4bcd4837ba1395a68178431bd67ae",
"reftest"
],
- "css/css-layout-api/layout-child-inflow.https.html": [
- "11f2b88aa1fe930f36907e3e4c3b5e1b13d28b06",
+ "css/css-layout-api/layout-child/inflow.https.html": [
+ "b43f1a7facdce8d1680767a063ba6a46859b8562",
"reftest"
],
- "css/css-layout-api/layout-child-inlines-dynamic.https.html": [
+ "css/css-layout-api/layout-child/inlines-dynamic.https.html": [
"50052087f44e42740e639d098ce4861dd008d81a",
"testharness"
],
- "css/css-layout-api/layout-child-inlines.https.html": [
- "811af3f40b299b874bcc71d38e8de6b86c67ab34",
+ "css/css-layout-api/layout-child/inlines.https.html": [
+ "dac7e0b26bc74667fef0564c3c2e904bbd6e162c",
"reftest"
],
- "css/css-layout-api/layout-child-text.https.html": [
- "40513f0acf39d25c759330b6c0e3bfc8648741cf",
+ "css/css-layout-api/layout-child/support/layout-child-worklet.js": [
+ "70d1b7e4572bd09b2c201705bf643e2979caccf1",
+ "support"
+ ],
+ "css/css-layout-api/layout-child/text.https.html": [
+ "090034fc1866fa5ddd1767fc4cb6f80c9e577ea8",
"reftest"
],
- "css/css-layout-api/position-fragment-htb-ltr.https.html": [
- "b09cb7067d5630d7398cdf9e583b01581df1b910",
+ "css/css-layout-api/position-fragment/htb-ltr.https.html": [
+ "f60109ca5743a9f94b286751c0e751e795fe25b5",
"reftest"
],
- "css/css-layout-api/position-fragment-htb-rtl.https.html": [
- "2d65b8cb988981bea8abb32b2fb00458368702fc",
+ "css/css-layout-api/position-fragment/htb-rtl.https.html": [
+ "980a3cdc253994914b950c36d00f34cfc02ce606",
"reftest"
],
- "css/css-layout-api/position-fragment-ref.html": [
+ "css/css-layout-api/position-fragment/ref.html": [
"4ce0a6e39de33707a325301a7dca13ea331420b0",
"support"
],
- "css/css-layout-api/position-fragment-vlr-ltr.https.html": [
- "62a5980307d19e00e1fbe06a93d5a2fd32bc2bd8",
+ "css/css-layout-api/position-fragment/support/layout-position-child-worklet.js": [
+ "7d5c494952d58038a6bc71719be3c6d8d6e363cb",
+ "support"
+ ],
+ "css/css-layout-api/position-fragment/vlr-ltr.https.html": [
+ "d75a4af639f7bd938077447ef13991bdb4df197d",
"reftest"
],
- "css/css-layout-api/position-fragment-vlr-rtl.https.html": [
- "a9983b1eb20ffab493fcdcee37a99132811d636e",
+ "css/css-layout-api/position-fragment/vlr-rtl.https.html": [
+ "a8ef6c699ca98167679e56a881b71b68868bad04",
"reftest"
],
- "css/css-layout-api/position-fragment-vrl-ltr.https.html": [
- "090128562f891cd1e1e88686d3957e036509aa46",
+ "css/css-layout-api/position-fragment/vrl-ltr.https.html": [
+ "21c9ce54d665de7e5cc3406112b73b31a07a82c9",
"reftest"
],
- "css/css-layout-api/position-fragment-vrl-rtl.https.html": [
- "e16f26b1d4fecd3caf6b7eddbbace3f00494345b",
+ "css/css-layout-api/position-fragment/vrl-rtl.https.html": [
+ "777e725da99140680c9b359d26dba8fd697af910",
"reftest"
],
"css/css-layout-api/style-map-multi-ref.html": [
@@ -560779,30 +561368,6 @@
"0300b8dfb4ac2b98c54216b8edb6388e7cb60f2a",
"reftest"
],
- "css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html": [
- "da770e6caf1da462983fc6741b58c4084a8da438",
- "support"
- ],
- "css/css-layout-api/support/constraints-fixed-block-size.js": [
- "25d73ef61568477784a002dfeb591b7f5c8d0b30",
- "support"
- ],
- "css/css-layout-api/support/constraints-fixed-inline-size.js": [
- "3636f366547342a04253864016bf89ed392ea48a",
- "support"
- ],
- "css/css-layout-api/support/layout-child-sizes-worklet.js": [
- "5956c9a70c2ba650318fd6bbbc859f1cc8002f08",
- "support"
- ],
- "css/css-layout-api/support/layout-child-worklet.js": [
- "70d1b7e4572bd09b2c201705bf643e2979caccf1",
- "support"
- ],
- "css/css-layout-api/support/layout-position-child-worklet.js": [
- "7d5c494952d58038a6bc71719be3c6d8d6e363cb",
- "support"
- ],
"css/css-layout-api/supports.https.html": [
"e269b292146cbab4f87041ab4cd2362010de5cf5",
"testharness"
@@ -561159,6 +561724,10 @@
"d4b3e300f8ea5011249e433b925a9a8f32e8c935",
"reftest"
],
+ "css/css-lists/nested-list-with-list-style-type-none.html": [
+ "e103113c3f4d98ed34b4cdda04bd436469d01f54",
+ "testharness"
+ ],
"css/css-lists/nested-marker-dynamic.html": [
"fdfb93dc6149055be4611d85fb9705bcafe5c3a5",
"reftest"
@@ -565199,6 +565768,14 @@
"2eccfd2a7d0b6e894a66f1afedc6969090f8ad9c",
"reftest"
],
+ "css/css-paint-api/color-custom-property-animation-ref.html": [
+ "3439cd9364560c870b09a394887daec5969b6bd4",
+ "support"
+ ],
+ "css/css-paint-api/color-custom-property-animation.https.html": [
+ "5cbfee89c45dd37e165676a835ece3f6283d0957",
+ "reftest"
+ ],
"css/css-paint-api/custom-property-animation-on-main-thread.https.html": [
"13ccf3fc27372d9494e09a36095140e4dbef236b",
"reftest"
@@ -565711,6 +566288,22 @@
"c1ce1ff602eee4668b9cb5d0168c4372193a8d3a",
"support"
],
+ "css/css-position/animations/bottom-interpolation.html": [
+ "272e79fc05b0267afe696c11ea0572299559d223",
+ "testharness"
+ ],
+ "css/css-position/animations/left-interpolation.html": [
+ "33ed0b4ec3b961bc0f71fc1b784b51201f50ebfa",
+ "testharness"
+ ],
+ "css/css-position/animations/right-interpolation.html": [
+ "284d435e56eac5370edd570d2f67b0dfeaa6bbf6",
+ "testharness"
+ ],
+ "css/css-position/animations/top-interpolation.html": [
+ "f5af530c387a7b52a78a4ca13b27d976f60b2dc9",
+ "testharness"
+ ],
"css/css-position/fixed-z-index-blend-ref.html": [
"2675401b4092996c2b3c3b80426f2730dc7bbf5f",
"support"
@@ -571303,6 +571896,10 @@
"086e654a8e039f259b5e828d024f808c2e95016b",
"support"
],
+ "css/css-sizing/animation/width-interpolation.html": [
+ "33bc1b14c83f45afbea4cdfadbe3959ac829e615",
+ "testharness"
+ ],
"css/css-sizing/aspect-ratio-affects-container-width-when-height-changes.html": [
"0dbbb2f9404da7cfa89f2e75af3ca06cfbe4be7e",
"testharness"
@@ -572939,6 +573536,38 @@
"2861918d87f3cebaa3fe0d4978668e970424d84e",
"support"
],
+ "css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html": [
+ "49cbf1530d7c9447f125c7ceea34b81a96de2f4a",
+ "support"
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html": [
+ "3882683f1db645f823741afe93acd7ad7244cbdc",
+ "support"
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html": [
+ "a57eac2f2db3fed32f73f3bcca2d5198ea634970",
+ "support"
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html": [
+ "a0a2c1fbaeb7c8fcfd90d5c2c4f5b75fabd15fe4",
+ "support"
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html": [
+ "80edf92bd91e469fcb9bdb32bc04891316d26510",
+ "support"
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html": [
+ "0938ce60eac27d280c91842d4383b9dc55b26c0d",
+ "support"
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html": [
+ "073fe6a951a4b3df79bf0e26f8987c280e98bf4e",
+ "support"
+ ],
+ "css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html": [
+ "f7b71783b555c92fe02916ece3e377a13ef7c09b",
+ "support"
+ ],
"css/css-text-decor/reference/text-decoration-style-multiple-ref.html": [
"f80396930e1bbaf06df7b999cf657cf74af99bc0",
"support"
@@ -573371,6 +574000,38 @@
"9d763f287c42491df3d445d3faf1ae444e4f9702",
"reftest"
],
+ "css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html": [
+ "48d427e238253e26ff18f7b3cbef925e987e8b6a",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html": [
+ "c5ee3469ba53ece4829474a6947f912c9cb5621d",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html": [
+ "3384215476ef5ddc544cf55d341ccdf209ebd441",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html": [
+ "94344307e3522fe6c57a24626b230ac5c56c74d3",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-upright-001.html": [
+ "5d0d78c5d7ed582200df37f1b467bcf51fb3d7ac",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-upright-002.html": [
+ "2e7d80ec2de40d2d575c5e5d50e47ddeb88e7ab7",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-vertical-001.html": [
+ "bf9054365e305a4f28fc409105f333f6aa7b19ac",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-skip-ink-vertical-002.html": [
+ "9cacc8c56fbb9efa3078c54648a9ce7f8ce15db4",
+ "reftest"
+ ],
"css/css-text-decor/text-decoration-skip-ink.html": [
"cd6f7a049c673e3dc92546f557e1813b20448128",
"testharness"
@@ -580384,27 +581045,23 @@
"testharness"
],
"css/css-transforms/animation/list-interpolation.html": [
- "4755279d73cc32b6396d332bdbbfdcbcc3624f52",
+ "85701e9efad69b20ba3236abf6ce78b16e9594f1",
"testharness"
],
"css/css-transforms/animation/matrix-interpolation.html": [
- "4becea079d78e16479e3d12e6310e69f8444dadf",
+ "a326e7c92f21aca39613c6964055b9592b35b034",
"testharness"
],
- "css/css-transforms/animation/resources/interpolation-testcommon.js": [
- "73ce9ceefb38654c480bf41b8ce542efcc3701c3",
- "support"
- ],
"css/css-transforms/animation/rotate-interpolation.html": [
- "ec96ba0b09b1e10e7d603d092461efad2a92d47d",
+ "911d8e38bd0bb6c3d5652d6824c64c58bd2233cf",
"testharness"
],
"css/css-transforms/animation/scale-interpolation.html": [
- "942b80a309def7c2b370e95d809900f87885964c",
+ "146575c902c10b8f34a6e9a12ee66abae1904223",
"testharness"
],
"css/css-transforms/animation/translate-interpolation.html": [
- "d5d47f733ef419d762d070a3ffb06c33aedaf2fe",
+ "aed6c41cf641ffc3b5eb7ef22b4b7353d98004fb",
"testharness"
],
"css/css-transforms/backface-visibility-hidden-001.html": [
@@ -585932,7 +586589,7 @@
"testharness"
],
"css/css-transitions/CSSTransition-effect.tentative.html": [
- "41bd23eb53122ed228eb18c3c3e73148b7e2e20e",
+ "a38bc21bde05b95f14963d3a6543cef40f193e5a",
"testharness"
],
"css/css-transitions/CSSTransition-finished.tentative.html": [
@@ -585944,7 +586601,7 @@
"testharness"
],
"css/css-transitions/CSSTransition-startTime.tentative.html": [
- "b6482f8047422f6d5abf6e1ae5a14b8fdc9a41f8",
+ "4dbe8634192a3e2431aa7c0f542071fec47e2ba7",
"testharness"
],
"css/css-transitions/CSSTransition-transitionProperty.tentative.html": [
@@ -586112,39 +586769,39 @@
"testharness"
],
"css/css-transitions/properties-value-001.html": [
- "a4d196a56474c95463ecb00d5bf374eb87c1e615",
+ "1f6d49881bfa2bcc5fa95b316af20a8806e620b5",
"testharness"
],
"css/css-transitions/properties-value-002.html": [
- "a1f91682e0cb3c27877b03e7a3ca1cebb6ad7619",
+ "9c5d9afbb931256251ef59f055d00619282a2e9f",
"testharness"
],
"css/css-transitions/properties-value-003.html": [
- "49c8dfbd786cb133f64b538ce2d8a557bc9bde7c",
+ "4f6bbda53bc2df17f28987d13ff8288fc94290c4",
"testharness"
],
"css/css-transitions/properties-value-auto-001.html": [
- "dd077f05f5d40a0ac85f78b26eb92446d9417393",
+ "6c932aa7cd6c9156e943027551a7cbbce3786365",
"testharness"
],
"css/css-transitions/properties-value-implicit-001.html": [
- "fe7664986b493d506f7e495609a623a6b7c72718",
+ "8500436c529707f43349354ee87ef460e2d7d63b",
"testharness"
],
"css/css-transitions/properties-value-inherit-001.html": [
- "0e91c7101b27584e735c8959463f6d02ec581bed",
+ "abbdecdfae9159fd0d315d6dea955e81aec988ce",
"testharness"
],
"css/css-transitions/properties-value-inherit-002.html": [
- "49ee3140f7b33bee500c7db9d7ccea0568b1b80b",
+ "9556cf7e23af7f755d5c1e9d09571fb8a9ee91aa",
"testharness"
],
"css/css-transitions/properties-value-inherit-003.html": [
- "046ba43c41f2732b3c67aa8c3881904e1532a517",
+ "13a16132134c14b273a443779a9b95468ec1af9f",
"testharness"
],
"css/css-transitions/pseudo-elements-001.html": [
- "ae9db1e5c6328f84f3bcd30a898401d37af84dfd",
+ "146c533e235f0061872586039172a51c2d779873",
"testharness"
],
"css/css-transitions/pseudo-elements-002.html": [
@@ -586276,7 +586933,7 @@
"support"
],
"css/css-transitions/support/runParallelAsyncHarness.js": [
- "fa3b09c7d8413cddf887680551434c9cdebfe780",
+ "de9b7837900b4daa3884babe6545b57ea901da15",
"support"
],
"css/css-transitions/support/square-purple.png": [
@@ -586655,10 +587312,6 @@
"cd47469ec742106ace7d904dc588d746ac514ba5",
"testharness"
],
- "css/css-transitions/transitions-animatable-properties-01.html": [
- "48a7d1e2e016ae914dbc9b8c08eadbc0e2a669a2",
- "testharness"
- ],
"css/css-transitions/zero-duration-multiple-transition.html": [
"4268ce766d76f14af0a211e829f50434f131bd20",
"testharness"
@@ -591004,7 +591657,7 @@
"reftest"
],
"css/css-values/ex-unit-001.html": [
- "ad296b4174e4331f445931c2aa2a959dffad51c9",
+ "eff0dbe2ebdeb85a8d9b9b907cd510193792dccf",
"reftest"
],
"css/css-values/ex-unit-002.html": [
@@ -591091,6 +591744,14 @@
"73069ecfe1e6d5b198f6e01df48facbe117d6828",
"reftest"
],
+ "css/css-values/minmax-angle-computed.html": [
+ "84e598a8147e123285d54876f942a0df0a5bf57f",
+ "testharness"
+ ],
+ "css/css-values/minmax-angle-invalid.html": [
+ "29dc15dfd965c940910ca5c63d6201643277f907",
+ "testharness"
+ ],
"css/css-values/q-unit-case-insensitivity-001.html": [
"b4a08aa117952c6f92e2aec6f57843b46a460104",
"reftest"
@@ -592896,23 +593557,23 @@
"reftest"
],
"css/css-writing-modes/available-size-006.html": [
- "e884f76f2036daab618415520191d504c7a932d3",
+ "e197f8f322fe2595a3cef76c5dd57c6f952068e3",
"reftest"
],
"css/css-writing-modes/available-size-007.html": [
- "c8cfea23b2e7d3a4a161be10168d0fb47ca77622",
+ "bf3e8c5faad5efcbf3adc4e59e23a1fc9952514c",
"reftest"
],
"css/css-writing-modes/available-size-008.html": [
- "d38c9cbc1d852ba68b8d01a0c46bb7c77452b620",
+ "786d8ec482a311296373a55c8d8a3a5dca31501d",
"reftest"
],
"css/css-writing-modes/available-size-009.html": [
- "9d7a2c8288d00fcb79ffa98cc3cd4dd7127c2223",
+ "5e26975999ea1c07716d6c989ea695c6fbd9c579",
"reftest"
],
"css/css-writing-modes/available-size-010.html": [
- "f6452cc957e7f35e6e1c777474890c0b806440d0",
+ "6745edd79532820023ea7f942171995c93be6d10",
"reftest"
],
"css/css-writing-modes/available-size-011.html": [
@@ -592932,11 +593593,11 @@
"reftest"
],
"css/css-writing-modes/available-size-015.html": [
- "f7cb13b24e023024c6e827a0308e9d42d2ef8df2",
+ "d23025a994956a29526b461e7540cc3616136023",
"reftest"
],
"css/css-writing-modes/available-size-016.html": [
- "c3c388e2446e8d85c1623861cbd574bfb44fbfc2",
+ "15038868b80534a55bfc77f7e3fc74a7552cc0cf",
"reftest"
],
"css/css-writing-modes/available-size-017.html": [
@@ -592948,7 +593609,7 @@
"reftest"
],
"css/css-writing-modes/available-size-019.html": [
- "a25a2f6f31ed1c118fa82fcb9493e5bd40687a23",
+ "b6fbfdf804fc40040caaafca3108c16d1eee6998",
"reftest"
],
"css/css-writing-modes/background-position-vlr-003.xht": [
@@ -595872,7 +596533,7 @@
"support"
],
"css/css-writing-modes/relpos-inline-overflowing-block-vrl.html": [
- "ea075c3f95e176c4fd4935fb2d305fc5bcf277da",
+ "fa09cf37cf59b61dbbd59f22ea49e24c809dc9d7",
"reftest"
],
"css/css-writing-modes/replaced-content-image-002.xht": [
@@ -595952,11 +596613,11 @@
"reftest"
],
"css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht": [
- "7bb0a0618e3fc5e1d9332b73884cb1e382fb3359",
+ "5f971974b8dd0998fddc71a33b5c0020e09f6c8d",
"support"
],
"css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht": [
- "2111a8b47d8bbbaa8724e960615054dc39549a0b",
+ "cd1529ce42116abbc68c1a1a25170607ec8021b1",
"reftest"
],
"css/css-writing-modes/sizing-orthog-htb-in-vlr-006-ref.xht": [
@@ -596080,7 +596741,7 @@
"reftest"
],
"css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht": [
- "c2a476eee8703cc865a76300cf21f40f553368c4",
+ "297457f62c2c575a931be4a21cc1158014aa7ee1",
"support"
],
"css/css-writing-modes/sizing-orthog-htb-in-vrl-001.xht": [
@@ -597107,6 +597768,26 @@
"8a2fa55efdf69d9ac0222eeabfc534600e26c82e",
"support"
],
+ "css/css-writing-modes/support/mn+arabic.png": [
+ "d999c3d3096199f5ab91a5dd9e4aea49fa3143b0",
+ "support"
+ ],
+ "css/css-writing-modes/support/mn+latin.png": [
+ "224297163c62727c498aa369354347e8a2c9b2be",
+ "support"
+ ],
+ "css/css-writing-modes/support/mn-orientation.png": [
+ "0167dfbde65956c0548535d5e24c334575886fb5",
+ "support"
+ ],
+ "css/css-writing-modes/support/mn_ar_wrap.png": [
+ "c7d5ca5806ee51d4e0acf7b91f1b21a5e4ac976f",
+ "support"
+ ],
+ "css/css-writing-modes/support/mn_en_wrap.png": [
+ "e697c992bcb09124eb8067034970c5733503ace7",
+ "support"
+ ],
"css/css-writing-modes/support/opaque-square-40x160.png": [
"11636f5f77136c7cb15b9abc41a9d44c1773b3ba",
"support"
@@ -597375,6 +598056,10 @@
"33f2820dafd2599226da0ad8dad2b9dee1f329d1",
"support"
],
+ "css/css-writing-modes/support/world.png": [
+ "b56ada3ef1dedac0597a8bdf86442981a98aaf9e",
+ "support"
+ ],
"css/css-writing-modes/support/yellow-square-59x59.png": [
"50816d38f6b6758e69991c65de0b9dc505628ebe",
"support"
@@ -597395,6 +598080,26 @@
"7e881312b358a609412577050c0f3a50f97bec79",
"support"
],
+ "css/css-writing-modes/support/zh+arabic.png": [
+ "019debeae63216d8b3d6ceb96548d22111b627b4",
+ "support"
+ ],
+ "css/css-writing-modes/support/zh+latin.png": [
+ "8fa56d5b6c5bf4b9f2f50555cddcc66f6af9c31d",
+ "support"
+ ],
+ "css/css-writing-modes/support/zh-orientation.png": [
+ "fa05cfe7977ffc44800c813b8d1398a9d8554633",
+ "support"
+ ],
+ "css/css-writing-modes/support/zh_ar_wrap.png": [
+ "747e816e21213d1dd8e6b94ee51f93b84e45cc1c",
+ "support"
+ ],
+ "css/css-writing-modes/support/zh_en_wrap.png": [
+ "a3d659186398366d6ea695eafdc40310f65b3361",
+ "support"
+ ],
"css/css-writing-modes/svg-aliasing-001.html": [
"3979459838ee19b78655073122afd0cb92f8b357",
"reftest"
@@ -597696,11 +598401,11 @@
"reftest"
],
"css/css-writing-modes/text-combine-upright-all-001-manual.html": [
- "c99faf4faeecb9e4f9d143c5ed9352a6d5f0d224",
+ "32d7d48598aedcd263daaae2e7dbcd7f0f9038d4",
"manual"
],
"css/css-writing-modes/text-combine-upright-all-002-manual.html": [
- "be9f582217075c5687681c7a1dd7204c3a28ed1a",
+ "1ef4ec06c0db8173af57206edda152e9ae128872",
"manual"
],
"css/css-writing-modes/text-combine-upright-decorations-001.html": [
@@ -597708,15 +598413,15 @@
"reftest"
],
"css/css-writing-modes/text-combine-upright-digits-001-manual.html": [
- "75c14eb42d811b642c94eb56c5a4720403f6875d",
+ "76a1798e48612e280c79b1dd819d949537b04b6b",
"manual"
],
"css/css-writing-modes/text-combine-upright-digits-002-manual.html": [
- "9d46e56f93744ec4625362b7a7113e52b0d7f6c6",
+ "1977d070e85649afc4e58434cfdbada0a8b5428c",
"manual"
],
"css/css-writing-modes/text-combine-upright-digits-004-manual.html": [
- "9fe84ee3436e9b63ec39cc25d01d0fc95531ca9a",
+ "b681a8a9a10c11f9369d34cea565c6e6ab0253a9",
"manual"
],
"css/css-writing-modes/text-combine-upright-inherit-all-001.html": [
@@ -598648,79 +599353,79 @@
"reftest"
],
"css/css-writing-modes/writing-mode-vlr-001-manual.html": [
- "31186029deca3cdd7df91757e70d21deaaccba7d",
+ "ac5adb13f4e3dc843f6ae5d70a6b35c01566ec56",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-002-manual.html": [
- "bb53c939e843f60dfbda6e5b9c03b5aedf139555",
+ "588d56d02cc9ad3136c738496289f442703dce1f",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-003-manual.html": [
- "1aaf29d2e6d0972c12a0feda5dd7171647e7cc4f",
+ "009212990695fa4d1e39d1c2507263a34c9f2a12",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-005-manual.html": [
- "2bbdca599981e261db590ddcedfa645a6aa595f2",
+ "cd7b313add152fe15fbcb69a9ad5ec36b66d9d8e",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-006-manual.html": [
- "0ceb4a74bb9274480abe71f21b1920d00003d207",
+ "bc09501eadac5d3f2ee84b490716249cbb6e9ed2",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-007-manual.html": [
- "8317c5c8efd7e607ff4b780acc77f80c3a2840af",
+ "2e725addd3db3a299cf0c5045a2ffc72eacdaf92",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-008-manual.html": [
- "21abffa9194d3354e2411fe0d8caa9528c3b3541",
+ "30a3299890140853f8a472a901261c1a4880ff4c",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-009-manual.html": [
- "ba2ca64828febf295b50bc05f0d7082d347274c2",
+ "287036dafeafa0a52b1840c14bc56c2b1cb13555",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-010-manual.html": [
- "4dc9430b8dada1c35601db40cb4408aad4d37af6",
+ "8f5baee8fff3c14067f9e8aea91885b5d236f495",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-012-manual.html": [
- "ebf773c555984bc7bf30ffdba61b8f3cd03a4d4d",
+ "78ba92258af784838a0ba7992ac8b0d011a6b91a",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-014-manual.html": [
- "656f78759db28d73d8881d1034ff7054dfe9bf35",
+ "0bcdb1f87b7d89449da94ca0b326b58349e67edd",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-015-manual.html": [
- "a8fe0055395c9a87275764f984a442805e6c99ab",
+ "c7c080e77d92809bdde3e41f9ae0e9584ce638bc",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-forms-001-manual.html": [
- "02e0dd8da0d6bde7590fb020a82f3f8ceaa7dc30",
+ "a3878d148b2c9ce87ddf7f622ef8c976fbd58cad",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-forms-002-manual.html": [
- "b89ea1addb3433047cc580106abcb24e3cff77f4",
+ "751057dc77c2b9ab6ee2e5041d4232f415ad7e74",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-forms-003-manual.html": [
- "bfd90f8438f16c07791371d66de8cbf49d62a0df",
+ "bf3d839ec40febcbac6247e70a80d1278fdb539f",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-forms-004-manual.html": [
- "fd44a2b6ed7bb48b0bffb2f6b33aa9a046e61cc2",
+ "91f991f5285fc93f90b5e64fba7df9f62aef610f",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-forms-005-manual.html": [
- "0ef619a636f67e5abdbeb238c37ee0adb00c6005",
+ "361f9dbec22857e792b61045e3b6b90ed1dae339",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-forms-006-manual.html": [
- "16162c2a3cd5d59fd4bae18e7239496149e077de",
+ "78416009a174236bb01de1e4af52ea4df5d50b42",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-table-001-manual.html": [
- "21bd590863b99eb1f429e1751c3bcc9b0ec603a8",
+ "f323ed008cf40ce59a0603652ea959223b3b101e",
"manual"
],
"css/css-writing-modes/writing-mode-vlr-table-002-manual.html": [
@@ -598728,75 +599433,75 @@
"manual"
],
"css/css-writing-modes/writing-mode-vrl-001-manual.html": [
- "a4f995f4b7fec16670e57afd8d403957fb77c532",
+ "8cea8b8b83107e51c014f62b2ec7c4c77a44d37c",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-002-manual.html": [
- "7c7bcfbcdc6c58f45d9928d84d6ab8cd3bcae893",
+ "086f77e8b4fcde12f88901b0564725a46ada6325",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-003-manual.html": [
- "64fcb66b1337b781281251a468968b6dc6b2e990",
+ "a0129a3d1b24400bb9484afbc769316dbe10fc2a",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-005-manual.html": [
- "c6462f2fe1aa97b6bffd04f96934171d3f281bb8",
+ "835ddaac7998b20196792d081e8fafccbe18d87f",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-007-manual.html": [
- "3427f74990cddc722d6c5bc2766491552a568101",
+ "5574a100eaf7261a94c713ada697e35c118cbf6b",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-008-manual.html": [
- "7d2a3bb6a7be1a46219fe41afbc233b329cf1e2d",
+ "7401d6e78cd06a019c37e06ed8e7deb3e587e7d1",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-009-manual.html": [
- "6dff8d7efbe124be239816b41d96ca4f4889dc3a",
+ "0486ac6f5efe5825bad9ddbc7be9126655cedf86",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-010-manual.html": [
- "e81a579c75a7c1034fc6dc46a575ef91d3c99e52",
+ "05f8de14ac29cf5bf924c421a39688405e36d6d7",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-012-manual.html": [
- "a53ec5c14f4ad12307281379f8bb695ed842c01d",
+ "71907e822a39f964da0a197406ae928d9fc11189",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-014-manual.html": [
- "bf3424fd04313a38c411061daad8bf0db0c86376",
+ "2dcf570916f022a435789e532dd008ec80eb0ab9",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-015-manual.html": [
- "cfcdf2f51b7b07742350f49a71d88509e6ddc5f8",
+ "e1a6f023a863ff1dc3de7bea5c07048331d1ca0d",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-forms-001-manual.html": [
- "0548cb968286eff448017e243b0eed651ad6cfad",
+ "20dea4fbc36e93bd6dc80164083096cb2c0ec5cc",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-forms-002-manual.html": [
- "3de4c72c3ff4b07865cbf5538902053351b66e58",
+ "5d7db3e2a38664862a763b2abe6dd5cdc59bcf44",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-forms-003-manual.html": [
- "e07502e4fce16bf3c5bb8e4755cd3cae9f285662",
+ "3dfe1d61bf5166307eacba477ffa7a469b2b7a63",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-forms-004-manual.html": [
- "42bef3494f963bb0bd40400a4fe7e19a01ea9ca5",
+ "074603d5811d1a653213f1c2c73c6de417a19076",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-forms-005-manual.html": [
- "7177c316d7128f1653953428d60f5cb2e6661676",
+ "2ce63cd5664044e6a3f25600fc8586258d84fd99",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-forms-006-manual.html": [
- "2ed6bc9982846ea4313ded2d54cc35a630e69eb2",
+ "8d03c4dfcb234889ab74b05130149fecd1da2548",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-table-001-manual.html": [
- "1705beb791531eea974e77125e8aaae363570f91",
+ "d3bc9664524a6f4ed530f82b2572a2bc79af166d",
"manual"
],
"css/css-writing-modes/writing-mode-vrl-table-002-manual.html": [
@@ -602312,11 +603017,11 @@
"testharness"
],
"css/selectors/of-type-selectors-ref.xhtml": [
- "af883c97ecf1a968edcdcd5cc5d2f7d6fba71212",
+ "ae866213df0112292c3bade7c48ad2d27f9a14f8",
"support"
],
"css/selectors/of-type-selectors.xhtml": [
- "18fead9b1cc452059ad74f9cc3154d663e5f8d4b",
+ "73ec208b8f219d8d3b74984d65c8e72a997c8470",
"reftest"
],
"css/selectors/old-tests/css3-modsel-1.xml": [
@@ -603836,7 +604541,7 @@
"support"
],
"css/support/interpolation-testcommon.js": [
- "9bc71ff9d32e372551d5b75cfd329dd6ce114949",
+ "62f40790dbdf25720a127e21ed14d7fedafdef0f",
"support"
],
"css/support/parsing-testcommon.js": [
@@ -619791,6 +620496,18 @@
"0e145978a014f08fb5faff42750e9338da0f9ede",
"support"
],
+ "feature-policy/reporting/oversized-images-reporting.html": [
+ "baa866d0a1c4777ab2ef6fcd894624b85ec72ae4",
+ "testharness"
+ ],
+ "feature-policy/reporting/oversized-images-reporting.html.headers": [
+ "02bcbb92a866d3f3f423bf2ebb1a5cd45dcbf167",
+ "support"
+ ],
+ "feature-policy/reporting/oversized.jpg": [
+ "497ed770bfb6fb367f2eeb1978225bc4d036055b",
+ "support"
+ ],
"feature-policy/reporting/payment-report-only.https.html": [
"d2b8e5ee9cc017d3012a2cdd79143230495b4544",
"testharness"
@@ -619868,7 +620585,7 @@
"support"
],
"feature-policy/reporting/unoptimized-lossy-images-reporting.html": [
- "62a5469f8ca7de0ca19985361e377b6463c01aaf",
+ "8dcf110dd2b39f1b48e16d3aefbe53e9e7565ea5",
"testharness"
],
"feature-policy/reporting/unoptimized-lossy-images-reporting.html.headers": [
@@ -625804,7 +626521,7 @@
"support"
],
"html/cross-origin-opener-policy/coep-navigate-popup.https.html": [
- "717122b4b2f2e766a8fe172a8751f5e6c63d0e8a",
+ "21320a61b2eaa8b17cbb518d2028a5dce4134bf7",
"testharness"
],
"html/cross-origin-opener-policy/coep-navigate-popup.https.html.headers": [
@@ -625896,7 +626613,7 @@
"support"
],
"html/cross-origin-opener-policy/resources/common.js": [
- "b60093f1c62c5d77b213ed95e25ee468b2c2200c",
+ "c5d3c6c1084668ecd3ff02615725c7c3dc6117bb",
"support"
],
"html/cross-origin-opener-policy/resources/coop-coep.py": [
@@ -632623,17 +633340,13 @@
"3b8d992cc2a07dfd902dbb1011e2c348e862baaa",
"reftest"
],
- "html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html": [
- "5f03a761dc8729632ef74dcf189b7945ae3cee8d",
- "reftest"
- ],
"html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref-2.html": [
"385c2a75d427dde8ef0ba71cc777f298027423b9",
"support"
],
"html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html": [
- "ad504846dfa29297927a369149d427499f0657b5",
- "support"
+ "3834281dd83cd0e604fc27dd66dcaa3fb12287ff",
+ "reftest_node"
],
"html/rendering/replaced-elements/the-select-element/select-1-block-size-001.html": [
"5dc0fc15dc52c8f3af4595a7901fd89b1827f2a2",
@@ -643179,6 +643892,10 @@
"5d5b0dc0e108a823ef16614e9c2c91f5ea142543",
"testharness"
],
+ "infrastructure/assumptions/document-fonts-ready.html": [
+ "9fb0137025b63b7fad191af3d2a0a941cd573870",
+ "testharness"
+ ],
"infrastructure/assumptions/html-elements.html": [
"3fe3d201ff649aca36e49b6b78cd48a94db26806",
"testharness"
@@ -644172,7 +644889,7 @@
"support"
],
"interfaces/webrtc-stats.idl": [
- "e92533a226e97da4bac61fd8b2ce192568976791",
+ "87b079c00abe9e0ab265ca32e048e1c461b6efdc",
"support"
],
"interfaces/webrtc.idl": [
@@ -644188,7 +644905,7 @@
"support"
],
"interfaces/webxr.idl": [
- "ec4b76d9ba819527257e251fd52777dfa7cc415a",
+ "3febf83ebe375474bb177e0ff5e42887d27e44e6",
"support"
],
"interfaces/worklets.idl": [
@@ -644219,8 +644936,8 @@
"f7ce6fa7246f006883b39479ad9bdda9ed84978c",
"testharness"
],
- "intersection-observer/cross-origin-iframe.html": [
- "bdd6d3f529a0406d910580f477bce978c3e54c8c",
+ "intersection-observer/cross-origin-iframe.sub.html": [
+ "d444237f6b954b08952c502a510e7ead785c2eec",
"testharness"
],
"intersection-observer/disconnect.html": [
@@ -644300,7 +645017,7 @@
"testharness"
],
"intersection-observer/resources/cross-origin-subframe.html": [
- "0cc117cb3a69d0f2ed19505f7d14f824cbad6d71",
+ "4305ed1719b68f227192e005c9696fec5fe58f83",
"support"
],
"intersection-observer/resources/iframe-no-root-subframe.html": [
@@ -644308,7 +645025,7 @@
"support"
],
"intersection-observer/resources/intersection-observer-test-utils.js": [
- "44f794b0883b1bade51b1b7b8f5507ac6dfcb123",
+ "7db26d72df54505da7a6363009cab138772a7890",
"support"
],
"intersection-observer/resources/observer-in-iframe-subframe.html": [
@@ -657499,6 +658216,10 @@
"5dd44fb18fbdb9c3c32f4538d2ef7ec2cac47302",
"testharness"
],
+ "performance-timeline/not-clonable.html": [
+ "d651776e5f4b945328e9de2651b8a59f11b53426",
+ "testharness"
+ ],
"performance-timeline/observer-buffered-false.any.js": [
"a28100b0fdba2e00579809a581935d312cf1245e",
"testharness"
@@ -657551,6 +658272,10 @@
"86ad397b0a5c379d0129d43c92952bc6c8c5c0cf",
"testharness"
],
+ "performance-timeline/resources/postmessage-entry.html": [
+ "ef5be73395b49d895a2589be547a7f3950f416ba",
+ "support"
+ ],
"performance-timeline/resources/square.png": [
"be211bc377180386eec7e891485e083a2c45841e",
"support"
@@ -672700,7 +673425,7 @@
"testharness"
],
"service-workers/service-worker/worker-interception.https.html": [
- "204638a44afffda47c39d1e0fed7d9a3cf3972fc",
+ "302a214ac619400c38f7564c065a5e0be47ac6df",
"testharness"
],
"service-workers/service-worker/xhr-response-url.https.html": [
@@ -672991,6 +673716,14 @@
"d96926ad65f03283936daa6d6fd0440450c82314",
"reftest"
],
+ "shadow-dom/directionality-002-ref.html": [
+ "454b2fecabcdec1a2b76cc0130d21c0d274458c9",
+ "support"
+ ],
+ "shadow-dom/directionality-002.tentative.html": [
+ "7ff036194baa9f6c9fbe1a4116aac864709f9c67",
+ "reftest"
+ ],
"shadow-dom/event-composed-path-after-dom-mutation.html": [
"fd129e036af711b1fa4f9a42fabcc344200fc2d6",
"testharness"
@@ -674943,6 +675676,10 @@
"68aa63a39d3acf927de8f2fae47c7b2ceac9e4a9",
"testharness"
],
+ "svg/animations/correct-events-for-short-animations-with-syncbases.html": [
+ "19e7eef8c1ce470d67c2eaecf2f07a9d2907f2c1",
+ "testharness"
+ ],
"svg/animations/cyclic-syncbase.html": [
"c0351156e310a8a6f0fca3ebee506b80983a53bb",
"testharness"
@@ -674991,6 +675728,10 @@
"86a0a40fa2de116c5b2076641180b24688d56f9b",
"testharness"
],
+ "svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html": [
+ "56f67dc5ed1ceeeea347b703f5048b289f95131b",
+ "testharness"
+ ],
"svg/animations/single-values-animation.html": [
"40aa3461866cf4c32316d86216dcfe4298be7718",
"testharness"
@@ -678903,6 +679644,10 @@
"3be94fb8499b1a776298399f07cc1baa069581d4",
"testharness"
],
+ "svg/text/parsing/text-anchor-computed.svg": [
+ "e11b23fc2316f0178b304437269f94fa95897f22",
+ "testharness"
+ ],
"svg/text/parsing/text-anchor-invalid.svg": [
"69a6a58971264821b3f9d12ce1f8110a34d40fa0",
"testharness"
@@ -679516,7 +680261,7 @@
"support"
],
"tools/ci/tests/test_update_pr_preview.py": [
- "3202a1a2df6ac1d6c1485b1e6b72b3b425b351e6",
+ "056add73a92d4a4bb196c31d3f0a1cdbe963c184",
"support"
],
"tools/ci/update_pr_preview.py": [
@@ -688360,11 +689105,11 @@
"support"
],
"web-nfc/NDEFMessage_constructor.https.html": [
- "5be4571493ad9b6ac9f677d66e81806b4590034e",
+ "24d5046f4839f560c8be2c9e164fd93b3ab86943",
"testharness"
],
"web-nfc/NDEFRecord_constructor.https.html": [
- "e2e2c45507225ab17c72849928142e7f24a57813",
+ "2264815780b47107562750c39a2b0152c97ba865",
"testharness"
],
"web-nfc/NFCErrorEvent_constructor.https.html": [
@@ -688380,7 +689125,7 @@
"testharness"
],
"web-nfc/NFCReadingEvent_constructor.https.html": [
- "c2f9cef6e505637684281a799d44107c1557b00a",
+ "20585176b7f89a129fad99f17d068b2deb828f68",
"testharness"
],
"web-nfc/NFCWriter_push.https.html": [
@@ -688400,7 +689145,7 @@
"testharness"
],
"web-nfc/resources/nfc-helpers.js": [
- "fc72fa2de89f8d634ff142a0cba58ac866172d60",
+ "76c878ae094b8c98ad8f44aca335a0f157ea01f7",
"support"
],
"web-share/META.yml": [
@@ -690631,6 +691376,170 @@
"c8efcd031fe53a37c5db3740b82db4a1f0df647d",
"testharness"
],
+ "webgpu/cts.html": [
+ "661060fcd7b32f7cecbbbc87499c7b70d1f39694",
+ "testharness"
+ ],
+ "webgpu/framework/allowed_characters.js": [
+ "f49e19641d95bcc510f09f1bb045825c19d6b28c",
+ "support"
+ ],
+ "webgpu/framework/collect_garbage.js": [
+ "5589fa7deb3819dfa9cfa0b202e432b73569b675",
+ "support"
+ ],
+ "webgpu/framework/fixture.js": [
+ "d77ede708f0377feec5101d7272eaf27d07c5598",
+ "support"
+ ],
+ "webgpu/framework/gpu/implementation.js": [
+ "726eeab4eed644d4b5c4e0693e2462dbf1a08c5d",
+ "support"
+ ],
+ "webgpu/framework/id.js": [
+ "8e5db2c7d7fbde102865f7da04fcccaea53960b6",
+ "support"
+ ],
+ "webgpu/framework/index.js": [
+ "93ee20963990d21039a60902b4e52ee0c5cb8b72",
+ "support"
+ ],
+ "webgpu/framework/listing.js": [
+ "856afa99c36ebae161250be0023de7f2947ec8bc",
+ "support"
+ ],
+ "webgpu/framework/loader.js": [
+ "c9cd20f307c3006b48a3e9f8aac373d56914f76b",
+ "support"
+ ],
+ "webgpu/framework/logger.js": [
+ "8aa332c571a19f9db7a5486b9a8d28269101051e",
+ "support"
+ ],
+ "webgpu/framework/params/combine.js": [
+ "d85e81dc88510a314bbffccbf6fa0b6ced61c5ae",
+ "support"
+ ],
+ "webgpu/framework/params/exclude.js": [
+ "23bc6ee0f69fa3d87853881cdf01ab224fcb58b1",
+ "support"
+ ],
+ "webgpu/framework/params/filter.js": [
+ "6a5d99e765f4dc502223502e168b37442d735daa",
+ "support"
+ ],
+ "webgpu/framework/params/index.js": [
+ "5d89da54f5b77174615a8d26edf206253fff0ace",
+ "support"
+ ],
+ "webgpu/framework/params/options.js": [
+ "6906863880ce99d3a29a3c7021ae3859798c34eb",
+ "support"
+ ],
+ "webgpu/framework/test_filter/filter_by_group.js": [
+ "3036e21bd63c40b7d34f0f46dea432d505b131b1",
+ "support"
+ ],
+ "webgpu/framework/test_filter/filter_one_file.js": [
+ "6a998db0de9c96f796bd05f90e73e60e0d141aee",
+ "support"
+ ],
+ "webgpu/framework/test_filter/index.js": [
+ "1a9dbcad4875d6e5160965f08f37c3fcd1e4c54d",
+ "support"
+ ],
+ "webgpu/framework/test_filter/internal.js": [
+ "ae55718f3b3df435310bba1808adb09672b8cc8b",
+ "support"
+ ],
+ "webgpu/framework/test_filter/load_filter.js": [
+ "03d475eb4b8aa756b5ebb46c5fa764876d6e6fc7",
+ "support"
+ ],
+ "webgpu/framework/test_group.js": [
+ "c9cafb37b670dd1cf79a46fbcb6acd595b3b53b7",
+ "support"
+ ],
+ "webgpu/framework/url_query.js": [
+ "b265139043918b98e9937a6c216e3748a7c5cb87",
+ "support"
+ ],
+ "webgpu/framework/util/index.js": [
+ "8d0fe0e5b48c6149bbf5c1f0aa8af2876fad00a3",
+ "support"
+ ],
+ "webgpu/framework/util/stack.js": [
+ "ae99ac904a132d947f304ca0f03f50b25fd197ae",
+ "support"
+ ],
+ "webgpu/framework/version.js": [
+ "b9ec1b4f9f36069cd843e2f275723c9000a849fb",
+ "support"
+ ],
+ "webgpu/runtime/wpt.js": [
+ "d11499f1e8cd45553e2ae6832413e108790fe505",
+ "support"
+ ],
+ "webgpu/suites/cts/buffers/create_mapped.spec.js": [
+ "30a6638889a916c03b57a9cbf33ae3f46cdc8eb0",
+ "support"
+ ],
+ "webgpu/suites/cts/buffers/map.spec.js": [
+ "dfc79ac5d1e9bafb58b00c7bf4c23d029e9605c2",
+ "support"
+ ],
+ "webgpu/suites/cts/buffers/map_detach.spec.js": [
+ "afaab08606be74d7bee8544a23b79228a770572b",
+ "support"
+ ],
+ "webgpu/suites/cts/buffers/map_oom.spec.js": [
+ "f39021ca9a181dd5f6b94ee17a895e7f0cd802f2",
+ "support"
+ ],
+ "webgpu/suites/cts/buffers/mapping_test.js": [
+ "1baa6ffc3519091622dab337c92b87d1e357a157",
+ "support"
+ ],
+ "webgpu/suites/cts/canvas/context_creation.spec.js": [
+ "b0b2c48b418ebabf06c42d9a4216536484ae1c8f",
+ "support"
+ ],
+ "webgpu/suites/cts/command_buffer/basic.spec.js": [
+ "137e428bd9db9311987662d6e5024c31f04742ca",
+ "support"
+ ],
+ "webgpu/suites/cts/command_buffer/compute/basic.spec.js": [
+ "56754d5f39e21f483f9f21e931e35a7dfa1e1259",
+ "support"
+ ],
+ "webgpu/suites/cts/command_buffer/copies.spec.js": [
+ "9bf78db8454bf848a6a1236db6503f893d33a225",
+ "support"
+ ],
+ "webgpu/suites/cts/command_buffer/render/basic.spec.js": [
+ "bb201dbe846a7113b32dbeb4b2c3cbe5ba39e8b5",
+ "support"
+ ],
+ "webgpu/suites/cts/command_buffer/render/rendering.spec.js": [
+ "762285d1bcccc81f5b7c4a389cf16523451f5927",
+ "support"
+ ],
+ "webgpu/suites/cts/examples.spec.js": [
+ "ad86e73b191e74a8a23a81ccccf54cc2c95f3fa9",
+ "support"
+ ],
+ "webgpu/suites/cts/fences.spec.js": [
+ "d9f8ce57678e9907f20a5819b2a43686e27ba53c",
+ "support"
+ ],
+ "webgpu/suites/cts/gpu_test.js": [
+ "a67ce4ab0ba24f13c8a66dae551390c3d71d06ba",
+ "support"
+ ],
+ "webgpu/suites/cts/index.js": [
+ "cb2a592697f9b1041e5a2f71cf59939b5a04ed4a",
+ "support"
+ ],
"webmessaging/Channel_postMessage_Blob.htm": [
"c8c247ef59dc7b513c54459fc83fd1aa6fcec8dd",
"testharness"
@@ -696192,15 +697101,15 @@
"testharness"
],
"webxr/events_input_sources_change.https.html": [
- "bc2b2a95e40b0d700e8d18c9dc953b84ec9fbcde",
+ "107cc9b544e3a395c14655d0f4356485f05d7bf5",
"testharness"
],
"webxr/events_referenceSpace_reset.https.html": [
- "f15ffc52a8845b7e2cdd6ddb4a9b7f06c1c3e5e0",
+ "3a931168fd328b9fb62f5ecd65958f4365b7aa03",
"testharness"
],
"webxr/events_session_select.https.html": [
- "b74d5ea02dbefa51311d592fbf26019f06790ec2",
+ "396d6b23939f96a2f29151eac21548cd97f92009",
"testharness"
],
"webxr/events_session_select_subframe.https.html": [
@@ -696223,6 +697132,10 @@
"3e54e367787cb95dada398790fe23b10174df29f",
"testharness"
],
+ "webxr/navigator_xr_sameObject.https.html": [
+ "56cd65c4e42dbe7bb9d652547e65f0491e05f831",
+ "testharness"
+ ],
"webxr/render_state_vertical_fov_immersive.https.html": [
"485438cabf6a633df42a0f94c04922e7274013e1",
"testharness"
@@ -696268,7 +697181,7 @@
"testharness"
],
"webxr/xrBoundedReferenceSpace_updates.https.html": [
- "2f84d6453672adfaa066a8c199b47333bdebb5d1",
+ "1d7ad93695adedb538e43084568a80c9b40b7660",
"testharness"
],
"webxr/xrDevice_disconnect_ends.https.html": [
@@ -696316,11 +697229,15 @@
"testharness"
],
"webxr/xrFrame_getPose.https.html": [
- "8795a0a9737f673384bf208aa0043b1be04864fd",
+ "71ca78abb48cf12cb41e8249289a06eddc7eae94",
"testharness"
],
"webxr/xrFrame_lifetime.https.html": [
- "c7af792c7bb45155c1a24e177ed3be05875872d6",
+ "2d706d24848a29ee9ad5f3d309f809b803f5c8ca",
+ "testharness"
+ ],
+ "webxr/xrFrame_session_sameObject.https.html": [
+ "cbbef68713b2991945827899407036a8a9205a14",
"testharness"
],
"webxr/xrInputSource_add_remove.https.html": [
@@ -696339,6 +697256,14 @@
"32073c631f8ecfc3b19c33ed03e6b9999553cfec",
"testharness"
],
+ "webxr/xrInputSource_sameObject.https.html": [
+ "78240de2f9019218061e45359cfad7cd28057d52",
+ "testharness"
+ ],
+ "webxr/xrPose_transform_sameObject.https.html": [
+ "79eed4cdec4663b3a0a401aff80126e4dad767f9",
+ "testharness"
+ ],
"webxr/xrRay_constructor.https.html": [
"b955db4509c2f60facee570e6011a1441297e3dd",
"testharness"
@@ -696352,7 +697277,7 @@
"testharness"
],
"webxr/xrReferenceSpace_originOffsetBounded.https.html": [
- "ae1767ba74e0638217b590b4c2d620ec76ddef2f",
+ "d0f91a4630d045c2fc8f3f6dbc588cc769386fd2",
"testharness"
],
"webxr/xrRigidTransform_constructor.https.html": [
@@ -696367,6 +697292,10 @@
"df804193ffe9eb87dbb16383cb333a5fe0a06546",
"testharness"
],
+ "webxr/xrRigidTransform_sameObject.https.html": [
+ "d014fe6fb56766a636559db67abc06428a88e98c",
+ "testharness"
+ ],
"webxr/xrSession_cancelAnimationFrame.https.html": [
"6a294f21f06d98483d9278d08e50124d84779aad",
"testharness"
@@ -696376,7 +697305,7 @@
"testharness"
],
"webxr/xrSession_end.https.html": [
- "b91a5b977cab3d2fbb5c4989246f45b0c9b2024b",
+ "e8c078ead9b7eaf4ed4312f14945ddfa07994614",
"testharness"
],
"webxr/xrSession_input_events_end.https.html": [
@@ -696396,11 +697325,11 @@
"testharness"
],
"webxr/xrSession_requestAnimationFrame_getViewerPose.https.html": [
- "bdb5edda566704c4d1434b328d3adbe46d3501ba",
+ "9ddc36e95b3fae928a3ccb01e0a9a76f3977f38e",
"testharness"
],
"webxr/xrSession_requestAnimationFrame_timestamp.https.html": [
- "daa786b368627dfc60663470e9e339f97eff729c",
+ "2796be9987b5f23e92d5f114fdaa972a5323a37c",
"testharness"
],
"webxr/xrSession_requestReferenceSpace.https.html": [
@@ -696411,6 +697340,10 @@
"1bd516ee12e1d3ba24fd13ff04974c72e284b38a",
"testharness"
],
+ "webxr/xrSession_sameObject.https.html": [
+ "837fa0a008d6cdfcbd9ee134e7ec78bce7c2b95b",
+ "testharness"
+ ],
"webxr/xrSession_viewer_referenceSpace.https.html": [
"fd6082bc3468f094953152d220fceafa083baf76",
"testharness"
@@ -696420,7 +697353,7 @@
"testharness"
],
"webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html": [
- "aa3c1b85c5d8ef550b9a835d384c67f602e290e9",
+ "3f33cf354b8d3fde3d0a2efd3d92b78037a9178a",
"testharness"
],
"webxr/xrView_eyes.https.html": [
@@ -696435,6 +697368,14 @@
"9404fcb8aaf33876f2918d3796190f16feafe506",
"testharness"
],
+ "webxr/xrView_sameObject.https.html": [
+ "1213bcb1f1166a876ecb7e0d76260092525e3cd6",
+ "testharness"
+ ],
+ "webxr/xrViewerPose_views_sameObject.https.html": [
+ "ec1ee6964f0ddcfc93e1be13ff0b4d09a2af59ec",
+ "testharness"
+ ],
"webxr/xrViewport_valid.https.html": [
"1b7d982d596187f1381bee73eac2990900a37f8f",
"testharness"
@@ -696447,6 +697388,10 @@
"dd40865e445aafce88f5941f4127236c36f01f2d",
"testharness"
],
+ "webxr/xrWebGLLayer_framebuffer_sameObject.https.html": [
+ "b0f637863b6aec46d36d3d1400219ce7aebb494a",
+ "testharness"
+ ],
"webxr/xrWebGLLayer_framebuffer_scale.https.html": [
"7b5cedb1c83987daf435f662e5687cf6e1bb0559",
"testharness"
diff --git a/tests/wpt/metadata/css/css-paint-api/color-custom-property-animation.https.html.ini b/tests/wpt/metadata/css/css-paint-api/color-custom-property-animation.https.html.ini
new file mode 100644
index 00000000000..e1184b62884
--- /dev/null
+++ b/tests/wpt/metadata/css/css-paint-api/color-custom-property-animation.https.html.ini
@@ -0,0 +1,2 @@
+[color-custom-property-animation.https.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html.ini
new file mode 100644
index 00000000000..48c0a1db13f
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-skip-ink-sidewayslr-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html.ini
new file mode 100644
index 00000000000..32ca831d030
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-skip-ink-sidewaysrl-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-upright-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-upright-001.html.ini
new file mode 100644
index 00000000000..139a151b6f4
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-upright-001.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-skip-ink-upright-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-vertical-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-vertical-001.html.ini
new file mode 100644
index 00000000000..7533f547d68
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-skip-ink-vertical-001.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-skip-ink-vertical-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transforms/animation/list-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/list-interpolation.html.ini
index 006c4415580..d8df35ad03b 100644
--- a/tests/wpt/metadata/css/css-transforms/animation/list-interpolation.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/animation/list-interpolation.html.ini
@@ -86,3 +86,6 @@
[Match on rotation with spherical interpolation: Animation between "rotate3d(1, 0, 0, 360deg) translateX(100px)" and "rotate3d(0, 1, 0, -720deg) translateY(200px)" at progress 0.25]
expected: FAIL
+ [Transform list interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-transforms/animation/matrix-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/matrix-interpolation.html.ini
index d25cb43f3da..0f05b67d484 100644
--- a/tests/wpt/metadata/css/css-transforms/animation/matrix-interpolation.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/animation/matrix-interpolation.html.ini
@@ -2,3 +2,6 @@
[Animation between "rotateY(360deg)" and "rotateX(720deg)" at progress 0.5]
expected: FAIL
+ [Matrix interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-transforms/animation/rotate-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/rotate-interpolation.html.ini
index 713e1537b0e..906dc2eaf07 100644
--- a/tests/wpt/metadata/css/css-transforms/animation/rotate-interpolation.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/animation/rotate-interpolation.html.ini
@@ -71,3 +71,6 @@
[Animation between "none" and "none" at progress 2]
expected: FAIL
+ [rotate interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-transforms/animation/scale-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/scale-interpolation.html.ini
index 0b0c20b9270..18fe2ce3054 100644
--- a/tests/wpt/metadata/css/css-transforms/animation/scale-interpolation.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/animation/scale-interpolation.html.ini
@@ -89,3 +89,6 @@
[Animation between "26 17 9" and "2 1" at progress 2]
expected: FAIL
+ [scale interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-transforms/animation/translate-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/translate-interpolation.html.ini
index 6241318a17f..88830acf249 100644
--- a/tests/wpt/metadata/css/css-transforms/animation/translate-interpolation.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/animation/translate-interpolation.html.ini
@@ -71,3 +71,6 @@
[Animation between "none" and "none" at progress 2]
expected: FAIL
+ [translate interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini
new file mode 100644
index 00000000000..2ccfc9a5c87
--- /dev/null
+++ b/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini
@@ -0,0 +1,97 @@
+[minmax-angle-computed.html]
+ [Property transform value 'rotate(calc(max(90deg, 1.56rad) * 2)' computes to 'rotate(180deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(1deg, 2deg))' computes to 'rotate(2deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(91deg, 0.25turn))' computes to 'rotate(91deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(calc(min(90deg, 1.58rad) - max(0.25turn, 99grad)))' computes to 'rotate(0deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(1grad, 2grad))' computes to 'rotate(0.9deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(1rad))' computes to 'rotate(57.2958deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(0.25turn, min(270deg, 3.14rad)))' computes to 'rotate(179.909deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(1rad))' computes to 'rotate(57.2958deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(1turn))' computes to 'rotate(360deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(270deg, max(0.25turn, 3.14rad)))' computes to 'rotate(179.909deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(calc(max(90deg, 1.56rad) + 0.25turn))' computes to 'rotate(180deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(1deg))' computes to 'rotate(1deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(1turn, 2turn))' computes to 'rotate(720deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(1grad))' computes to 'rotate(0.9deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(1turn))' computes to 'rotate(360deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(calc(min(90deg, 1.58rad) - 0.125turn))' computes to 'rotate(45deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(1grad))' computes to 'rotate(0.9deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(1deg, 2deg))' computes to 'rotate(1deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(calc(min(90deg, 1.58rad) + max(0.25turn, 99grad)))' computes to 'rotate(180deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(90deg, 0.26turn))' computes to 'rotate(90deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(1deg))' computes to 'rotate(1deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(1rad, 2rad))' computes to 'rotate(114.592deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(1rad, 2rad))' computes to 'rotate(57.2958deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(calc(min(90deg, 1.58rad) / 2)' computes to 'rotate(45deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(calc(max(90deg, 1.56rad) / 2)' computes to 'rotate(45deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(1.58rad, 90deg))' computes to 'rotate(90.5273deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(max(1grad, 2grad))' computes to 'rotate(1.8deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(calc(min(90deg, 1.58rad) * 2)' computes to 'rotate(180deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(calc(min(90deg, 1.58rad) + 0.25turn))' computes to 'rotate(180deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(calc(max(90deg, 1.56rad) - 0.125turn))' computes to 'rotate(45deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(1.57rad, 95deg))' computes to 'rotate(89.9544deg)']
+ expected: FAIL
+
+ [Property transform value 'rotate(min(1turn, 2turn))' computes to 'rotate(360deg)']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini
new file mode 100644
index 00000000000..e6e1f29e274
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini
@@ -0,0 +1,2 @@
+[matchMedia-display-none-iframe.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-001.html.ini b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-001.html.ini
index 544695a27bf..5d7f8796d97 100644
--- a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-001.html.ini
+++ b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-001.html.ini
@@ -41,3 +41,6 @@
[Animation between "hue-rotate(80deg) blur(6mm)" and "hue-rotate(100grad) blur(1cm)" at progress 0.5]
expected: FAIL
+ [backdrop-filter interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-002.html.ini b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-002.html.ini
index a037945f63f..f577004565d 100644
--- a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-002.html.ini
+++ b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-002.html.ini
@@ -56,3 +56,6 @@
[Animation between "none" and "opacity(0.5) hue-rotate(180deg)" at progress -0.5]
expected: FAIL
+ [backdrop-filter interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-003.html.ini b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-003.html.ini
index 623d90816b8..eabb55d0bca 100644
--- a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-003.html.ini
+++ b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-003.html.ini
@@ -170,3 +170,6 @@
["none" and "sepia(1)" are valid backdrop-filter values]
expected: FAIL
+ [backdrop-filter interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-004.html.ini b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-004.html.ini
index cc5485ff019..564c9372100 100644
--- a/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-004.html.ini
+++ b/tests/wpt/metadata/css/filter-effects/animation/backdrop-filter-interpolation-004.html.ini
@@ -179,3 +179,6 @@
["grayscale(0)" and "grayscale()" are valid backdrop-filter values]
expected: FAIL
+ [backdrop-filter interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-001.html.ini b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-001.html.ini
index a42d2f65e10..2f20c669201 100644
--- a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-001.html.ini
+++ b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-001.html.ini
@@ -35,3 +35,6 @@
[Animation between "hue-rotate(80deg) blur(6mm)" and "hue-rotate(100grad) blur(1cm)" at progress 0.5]
expected: FAIL
+ [filter interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-002.html.ini b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-002.html.ini
index 00ded6318d9..e931a047283 100644
--- a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-002.html.ini
+++ b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-002.html.ini
@@ -47,3 +47,6 @@
[Animation between "none" and "opacity(0.5) hue-rotate(180deg)" at progress -0.5]
expected: FAIL
+ [filter interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-003.html.ini b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-003.html.ini
index 4cf2c13b76e..f31c629dda3 100644
--- a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-003.html.ini
+++ b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-003.html.ini
@@ -143,3 +143,6 @@
[Animation between "none" and "sepia(1)" at progress 1.5]
expected: FAIL
+ [filter interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-004.html.ini b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-004.html.ini
index 1cdaaaf6709..f3f3d56398b 100644
--- a/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-004.html.ini
+++ b/tests/wpt/metadata/css/filter-effects/animation/filter-interpolation-004.html.ini
@@ -152,3 +152,6 @@
[Animation between "hue-rotate()" and "hue-rotate(360deg)" at progress -1]
expected: FAIL
+ [filter interpolation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
index a70942e359e..f950aa53ba3 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -318,3 +318,18 @@
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
+ [<iframe>: combined response Content-Type: text/html;" text/plain]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/html;" text/plain]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/plain */*]
+ expected: FAIL
+
+ [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
new file mode 100644
index 00000000000..87b07c3e670
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_1.html]
+ [Multiple history traversals from the same task]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
new file mode 100644
index 00000000000..385376c7321
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_4.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
index 16fa2c5cfc1..dec4c579137 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
@@ -1,4 +1,5 @@
[creating_browsing_context_test_01.html]
+ expected: TIMEOUT
[first argument: absolute url]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini
index 127392316de..702af61a3c4 100644
--- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini
+++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini
@@ -1,7 +1,11 @@
[form-submission-algorithm.html]
+ expected: TIMEOUT
[If form's firing submission events is true, then return; 'submit' event]
expected: FAIL
[If form's firing submission events is true, then return; 'invalid' event]
expected: FAIL
+ [Cannot navigate (after constructing the entry list)]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
deleted file mode 100644
index a9677391662..00000000000
--- a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[DOMContentLoaded-defer.html]
- [The end: DOMContentLoaded and defer scripts]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/performance-timeline/not-clonable.html.ini b/tests/wpt/metadata/performance-timeline/not-clonable.html.ini
new file mode 100644
index 00000000000..36b6b7a914a
--- /dev/null
+++ b/tests/wpt/metadata/performance-timeline/not-clonable.html.ini
@@ -0,0 +1,4 @@
+[not-clonable.html]
+ [Test that a postMessage of a performance entry fails]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini
index 7725b118e9d..99a24216c88 100644
--- a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini
+++ b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini
@@ -12,6 +12,3 @@
[Verifies the resolution of entry.startTime is at least 5 microseconds.]
expected: TIMEOUT
- [Verifies the resolution of performance.now() is at least 5 microseconds.]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/resource-timing/resource_TAO_origin.htm.ini b/tests/wpt/metadata/resource-timing/resource_TAO_origin.htm.ini
index 5c59982f790..5a549d938b6 100644
--- a/tests/wpt/metadata/resource-timing/resource_TAO_origin.htm.ini
+++ b/tests/wpt/metadata/resource-timing/resource_TAO_origin.htm.ini
@@ -11,6 +11,3 @@
[The iframe should have one resource timing entry.]
expected: FAIL
- [responseEnd should not be 0 in timing-allow cross-origin request.]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini b/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini
index aa36a14c6a6..494f0d4a752 100644
--- a/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini
+++ b/tests/wpt/metadata/resource-timing/resource_TAO_zero.htm.ini
@@ -20,6 +20,3 @@
[domainLookupStart should be 0 in cross-origin request.]
expected: FAIL
- [responseEnd should be greater than 0 in cross-origin request.]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
index a56bad443a2..66bd350083b 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
@@ -1,5 +1,4 @@
[realtimeanalyser-fft-scaling.html]
- expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
index 2a05ceb67fa..492316c3ef8 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
@@ -200,3 +200,6 @@
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 9.8276454210281372e-1 at index of 39267.\n\t[39267\]\t-4.4464776011506507e-25\t-9.8276454210281372e-1\t9.8276454210281372e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\tMax RelError of 3.3137802965303198e+0 at index of 1253.\n\t[1253\]\t-4.3022233992815018e-2\t-9.9732093513011932e-3\t3.3049024641513824e-2\t3.3137802965303198e+0\t3.8985999999999999e-3\n]
expected: FAIL
+ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 9.8276454210281372e-1 at index of 39267.\n\t[39267\]\t-7.1855442733195153e-19\t-9.8276454210281372e-1\t9.8276454210281372e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\tMax RelError of 3.3137802965303198e+0 at index of 1253.\n\t[1253\]\t-4.3022233992815018e-2\t-9.9732093513011932e-3\t3.3049024641513824e-2\t3.3137802965303198e+0\t3.8985999999999999e-3\n]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini b/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini
index 27f6c5ed7a2..6ff00c31bef 100644
--- a/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini
+++ b/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini
@@ -1,5 +1,5 @@
[xrBoundedReferenceSpace_updates.https.html]
- expected: ERROR
+ expected: TIMEOUT
['XRBoundedReferenceSpace updates properly when the changes are applied]
expected: TIMEOUT
diff --git a/tests/wpt/metadata/webxr/xrInputSource_sameObject.https.html.ini b/tests/wpt/metadata/webxr/xrInputSource_sameObject.https.html.ini
new file mode 100644
index 00000000000..980f9d31c32
--- /dev/null
+++ b/tests/wpt/metadata/webxr/xrInputSource_sameObject.https.html.ini
@@ -0,0 +1,4 @@
+[xrInputSource_sameObject.https.html]
+ [XRInputSource attributes meet [SameObject\] requirement]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webxr/xrPose_transform_sameObject.https.html.ini b/tests/wpt/metadata/webxr/xrPose_transform_sameObject.https.html.ini
new file mode 100644
index 00000000000..3e442625aa8
--- /dev/null
+++ b/tests/wpt/metadata/webxr/xrPose_transform_sameObject.https.html.ini
@@ -0,0 +1,4 @@
+[xrPose_transform_sameObject.https.html]
+ [XRPose.transform meets [SameObject\] requirement]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webxr/xrSession_sameObject.https.html.ini b/tests/wpt/metadata/webxr/xrSession_sameObject.https.html.ini
new file mode 100644
index 00000000000..09170ad4d6a
--- /dev/null
+++ b/tests/wpt/metadata/webxr/xrSession_sameObject.https.html.ini
@@ -0,0 +1,4 @@
+[xrSession_sameObject.https.html]
+ [XRSession attributes meet [SameObject\] requirement]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini b/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini
new file mode 100644
index 00000000000..fe8654e447c
--- /dev/null
+++ b/tests/wpt/metadata/workers/WorkerGlobalScope-close.html.ini
@@ -0,0 +1,4 @@
+[WorkerGlobalScope-close.html]
+ [Test sending a message after closing.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini
index 333edb3a26e..650c91da4a6 100644
--- a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini
+++ b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini
@@ -1,4 +1,5 @@
[sharedworker-in-worker.html]
+ expected: ERROR
[Base URL in workers: new SharedWorker()]
expected: FAIL
diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini
new file mode 100644
index 00000000000..dbea4f293ad
--- /dev/null
+++ b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini
@@ -0,0 +1,2 @@
+[transition_calc_implicit.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml
index 4a4e9c7ff5e..5799d624b4e 100644
--- a/tests/wpt/web-platform-tests/.azure-pipelines.yml
+++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml
@@ -242,11 +242,11 @@ jobs:
# All `./wpt run` tests are run from epochs/* branches on a schedule. See
# documentation at the top of this file for required setup.
-- job: results_edge
+- job: results_edge_dev
displayName: 'all tests: Edge Dev'
condition: |
or(eq(variables['Build.Reason'], 'Schedule'),
- and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge']))
+ and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_dev']))
# There are 12 agents in the pool, but use more jobs so that each takes <1h.
strategy:
parallel: 20
@@ -271,18 +271,18 @@ jobs:
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
inputs:
- artifactName: 'edge-results'
+ artifactName: 'edge-dev-results'
- template: tools/ci/azure/cleanup_win10.yml
- template: tools/ci/azure/fyi_hook.yml
parameters:
- dependsOn: results_edge
- artifactName: edge-results
+ dependsOn: results_edge_dev
+ artifactName: edge-dev-results
- job: results_edge_canary
displayName: 'all tests: Edge Canary'
condition: |
or(eq(variables['Build.Reason'], 'Schedule'),
- and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge']))
+ and(eq(variables['Build.Reason'], 'Manual'), variables['run_all_edge_canary']))
# There are 12 agents in the pool, but use more jobs so that each takes <1h.
strategy:
parallel: 20
diff --git a/tests/wpt/web-platform-tests/css/css-box/parsing/padding-computed.html b/tests/wpt/web-platform-tests/css/css-box/parsing/padding-computed.html
new file mode 100644
index 00000000000..f1186c4530d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-box/parsing/padding-computed.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS basic box model: getComputedStyle().padding</title>
+<link rel="help" href="https://drafts.csswg.org/css-box-3/#propdef-padding">
+<link rel="help" href="https://drafts.csswg.org/cssom/#resolved-values">
+<meta name="assert" content="padding resolved value is an absolute length.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<style>
+ #container {
+ will-change: transform; /* containing block for #target */
+ width: 200px;
+ }
+ #parent {
+ width: 0px;
+ }
+ #target {
+ position: absolute;
+ font-size: 40px;
+ }
+</style>
+</head>
+<body>
+<div id="container">
+ <div id="parent">
+ <div id="target"></div>
+ </div>
+</div>
+<script>
+test_computed_value("padding", "10px");
+test_computed_value("padding", "10px 20px 30px 40px");
+
+test_computed_value("padding-top", "10px");
+test_computed_value("padding-right", "20px");
+test_computed_value("padding-bottom", "30px");
+test_computed_value("padding-left", "40px");
+
+test_computed_value("padding", "20%", "40px");
+test_computed_value("padding", "10px 20% 30% 40px", "10px 40px 60px");
+test_computed_value("padding-right", "20%", "40px");
+
+test_computed_value('padding-top', 'calc(10% - 40px)', '0px');
+test_computed_value('padding-right', 'calc(10% + 40px)', '60px');
+test_computed_value('padding-bottom', 'calc(10px - 0.5em)', '0px');
+test_computed_value('padding-left', 'calc(10px + 0.5em)', '30px');
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001-ref.html b/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001-ref.html
new file mode 100644
index 00000000000..00bfbca26a6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001-ref.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html><head>
+ <meta charset="utf-8">
+ <title>Reference: display:flow-root list-item</title>
+ <link rel="author" title="Mats Palmgren" href="">
+ <style type="text/css">
+html,body {
+ color:black; background-color:white; font:16px/1 monospace; padding:0; margin:0;
+}
+
+body { padding-left: 100px; }
+
+.float {
+ float: left;
+ width: 20px;
+ height: 40px;
+ background: pink;
+}
+
+.clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
+
+ </style>
+</head>
+<body>
+
+<div style="border:1px solid">
+ <div style="margin: 40px 0">
+ <div style="display:list-item">x</div>
+ </div>
+</div>
+
+<div style="border:1px solid">
+ <div style="display:list-item" class="float"></div>
+ <div class="clearfix"></div>
+</div>
+
+<div style="border:1px solid">
+ <div class="float"></div>
+ <div style="display:list-item; border:1px solid; margin-left:20px">x</div>
+</div>
+
+<span>
+ <span style="display:list-item; background:grey; margin:20px 0 0 21px"><div style="padding:20px">x</div></span>
+</span>
+
+<div style="display:list-item; border:3px solid; height:10px;"></div>
+
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001.html b/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001.html
new file mode 100644
index 00000000000..6c5bece5864
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-display/display-flow-root-list-item-001.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML>
+<!--
+ Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/
+-->
+<html><head>
+ <meta charset="utf-8">
+ <title>CSS Display Test: display:flow-root list-item</title>
+ <link rel="author" title="Mats Palmgren" href="">
+ <link rel="help" href="https://drafts.csswg.org/css-display-3/#list-items">
+ <link rel="match" href="display-flow-root-list-item-001-ref.html">
+ <style type="text/css">
+html,body {
+ color:black; background-color:white; font:16px/1 monospace; padding:0; margin:0;
+}
+
+body { padding-left: 100px; }
+
+.float {
+ float: left;
+ width: 20px;
+ height: 40px;
+ background: pink;
+}
+
+.li { display: flow-root list-item; }
+ </style>
+</head>
+<body>
+
+<div style="border:1px solid">
+ <!-- this tests that the flow-root margins don't collapse with its children. -->
+ <span class="li" style="margin: 20px 0">
+ <div style="margin: 20px 0">x</div>
+ </span>
+</div>
+
+<div style="border:1px solid">
+ <!-- this tests that the flow-root grows to fit child floats -->
+ <span class="li"><div class="float"></div></span>
+</div>
+
+<div style="border:1px solid; margin-bottom:20px">
+ <!-- this tests that a float does not intrude into flow-root box -->
+ <div class="float"></div>
+ <span class="li" style="border:1px solid">x</span>
+</div>
+
+<span>
+ <!-- this tests that a flow-root box is constructed also in the "ibsplit" case -->
+ <span class="li" style="background:grey;"><div style="margin:20px">x</div></span>
+</span>
+
+<span class="li" style="border:3px solid; height:10px;">
+ <!-- this tests that a flow-root fills the available width, and that 'height' applies -->
+</span>
+
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-computed.html b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-computed.html
new file mode 100644
index 00000000000..dff6fc6702e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-computed.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Inline Layout: getComputedStyle().lineHeight</title>
+<link rel="help" href="https://drafts.csswg.org/css-inline-3/#line-height-property">
+<meta name="assert" content="line-height computed value is normal or a length.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<style>
+ #container {
+ font-size: 40px;
+ }
+</style>
+</head>
+<body>
+<div id="container">
+ <div id="target"></div>
+</div>
+<script>
+test_computed_value("line-height", "normal");
+
+test_computed_value("line-height", "0", "0px");
+test_computed_value("line-height", "2", "80px");
+test_computed_value("line-height", "0px");
+test_computed_value("line-height", "10px");
+test_computed_value("line-height", "0%", "0px");
+test_computed_value("line-height", "200%", "80px");
+test_computed_value("line-height", "calc(200% + 10px)", "90px");
+
+test_computed_value('line-height', 'calc(10px - 0.5em)', '0px');
+test_computed_value('line-height', 'calc(10px + 0.5em)', '30px');
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-invalid.html b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-invalid.html
new file mode 100644
index 00000000000..e7d4ae62460
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-invalid.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Inline Layout: parsing line-height with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-inline-3/#line-height-property">
+<meta name="assert" content="line-height supports only the grammar 'normal | <number> | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("line-height", "auto");
+
+test_invalid_value("line-height", "-2");
+test_invalid_value("line-height", "-10px");
+test_invalid_value("line-height", "-200%");
+
+test_invalid_value("line-height", "2 10px");
+test_invalid_value("line-height", "200% 3");
+test_invalid_value("line-height", "auto 10px");
+test_invalid_value("line-height", "3 auto");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-valid.html b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-valid.html
new file mode 100644
index 00000000000..663e2638d8b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-inline/parsing/line-height-valid.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Inline Layout: parsing line-height with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-inline-3/#line-height-property">
+<meta name="assert" content="line-height supports the full grammar 'normal | <number> | <length-percentage>'.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("line-height", "normal");
+
+test_valid_value("line-height", "0");
+test_valid_value("line-height", "2");
+test_valid_value("line-height", "0px");
+test_valid_value("line-height", "10px");
+test_valid_value("line-height", "0%");
+test_valid_value("line-height", "200%");
+test_valid_value("line-height", "calc(200% + 10px)");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-absolute-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/absolute-ref.html
index 416d57c43fa..416d57c43fa 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-absolute-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/absolute-ref.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-absolute.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/absolute.https.html
index bf81b21a4bb..7a726f6e00c 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-absolute.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/absolute.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-sizing">
-<link rel="match" href="auto-block-size-absolute-ref.html">
+<link rel="match" href="absolute-ref.html">
<meta name="assert" content="This test checks that the absolute positioning respects the auto-block-size." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-flex-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/flex-ref.html
index e71b104c742..e71b104c742 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-flex-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/flex-ref.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-flex.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/flex.https.html
index 5b152bb645f..96fe3c79a93 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-flex.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/flex.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-sizing">
-<link rel="match" href="auto-block-size-flex-ref.html">
+<link rel="match" href="flex-ref.html">
<meta name="assert" content="This test checks that the flex layout respects the auto-block-size." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-floats-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/floats-ref.html
index 368d3d8693f..368d3d8693f 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-floats-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/floats-ref.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-floats.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/floats.https.html
index 342c57b5300..b36f89da245 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-floats.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/floats.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-sizing">
-<link rel="match" href="auto-block-size-floats-ref.html">
+<link rel="match" href="floats-ref.html">
<meta name="assert" content="This test checks that if the layout() is a float, the flow layout respects the auto-block-size." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-inflow-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/inflow-ref.html
index 73f84811b18..73f84811b18 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-inflow-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/inflow-ref.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-inflow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/inflow.https.html
index 7daef6e4c85..2239b27894c 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-inflow.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/inflow.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-sizing">
-<link rel="match" href="auto-block-size-inflow-ref.html">
+<link rel="match" href="inflow-ref.html">
<meta name="assert" content="This test checks that min/max-block-size constraints are applied correctly to a layout()." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-negative-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/negative-ref.html
index 665b5c6620b..665b5c6620b 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-negative-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/negative-ref.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-negative.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/negative.https.html
index 392edd125ae..a1a76d94aa3 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size-negative.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/auto-block-size/negative.https.html
@@ -1,9 +1,8 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#interaction-sizing">
-<link rel="match" href="auto-block-size-negative-ref.html">
+<link rel="match" href="negative-ref.html">
<meta name="assert" content="This test checks that auto-block-size is correctly clamped to zero." />
-<meta name="assert" content="TODO" />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html
index 0da20ee8371..6ec8e4062fc 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-htb-vrl.https.html
@@ -61,5 +61,5 @@
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-invalid.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-invalid.https.html
index dfbc812556f..32a0f11a4ec 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-invalid.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-invalid.https.html
@@ -45,5 +45,5 @@
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html
index c8e84ae5170..536af3b5a46 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-block-size-vrl-htb.https.html
@@ -61,5 +61,5 @@
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html
index 94cf75fc93f..6205c01d104 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-htb-htb.https.html
@@ -61,5 +61,5 @@
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-invalid.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-invalid.https.html
index 136d13fa703..8bb18aaa4ba 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-invalid.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-invalid.https.html
@@ -45,5 +45,5 @@
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html
index 392a6b51422..1b8d01f0247 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-inline-size-vrl-vrl.https.html
@@ -61,5 +61,5 @@
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html
index 960fb7d7dcf..9bf4d40ad61 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-htb.https.html
@@ -55,5 +55,5 @@
<!-- A replaced percentage min-width/min-height should resolve itself against the available size. -->
<img class="child" style="width: 5px; min-width: 20%; height: 5px; min-height: 50%;" />
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html
index 0e9b5570abe..eb104a180d7 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-htb-vrl.https.html
@@ -55,5 +55,5 @@
<!-- A replaced percentage min-width/min-height should resolve itself against the available size. -->
<img class="child" style="width: 5px; min-width: 20%; height: 5px; min-height: 50%;" />
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html
index 62efe992fb3..8bd969271e0 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-invalid.https.html
@@ -45,5 +45,5 @@
<!-- For replaced elements, both axis should be resolved to 0px. -->
<img class="child" style="--inline-size-expected: 0px; --block-size-expected: 0px; width: 100%; height: 100%;" />
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html
index 1352ea91783..ce8ff95dd0d 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-htb.https.html
@@ -55,5 +55,5 @@
<!-- A replaced percentage min-width/min-height should resolve itself against the available size. -->
<img class="child" style="width: 5px; min-width: 20%; height: 5px; min-height: 50%;" />
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html
index 9c30c212fae..71c7355b9cd 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/available-size-for-percentages-vrl-vrl.https.html
@@ -55,5 +55,5 @@
<!-- A replaced percentage min-width/min-height should resolve itself against the available size. -->
<img class="child" style="width: 5px; min-width: 20%; height: 5px; min-height: 50%;" />
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html
index dedcaa0ee83..631c5f82815 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size-vrl.https.html
@@ -56,5 +56,5 @@
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size.https.html
index eea540ca59f..737cc4da75b 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-block-size.https.html
@@ -55,5 +55,5 @@
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html
index 22bd3e7c125..4fc3c2e77d9 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size-vrl.https.html
@@ -56,5 +56,5 @@
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size.https.html
index 0a05a46fe69..0fdf4aca3a7 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/fixed-inline-size.https.html
@@ -55,5 +55,5 @@
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html
index 99224c73f5b..84bda1ddf5a 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-htb.https.html
@@ -54,5 +54,5 @@
<!-- A replaced percentage min-height should resolve itself against the percentageBlockSize. -->
<img class="child" style="height: 5px; min-height: 50%;" />
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html
index 8116d5a9b08..98d285b015d 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-htb-vrl.https.html
@@ -54,5 +54,5 @@
<!-- A replaced percentage min-width should resolve itself against the percentageInlineSize. -->
<img class="child" style="width: 5px; min-width: 50%;" />
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-invalid.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-invalid.https.html
index 932380a6163..04355355528 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-invalid.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-invalid.https.html
@@ -43,5 +43,5 @@
<!-- A percentage shouldn't be resolved against an invalid percentageBlockSize. -->
<img class="child" style="--inline-size-expected: 10px; --block-size-expected: 0px; height: 100%;" />
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html
index 39a360d079d..527149b67a8 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-quirks-mode.https.html
@@ -51,5 +51,5 @@
</div>
</div>
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html
index 70640ef0b29..2d3d496fa5f 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-htb.https.html
@@ -54,5 +54,5 @@
<!-- A replaced percentage min-height should resolve itself against the percentageInlineSize. -->
<img class="child" style="height: 5px; min-height: 50%;" />
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html
index 07132579621..577b98ad983 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/percentage-size-vrl-vrl.https.html
@@ -54,5 +54,5 @@
<!-- A replaced percentage min-width should resolve itself against the percentageBlockSize. -->
<img class="child" style="width: 5px; min-width: 50%;" />
<script>
-importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: '../support/layout-child-sizes-worklet.js'});
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-sizes-worklet.js'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-child-sizes-worklet.js b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/support/layout-child-sizes-worklet.js
index 5956c9a70c2..5956c9a70c2 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-child-sizes-worklet.js
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/child-constraints/support/layout-child-sizes-worklet.js
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html
index 4a376d7ae24..8e177dbf336 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-left-right-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-left-right-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html
index 7a695e0d8dc..7b10f11d7dd 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-none.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-none.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html
index 7cbee8295ce..73c29000cfd 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-absolute-top-bottom.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-absolute-top-bottom.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html
index 6f36abe73bc..704b66d64aa 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-block-none-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-block-none.https.html
index 4fd6441c0aa..6c023f51628 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-block-none.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-block-none.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html
index accdd7c8b00..8af6afde269 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-max.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-max.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html
index 845683dc6d5..4d76ed97850 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-min.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-min.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html
index a319129a27d..bbc0a2fde87 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed.https.html
index 646a514d18c..45376ac295c 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-fixed.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-fixed.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html
index bb12d15dbc7..25fc685a67b 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-basis-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-basis-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html
index 8435b021c97..8df99ee835b 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-basis.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-basis.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html
index 68a3c197643..da53fa86ad8 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-grow.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-grow.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html
index a0c416f5338..1d4249e9252 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-none.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-none.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html
index be448da4ec1..c71e202b0ce 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-column-stretch-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-column-stretch-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html
index d79445e16e8..f77b84910a5 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-grow-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-grow-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-none.https.html
index f34a0d88a95..9ef11daccf7 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-none.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-none.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html
index ee8e27b38cb..111120673e7 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-percentage-indefinite.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-percentage-indefinite.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html
index bbf358e1129..c72ed3e04d8 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch-max.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-stretch-max.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html
index 1b1e43879f1..cfaf38295f8 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-flex-stretch.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-flex-stretch.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-none.https.html
index 27b68a09611..5c7381523e5 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-none.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-none.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html
index 108c90db4f4..c738ad546d2 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch-max.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-stretch-max.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html
index f93ad5be363..2e83f42c866 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-stretch.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-stretch.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html
index db82767f782..2c004cd9169 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-grid-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-grid-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html
index 94a20387442..ab02cb4b03f 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-indefinite.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-indefinite.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html
index 9bd9044991c..285ce941b2c 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-quirks-mode.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-quirks-mode.https.html
@@ -1,6 +1,6 @@
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html
index 8c7a8c5d3ea..870bc526f87 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage.https.html
index 693553e14e2..335556550d2 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-percentage.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-percentage.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html
index 7601e8b6bb4..150426d45c7 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-block-size-quirky-body.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-block-size-quirky-body.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedblocksize">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedBlockSize is passed into the layout function correctly." />
<style>
iframe { border: none; width: 200px; height: 200px; }
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html
index 6b3662a16d4..3b81c4d13d4 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-absolute-left-right.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-absolute-left-right.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html
index 632a5dddfac..ec94e59a17d 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-absolute-top-bottom-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-absolute-top-bottom-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html
index a8f4dd31ac9..2758462bd33 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats-vlr.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats-vlr.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html
index 2eb6197c077..862b9ad3b28 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-avoid-floats.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-avoid-floats.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html
index 751ea5ef759..0c15fd12eed 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto-vlr.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto-vlr.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html
index 1458a8bbb79..c513c3d8441 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-block-auto.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-block-auto.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html
index 39ea818216d..93b0c110d97 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-fixed-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-fixed-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-fixed.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-fixed.https.html
index 6434d339196..d8e8062f83f 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-fixed.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-fixed.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html
index 263d45e5b0b..b9159965a07 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-flex-grow-column-vrl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-flex-grow-column-vrl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html
index d2589e62e78..c2532c1460b 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-flex-grow.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-flex-grow.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-grid.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-grid.https.html
index 94eca6b5967..45f9f491e7b 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-grid.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-grid.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html
index 0efabcb31ab..2e350437772 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-percentage-vlr.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-percentage-vlr.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-percentage.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-percentage.https.html
index 4b5a5675ac0..c9041cf0eac 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-percentage.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-percentage.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraints-fixedinlinesize">
-<link rel="match" href="constraints-fixed-inline-size-ref.html">
+<link rel="match" href="fixed-inline-size-ref.html">
<meta name="assert" content="This test checks that LayoutConstraints#fixedInlineSize is passed into the layout function correctly." />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-ref.html
index e5727c0e2d2..e5727c0e2d2 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/constraints-fixed-inline-size-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/fixed-inline-size-ref.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-block-size-quirky-body-iframe.html
index da770e6caf1..da770e6caf1 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size-quirky-body-iframe.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-block-size-quirky-body-iframe.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-block-size.js
index 25d73ef6156..25d73ef6156 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-block-size.js
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-block-size.js
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-inline-size.js b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-inline-size.js
index 3636f366547..3636f366547 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/support/constraints-fixed-inline-size.js
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/constraints/support/constraints-fixed-inline-size.js
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/crash-multicol.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/crash-multicol.https.html
index dbcbd183def..5f175100e55 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/crash-multicol.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/crash-multicol.https.html
@@ -14,8 +14,15 @@
<div id="test"></div>
+<script id="code" type="text/worklet">
+registerLayout('test', class {
+ async intrinsicSizes() {}
+ async layout() {}
+});
+</script>
+
<script>
promise_test(async function() {
- await importWorklet(CSS.layoutWorklet, {url: 'support/layout-position-child-worklet.js'});
+ await importWorklet(CSS.layoutWorklet, document.getElementById('code').textContent);
});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-return.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/bad-return.https.html
index 4c90ae7d336..4c90ae7d336 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-return.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/bad-return.https.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-constructor-error.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/constructor-error.https.html
index 3f711af2e7a..3f711af2e7a 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-constructor-error.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/constructor-error.https.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-error.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/error.https.html
index 4c44f2168b2..4c44f2168b2 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-error.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/error.https.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/fallback-ref.html
index 63bb91e90ca..63bb91e90ca 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/fallback-ref.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-invalid-child.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/invalid-child.https.html
index 567c3f7f745..567c3f7f745 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-invalid-child.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/invalid-child.https.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-invalid-fragment.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/invalid-fragment.https.html
index 2e33e8761d3..2e33e8761d3 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-invalid-fragment.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/invalid-fragment.https.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-no-promise.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/no-promise.https.html
index e7b22a4c5cd..e7b22a4c5cd 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-no-promise.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/no-promise.https.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-unresolved-promise.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/unresolved-promise.https.html
index 369c56e4f94..369c56e4f94 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout-unresolved-promise.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/fallback-layout/unresolved-promise.https.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/absolute.https.html
index 26513f4fac7..7c47e38e7ad 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-absolute.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/absolute.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that absolute children don't appear in the children array." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/before-after.https.html
index 4923f26cf9d..373392ddfd1 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-before-after.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/before-after.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that boxes created by ::before/::after appear as children." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/fixed.https.html
index 264fc638d52..95d8852b7da 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-fixed.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/fixed.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that fixed children don't appear in the children array." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/float.https.html
index 6e40893e3b3..e8db261774b 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-float.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/float.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that float children appear in the children array." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inflow.https.html
index 11f2b88aa1f..b43f1a7facd 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inflow.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inflow.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that regular inflow children appear as children." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines-dynamic.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inlines-dynamic.https.html
index 50052087f44..50052087f44 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines-dynamic.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inlines-dynamic.https.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inlines.https.html
index 811af3f40b2..dac7e0b26bc 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-inlines.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/inlines.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that inline children are correctly blockified or wrapped in anonymous boxes." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-child-worklet.js b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/support/layout-child-worklet.js
index 70d1b7e4572..70d1b7e4572 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-child-worklet.js
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/support/layout-child-worklet.js
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/text.https.html
index 40513f0acf3..090034fc186 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/layout-child-text.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/layout-child/text.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layout-children">
-<link rel="match" href="green-square-ref.html">
+<link rel="match" href="../green-square-ref.html">
<meta name="assert" content="This test checks that text children are correctly blockified." />
<style>
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-htb-ltr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/htb-ltr.https.html
index b09cb7067d5..f60109ca574 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-htb-ltr.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/htb-ltr.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
-<link rel="match" href="position-fragment-ref.html">
+<link rel="match" href="ref.html">
<meta name="assert" content="This test checks that child fragments get positioned correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-htb-rtl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/htb-rtl.https.html
index 2d65b8cb988..980a3cdc253 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-htb-rtl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/htb-rtl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
-<link rel="match" href="position-fragment-ref.html">
+<link rel="match" href="ref.html">
<meta name="assert" content="This test checks that child fragments get positioned correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-ref.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/ref.html
index 4ce0a6e39de..4ce0a6e39de 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/ref.html
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-position-child-worklet.js b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/support/layout-position-child-worklet.js
index 7d5c494952d..7d5c494952d 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/support/layout-position-child-worklet.js
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/support/layout-position-child-worklet.js
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vlr-ltr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vlr-ltr.https.html
index 62a5980307d..d75a4af639f 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vlr-ltr.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vlr-ltr.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
-<link rel="match" href="position-fragment-ref.html">
+<link rel="match" href="ref.html">
<meta name="assert" content="This test checks that child fragments get positioned correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vlr-rtl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vlr-rtl.https.html
index a9983b1eb20..a8ef6c699ca 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vlr-rtl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vlr-rtl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
-<link rel="match" href="position-fragment-ref.html">
+<link rel="match" href="ref.html">
<meta name="assert" content="This test checks that child fragments get positioned correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vrl-ltr.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vrl-ltr.https.html
index 090128562f8..21c9ce54d66 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vrl-ltr.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vrl-ltr.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
-<link rel="match" href="position-fragment-ref.html">
+<link rel="match" href="ref.html">
<meta name="assert" content="This test checks that child fragments get positioned correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vrl-rtl.https.html b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vrl-rtl.https.html
index e16f26b1d4f..777e725da99 100644
--- a/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment-vrl-rtl.https.html
+++ b/tests/wpt/web-platform-tests/css/css-layout-api/position-fragment/vrl-rtl.https.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#layoutfragment">
-<link rel="match" href="position-fragment-ref.html">
+<link rel="match" href="ref.html">
<meta name="assert" content="This test checks that child fragments get positioned correctly." />
<style>
.test {
diff --git a/tests/wpt/web-platform-tests/css/css-lists/nested-list-with-list-style-type-none.html b/tests/wpt/web-platform-tests/css/css-lists/nested-list-with-list-style-type-none.html
new file mode 100644
index 00000000000..e103113c3f4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-lists/nested-list-with-list-style-type-none.html
@@ -0,0 +1,24 @@
+<meta charset="utf-8">
+<title>CSS Lists: test the margin collapse of marker</title>
+<link rel=help href="https://www.w3.org/TR/CSS22/generate.html#lists">
+<link rel="help" href="http://crbug.com/985298">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<style>
+li {
+ list-style-type:none;
+ list-style-image:url(images/white.gif);
+}
+</style>
+<body>
+ <p>PASS if no crash or DCHECK failure in quirks mode.</p>
+ <ul>
+ <li>
+ <ul></ul>
+ </li>
+ </ul>
+ <script type="text/javascript">
+ done();
+ </script>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation-ref.html b/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation-ref.html
new file mode 100644
index 00000000000..3439cd93645
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<body>
+<canvas id ="canvas" width="100" height="100"></canvas>
+<script>
+var canvas = document.getElementById('canvas');
+var context = canvas.getContext("2d");
+context.fillStyle = 'rgb(127, 127, 0)';
+context.fillRect(0, 0, 100, 100);
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation.https.html b/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation.https.html
new file mode 100644
index 00000000000..5cbfee89c45
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-paint-api/color-custom-property-animation.https.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<link rel="help" href="https://drafts.css-houdini.org/css-paint-api/">
+<link rel="match" href="color-custom-property-animation-ref.html">
+<style>
+.container {
+ width: 100px;
+ height: 100px;
+ animation: expand 5s;
+ will-change: transform;
+}
+@keyframes expand {
+ 0% { --foo: rgb(255, 0, 0); }
+ 0.01% { --foo: rgb(127, 127, 0); }
+ 99% { --foo: rgb(127, 127, 0); }
+ 100% { --foo: rgb(0, 255, 0); }
+}
+
+#canvas-geometry {
+ background-image: paint(geometry);
+}
+</style>
+<script src="/common/reftest-wait.js"></script>
+<script src="/common/worklet-reftest.js"></script>
+<body>
+<div id="canvas-geometry" class="container"></div>
+
+<script id="code" type="text/worklet">
+registerPaint('geometry', class {
+ static get inputProperties() { return ['--foo']; }
+ paint(ctx, geom, properties) {
+ ctx.fillStyle = properties.get('--foo').toString();
+ ctx.fillRect(0, 0, 100, 100);
+ }
+});
+</script>
+
+<script>
+CSS.registerProperty({
+ name: '--foo',
+ syntax: '<color>',
+ initialValue: 'rgb(0, 0, 0)',
+ inherits: false
+});
+</script>
+
+<script>
+// The test is designed to make sure that when the custom property animation is
+// running on the compositor thread, we are getting the right value.
+// The "importWorkletAndTerminateTestAfterAsyncPaint" has the logic to rAF
+// two frames before taking a screenshot. So the animation is designed to
+// be stable after two frames. That is, the 0.01% of 5s is much less than
+// two frames, and thus after two frames, the value of --foo should be stable.
+importWorkletAndTerminateTestAfterAsyncPaint(CSS.paintWorklet, document.getElementById('code').textContent);
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-position/animations/bottom-interpolation.html b/tests/wpt/web-platform-tests/css/css-position/animations/bottom-interpolation.html
new file mode 100644
index 00000000000..272e79fc05b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-position/animations/bottom-interpolation.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-bottom">
+<meta name="test" content="bottom supports animation as a length or percentage">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+ bottom: 30px;
+}
+.target {
+ position: relative;
+ width: 100px;
+ height: 100px;
+ background-color: black;
+ display: inline-block;
+ margin: 20px 5px 20px 0px;
+ bottom: 10px;
+}
+.expected {
+ background-color: green;
+}
+</style>
+
+<body></body>
+
+<script>
+test_interpolation({
+ property: 'bottom',
+ from: neutralKeyframe,
+ to: '20px',
+}, [
+ {at: -0.3, expect: '7px'},
+ {at: 0, expect: '10px'},
+ {at: 0.5, expect: '15px'},
+ {at: 1, expect: '20px'},
+ {at: 1.5, expect: '25px'},
+]);
+
+test_no_interpolation({
+ property: 'bottom',
+ from: 'initial',
+ to: '20px',
+});
+
+test_interpolation({
+ property: 'bottom',
+ from: 'inherit',
+ to: '20px',
+}, [
+ {at: -0.3, expect: '33px'},
+ {at: 0, expect: '30px'},
+ {at: 0.5, expect: '25px'},
+ {at: 1, expect: '20px'},
+ {at: 1.5, expect: '15px'},
+]);
+
+test_no_interpolation({
+ property: 'bottom',
+ from: 'unset',
+ to: '20px',
+});
+
+test_interpolation({
+ property: 'bottom',
+ from: '-10px',
+ to: '10px'
+}, [
+ {at: -0.3, expect: '-16px'},
+ {at: 0, expect: '-10px'},
+ {at: 0.5, expect: '0px'},
+ {at: 1, expect: '10px'},
+ {at: 1.5, expect: '20px'}
+]);
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-position/animations/left-interpolation.html b/tests/wpt/web-platform-tests/css/css-position/animations/left-interpolation.html
new file mode 100644
index 00000000000..33ed0b4ec3b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-position/animations/left-interpolation.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-left">
+<meta name="test" content="left supports animation as a length or percentage">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+ position: relative;
+ left: 30px;
+}
+.target {
+ position: relative;
+ width: 10px;
+ height: 10px;
+ background-color: black;
+ left: 10px;
+}
+.expected {
+ background-color: green;
+}
+</style>
+<body></body>
+
+<script>
+test_interpolation({
+ property: 'left',
+ from: neutralKeyframe,
+ to: '20px',
+}, [
+ {at: -0.3, expect: '7px'},
+ {at: 0, expect: '10px'},
+ {at: 0.5, expect: '15px'},
+ {at: 1, expect: '20px'},
+ {at: 1.5, expect: '25px'},
+]);
+
+test_no_interpolation({
+ property: 'left',
+ from: 'initial',
+ to: '20px',
+});
+
+test_interpolation({
+ property: 'left',
+ from: 'inherit',
+ to: '20px',
+}, [
+ {at: -0.3, expect: '33px'},
+ {at: 0, expect: '30px'},
+ {at: 0.5, expect: '25px'},
+ {at: 1, expect: '20px'},
+ {at: 1.5, expect: '15px'},
+]);
+
+test_no_interpolation({
+ property: 'left',
+ from: 'unset',
+ to: '20px',
+});
+
+test_interpolation({
+ property: 'left',
+ from: '-10px',
+ to: '10px'
+}, [
+ {at: -0.3, expect: '-16px'},
+ {at: 0, expect: '-10px'},
+ {at: 0.5, expect: '0px'},
+ {at: 1, expect: '10px'},
+ {at: 1.5, expect: '20px'}
+]);
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-position/animations/right-interpolation.html b/tests/wpt/web-platform-tests/css/css-position/animations/right-interpolation.html
new file mode 100644
index 00000000000..284d435e56e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-position/animations/right-interpolation.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-right">
+<meta name="test" content="right supports animation as a length or percentage">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+ margin-left: 40px;
+ right: 30px;
+}
+.target {
+ position: relative;
+ width: 10px;
+ height: 10px;
+ background-color: black;
+ right: 10px;
+}
+.expected {
+ background-color: green;
+}
+</style>
+
+<body></body>
+
+<script>
+test_interpolation({
+ property: 'right',
+ from: neutralKeyframe,
+ to: '20px',
+}, [
+ {at: -0.3, expect: '7px'},
+ {at: 0, expect: '10px'},
+ {at: 0.5, expect: '15px'},
+ {at: 1, expect: '20px'},
+ {at: 1.5, expect: '25px'},
+]);
+
+test_no_interpolation({
+ property: 'right',
+ from: 'initial',
+ to: '20px',
+});
+
+test_interpolation({
+ property: 'right',
+ from: 'inherit',
+ to: '20px',
+}, [
+ {at: -0.3, expect: '33px'},
+ {at: 0, expect: '30px'},
+ {at: 0.5, expect: '25px'},
+ {at: 1, expect: '20px'},
+ {at: 1.5, expect: '15px'},
+]);
+
+test_no_interpolation({
+ property: 'right',
+ from: 'unset',
+ to: '20px',
+});
+
+test_interpolation({
+ property: 'right',
+ from: '-10px',
+ to: '10px'
+}, [
+ {at: -0.3, expect: '-16px'},
+ {at: 0, expect: '-10px'},
+ {at: 0.5, expect: '0px'},
+ {at: 1, expect: '10px'},
+ {at: 1.5, expect: '20px'}
+]);
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-position/animations/top-interpolation.html b/tests/wpt/web-platform-tests/css/css-position/animations/top-interpolation.html
new file mode 100644
index 00000000000..f5af530c387
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-position/animations/top-interpolation.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#propdef-top">
+<meta name="assert" content="top supports animation as a length or percentage">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+ top: 30px;
+ margin-bottom: 40px;
+}
+.target {
+ position: relative;
+ width: 10px;
+ height: 10px;
+ background-color: black;
+ display: inline-block;
+ top: 10px;
+}
+.expected {
+ background-color: green;
+ margin-right: 10px;
+}
+</style>
+
+<body></body>
+
+<script>
+test_interpolation({
+ property: 'top',
+ from: neutralKeyframe,
+ to: '20px',
+}, [
+ {at: -0.3, expect: '7px'},
+ {at: 0, expect: '10px'},
+ {at: 0.5, expect: '15px'},
+ {at: 1, expect: '20px'},
+ {at: 1.5, expect: '25px'},
+]);
+
+test_no_interpolation({
+ property: 'top',
+ from: 'initial',
+ to: '20px',
+});
+
+test_interpolation({
+ property: 'top',
+ from: 'inherit',
+ to: '20px',
+}, [
+ {at: -0.3, expect: '33px'},
+ {at: 0, expect: '30px'},
+ {at: 0.5, expect: '25px'},
+ {at: 1, expect: '20px'},
+ {at: 1.5, expect: '15px'},
+]);
+
+test_no_interpolation({
+ property: 'top',
+ from: 'unset',
+ to: '20px',
+});
+
+test_interpolation({
+ property: 'top',
+ from: '-10px',
+ to: '10px'
+}, [
+ {at: -0.3, expect: '-16px'},
+ {at: 0, expect: '-10px'},
+ {at: 0.5, expect: '0px'},
+ {at: 1, expect: '10px'},
+ {at: 1.5, expect: '20px'}
+]);
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-sizing/animation/width-interpolation.html b/tests/wpt/web-platform-tests/css/css-sizing/animation/width-interpolation.html
new file mode 100644
index 00000000000..33bc1b14c83
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-sizing/animation/width-interpolation.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>width interpolation</title>
+<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#propdef-width">
+<meta name="assert" content="width supports animation by computed style.">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<style>
+.parent {
+ width: 100px;
+ overflow: visible;
+}
+.target {
+ background-color: black;
+ width: 10px;
+ height: 10px;
+}
+.expected {
+ background-color: green;
+}
+</style>
+
+<body>
+ <template id="target-template">
+ <div class="container">
+ <div class="target"></div>
+ </div>
+ </template>
+</body>
+
+<script>
+test_interpolation({
+ property: 'width',
+ from: neutralKeyframe,
+ to: '40px',
+}, [
+ {at: -0.3, expect: '1px'},
+ {at: 0, expect: '10px'},
+ {at: 0.3, expect: '19px'},
+ {at: 0.6, expect: '28px'},
+ {at: 1, expect: '40px'},
+ {at: 1.5, expect: '55px'},
+]);
+
+test_no_interpolation({
+ property: 'width',
+ from: 'initial',
+ to: '40px',
+});
+
+test_interpolation({
+ property: 'width',
+ from: 'inherit',
+ to: '40px',
+}, [
+ {at: -0.3, expect: '118px'},
+ {at: 0, expect: '100px'},
+ {at: 0.3, expect: '82px'},
+ {at: 0.6, expect: '64px'},
+ {at: 1, expect: '40px'},
+ {at: 1.5, expect: '10px'},
+]);
+
+test_no_interpolation({
+ property: 'width',
+ from: 'unset',
+ to: '40px',
+});
+
+test_interpolation({
+ property: 'width',
+ from: '0px',
+ to: '100px',
+}, [
+ {at: -0.3, expect: '0px'}, // CSS width can't be negative.
+ {at: 0, expect: '0px'},
+ {at: 0.3, expect: '30px'},
+ {at: 0.6, expect: '60px'},
+ {at: 1, expect: '100px'},
+ {at: 1.5, expect: '150px'}
+]);
+
+test_interpolation({
+ property: 'width',
+ from: '10px',
+ to: '100%'
+}, [
+ {at: -0.3, expect: '0px'}, // CSS width can't be negative.
+ {at: 0, expect: '10px'},
+ {at: 0.3, expect: '37px'},
+ {at: 0.6, expect: '64px'},
+ {at: 1, expect: '100px'},
+ {at: 1.5, expect: '145px'}
+]);
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html
new file mode 100644
index 00000000000..49cbf1530d7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewayslr-001-notref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Non-reference case for text-decoration-skip-ink</title>
+ <style>
+ div{
+ text-decoration: green underline;
+ text-decoration-skip-ink: none;
+ writing-mode: sideways-lr;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if p and g characters are skipped</p>
+ <div>ping pong</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html
new file mode 100644
index 00000000000..3882683f1db
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-sidewaysrl-001-notref.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Non-reference case for text-decoration-skip-ink</title>
+ <style>
+ div{
+ text-decoration: green underline;
+ text-decoration-skip-ink: none;
+ writing-mode: sideways-rl;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if p and g characters are skipped</p>
+ <div>ping pong</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html
new file mode 100644
index 00000000000..a57eac2f2db
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-notref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Non-reference case for text-decoration-skip-ink</title>
+ <style>
+ div{
+ text-decoration-skip-ink: none;
+ text-decoration: green underline;
+ writing-mode: vertical-lr;
+ text-orientation: upright;
+ text-underline-offset: -0.5em;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test if underline skips the characters</p>
+ <div>ping pong</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html
new file mode 100644
index 00000000000..a0a2c1fbaeb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-001-offset-notref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Non-reference case for text-decoration-skip-ink</title>
+ <style>
+ div{
+ text-decoration-skip-ink: auto;
+ text-decoration: green underline;
+ writing-mode: vertical-lr;
+ text-orientation: upright;
+ text-underline-offset: auto;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test if underline skips the characters</p>
+ <div>ping pong</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html
new file mode 100644
index 00000000000..80edf92bd91
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-upright-002-notref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Non-reference case for text-decoration-skip-ink</title>
+ <link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
+ <style>
+ div{
+ font: 20px/1 Ahem;
+ text-decoration: green underline;
+ text-decoration-skip-ink: auto;
+ color: transparent;
+ text-underline-offset: auto;
+ writing-mode: vertical-rl;
+ text-orientation: upright;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if no underline is visible</p>
+ <div>XXXX</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html
new file mode 100644
index 00000000000..0938ce60eac
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-notref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Non-reference case for text-decoration-skip-ink</title>
+ <style>
+ div{
+ text-decoration: green underline;
+ text-decoration-skip-ink: none;
+ text-underline-offset: -0.2em;
+ writing-mode: vertical-lr;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if p and g characters are skipped</p>
+ <div>ping pong</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html
new file mode 100644
index 00000000000..073fe6a951a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-001-offset-notref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Non-reference case for text-decoration-skip-ink</title>
+ <style>
+ div{
+ text-decoration: green underline;
+ text-decoration-skip-ink: auto;
+ text-underline-offset: auto;
+ writing-mode: vertical-lr;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if p and g characters are skipped</p>
+ <div>ping pong</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html
new file mode 100644
index 00000000000..f7b71783b55
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-skip-ink-vertical-002-notref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Non-reference case for text-decoration-skip-ink</title>
+ <link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
+ <style>
+ div{
+ font: 20px/1 Ahem;
+ color: transparent;
+ text-decoration-skip-ink: auto;
+ text-decoration: green underline;
+ text-underline-offset: auto;
+ writing-mode: vertical-lr;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if no underline is visible</p>
+ <div>XXXX</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html
new file mode 100644
index 00000000000..48d427e2382
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-001.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test case for text-decoration-skip-ink</title>
+ <meta name="assert" content="text-decoration-skip-ink: descenders are skipped">
+ <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property">
+ <link rel="mismatch" href="reference/text-decoration-skip-ink-sidewayslr-001-notref.html">
+ <style>
+ div{
+ text-decoration: green underline;
+ text-decoration-skip-ink: auto;
+ writing-mode: sideways-lr;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if p and g characters are skipped</p>
+ <div>ping pong</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html
new file mode 100644
index 00000000000..c5ee3469ba5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewayslr-002.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test case for text-decoration-skip-ink</title>
+ <meta name="assert" content="text-decoration-skip-ink: no underline should be rendered for transparent Ahem text">
+ <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property">
+ <link rel="match" href="reference/text-decoration-skip-ink-002-ref.html">
+ <link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
+ <style>
+ /*
+ No underline should be rendered for Ahem text
+ with skip-ink enabled
+ */
+ div{
+ font: 20px/1 Ahem;
+ color: transparent;
+ text-decoration-skip-ink: auto;
+ text-decoration: green underline;
+ text-underline-offset: -0.2em;
+ writing-mode: sideways-lr;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if no underline is visible</p>
+ <div>XXXX</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html
new file mode 100644
index 00000000000..3384215476e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-001.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test case for text-decoration-skip-ink</title>
+ <meta name="assert" content="text-decoration-skip-ink: descenders are skipped">
+ <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property">
+ <link rel="mismatch" href="reference/text-decoration-skip-ink-sidewaysrl-001-notref.html">
+ <style>
+ div{
+ text-decoration: green underline;
+ text-decoration-skip-ink: auto;
+ writing-mode: sideways-rl;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if p and g characters are skipped</p>
+ <div>ping pong</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html
new file mode 100644
index 00000000000..94344307e35
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-sidewaysrl-002.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test case for text-decoration-skip-ink</title>
+ <meta name="assert" content="text-decoration-skip-ink: no underline should be rendered for transparent Ahem text">
+ <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property">
+ <link rel="match" href="reference/text-decoration-skip-ink-002-ref.html">
+ <link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
+ <style>
+ /*
+ No underline should be rendered for Ahem text
+ with skip-ink enabled
+ */
+ div{
+ font: 20px/1 Ahem;
+ color: transparent;
+ text-decoration-skip-ink: auto;
+ text-decoration: green underline;
+ text-underline-offset: -0.2em;
+ writing-mode: sideways-rl;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if no underline is visible</p>
+ <div>XXXX</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001.html
new file mode 100644
index 00000000000..5d0d78c5d7e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-001.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test case for text-decoration-skip-ink</title>
+ <meta name="assert" content="text-decoration-skip-ink: descenders are skipped">
+ <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property">
+ <link rel="mismatch" href="reference/text-decoration-skip-ink-upright-001-notref.html">
+ <link rel="mismatch" href="reference/text-decoration-skip-ink-upright-001-offset-notref.html">
+ <style>
+ div{
+ text-decoration-skip-ink: auto;
+ text-decoration: green underline;
+ writing-mode: vertical-lr;
+ text-orientation: upright;
+ text-underline-offset: -0.5em;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test if underline skips the characters</p>
+ <div>ping pong</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-002.html
new file mode 100644
index 00000000000..2e7d80ec2de
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-upright-002.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test case for text-decoration-skip-ink</title>
+ <meta name="assert" content="text-decoration-skip-ink: no underline should be rendered for transparent Ahem text">
+ <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property">
+ <link rel="match" href="reference/text-decoration-skip-ink-002-ref.html">
+ <link rel="mismatch" href="reference/text-decoration-skip-ink-upright-002-notref.html">
+ <link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
+ <style>
+ div{
+ font: 20px/1 Ahem;
+ text-decoration: green underline;
+ text-decoration-skip-ink: auto;
+ color: transparent;
+ text-underline-offset: -0.5em;
+ writing-mode: vertical-rl;
+ text-orientation: upright;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if no underline is visible</p>
+ <div>XXXX</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001.html
new file mode 100644
index 00000000000..bf9054365e3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-001.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test case for text-decoration-skip-ink</title>
+ <meta name="assert" content="text-decoration-skip-ink: descenders are skipped">
+ <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property">
+ <link rel="mismatch" href="reference/text-decoration-skip-ink-vertical-001-notref.html">
+ <link rel="mismatch" href="reference/text-decoration-skip-ink-vertical-001-offset-notref.html">
+ <style>
+ div{
+ text-decoration: green underline;
+ text-decoration-skip-ink: auto;
+ text-underline-offset: -0.2em;
+ writing-mode: vertical-lr;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if p and g characters are skipped</p>
+ <div>ping pong</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-002.html
new file mode 100644
index 00000000000..9cacc8c56fb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-skip-ink-vertical-002.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test case for text-decoration-skip-ink</title>
+ <meta name="assert" content="text-decoration-skip-ink: no underline should be rendered for transparent Ahem text">
+ <link rel="author" title="Charlie Marlow" href="cmarlow@mozilla.com">
+ <link rel="author" title="Mozilla" href="https://www.mozilla.org">
+ <link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property">
+ <link rel="match" href="reference/text-decoration-skip-ink-002-ref.html">
+ <link rel="mismatch" href="reference/text-decoration-skip-ink-vertical-002-notref.html">
+ <link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
+ <style>
+ /*
+ No underline should be rendered for Ahem text
+ with skip-ink enabled
+ */
+ div{
+ font: 20px/1 Ahem;
+ color: transparent;
+ text-decoration-skip-ink: auto;
+ text-decoration: green underline;
+ text-underline-offset: -0.2em;
+ writing-mode: vertical-lr;
+ }
+ </style>
+ </head>
+ <body>
+ <p>Test passes if no underline is visible</p>
+ <div>XXXX</div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/list-interpolation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/list-interpolation.html
index 4755279d73c..85701e9efad 100644
--- a/tests/wpt/web-platform-tests/css/css-transforms/animation/list-interpolation.html
+++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/list-interpolation.html
@@ -7,7 +7,7 @@
<meta name="assert" content="Interpolation of transform function lists is performed as follows">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="resources/interpolation-testcommon.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
</head>
<body>
<script>
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/matrix-interpolation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/matrix-interpolation.html
index 4becea079d7..a326e7c92f2 100644
--- a/tests/wpt/web-platform-tests/css/css-transforms/animation/matrix-interpolation.html
+++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/matrix-interpolation.html
@@ -5,7 +5,7 @@
<meta name="assert" content="When interpolating between two matrices, each matrix is decomposed into the corresponding translation, rotation, scale, skew and (for a 3D matrix) perspective values">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="resources/interpolation-testcommon.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
<body>
<script>
// Test interpolation of quaternions when the dot product is -1.
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/resources/interpolation-testcommon.js b/tests/wpt/web-platform-tests/css/css-transforms/animation/resources/interpolation-testcommon.js
deleted file mode 100644
index 73ce9ceefb3..00000000000
--- a/tests/wpt/web-platform-tests/css/css-transforms/animation/resources/interpolation-testcommon.js
+++ /dev/null
@@ -1,79 +0,0 @@
-'use strict';
-function test_interpolation(settings, expectations, name) {
- var message_prefix = name ? name + ': ' : '';
- // Returns a timing function that at 0.5 evaluates to progress.
- function timingFunction(progress) {
- if (progress === 0)
- return 'steps(1, end)';
- if (progress === 1)
- return 'steps(1, start)';
- var y = (8 * progress - 1) / 6;
- return 'cubic-bezier(0, ' + y + ', 1, ' + y + ')';
- }
-
- function RoundMatrix(style) {
- var matrixMatch = style.match(/^(matrix(3d)?)\(.+\)$/);
- if (!!matrixMatch) {
- var matrixType = matrixMatch[1];
- var matrixArgs = style.substr(matrixType.length);
- var extractmatrix = function(matrixStr) {
- var list = [];
- var regex = /[+\-]?[0-9]+[.]?[0-9]*(e[+/-][0-9]+)?/g;
- var match = undefined;
- do {
- match = regex.exec(matrixStr);
- if (match) {
- list.push(parseFloat(parseFloat(match[0]).toFixed(6)));
- }
- } while (match);
- return list;
- }
- return matrixType + '(' + extractmatrix(matrixArgs).join(', ') + ')';
- }
- return style;
- }
-
- test(function(){
- assert_true(CSS.supports(settings.property, settings.from), 'Value "' + settings.from + '" is supported by ' + settings.property);
- assert_true(CSS.supports(settings.property, settings.to), 'Value "' + settings.to + '" is supported by ' + settings.property);
- }, message_prefix + '"' + settings.from + '" and "' + settings.to + '" are valid ' + settings.property + ' values');
-
- for (var i = 0; i < expectations.length; ++i) {
- var progress = expectations[i].at;
- var expectation = expectations[i].expect;
- var animationId = 'anim' + i;
- var targetId = 'target' + i;
- var referenceId = 'reference' + i;
-
- test(function(){
- assert_true(CSS.supports(settings.property, expectation), 'Value "' + expectation + '" is supported by ' + settings.property);
-
- var stylesheet = document.createElement('style');
- stylesheet.textContent =
- '#' + targetId + ' {\n' +
- ' animation: 2s ' + timingFunction(progress) + ' -1s paused ' + animationId + ';\n' +
- '}\n' +
- '@keyframes ' + animationId + ' {\n' +
- ' 0% { ' + settings.property + ': ' + settings.from + '; }\n' +
- ' 100% { ' + settings.property + ': ' + settings.to + '; }\n' +
- '}\n' +
- '#' + referenceId + ' {\n' +
- ' ' + settings.property + ': ' + expectation + ';\n' +
- '}\n';
- document.head.appendChild(stylesheet);
-
- var target = document.createElement('div');
- target.id = targetId;
- document.body.appendChild(target);
-
- var reference = document.createElement('div');
- reference.id = referenceId;
- document.body.appendChild(reference);
- reference.style = '';
-
- var observed = RoundMatrix(getComputedStyle(target)[settings.property]);
- var expected = RoundMatrix(getComputedStyle(reference)[settings.property]);
- assert_equals(observed, expected);
- }, message_prefix + 'Animation between "' + settings.from + '" and "' + settings.to + '" at progress ' + progress);
- }
-}
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/rotate-interpolation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/rotate-interpolation.html
index ec96ba0b09b..911d8e38bd0 100644
--- a/tests/wpt/web-platform-tests/css/css-transforms/animation/rotate-interpolation.html
+++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/rotate-interpolation.html
@@ -8,7 +8,7 @@
<meta name="assert" content="rotate supports animation.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src="resources/interpolation-testcommon.js"></script>
+ <script src="/css/support/interpolation-testcommon.js"></script>
</head>
<body>
<script>
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/scale-interpolation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/scale-interpolation.html
index 942b80a309d..146575c902c 100644
--- a/tests/wpt/web-platform-tests/css/css-transforms/animation/scale-interpolation.html
+++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/scale-interpolation.html
@@ -8,7 +8,7 @@
<meta name="assert" content="scale supports animation.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src="resources/interpolation-testcommon.js"></script>
+ <script src="/css/support/interpolation-testcommon.js"></script>
</head>
<body>
<script>
diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/translate-interpolation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/translate-interpolation.html
index d5d47f733ef..aed6c41cf64 100644
--- a/tests/wpt/web-platform-tests/css/css-transforms/animation/translate-interpolation.html
+++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/translate-interpolation.html
@@ -8,7 +8,7 @@
<meta name="assert" content="translate supports <length> and <percentage> animation.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
- <script src="resources/interpolation-testcommon.js"></script>
+ <script src="/css/support/interpolation-testcommon.js"></script>
<style>
body {
width: 500px;
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html b/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html
index 41bd23eb531..a38bc21bde0 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html
@@ -111,9 +111,10 @@ promise_test(async t => {
// The transition needs to have a non-zero currentTime for the interruption
// reversal logic to apply.
- await singleFrame();
+ while (getComputedStyle(div).left == '0px') {
+ await singleFrame();
+ }
assert_not_equals(transition.currentTime, 0);
- assert_not_equals(getComputedStyle(div).left, '0px');
// Without yielding to the rendering loop, set the current transition's
// effect to null and interrupt the transition. This should work correctly.
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html b/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html
index b6482f80474..4dbe8634192 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative.html
@@ -40,7 +40,7 @@ promise_test(async t => {
assert_equals(animations[0].startTime, animations[1].startTime,
'CSS transitions started together have the same start time');
- await waitForFrame();
+ await waitForAnimationFrames(1);
div.style.backgroundColor = 'green';
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-001.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-001.html
index a4d196a5647..1f6d49881bf 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-001.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-001.html
@@ -59,7 +59,7 @@
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
- var duration = '0.5s';
+ var duration = '2s';
runParallelAsyncHarness({
// array of test data
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-002.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-002.html
index a1f91682e0c..9c5d9afbb93 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-002.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-002.html
@@ -61,7 +61,7 @@
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
- var duration = '0.5s';
+ var duration = '2s';
runParallelAsyncHarness({
// array of test data
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-003.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-003.html
index 49c8dfbd786..4f6bbda53bc 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-003.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-003.html
@@ -63,7 +63,7 @@
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
- var duration = '0.5s';
+ var duration = '2s';
runParallelAsyncHarness({
// array of test data
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-auto-001.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-auto-001.html
index dd077f05f5d..6c932aa7cd6 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-auto-001.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-auto-001.html
@@ -61,7 +61,7 @@
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
- var duration = '0.5s';
+ var duration = '2s';
runParallelAsyncHarness({
// array of test data
@@ -69,7 +69,7 @@
// the number of tests to run in parallel
testsPerSlice: 50,
// milliseconds to wait before calling teardown and ending test
- duration: parseFloat(duration) * 1000,
+ duration: parseFloat(duration) * 1200,
// prepare individual test
setup: function(data, options) {
var styles = {
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-implicit-001.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-implicit-001.html
index fe7664986b4..8500436c529 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-implicit-001.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-implicit-001.html
@@ -62,7 +62,7 @@
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
- var duration = '0.5s';
+ var duration = '2s';
runParallelAsyncHarness({
// array of test data
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-001.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-001.html
index 0e91c7101b2..abbdecdfae9 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-001.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-001.html
@@ -62,7 +62,7 @@
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
- var duration = '0.5s';
+ var duration = '2s';
runParallelAsyncHarness({
// array of test data
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-002.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-002.html
index 49ee3140f7b..9556cf7e23a 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-002.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-002.html
@@ -63,7 +63,7 @@
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
- var duration = '0.5s';
+ var duration = '2s';
runParallelAsyncHarness({
// array of test data
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-003.html b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-003.html
index 046ba43c41f..13a16132134 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-003.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/properties-value-inherit-003.html
@@ -62,7 +62,7 @@
// tests = filterPropertyTests(tests, /^background-color/);
// general transition-duration
- var duration = '0.5s';
+ var duration = '2s';
runParallelAsyncHarness({
// array of test data
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/pseudo-elements-001.html b/tests/wpt/web-platform-tests/css/css-transitions/pseudo-elements-001.html
index ae9db1e5c63..146c533e235 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/pseudo-elements-001.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/pseudo-elements-001.html
@@ -84,7 +84,7 @@
];
// general transition-duration
- var duration = '0.5s';
+ var duration = '2s';
runParallelAsyncHarness({
// array of test data
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/support/runParallelAsyncHarness.js b/tests/wpt/web-platform-tests/css/css-transitions/support/runParallelAsyncHarness.js
index fa3b09c7d84..de9b7837900 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/support/runParallelAsyncHarness.js
+++ b/tests/wpt/web-platform-tests/css/css-transitions/support/runParallelAsyncHarness.js
@@ -113,8 +113,8 @@ root.runParallelAsyncHarness = function(options) {
});
});
- // conclude test (possibly abort)
- setTimeout(function() {
+ // conclude slice (possibly abort)
+ var concludeSlice = function() {
tests.forEach(function(data) {
// perform individual "done" test-case
cases.forEach(function(name) {
@@ -135,7 +135,10 @@ root.runParallelAsyncHarness = function(options) {
// next test please, give the browser 50ms to do catch its breath
setTimeout(runLoop, 50);
- }, duration);
+ }
+
+ // wait on RAF before cleanup to make sure all queued event handlers have run
+ setTimeout(function() {requestAnimationFrame(concludeSlice)},duration);
}
// allow DOMContentLoaded before actually doing something
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/transitions-animatable-properties-01.html b/tests/wpt/web-platform-tests/css/css-transitions/transitions-animatable-properties-01.html
deleted file mode 100644
index 48a7d1e2e01..00000000000
--- a/tests/wpt/web-platform-tests/css/css-transitions/transitions-animatable-properties-01.html
+++ /dev/null
@@ -1,179 +0,0 @@
-<!DOCTYPE html>
-<html>
-<!-- Submitted from TestTWF Paris -->
- <head>
- <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
- <title> CSS Transitions: Animatable CSS properties </title>
- <meta name="assert" content="Check that all animatable CSS properties are animatable and then accepted by the 'transition-property' property">
- <meta name="timeout" content="long">
- <link rel="author" title="Daniel Glazman" href="mailto:daniel.glazman@disruptive-innovations.com">
- <link rel="help" href="http://www.w3.org/TR/css3-transitions/#transitions">
- <link rel="help" href="http://www.w3.org/TR/css3-transitions/#animatable-properties">
- <link rel="reviewer" title="Alan Stearns" href="mailto:stearns@adobe.com">
-
- <style type="text/css">
-
- html, body { margin: 0px; padding: 0px; }
-
- .w50vw { width: 50vw; )
- .h50vh { height: 50vh; }
-
- .w50vm { width: 50vm; }
- .h50vm { height: 50vm; }
- </style>
-
- <script src="/resources/testharness.js" type="text/javascript"></script>
- <script src="/resources/testharnessreport.js" type="text/javascript"></script>
-
- <style type="text/css" id="newStyles"></style>
- </head>
- <body>
- <p>Check that all animatable CSS properties are animatable and
- then accepted by the 'transition-property' property.<br>
- </p>
-
- <p id="testP">THIS PROSE NEEDED FOR TEST ITSELF</p>
-
- <div id="log"></div><a href="transitions-animatable-properties-01.html" id="" title="transitions-animatable-properties-01">transitions-animatable-properties-01</a>
-
- <script type="text/javascript">
- var kANIMATABLE_CSS_PROPERTIES = [
- ["background-color", "white", "rgb(0, 128, 0)", "", false],
- ["background-position", "0px 0px", "100% 100%", "", false],
- ["border-color", "white", "rgb(0, 128, 0)", "", false],
- ["border-bottom-color", "white", "rgb(0, 128, 0)", "", false],
- ["border-bottom-width", "0px", "10px", "border-style: solid; border-color: black", false],
- ["border-left-color", "white", "rgb(0, 128, 0)", "", false],
- ["border-left-width", "0px", "10px", "border-style: solid; border-color: black", false],
- ["border-right-color", "white", "rgb(0, 128, 0)", "", false],
- ["border-right-width", "0px", "10px", "border-style: solid; border-color: black", false],
- ["border-spacing", "0px", "10px 15px", "", false],
- ["border-top-color", "white", "rgb(0, 128, 0)", "", false],
- ["border-top-width", "0px", "10px", "border-style: solid; border-color: black", false],
- ["bottom", "0px", "10px", "", false],
- ["clip", "rect(0px, 0px, 10px, 10px)", "rect(10px, 10px, 20px, 20px)", "", false],
- ["color", "white", "rgb(0, 128, 0)", "", false],
- ["crop", "rect(0px, 0px, 10px, 10px)", "rect(10px 10px 20px 20px)", "", false],
- ["font-size", "12pt", "32px", "", false],
- ["font-weight", "400", "900", "", false],
- ["height", "1em", "64px", "", false],
- ["left", "0px", "10px", "", false],
- ["letter-spacing", "1em", "64px", "", false],
- ["line-height", "1em", "64px", "", false],
- ["margin-bottom", "0px", "10px", "", false],
- ["margin-left", "0px", "10px", "", false],
- ["margin-right", "0px", "10px", "", false],
- ["margin-top", "0px", "10px", "", false],
- ["max-height", "0px", "10px", "", false],
- ["max-width", "0px", "10px", "", false],
- ["min-height", "0px", "10px", "", false],
- ["min-width", "0px", "10px", "", false],
- ["opacity", "0", "1", "", false],
- ["outline-color", "white", "rgb(0, 128, 0)", "", false],
- ["outline-offset", "0px", "10px", "", false],
- ["outline-width", "0px", "10px", "outline-style: solid; outline-style: black", false],
- ["padding-bottom", "0px", "10px", "", false],
- ["padding-left", "0px", "10px", "", false],
- ["padding-right", "0px", "10px", "", false],
- ["padding-top", "0px", "10px", "", false],
- ["right", "0px", "10px", "", false],
- ["text-indent", "0px", "10px", "", false],
- ["text-shadow", "orange 0 -2px", "rgb(0, 128, 0) 0px 2px 0px", "", false],
- ["top", "0px", "10px", "", false],
- ["vertical-align", "0px", "10px", "", false],
- ["visibility", "visible", "hidden", "", true],
- ["width", "0px", "10px", "", false],
- ["word-spacing", "0px", "10px", "", false],
- ["z-index", "1", "10", "", false]
- ];
-
- // page timeout
- var kTIMEOUT = 3000000;
-
- var p = document.getElementById("testP");
- var style = document.getElementById("newStyles");
-
- var testsIntermediate = [];
- var testsEnd = [];
-
- setup({timeout: kTIMEOUT});
-
- // create all the tests we need
- for (var i = 0; i < kANIMATABLE_CSS_PROPERTIES.length; i++) {
- testsIntermediate.push(async_test(kANIMATABLE_CSS_PROPERTIES[i][0] + " intermediate"));
- testsEnd.push(async_test(kANIMATABLE_CSS_PROPERTIES[i][0] + " end"));
- }
-
- // getComputedStyle helper
- function gCS(aProperty)
- {
- return document.defaultView
- .getComputedStyle(p, "")
- .getPropertyValue(aProperty);
- }
-
- function Scheduler(aIndex)
- {
- if (aIndex >= kANIMATABLE_CSS_PROPERTIES.length) // we're done here
- return;
-
- var property = kANIMATABLE_CSS_PROPERTIES[aIndex][0];
- var startValue = kANIMATABLE_CSS_PROPERTIES[aIndex][1];
- var endValue = kANIMATABLE_CSS_PROPERTIES[aIndex][2];
- var extras = kANIMATABLE_CSS_PROPERTIES[aIndex][3];
- var discrete = kANIMATABLE_CSS_PROPERTIES[aIndex][4];
-
- // create a style rule
- var s = "#testP { ";
- s += property + ": " + startValue + ";\n";
- s += "transition-property: " + property + ";\n";
- s += "transition-duration: 0.5s;\n";
- s += "transition-delay: 0s;\n";
- s += "transition-timing-function: linear;\n";
- s += extras;
- s += "}";
- style.textContent = s;
-
- // flush styles
- gCS(property);
-
- // set property to endValue
- p.setAttribute("style", property + ": " + endValue + "; ");
-
- // test for intermediate value
- setTimeout(function()
- {
- testsIntermediate[aIndex].step(function()
- {
- var cs = gCS(property);
- if (discrete) {
- assert_equals(cs, startValue);
- }
- else {
- assert_true((cs != startValue) && (null != cs));
- }
- });
- testsIntermediate[aIndex].done();
- }, 250);
-
- // test for final value
- setTimeout(function()
- {
- testsEnd[aIndex].step(function()
- {
- var cs = gCS(property);
- assert_equals(cs, endValue);
- }
- );
- testsEnd[aIndex].done();
- Scheduler(aIndex + 1);
- }, 600);
-
- }
-
- // let's start
- Scheduler(0);
-
- </script>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-values/ex-unit-001.html b/tests/wpt/web-platform-tests/css/css-values/ex-unit-001.html
index ad296b4174e..eff0dbe2ebd 100644
--- a/tests/wpt/web-platform-tests/css/css-values/ex-unit-001.html
+++ b/tests/wpt/web-platform-tests/css/css-values/ex-unit-001.html
@@ -10,7 +10,7 @@
<style>
@font-face {
font-family: foo;
- src: local(Ahem);
+ src: url('/fonts/Ahem.ttf');
}
@font-face {
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html
new file mode 100644
index 00000000000..84e598a8147
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#comp-func">
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#angles">
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-type-checking">
+<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../support/computed-testcommon.js"></script>
+<div id="target"></div>
+<div id="reference"></div>
+<script>
+function test_angle_equals(value, expected) {
+ const reference = document.getElementById('reference');
+ reference.style.transform = '';
+ reference.style.transform = `rotate(${expected})`;
+ const computed = getComputedStyle(reference).transform;
+ test_computed_value('transform', `rotate(${value})`, computed);
+}
+
+// Identity tests
+test_angle_equals('min(1deg)', '1deg');
+test_angle_equals('min(1grad)', '1grad');
+test_angle_equals('min(1rad)', '1rad');
+test_angle_equals('min(1turn)', '1turn');
+test_angle_equals('max(1deg)', '1deg');
+test_angle_equals('max(1grad)', '1grad');
+test_angle_equals('max(1rad)', '1rad');
+test_angle_equals('max(1turn)', '1turn');
+
+// Comparisons between same units
+test_angle_equals('min(1deg, 2deg)', '1deg');
+test_angle_equals('min(1grad, 2grad)', '1grad');
+test_angle_equals('min(1rad, 2rad)', '1rad');
+test_angle_equals('min(1turn, 2turn)', '1turn');
+test_angle_equals('max(1deg, 2deg)', '2deg');
+test_angle_equals('max(1grad, 2grad)', '2grad');
+test_angle_equals('max(1rad, 2rad)', '2rad');
+test_angle_equals('max(1turn, 2turn)', '2turn');
+
+// Comparisons between different units
+test_angle_equals('min(90deg, 0.26turn)', '90deg');
+test_angle_equals('min(1.57rad, 95deg)', '1.57rad');
+test_angle_equals('max(91deg, 0.25turn)', '91deg');
+test_angle_equals('max(1.58rad, 90deg)', '1.58rad');
+
+// Nestings
+test_angle_equals('min(270deg, max(0.25turn, 3.14rad))', '3.14rad');
+test_angle_equals('max(0.25turn, min(270deg, 3.14rad))', '3.14rad');
+
+// General calculations
+test_angle_equals('calc(min(90deg, 1.58rad) + 0.25turn)', '180deg');
+test_angle_equals('calc(min(90deg, 1.58rad) - 0.125turn)', '45deg');
+test_angle_equals('calc(min(90deg, 1.58rad) * 2', '180deg');
+test_angle_equals('calc(min(90deg, 1.58rad) / 2', '45deg');
+test_angle_equals('calc(max(90deg, 1.56rad) + 0.25turn)', '180deg');
+test_angle_equals('calc(max(90deg, 1.56rad) - 0.125turn)', '45deg');
+test_angle_equals('calc(max(90deg, 1.56rad) * 2', '180deg');
+test_angle_equals('calc(max(90deg, 1.56rad) / 2', '45deg');
+test_angle_equals('calc(min(90deg, 1.58rad) + max(0.25turn, 99grad))', '180deg');
+test_angle_equals('calc(min(90deg, 1.58rad) - max(0.25turn, 99grad))', '0deg');
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-angle-invalid.html b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-invalid.html
new file mode 100644
index 00000000000..29dc15dfd96
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-invalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#comp-func">
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#angles">
+<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-type-checking">
+<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../support/parsing-testcommon.js"></script>
+<script>
+function test_invalid_angle(value) {
+ test_invalid_value('transform', `rotate(${value})`);
+}
+
+// Syntax checking
+test_invalid_angle('min()');
+test_invalid_angle('min( )');
+test_invalid_angle('min(,)');
+test_invalid_angle('min(1dag)');
+test_invalid_angle('min(1deg, )');
+test_invalid_angle('min(, 1deg)');
+test_invalid_angle('min(1deg + )');
+test_invalid_angle('min(1deg - )');
+test_invalid_angle('min(1deg * )');
+test_invalid_angle('min(1deg / )');
+test_invalid_angle('min(1deg 2deg)');
+test_invalid_angle('min(1deg, , 2deg)');
+test_invalid_angle('max()');
+test_invalid_angle('max( )');
+test_invalid_angle('max(,)');
+test_invalid_angle('max(1dag)');
+test_invalid_angle('max(1deg, )');
+test_invalid_angle('max(, 1deg)');
+test_invalid_angle('max(1deg + )');
+test_invalid_angle('max(1deg - )');
+test_invalid_angle('max(1deg * )');
+test_invalid_angle('max(1deg / )');
+test_invalid_angle('max(1deg 2deg)');
+test_invalid_angle('max(1deg, , 2deg)');
+
+// Type checking
+test_invalid_angle('min(0)');
+test_invalid_angle('min(0%)');
+test_invalid_angle('min(0px)');
+test_invalid_angle('min(0s)');
+test_invalid_angle('min(0Hz)');
+test_invalid_angle('min(0dpi)');
+test_invalid_angle('min(0fr)');
+test_invalid_angle('min(1deg, 0)');
+test_invalid_angle('min(1deg, 0%)');
+test_invalid_angle('min(1deg, 0px)');
+test_invalid_angle('min(1deg, 0s)');
+test_invalid_angle('min(1deg, 0Hz)');
+test_invalid_angle('min(1deg, 0dpi)');
+test_invalid_angle('min(1deg, 0fr)');
+test_invalid_angle('max(0)');
+test_invalid_angle('max(0%)');
+test_invalid_angle('max(0px)');
+test_invalid_angle('max(0s)');
+test_invalid_angle('max(0Hz)');
+test_invalid_angle('max(0dpi)');
+test_invalid_angle('max(0fr)');
+test_invalid_angle('max(1deg, 0)');
+test_invalid_angle('max(1deg, 0%)');
+test_invalid_angle('max(1deg, 0px)');
+test_invalid_angle('max(1deg, 0s)');
+test_invalid_angle('max(1deg, 0Hz)');
+test_invalid_angle('max(1deg, 0dpi)');
+test_invalid_angle('max(1deg, 0fr)');
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-006.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-006.html
index e884f76f203..e197f8f322f 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-006.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-006.html
@@ -8,6 +8,7 @@
<meta name="flags" content="">
<style>
body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */
+:root { overflow: hidden; }
div {
writing-mode: vertical-rl;
font-family: monospace;
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-007.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-007.html
index c8cfea23b2e..bf3e8c5faad 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-007.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-007.html
@@ -13,6 +13,7 @@ div {
font-size: 20px;
position: relative; /* to be a container for #red*/
}
+:root { overflow: hidden; }
.spacer { /* using 5 spacers of 20vh each instead of a single large one, so
that the line would wrap between spacers if it ends up being
shorter thatn 100vh*/
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-008.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-008.html
index d38c9cbc1d8..786d8ec482a 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-008.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-008.html
@@ -14,6 +14,7 @@ div div {
font-size: 20px;
position: relative; /* to be a container for #red*/
}
+:root { overflow: hidden; }
.spacer { /* using 5 spacers of 20vh each instead of a single large one, so
that the line would wrap between spacers if it ends up being
shorter thatn 100vh*/
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-009.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-009.html
index 9d7a2c8288d..5e26975999e 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-009.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-009.html
@@ -8,6 +8,7 @@
<meta name="flags" content="">
<style>
body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */
+:root { overflow: hidden; }
div {
writing-mode: vertical-rl;
font-family: monospace;
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-010.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-010.html
index f6452cc957e..6745edd7953 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-010.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-010.html
@@ -8,6 +8,7 @@
<meta name="flags" content="">
<style>
body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */
+:root { overflow: hidden; }
div {
writing-mode: vertical-rl;
font-family: monospace;
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-015.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-015.html
index f7cb13b24e0..d23025a9949 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-015.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-015.html
@@ -8,6 +8,7 @@
<meta name="flags" content="">
<style>
body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */
+:root { overflow: hidden; }
div {
writing-mode: vertical-rl;
font-family: monospace;
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-016.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-016.html
index c3c388e2446..15038868b80 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-016.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-016.html
@@ -8,6 +8,7 @@
<meta name="flags" content="">
<style>
body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */
+:root { overflow: hidden; }
div {
writing-mode: vertical-rl;
font-family: monospace;
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-019.html b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-019.html
index a25a2f6f31e..b6fbfdf804f 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-019.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/available-size-019.html
@@ -8,6 +8,7 @@
<meta name="flags" content="">
<style>
body { margin-top: 0; margin-bottom: 0; } /* Shouldn't matter, but in some browsers does. -007 tests this aspect specifically. */
+:root { overflow: hidden; }
div {
writing-mode: vertical-rl;
font-family: monospace;
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/relpos-inline-overflowing-block-vrl.html b/tests/wpt/web-platform-tests/css/css-writing-modes/relpos-inline-overflowing-block-vrl.html
index ea075c3f95e..fa09cf37cf5 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/relpos-inline-overflowing-block-vrl.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/relpos-inline-overflowing-block-vrl.html
@@ -7,6 +7,6 @@
<div style="position:relative; writing-mode:vertical-rl; width:100px; height:100px; background:green;">
<div style="position:absolute; right:0; top:0; width:0.5em; height:1em; background:red;"></div>
<div style="width:200px;">
- <span style="position:relative; color:green; background:green;">XXX</span>
+ <span style="position:relative; color:green; background:green; display: inline-block">XXX</span>
</div>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht
index 7bb0a0618e3..5f971974b8d 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004-ref.xht
@@ -40,5 +40,8 @@
<div>01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00</div>
+<script>
+ document.documentElement.scrollLeft=document.documentElement.scrollWidth;
+</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht
index 2111a8b47d8..cd1529ce421 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vlr-004.xht
@@ -100,5 +100,8 @@
</div>
+<script>
+ document.documentElement.scrollLeft=document.documentElement.scrollWidth;
+</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht
index c2a476eee87..297457f62c2 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/sizing-orthog-htb-in-vrl-001-ref.xht
@@ -74,5 +74,8 @@
</table>
+<script>
+ document.documentElement.scrollLeft=document.documentElement.scrollWidth;
+</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+arabic.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+arabic.png
new file mode 100644
index 00000000000..d999c3d3096
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+arabic.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+latin.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+latin.png
new file mode 100644
index 00000000000..224297163c6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn+latin.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn-orientation.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn-orientation.png
new file mode 100644
index 00000000000..0167dfbde65
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn-orientation.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_ar_wrap.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_ar_wrap.png
new file mode 100644
index 00000000000..c7d5ca5806e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_ar_wrap.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_en_wrap.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_en_wrap.png
new file mode 100644
index 00000000000..e697c992bcb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/mn_en_wrap.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/world.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/world.png
new file mode 100644
index 00000000000..b56ada3ef1d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/world.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+arabic.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+arabic.png
new file mode 100644
index 00000000000..019debeae63
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+arabic.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+latin.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+latin.png
new file mode 100644
index 00000000000..8fa56d5b6c5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh+latin.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh-orientation.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh-orientation.png
new file mode 100644
index 00000000000..fa05cfe7977
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh-orientation.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_ar_wrap.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_ar_wrap.png
new file mode 100644
index 00000000000..747e816e212
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_ar_wrap.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_en_wrap.png b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_en_wrap.png
new file mode 100644
index 00000000000..a3d65918639
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/support/zh_en_wrap.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-001-manual.html
index c99faf4faee..32d7d48598a 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-001-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-001-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/CSSTest/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/CSSTest/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -27,4 +27,4 @@
<p lang="ja"><span>今日</span>は<span>5</span>月<span>12</span>日です。<span>GI</span></p>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-002-manual.html
index be9f5822170..1ef4ec06c0d 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-002-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-all-002-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/CSSTest/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/CSSTest/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -27,4 +27,4 @@
<p lang="ja"><span>W3C</span>会議は<span>2016</span>年<span>5</span>月<span>12</span>日です。<span>242</span>日目です。</p>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-001-manual.html
index 75c14eb42d8..76a1798e486 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-001-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-001-manual.html
@@ -4,12 +4,12 @@
<meta charset="utf-8"/>
<title>text-combine-upright:digits</title>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/>
-<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#text-combine-upright"/>
+<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#text-combine-upright"/>
<meta name="assert" content="text-combine-upright:digits will display two-digit numbers horizontally, but not others."/>
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/CSSTest/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/CSSTest/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@
<p lang="ja">今日は2016年5月12日です。242日目です。</p>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-002-manual.html
index 9d46e56f937..1977d070e85 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-002-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-002-manual.html
@@ -4,12 +4,12 @@
<meta charset="utf-8"/>
<title>text-combine-upright:digits 2</title>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/>
-<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#text-combine-upright"/>
+<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#text-combine-upright"/>
<meta name="assert" content="text-combine-upright:digits 2 will display two-digit numbers horizontally, but not others."/>
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/CSSTest/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/CSSTest/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@
<p lang="ja">今日は2016年5月12日です。242日目です。</p>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-004-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-004-manual.html
index 9fe84ee3436..b681a8a9a10 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-004-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/text-combine-upright-digits-004-manual.html
@@ -4,12 +4,12 @@
<meta charset="utf-8"/>
<title>text-combine-upright:digits 4</title>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/>
-<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#text-combine-upright"/>
+<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#text-combine-upright"/>
<meta name="assert" content="text-combine-upright:digits 4 will display all numbers up to four digits long horizontally."/>
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/CSSTest/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/CSSTest/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@
<p lang="ja">今日は2016年5月12日です。242日目です。</p>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-001-manual.html
index 31186029dec..ac5adb13f4e 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-001-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-001-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -27,4 +27,4 @@
<span lang="mn">ᠮᠤᠩᠭᠤᠯ ᠤᠯᠤᠰ</span>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-002-manual.html
index bb53c939e84..588d56d02cc 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-002-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-002-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -28,4 +28,4 @@
<span lang="mn">ᠴᠤᠢᠵᠤᠩᠵᠠᠪ ᠪᠠᠭᠰᠢ ᠶᠢᠨ <span id="end">ᠦᠭᠦᠯᠡᠯ</span></span>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-003-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-003-manual.html
index 1aaf29d2e6d..00921299069 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-003-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-003-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -27,4 +27,4 @@
<span lang="mn">ᠴᠤᠢᠵᠤᠩᠵᠠᠪ</span>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-005-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-005-manual.html
index 2bbdca59998..cd7b313add1 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-005-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-005-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -25,4 +25,4 @@
<div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ ᠤᠯᠤᠰ</div>
<div class="ref"><img src="support/mn-orientation.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-006-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-006-manual.html
index 0ceb4a74bb9..bc09501eada 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-006-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-006-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -25,4 +25,4 @@
<div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ ᠤᠯᠤᠰ</div>
<div class="ref"><img src="support/mn-orientation.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-007-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-007-manual.html
index 8317c5c8efd..2e725addd3d 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-007-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-007-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ span[lang=en] { color: black; }
<div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="en">W3C i18n</span> ᠤᠯᠤᠰ</div>
<div class="ref"><img src="support/mn+latin.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-008-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-008-manual.html
index 21abffa9194..30a32998901 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-008-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-008-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ span[lang=ar] { color: black; }
<div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="ar">نشاط التدويل</span> ᠤᠯᠤᠰ</div>
<div class="ref"><img src="support/mn+arabic.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-009-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-009-manual.html
index ba2ca64828f..287036dafea 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-009-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-009-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ span[lang=ar] { color: black; }
<div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="ar">نشاط التدويل</span> ᠤᠯᠤᠰ</div>
<div class="ref"><img src="support/mn+arabic.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-010-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-010-manual.html
index 4dc9430b8da..8f5baee8fff 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-010-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-010-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ span[lang=ar] { color: black; }
<div class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="ar">نشاط التدويل</span> ᠤᠯᠤᠰ</div>
<div class="ref"><img src="support/mn+arabic.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-012-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-012-manual.html
index ebf773c5559..78ba92258af 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-012-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-012-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -32,4 +32,4 @@ function setMargin (height) {
<div id="test" class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="en">W3C i18n</span> ᠤᠯᠤᠰ</div>
<div class="ref"><img src="support/mn_en_wrap.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-014-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-014-manual.html
index 656f78759db..0bcdb1f87b7 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-014-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-014-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -32,4 +32,4 @@ function setMargin (height) {
<div id="test" class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <span lang="ar">نشاط التدويل</span> ᠤᠯᠤᠰ</div>
<div class="ref"><img src="support/mn_ar_wrap.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-015-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-015-manual.html
index a8fe0055395..c7c080e77d9 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-015-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-015-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -22,6 +22,6 @@
</head>
<body>
<p class="instructions">Test passes if the text is vertical and the world map has north at the top.</p>
-<div id="test" class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <img src="support/world.gif" alt="ref image"/> ᠤᠯᠤᠰ</div>
+<div id="test" class="test" lang="mn">ᠮᠤᠩᠭᠤᠯ <img src="support/world.png" alt="ref image"/> ᠤᠯᠤᠰ</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-001-manual.html
index 02e0dd8da0d..a3878d148b2 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-001-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-001-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ input { font-family: webfont; font-size: 34px; }
<input type="text" value="ᠮᠤᠩᠭᠤᠯ W3C i18n ᠤᠯᠤᠰ" />
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-002-manual.html
index b89ea1addb3..751057dc77c 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-002-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-002-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ input { font-family: webfont; font-size: 34px; }
<input type="text" placeholder="ᠮᠤᠩᠭᠤᠯ W3C i18n ᠤᠯᠤᠰ" />
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-003-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-003-manual.html
index bfd90f8438f..bf3d839ec40 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-003-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-003-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ textarea { font-family: webfont; font-size: 34px; }
<textarea rows="3">ᠮᠤᠩᠭᠤᠯ W3C i18n ᠤᠯᠤᠰ</textarea>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-004-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-004-manual.html
index fd44a2b6ed7..91f991f5285 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-004-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-004-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ textarea { font-family: webfont; font-size: 34px; }
<textarea rows="3" placeholder="ᠮᠤᠩᠭᠤᠯ W3C i18n ᠤᠯᠤᠰ"></textarea>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-005-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-005-manual.html
index 0ef619a636f..361f9dbec22 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-005-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-005-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -31,4 +31,4 @@ select { font-family: webfont; font-size: 24px; }
</select>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-006-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-006-manual.html
index 16162c2a3cd..78416009a17 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-006-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-forms-006-manual.html
@@ -6,10 +6,11 @@
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/>
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/>
<meta name="assert" content="writing-mode:vertical-lr will display selection options vertically."/>
+<meta name="flags" content="should"/>
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -31,4 +32,4 @@ select { font-family: webfont; font-size: 24px; }
</select>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-table-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-table-001-manual.html
index 21bd590863b..f323ed008cf 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-table-001-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vlr-table-001-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: 'webfont';
- src: url('../../fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
+ src: url('/fonts/noto/NotoSansMongolian-regular.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}
@@ -30,4 +30,4 @@
</tbody></table>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-001-manual.html
index a4f995f4b7f..8cea8b8b831 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-001-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-001-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -27,4 +27,4 @@
<span lang="zh-hans">国际化活动万维网联盟</span>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-002-manual.html
index 7c7bcfbcdc6..086f77e8b4f 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-002-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-002-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -28,4 +28,4 @@
<span lang="zh-hans">国际化活动万维网联盟国际化活动万维<span id="end">网联盟</span></span>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-003-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-003-manual.html
index 64fcb66b133..a0129a3d1b2 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-003-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-003-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -27,4 +27,4 @@
<span lang="zh-hans">国际化活动万维网联盟</span>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-005-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-005-manual.html
index c6462f2fe1a..835ddaac799 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-005-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-005-manual.html
@@ -7,13 +7,7 @@
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/>
<meta name="assert" content="By default, writing-mode:vertical-rl will display chinese characters upright."/>
<style type="text/css">
-@font-face {
- font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
- font-weight: normal;
- font-style: normal;
- }
-.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; }
+.test, .ref { font-size: 24px; float: left; margin-right: 30px; }
</style>
<!-- this is the test -->
<style type="text/css">
@@ -22,7 +16,7 @@
</head>
<body>
<p class="instructions" dir="ltr">Test passes if the text is vertical and the Chinese characters are oriented the same way as on the blue background.</p>
-<div class="test" lang="mn">国际化活动万维网联盟</div>
+<div class="test" lang="zh">国际化活动万维网联盟</div>
<div class="ref"><img src="support/zh-orientation.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-007-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-007-manual.html
index 3427f74990c..5574a100eaf 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-007-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-007-manual.html
@@ -7,13 +7,7 @@
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/>
<meta name="assert" content="writing-mode:vertical-lr will display Latin characters rotated 90° right by default."/>
<style type="text/css">
-@font-face {
- font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
- font-weight: normal;
- font-style: normal;
- }
-.test { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; color: #ccc; }
+.test { font-size: 24px; float: left; margin-right: 30px; color: #ccc; }
span[lang=en] { color: black; }
</style>
<!-- this is the test -->
@@ -26,4 +20,4 @@ span[lang=en] { color: black; }
<div class="test" lang="zh-hans">国际化活动<span lang="en">W3C i18n</span>万维网联盟</div>
<div class="ref"><img src="support/zh+latin.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-008-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-008-manual.html
index 7d2a3bb6a7b..7401d6e78cd 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-008-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-008-manual.html
@@ -7,13 +7,7 @@
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/>
<meta name="assert" content="By default, writing-mode:vertical-lr will display Arabic characters rotated 90° right."/>
<style type="text/css">
-@font-face {
- font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
- font-weight: normal;
- font-style: normal;
- }
-.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; color: #ccc; }
+.test, .ref { font-size: 24px; float: left; margin-right: 30px; color: #ccc; }
span[lang=ar] { color: black; }
</style>
<!-- this is the test -->
@@ -26,4 +20,4 @@ span[lang=ar] { color: black; }
<div class="test" lang="zh-hans">国际化活动<span lang="ar">نشاط التدويل</span>万维网联盟</div>
<div class="ref"><img src="support/zh+arabic.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-009-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-009-manual.html
index 6dff8d7efbe..0486ac6f5ef 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-009-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-009-manual.html
@@ -7,13 +7,7 @@
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/>
<meta name="assert" content="By default, writing-mode:vertical-lr will display Arabic characters progressing up the page."/>
<style type="text/css">
-@font-face {
- font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
- font-weight: normal;
- font-style: normal;
- }
-.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; color: #ccc; }
+.test, .ref { font-size: 24px; float: left; margin-right: 30px; color: #ccc; }
span[lang=ar] { color: black; }
</style>
<!-- this is the test -->
@@ -26,4 +20,4 @@ span[lang=ar] { color: black; }
<div class="test" lang="zh-hans">国际化活动<span lang="ar">نشاط التدويل</span>万维网联盟</div>
<div class="ref"><img src="support/zh+arabic.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-010-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-010-manual.html
index e81a579c75a..05f8de14ac2 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-010-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-010-manual.html
@@ -7,13 +7,7 @@
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/>
<meta name="assert" content="By default, writing-mode:vertical-lr will display Arabic characters using cursive joining."/>
<style type="text/css">
-@font-face {
- font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
- font-weight: normal;
- font-style: normal;
- }
-.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; color: #ccc; }
+.test, .ref { font-size: 24px; float: left; margin-right: 30px; color: #ccc; }
span[lang=ar] { color: black; }
</style>
<!-- this is the test -->
@@ -26,4 +20,4 @@ span[lang=ar] { color: black; }
<div class="test" lang="zh-hans">国际化活动<span lang="ar">نشاط التدويل</span>万维网联盟</div>
<div class="ref"><img src="support/zh+arabic.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-012-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-012-manual.html
index a53ec5c14f4..71907e822a3 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-012-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-012-manual.html
@@ -7,13 +7,7 @@
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/>
<meta name="assert" content="By default, writing-mode:vertical-rl will wrap Latin text across a line break such that the first word in memory is on the right."/>
<style type="text/css">
-@font-face {
- font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
- font-weight: normal;
- font-style: normal;
- }
-.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; height: 250px; color: #ccc; }
+.test, .ref { font-size: 24px; float: left; margin-right: 30px; height: 200px; color: #ccc; }
span[lang=en] { color: black; }
</style>
<!-- this is the test -->
@@ -28,8 +22,8 @@ function setMargin (height) {
</head>
<body>
<p class="instructions">Test passes if the two Latin words on the left are displayed in the same relative positions around a line break as on the blue background.</p>
-<p class="instructions">Use this control to set the line length, if necessary: <input type="text" value="250" style="width: 30px; text-align:right;" onChange="setMargin(this.value);"/>px</p>
+<p class="instructions">Use this control to set the line length, if necessary: <input type="text" value="200" style="width: 30px; text-align:right;" onChange="setMargin(this.value);"/>px</p>
<div id="test" class="test" lang="zh-hans">国际化活动<span lang="en">W3C i18n</span>万维网联盟</div>
<div class="ref"><img src="support/zh_en_wrap.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-014-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-014-manual.html
index bf3424fd043..2dcf570916f 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-014-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-014-manual.html
@@ -7,13 +7,7 @@
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/>
<meta name="assert" content="By default, writing-mode:vertical-rl will arrange Arabic text across a line break such that the first word in memory is on the right-hand side of the line break."/>
<style type="text/css">
-@font-face {
- font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
- font-weight: normal;
- font-style: normal;
- }
-.test, .ref { font-family: webfont, serif; font-size: 24px; float: left; margin-right: 30px; height: 200px; color: #ccc; }
+.test, .ref { font-size: 24px; float: left; margin-right: 30px; height: 200px; color: #ccc; }
span[lang=ar] { color: black; }
</style>
<!-- this is the test -->
@@ -32,4 +26,4 @@ function setMargin (height) {
<div id="test" class="test" lang="zh-hans">国际化活动<span lang="ar">نشاط التدويل</span>万维网联盟</div>
<div class="ref"><img src="support/zh_ar_wrap.png" alt="ref image"/></div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-015-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-015-manual.html
index cfcdf2f51b7..e1a6f023a86 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-015-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-015-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -22,6 +22,6 @@
</head>
<body>
<p class="instructions">Test passes if the text is vertical and the world map has north at the top.</p>
-<div id="test" class="test" lang="zh-hans">国际化活动<img src="support/world.gif" alt="ref image"/>万维网联盟</div>
+<div id="test" class="test" lang="zh-hans">国际化活动<img src="support/world.png" alt="ref image"/>万维网联盟</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-001-manual.html
index 0548cb96828..20dea4fbc36 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-001-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-001-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ input { font-family: webfont; font-size: 34px; }
<input type="text" value="国际化活动W3C i18n万维网联盟" />
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-002-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-002-manual.html
index 3de4c72c3ff..5d7db3e2a38 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-002-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-002-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ input { font-family: webfont; font-size: 34px; }
<input type="text" placeholder="国际化活动W3C i18n万维网联盟" />
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-003-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-003-manual.html
index e07502e4fce..3dfe1d61bf5 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-003-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-003-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ textarea { font-family: webfont; font-size: 34px; }
<textarea rows="3">国际化活动W3C i18n万维网联盟</textarea>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-004-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-004-manual.html
index 42bef3494f9..074603d5811 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-004-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-004-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -26,4 +26,4 @@ textarea { font-family: webfont; font-size: 34px; }
<textarea rows="3" placeholder="国际化活动W3C i18n万维网联盟"></textarea>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-005-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-005-manual.html
index 7177c316d71..2ce63cd5664 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-005-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-005-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -31,4 +31,4 @@ select { font-family: webfont; font-size: 24px; }
</select>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-006-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-006-manual.html
index 2ed6bc99828..8d03c4dfcb2 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-006-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-forms-006-manual.html
@@ -6,10 +6,11 @@
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org"/>
<link rel="help" href="https://drafts.csswg.org/css-writing-modes-3/#block-flow"/>
<meta name="assert" content="writing-mode:vertical-rl will display selection options vertically."/>
+<meta name="flags" content="should"/>
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -31,4 +32,4 @@ select { font-family: webfont; font-size: 24px; }
</select>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-table-001-manual.html b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-table-001-manual.html
index 1705beb7915..d3bc9664524 100644
--- a/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-table-001-manual.html
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/writing-mode-vrl-table-001-manual.html
@@ -9,7 +9,7 @@
<style type="text/css">
@font-face {
font-family: "webfont";
- src: url("../../fonts/mplus-1p-regular.woff") format("woff");
+ src: url("/fonts/mplus-1p-regular.woff") format("woff");
font-weight: normal;
font-style: normal;
}
@@ -30,4 +30,4 @@
</tbody></table>
</div>
</body>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/web-platform-tests/css/selectors/of-type-selectors-ref.xhtml b/tests/wpt/web-platform-tests/css/selectors/of-type-selectors-ref.xhtml
index af883c97ecf..ae866213df0 100644
--- a/tests/wpt/web-platform-tests/css/selectors/of-type-selectors-ref.xhtml
+++ b/tests/wpt/web-platform-tests/css/selectors/of-type-selectors-ref.xhtml
@@ -26,5 +26,12 @@ div > *|* {
<p class="green">This line should have a green background.</p>
<p class="green">This line should have a green background.</p>
</div>
+<div>
+<p class="green">This line should have a green background.</p>
+<p class="yellow">This line should have a yellow background.</p>
+<p class="yellow">This line should have a yellow background.</p>
+<p class="green">This line should have a green background.</p>
+<p class="green">This line should have a green background.</p>
+</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/selectors/of-type-selectors.xhtml b/tests/wpt/web-platform-tests/css/selectors/of-type-selectors.xhtml
index 18fead9b1cc..73ec208b8f2 100644
--- a/tests/wpt/web-platform-tests/css/selectors/of-type-selectors.xhtml
+++ b/tests/wpt/web-platform-tests/css/selectors/of-type-selectors.xhtml
@@ -15,13 +15,23 @@ div > *|* {
border: thin solid;
margin: 1em;
}
-div > *|*:first-of-type {
+.first-of-type > *|*:first-of-type {
+ background: lime;
+}
+.nth-of-type > *|*:nth-of-type(1) {
background: lime;
}
</style>
</head>
<body>
-<div>
+<div class="first-of-type">
+<p>This line should have a green background.</p>
+<p>This line should have a yellow background.</p>
+<html:p>This line should have a yellow background.</html:p>
+<p xmlns="http://www.example.com/ns">This line should have a green background.</p>
+<p xmlns="">This line should have a green background.</p>
+</div>
+<div class="nth-of-type">
<p>This line should have a green background.</p>
<p>This line should have a yellow background.</p>
<html:p>This line should have a yellow background.</html:p>
diff --git a/tests/wpt/web-platform-tests/css/support/interpolation-testcommon.js b/tests/wpt/web-platform-tests/css/support/interpolation-testcommon.js
index 9bc71ff9d32..62f40790dbd 100644
--- a/tests/wpt/web-platform-tests/css/support/interpolation-testcommon.js
+++ b/tests/wpt/web-platform-tests/css/support/interpolation-testcommon.js
@@ -1,66 +1,320 @@
'use strict';
-function test_interpolation(settings, expectations) {
- // Returns a timing function that at 0.5 evaluates to progress.
- function timingFunction(progress) {
- if (progress === 0)
+(function() {
+ var interpolationTests = [];
+ var cssAnimationsData = {
+ sharedStyle: null,
+ nextID: 0,
+ };
+ var expectNoInterpolation = {};
+ var neutralKeyframe = {};
+ function isNeutralKeyframe(keyframe) {
+ return keyframe === neutralKeyframe;
+ }
+
+ // For all the CSS interpolation methods, we set the animation duration very
+ // very long so that any advancement in time that does happen is irrelevant
+ // in terms of the progress value. In particular, the animation duration is
+ // 2e9s which is ~63 years.
+ // We then set the delay to be *negative* half the duration, so we are
+ // immediately at the halfway point of the animation. Finally, we using an
+ // easing function that maps halfway (0.5) to whatever progress we actually
+ // want.
+ var cssAnimationsInterpolation = {
+ name: 'CSS Animations',
+ supportsProperty: function() {return true;},
+ supportsValue: function() {return true;},
+ setup: function() {},
+ nonInterpolationExpectations: function(from, to) {
+ return expectFlip(from, to, 0.5);
+ },
+ interpolate: function(property, from, to, at, target) {
+ var id = cssAnimationsData.nextID++;
+ if (!cssAnimationsData.sharedStyle) {
+ cssAnimationsData.sharedStyle = createElement(document.body, 'style');
+ }
+ cssAnimationsData.sharedStyle.textContent += '' +
+ '@keyframes animation' + id + ' {' +
+ (isNeutralKeyframe(from) ? '' : `from {${property}:${from};}`) +
+ (isNeutralKeyframe(to) ? '' : `to {${property}:${to};}`) +
+ '}';
+ target.style.animationName = 'animation' + id;
+ target.style.animationDuration = '2e9s';
+ target.style.animationDelay = '-1e9s';
+ target.style.animationTimingFunction = createEasing(at);
+ },
+ };
+
+ var cssTransitionsInterpolation = {
+ name: 'CSS Transitions',
+ supportsProperty: function() {return true;},
+ supportsValue: function() {return true;},
+ setup: function(property, from, target) {
+ target.style.setProperty(property, isNeutralKeyframe(from) ? '' : from);
+ },
+ nonInterpolationExpectations: function(from, to) {
+ return expectFlip(from, to, -Infinity);
+ },
+ interpolate: function(property, from, to, at, target) {
+ // Force a style recalc on target to set the 'from' value.
+ getComputedStyle(target).left;
+ target.style.transitionDuration = '2e9s';
+ target.style.transitionDelay = '-1e9s';
+ target.style.transitionTimingFunction = createEasing(at);
+ target.style.transitionProperty = property;
+ target.style.setProperty(property, isNeutralKeyframe(to) ? '' : to);
+ },
+ };
+
+ var cssTransitionAllInterpolation = {
+ name: 'CSS Transitions with transition: all',
+ // The 'all' value doesn't cover custom properties.
+ supportsProperty: function(property) {return property.indexOf('--') !== 0;},
+ supportsValue: function() {return true;},
+ setup: function(property, from, target) {
+ target.style.setProperty(property, isNeutralKeyframe(from) ? '' : from);
+ },
+ nonInterpolationExpectations: function(from, to) {
+ return expectFlip(from, to, -Infinity);
+ },
+ interpolate: function(property, from, to, at, target) {
+ // Force a style recalc on target to set the 'from' value.
+ getComputedStyle(target).left;
+ target.style.transitionDuration = '2e9s';
+ target.style.transitionDelay = '-1e9s';
+ target.style.transitionTimingFunction = createEasing(at);
+ target.style.transitionProperty = 'all';
+ target.style.setProperty(property, isNeutralKeyframe(to) ? '' : to);
+ },
+ };
+
+ var webAnimationsInterpolation = {
+ name: 'Web Animations',
+ supportsProperty: function(property) {return true;},
+ supportsValue: function(value) {return value !== '';},
+ setup: function() {},
+ nonInterpolationExpectations: function(from, to) {
+ return expectFlip(from, to, 0.5);
+ },
+ interpolate: function(property, from, to, at, target) {
+ this.interpolateComposite(property, from, 'replace', to, 'replace', at, target);
+ },
+ interpolateComposite: function(property, from, fromComposite, to, toComposite, at, target) {
+ // Convert standard properties to camelCase.
+ if (!property.startsWith('--')) {
+ for (var i = property.length - 2; i > 0; --i) {
+ if (property[i] === '-') {
+ property = property.substring(0, i) + property[i + 1].toUpperCase() + property.substring(i + 2);
+ }
+ }
+ if (property === 'offset')
+ property = 'cssOffset';
+ }
+ var keyframes = [];
+ if (!isNeutralKeyframe(from)) {
+ keyframes.push({
+ offset: 0,
+ composite: fromComposite,
+ [property]: from,
+ });
+ }
+ if (!isNeutralKeyframe(to)) {
+ keyframes.push({
+ offset: 1,
+ composite: toComposite,
+ [property]: to,
+ });
+ }
+ var animation = target.animate(keyframes, {
+ fill: 'forwards',
+ duration: 1,
+ easing: createEasing(at),
+ });
+ animation.pause();
+ animation.currentTime = 0.5;
+ },
+ };
+
+ function expectFlip(from, to, flipAt) {
+ return [-0.3, 0, 0.3, 0.5, 0.6, 1, 1.5].map(function(at) {
+ return {
+ at: at,
+ expect: at < flipAt ? from : to
+ };
+ });
+ }
+
+ // Constructs a timing function which produces 'y' at x = 0.5
+ function createEasing(y) {
+ if (y == 0) {
return 'steps(1, end)';
- if (progress === 1)
+ }
+ if (y == 1) {
return 'steps(1, start)';
- var y = (8 * progress - 1) / 6;
- return 'cubic-bezier(0, ' + y + ', 1, ' + y + ')';
+ }
+ if (y == 0.5) {
+ return 'steps(2, end)';
+ }
+ // Approximate using a bezier.
+ var b = (8 * y - 1) / 6;
+ return 'cubic-bezier(0, ' + b + ', 1, ' + b + ')';
+ }
+
+ function createElement(parent, tag, text) {
+ var element = document.createElement(tag || 'div');
+ element.textContent = text || '';
+ parent.appendChild(element);
+ return element;
+ }
+
+ function createTargetContainer(parent, className) {
+ var targetContainer = createElement(parent);
+ targetContainer.classList.add('container');
+ var template = document.querySelector('#target-template');
+ if (template) {
+ targetContainer.appendChild(template.content.cloneNode(true));
+ }
+ var target = targetContainer.querySelector('.target') || targetContainer;
+ target.classList.add('target', className);
+ target.parentElement.classList.add('parent');
+ targetContainer.target = target;
+ return targetContainer;
+ }
+
+ function roundNumbers(value) {
+ return value.
+ // Round numbers to two decimal places.
+ replace(/-?\d*\.\d+(e-?\d+)?/g, function(n) {
+ return (parseFloat(n).toFixed(2)).
+ replace(/\.\d+/, function(m) {
+ return m.replace(/0+$/, '');
+ }).
+ replace(/\.$/, '').
+ replace(/^-0$/, '0');
+ });
+ }
+
+ var anchor = document.createElement('a');
+ function sanitizeUrls(value) {
+ var matches = value.match(/url\("([^#][^\)]*)"\)/g);
+ if (matches !== null) {
+ for (var i = 0; i < matches.length; ++i) {
+ var url = /url\("([^#][^\)]*)"\)/g.exec(matches[i])[1];
+ anchor.href = url;
+ anchor.pathname = '...' + anchor.pathname.substring(anchor.pathname.lastIndexOf('/'));
+ value = value.replace(matches[i], 'url(' + anchor.href + ')');
+ }
+ }
+ return value;
+ }
+
+ function normalizeValue(value) {
+ return roundNumbers(sanitizeUrls(value)).
+ // Place whitespace between tokens.
+ replace(/([\w\d.]+|[^\s])/g, '$1 ').
+ replace(/\s+/g, ' ');
+ }
+
+ function stringify(text) {
+ if (!text.includes("'")) {
+ return `'${text}'`;
+ }
+ return `"${text.replace('"', '\\"')}"`;
+ }
+
+ function keyframeText(keyframe) {
+ return isNeutralKeyframe(keyframe) ? 'neutral' : `[${keyframe}]`;
+ }
+
+ function keyframeCode(keyframe) {
+ return isNeutralKeyframe(keyframe) ? 'neutralKeyframe' : `${stringify(keyframe)}`;
+ }
+
+ function createInterpolationTestTargets(interpolationMethod, interpolationMethodContainer, interpolationTest) {
+ var property = interpolationTest.options.property;
+ var from = interpolationTest.options.from;
+ var to = interpolationTest.options.to;
+ if ((interpolationTest.options.method && interpolationTest.options.method != interpolationMethod.name)
+ || !interpolationMethod.supportsProperty(property)
+ || !interpolationMethod.supportsValue(from)
+ || !interpolationMethod.supportsValue(to)) {
+ return;
+ }
+ var testText = `${interpolationMethod.name}: property <${property}> from ${keyframeText(from)} to ${keyframeText(to)}`;
+ var testContainer = createElement(interpolationMethodContainer, 'div');
+ createElement(testContainer);
+ var expectations = interpolationTest.expectations;
+ if (expectations === expectNoInterpolation) {
+ expectations = interpolationMethod.nonInterpolationExpectations(from, to);
+ }
+ return expectations.map(function(expectation) {
+ var actualTargetContainer = createTargetContainer(testContainer, 'actual');
+ var expectedTargetContainer = createTargetContainer(testContainer, 'expected');
+ if (!isNeutralKeyframe(expectation.expect)) {
+ expectedTargetContainer.target.style.setProperty(property, expectation.expect);
+ }
+ var target = actualTargetContainer.target;
+ interpolationMethod.setup(property, from, target);
+ target.interpolate = function() {
+ interpolationMethod.interpolate(property, from, to, expectation.at, target);
+ };
+ target.measure = function() {
+ var expectedValue = getComputedStyle(expectedTargetContainer.target).getPropertyValue(property);
+ test(function() {
+ if (from && from !== neutralKeyframe) {
+ assert_true(CSS.supports(property, from), '\'from\' value should be supported');
+ }
+ if (to && to !== neutralKeyframe) {
+ assert_true(CSS.supports(property, to), '\'to\' value should be supported');
+ }
+ if (typeof underlying !== 'undefined') {
+ assert_true(CSS.supports(property, underlying), '\'underlying\' value should be supported');
+ }
+
+ assert_equals(
+ normalizeValue(getComputedStyle(target).getPropertyValue(property)),
+ normalizeValue(expectedValue));
+ }, `${testText} at (${expectation.at}) should be [${sanitizeUrls(expectedValue)}]`);
+ };
+ return target;
+ });
+ }
+
+ function createTestTargets(interpolationMethods, interpolationTests, container) {
+ var targets = [];
+ for (var interpolationMethod of interpolationMethods) {
+ var interpolationMethodContainer = createElement(container);
+ for (var interpolationTest of interpolationTests) {
+ [].push.apply(targets, createInterpolationTestTargets(interpolationMethod, interpolationMethodContainer, interpolationTest));
+ }
+ }
+ return targets;
+ }
+
+ function test_no_interpolation(options) {
+ test_interpolation(options, expectNoInterpolation);
}
- test(function(){
- assert_true(CSS.supports(settings.property, settings.from), 'From value "' + settings.from + '" is supported by ' + settings.property);
- assert_true(CSS.supports(settings.property, settings.to), 'To value "' + settings.to + '" is supported by ' + settings.property);
- }, '"' + settings.from + '" and "' + settings.to + '" are valid ' + settings.property + ' values');
-
- for (var i = 0; i < expectations.length; ++i) {
- var progress = expectations[i].at;
- var expectation = expectations[i].expect;
- var animationId = 'anim' + i;
- var targetId = 'target' + i;
- var referenceId = 'reference' + i;
- test(function(){
- assert_true(CSS.supports(settings.property, expectation), 'Expectation value "' + expectation + '" is supported by ' + settings.property);
-
- var stylesheet = document.createElement('style');
- stylesheet.textContent =
- '#' + targetId + ' {\n' +
- ' animation: 2s ' + timingFunction(progress) + ' -1s paused ' + animationId + ';\n' +
- '}\n' +
- '@keyframes ' + animationId + ' {\n' +
- ' 0% { ' + settings.property + ': ' + settings.from + '; }\n' +
- ' 100% { ' + settings.property + ': ' + settings.to + '; }\n' +
- '}\n' +
- '#' + referenceId + ' {\n' +
- ' ' + settings.property + ': ' + expectation + ';\n' +
- '}\n';
- document.head.appendChild(stylesheet);
-
- var target = document.createElement('div');
- target.id = targetId;
- document.body.appendChild(target);
-
- var reference = document.createElement('div');
- reference.id = referenceId;
- document.body.appendChild(reference);
- reference.style = '';
-
- assert_equals(getComputedStyle(target)[settings.property], getComputedStyle(reference)[settings.property]);
- }, (settings.test_prefix ? settings.test_prefix : "") +
- 'Animation between "' + settings.from + '" and "' + settings.to +
- '" at progress ' + progress);
+ function test_interpolation(options, expectations) {
+ interpolationTests.push({options, expectations});
+ var interpolationMethods = [
+ cssTransitionsInterpolation,
+ cssTransitionAllInterpolation,
+ cssAnimationsInterpolation,
+ webAnimationsInterpolation,
+ ];
+ var container = createElement(document.body);
+ var targets = createTestTargets(interpolationMethods, interpolationTests, container);
+ // Separate interpolation and measurement into different phases to avoid O(n^2) of the number of targets.
+ for (var target of targets) {
+ target.interpolate();
+ }
+ for (var target of targets) {
+ target.measure();
+ }
+ container.remove();
+ interpolationTests = [];
}
-}
-
-function test_no_interpolation(settings) {
- var expectatFrom = [-1, 0, 0.4].map(function (progress) {
- return {at: progress, expect: settings.from};
- });
- var expectatTo = [0.6, 1, 2].map(function (progress) {
- return {at: progress, expect: settings.to};
- });
-
- test_interpolation(settings, expectatFrom.concat(expectatTo));
-}
+ window.test_interpolation = test_interpolation;
+ window.test_no_interpolation = test_no_interpolation;
+ window.neutralKeyframe = neutralKeyframe;
+})();
diff --git a/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html
new file mode 100644
index 00000000000..baa866d0a1c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <script src='/resources/testharness.js'></script>
+ <script src='/resources/testharnessreport.js'></script>
+ </head>
+ <body>
+ <img src="./oversized.jpg" alt="oversized image" width="50" height="50">
+ <script>
+ async_test(t => {
+ new ReportingObserver(
+ t.step_func_done((reports, _) => {
+ assert_greater_than(reports.length, 0);
+ const report = reports[0];
+ assert_equals(report.type, "feature-policy-violation");
+ assert_equals(report.url, document.location.href);
+ const rbody = report.body;
+ assert_equals(rbody.featureId, "oversized-images");
+ assert_equals(rbody.sourceFile, document.getElementsByTagName('img')[0].src);
+ assert_equals(rbody.lineNumber, null);
+ assert_equals(rbody.columnNumber, null);
+ }),
+ {types: ['feature-policy-violation'], buffered: true}
+ ).observe();
+ },
+ "oversized-images Report Format")
+ </script>
+ </body>
+</html>
+
diff --git a/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html.headers b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html.headers
new file mode 100644
index 00000000000..02bcbb92a86
--- /dev/null
+++ b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized-images-reporting.html.headers
@@ -0,0 +1 @@
+Feature-Policy: oversized-images 'none'
diff --git a/tests/wpt/web-platform-tests/feature-policy/reporting/oversized.jpg b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized.jpg
new file mode 100644
index 00000000000..497ed770bfb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/feature-policy/reporting/oversized.jpg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/feature-policy/reporting/unoptimized-lossy-images-reporting.html b/tests/wpt/web-platform-tests/feature-policy/reporting/unoptimized-lossy-images-reporting.html
index 62a5469f8ca..8dcf110dd2b 100644
--- a/tests/wpt/web-platform-tests/feature-policy/reporting/unoptimized-lossy-images-reporting.html
+++ b/tests/wpt/web-platform-tests/feature-policy/reporting/unoptimized-lossy-images-reporting.html
@@ -13,6 +13,9 @@ var check_report_format = (reports, observer) => {
assert_equals(report.url, document.location.href);
assert_equals(report.body.featureId, "unoptimized-lossy-images");
assert_equals(report.body.disposition, "enforce");
+ assert_equals(report.body.sourceFile, document.getElementsByTagName('img')[0].src);
+ assert_equals(report.body.lineNumber, null);
+ assert_equals(report.body.columnNumber, null);
};
async_test(t => {
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html
index 717122b4b2f..21320a61b2e 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coep-navigate-popup.https.html
@@ -1,5 +1,6 @@
<!doctype html>
<title>Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy: a navigating popup</title>
+<meta content=timeout value=long>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src="/common/get-host-info.sub.js"></script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js
index b60093f1c62..c5d3c6c1084 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/resources/common.js
@@ -29,7 +29,7 @@ function run_coop_tests(documentCOOPValueTitle, testArray) {
for (const test of tests) {
async_test(t => {
coop_test(t, test[0], test[1],
- `${mainTest}_to_${test[0].name}_${test[1].replace(/ /g,"-")}`,
+ `${documentCOOPValueTitle}_to_${test[0].name}_${test[1].replace(/ /g,"-")}`,
test[2]);
}, `${documentCOOPValueTitle} document opening popup to ${test[0].origin} with COOP: "${test[1]}"`);
}
diff --git a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html
deleted file mode 100644
index 5f03a761dc8..00000000000
--- a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-2.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!doctype html>
-<title>Select block size when line-height is specified</title>
-<!--
- FIXME: This is just a copy of select-1-block-size-001.html, but if I move the
- <link rel="match"> in this file to select-1-block-size-001-ref.html (which is
- the "right" way to do this), fuzzy annotations do not work.
--->
-<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
-<link rel="author" title="Mozilla" href="https://mozilla.org">
-<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1571764">
-<link rel="match" href="select-1-block-size-001-ref-2.html">
-<style>
-select {
- -webkit-appearance: none;
- appearance: none;
-
- background: black;
- color: black;
-
- line-height: 100px;
- width: 100px;
-
- border: 0;
- border-radius: 0;
- padding: 0;
-}
-</style>
-<select></select>
-<select><option>A</option></select>
diff --git a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html
index ad504846dfa..3834281dd83 100644
--- a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html
+++ b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-block-size-001-ref.html
@@ -3,6 +3,7 @@
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="author" title="Mozilla" href="https://mozilla.org">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1571764">
+<link rel="match" href="select-1-block-size-001-ref-2.html">
<style>
button {
-webkit-appearance: none;
diff --git a/tests/wpt/web-platform-tests/infrastructure/assumptions/document-fonts-ready.html b/tests/wpt/web-platform-tests/infrastructure/assumptions/document-fonts-ready.html
new file mode 100644
index 00000000000..9fb0137025b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/infrastructure/assumptions/document-fonts-ready.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML>
+<title>document.fonts.ready resolves after layout depending on loaded fonts</title>
+<link rel="help" href="https://drafts.csswg.org/css-font-loading/#fontfaceset-pending-on-the-environment">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+ #foo {
+ font: 100px/1 Ahem;
+ }
+</style>
+<div id="log"></div>
+<span id="foo">X</span>
+<script>
+ // The purpose of this test is to ensure that testharness.js tests can use
+ // `document.fonts.ready` to wait for a web font to load, without having to
+ // wait for the window load event before or requestAnimationFrame after.
+ //
+ // The spec says that a FontFaceSet is "pending on the environment" if "the
+ // document has pending layout operations which might cause the user agent to
+ // request a font, or which depend on recently-loaded fonts", and both are
+ // assumed to hold true in this test.
+ async_test(t => {
+ assert_equals(document.fonts.size, 1, 'one font is pending');
+ document.fonts.ready.then(t.step_func_done(() => {
+ const span = document.getElementById('foo');
+ const rect = span.getBoundingClientRect();
+ // If Ahem has loaded, the X will be 100px wide.
+ assert_equals(rect.width, 100, 'span is 100px wide');
+ }));
+ });
+</script>
diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl
index e92533a226e..87b079c00ab 100644
--- a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl
+++ b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl
@@ -40,7 +40,6 @@ dictionary RTCCodecStats : RTCStats {
unsigned long clockRate;
unsigned long channels;
DOMString sdpFmtpLine;
- DOMString implementation;
};
enum RTCCodecType {
@@ -104,6 +103,7 @@ dictionary RTCInboundRtpStreamStats : RTCReceivedRtpStreamStats {
unsigned long framesDropped;
unsigned long partialFramesLost;
unsigned long fullFramesLost;
+ DOMString decoderImplementation;
};
dictionary RTCRemoteInboundRtpStreamStats : RTCReceivedRtpStreamStats {
@@ -150,6 +150,7 @@ dictionary RTCOutboundRtpStreamStats : RTCSentRtpStreamStats {
unsigned long firCount;
unsigned long pliCount;
unsigned long sliCount;
+ DOMString encoderImplementation;
};
enum RTCQualityLimitationReason {
@@ -343,6 +344,10 @@ dictionary RTCStunServerConnectionStats : RTCStats {
double totalRoundTripTime;
};
+partial dictionary RTCCodecStats {
+ DOMString implementation;
+};
+
partial dictionary RTCIceCandidateStats {
boolean isRemote;
};
diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl
index ec4b76d9ba8..3febf83ebe3 100644
--- a/tests/wpt/web-platform-tests/interfaces/webxr.idl
+++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl
@@ -22,14 +22,8 @@ enum XRSessionMode {
};
dictionary XRSessionInit {
- sequence<DOMString> requiredFeatures;
- sequence<DOMString> optionalFeatures;
-};
-
-enum XREnvironmentBlendMode {
- "opaque",
- "additive",
- "alpha-blend",
+ sequence<any> requiredFeatures;
+ sequence<any> optionalFeatures;
};
enum XRVisibilityState {
@@ -40,7 +34,6 @@ enum XRVisibilityState {
[SecureContext, Exposed=Window] interface XRSession : EventTarget {
// Attributes
- readonly attribute XREnvironmentBlendMode environmentBlendMode;
readonly attribute XRVisibilityState visibilityState;
[SameObject] readonly attribute XRRenderState renderState;
[SameObject] readonly attribute XRInputSourceArray inputSources;
diff --git a/tests/wpt/web-platform-tests/intersection-observer/cross-origin-iframe.html b/tests/wpt/web-platform-tests/intersection-observer/cross-origin-iframe.sub.html
index bdd6d3f529a..d444237f6b9 100644
--- a/tests/wpt/web-platform-tests/intersection-observer/cross-origin-iframe.html
+++ b/tests/wpt/web-platform-tests/intersection-observer/cross-origin-iframe.sub.html
@@ -21,7 +21,7 @@ iframe {
</style>
<div class="spacer"></div>
-<iframe src="resources/cross-origin-subframe.html" sandbox="allow-scripts"></iframe>
+<iframe src="http://{{hosts[alt][]}}:{{ports[http][0]}}/intersection-observer/resources/cross-origin-subframe.html" sandbox="allow-scripts"></iframe>
<div class="spacer"></div>
<script>
diff --git a/tests/wpt/web-platform-tests/intersection-observer/resources/cross-origin-subframe.html b/tests/wpt/web-platform-tests/intersection-observer/resources/cross-origin-subframe.html
index 0cc117cb3a6..4305ed1719b 100644
--- a/tests/wpt/web-platform-tests/intersection-observer/resources/cross-origin-subframe.html
+++ b/tests/wpt/web-platform-tests/intersection-observer/resources/cross-origin-subframe.html
@@ -1,12 +1,14 @@
<!DOCTYPE html>
<div style="height: 200px; width: 100px;"></div>
<div id="target" style="background-color: green; width:100px; height:100px"></div>
+<div id="empty-target" style="width: 100px"></div>
<div style="height: 200px; width: 100px;"></div>
<script>
var port;
var entries = [];
-var target = document.getElementById('target');
+var target = document.getElementById("target");
+var emptyTarget = document.getElementById("empty-target");
var scroller = document.scrollingElement;
var nextStep;
@@ -26,19 +28,11 @@ function entryToJson(entry) {
boundingClientRect: clientRectToJson(entry.boundingClientRect),
intersectionRect: clientRectToJson(entry.intersectionRect),
rootBounds: clientRectToJson(entry.rootBounds),
+ isIntersecting: entry.isIntersecting,
target: entry.target.id
};
}
-function coordinatesToClientRectJson(top, right, bottom, left) {
- return {
- top: top,
- right: right,
- bottom: bottom,
- left: left
- };
-}
-
// Note that we never use RAF in this code, because this frame might get render-throttled.
// Instead of RAF-ing, we just post an empty message to the parent window, which will
// RAF when it is received, and then send us a message to cause the next step to run.
@@ -48,15 +42,23 @@ var observer = new IntersectionObserver(function(changes) {
entries = entries.concat(changes)
}, { rootMargin: "7px" });
observer.observe(target);
+observer.observe(emptyTarget);
function step0() {
entries = entries.concat(observer.takeRecords());
nextStep = step1;
var expected = [{
- boundingClientRect: coordinatesToClientRectJson(8, 208, 108, 308),
- intersectionRect: coordinatesToClientRectJson(0, 0, 0, 0),
+ boundingClientRect: [8, 108, 208, 308],
+ intersectionRect: [0, 0, 0, 0],
rootBounds: "null",
+ isIntersecting: false,
target: target.id
+ }, {
+ boundingClientRect: [8, 108, 308, 308],
+ intersectionRect: [0, 0, 0, 0],
+ rootBounds: "null",
+ isIntersecting: false,
+ target: emptyTarget.id
}];
port.postMessage({
actual: entries.map(entryToJson),
@@ -83,10 +85,17 @@ function step1() {
function step2() {
entries = entries.concat(observer.takeRecords());
var expected = [{
- boundingClientRect: coordinatesToClientRectJson(-42, 108, 58, 8),
- intersectionRect: coordinatesToClientRectJson(0, 108, 58, 8),
+ boundingClientRect: [8, 108, -42, 58],
+ intersectionRect: [8, 108, 0, 58],
rootBounds: "null",
+ isIntersecting: true,
target: target.id
+ }, {
+ boundingClientRect: [8, 108, 58, 58],
+ intersectionRect: [8, 108, 58, 58],
+ rootBounds: "null",
+ isIntersecting: true,
+ target: emptyTarget.id
}];
port.postMessage({
actual: entries.map(entryToJson),
@@ -101,10 +110,17 @@ function step2() {
function step3() {
entries = entries.concat(observer.takeRecords());
var expected = [{
- boundingClientRect: coordinatesToClientRectJson(-42, 108, 58, 8),
- intersectionRect: coordinatesToClientRectJson(0, 0, 0, 0),
+ boundingClientRect: [8, 108, -42, 58],
+ intersectionRect: [0, 0, 0, 0],
rootBounds: "null",
+ isIntersecting: false,
target: target.id
+ }, {
+ boundingClientRect: [8, 108, 58, 58],
+ intersectionRect: [0, 0, 0, 0],
+ rootBounds: "null",
+ isIntersecting: false,
+ target: emptyTarget.id
}];
port.postMessage({
actual: entries.map(entryToJson),
diff --git a/tests/wpt/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js b/tests/wpt/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js
index 44f794b0883..7db26d72df5 100644
--- a/tests/wpt/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js
+++ b/tests/wpt/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js
@@ -178,6 +178,7 @@ function checkJsonEntry(actual, expected) {
assert_equals(expected.rootBounds, 'null', 'rootBounds is null');
else
checkRect(actual.rootBounds, expected.rootBounds, 'entry.rootBounds');
+ assert_equals(actual.isIntersecting, expected.isIntersecting);
assert_equals(actual.target, expected.target);
}
diff --git a/tests/wpt/web-platform-tests/performance-timeline/not-clonable.html b/tests/wpt/web-platform-tests/performance-timeline/not-clonable.html
new file mode 100644
index 00000000000..d651776e5f4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/performance-timeline/not-clonable.html
@@ -0,0 +1,10 @@
+<!doctype html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script>
+ const t = async_test("Test that a postMessage of a performance entry fails");
+ addEventListener("message", t.step_func_done(e => {
+ assert_equals(e.data, "PASS");
+ }));
+</script>
+<iframe src="resources/postmessage-entry.html"></iframe>
diff --git a/tests/wpt/web-platform-tests/performance-timeline/resources/postmessage-entry.html b/tests/wpt/web-platform-tests/performance-timeline/resources/postmessage-entry.html
new file mode 100644
index 00000000000..ef5be73395b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/performance-timeline/resources/postmessage-entry.html
@@ -0,0 +1,17 @@
+<!doctype html>
+<script>
+addEventListener("load", () => {
+ const entry = performance.getEntriesByType("navigation")[0];
+ try {
+ window.top.postMessage(entry, "*");
+ } catch(error) {
+ if (error.name == "DataCloneError") {
+ window.top.postMessage("PASS", "*");
+ } else {
+ window.top.postMessage("FAIL - Wrong exception name: " + error.name, "*");
+ }
+ }
+ window.top.postMessage("FAIL - No exception thrown", "*");
+});
+
+</script>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html
index 204638a44af..302a214ac61 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html
@@ -7,6 +7,8 @@
<body>
<script>
+// ========== Worker main resource interception tests ==========
+
async function setup_service_worker(t, service_worker_url, scope) {
const r = await service_worker_unregister_and_register(
t, service_worker_url, scope);
@@ -14,8 +16,6 @@ async function setup_service_worker(t, service_worker_url, scope) {
await wait_for_state(t, r.installing, 'activated');
}
-// ========== Worker main resource interception tests ==========
-
promise_test(async t => {
const worker_url = 'resources/dummy-synthesized-worker.js?dedicated';
const service_worker_url = 'resources/dummy-worker-interceptor.js';
@@ -126,6 +126,15 @@ promise_test(async t => {
// ========== Worker subresource interception tests ==========
+const scope_for_subresource_interception = 'resources/load_worker.js';
+
+promise_test(async t => {
+ const service_worker_url = 'resources/worker-load-interceptor.js';
+ const r = await service_worker_unregister_and_register(
+ t, service_worker_url, scope_for_subresource_interception);
+ await wait_for_state(t, r.installing, 'activated');
+}, 'Register a service worker for worker subresource interception tests.');
+
// Do not call this function multiple times without waiting for the promise
// resolution because this sets new event handlers on |worker|.
// TODO(nhiroki): To isolate multiple function calls, use MessagePort instead of
@@ -147,58 +156,33 @@ async function request_on_worker(worker, resource_type) {
assert_equals(data, 'This load was successfully intercepted.');
}
-// TODO(nhiroki): For optimization, register a service worker just once in an
-// initial promise test.
+async function subresource_test(worker) {
+ await request_on_worker(worker, 'xhr');
+ await request_on_worker(worker, 'fetch');
+ await request_on_worker(worker, 'importScripts');
+}
-function dedicated_worker_subresource_test(worker_url, scope, description) {
- promise_test(async t => {
- const service_worker_url = 'resources/worker-load-interceptor.js';
- await setup_service_worker(t, service_worker_url, scope);
- const worker = new Worker(worker_url);
+promise_test(async t => {
+ await subresource_test(new Worker('resources/load_worker.js'));
+}, 'Requests on a dedicated worker controlled by a service worker.');
- await request_on_worker(worker, 'xhr');
- await request_on_worker(worker, 'fetch');
- await request_on_worker(worker, 'importScripts');
- }, description);
-}
+promise_test(async t => {
+ await subresource_test(new SharedWorker('resources/load_worker.js'));
+}, 'Requests on a shared worker controlled by a service worker.');
-function shared_worker_subresource_test(worker_url, scope, description) {
- promise_test(async t => {
- const service_worker_url = 'resources/worker-load-interceptor.js';
- await setup_service_worker(t, service_worker_url, scope);
- const worker = new SharedWorker(worker_url);
+promise_test(async t => {
+ await subresource_test(new Worker('resources/nested_load_worker.js'));
+}, 'Requests on a dedicated worker nested in a dedicated worker and ' +
+ 'controlled by a service worker');
- await request_on_worker(worker, 'xhr');
- await request_on_worker(worker, 'fetch');
- await request_on_worker(worker, 'importScripts');
- }, description);
-}
+promise_test(async t => {
+ await subresource_test(new SharedWorker('resources/nested_load_worker.js'));
+}, 'Requests on a dedicated worker nested in a shared worker and controlled ' +
+ 'by a service worker');
-dedicated_worker_subresource_test(
- 'resources/load_worker.js?dedicated',
- 'resources/load_worker.js?dedicated',
- 'Requests on a dedicated worker controlled by a service worker.');
-
-shared_worker_subresource_test(
- 'resources/load_worker.js?shared',
- 'resources/load_worker.js?shared',
- 'Requests on a shared worker controlled by a service worker.');
-
-dedicated_worker_subresource_test(
- 'resources/nested_load_worker.js?dedicated',
- // TODO(nhiroki): This scope is wrong. This should be
- // 'resources/load_worker.js?dedicated'.
- 'resources/nested_load_worker.js?dedicated',
- 'Requests on a dedicated worker nested in a dedicated worker and ' +
- 'controlled by a service worker');
-
-shared_worker_subresource_test(
- 'resources/nested_load_worker.js?shared',
- // TODO(nhiroki): This scope is wrong. This should be
- // 'resources/load_worker.js?shared'.
- 'resources/nested_load_worker.js?shared',
- 'Requests on a dedicated worker nested in a shared worker and controlled ' +
- 'by a service worker');
+promise_test(async t => {
+ await service_worker_unregister(t, scope_for_subresource_interception);
+}, 'Unregister a service worker for subresource interception tests.');
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/shadow-dom/directionality-002-ref.html b/tests/wpt/web-platform-tests/shadow-dom/directionality-002-ref.html
new file mode 100644
index 00000000000..454b2fecabc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/shadow-dom/directionality-002-ref.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<title>CSS Test Reference</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<body dir="rtl">
+<div style="width: 100px; height: 100px; background: green"></div>
diff --git a/tests/wpt/web-platform-tests/shadow-dom/directionality-002.tentative.html b/tests/wpt/web-platform-tests/shadow-dom/directionality-002.tentative.html
new file mode 100644
index 00000000000..7ff036194ba
--- /dev/null
+++ b/tests/wpt/web-platform-tests/shadow-dom/directionality-002.tentative.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<title>Directionality is properly computed for slotted children</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1562425">
+<link rel="match" href="directionality-002-ref.html">
+<style>
+ .slotted {
+ width: 100px;
+ height: 100px;
+ background: red;
+ }
+ .slotted:dir(rtl) {
+ background: green;
+ }
+</style>
+<body dir="rtl">
+<script>
+ let root = document.createElement("div")
+ let slotted = document.createElement("div");
+ slotted.className = "slotted";
+ root.appendChild(slotted);
+ root.attachShadow({ mode: "open" }).appendChild(document.createElement("slot"));
+ document.body.appendChild(root);
+</script>
diff --git a/tests/wpt/web-platform-tests/svg/animations/correct-events-for-short-animations-with-syncbases.html b/tests/wpt/web-platform-tests/svg/animations/correct-events-for-short-animations-with-syncbases.html
new file mode 100644
index 00000000000..19e7eef8c1c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/animations/correct-events-for-short-animations-with-syncbases.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+
+<meta charset="utf-8">
+<title>Correct events for short animations with syncbases</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<link rel="author" title="Edvard Thörnros" href="mailto:edvardt@opera.com">
+<link rel="help" href="https://svgwg.org/specs/animations/#TimingAttributes">
+
+<svg viewBox="0 0 250 50" xmlns="http://www.w3.org/2000/svg">
+ <g id="a" opacity="0">
+ <animate attributeName="opacity" from="0" to="1" begin="0ms;last.end+100ms" dur="10ms" fill="freeze"
+ id="first"/>
+ <animate attributeName="opacity" from="1" to="0" begin="last.end" dur="10ms" fill="freeze"/>
+ <rect x="0" y="0" width="50" height="50" fill="#AA0"/>
+ </g>
+ <g id="b" opacity="0">
+ <animate attributeName="opacity" from="1" to="1" begin="first.end+10ms" dur="10ms" fill="freeze"
+ id="last" onend="onend_filling()"/>
+ <animate attributeName="opacity" from="1" to="0" begin="last.end+1ms" dur="10ms" fill="freeze"
+ onbegin="onend_clearing()"/>
+ <rect x="50" y="0" width="50" height="50" fill="#AA0"/>
+ </g>
+</svg>
+<script>
+ let onend_clearing = null;
+ let onend_filling = null;
+
+ async_test(t => {
+ let svg = document.querySelector("svg");
+ // Deliberate no a
+ let b = document.querySelector("#b");
+ let passed = false;
+ let triggers = 0;
+ let filling_steps = 0;
+ let runs = 3; // Issue 379751 broke after 2 cycles, hence this is a 3.
+ onend_filling = t.step_func(() => {
+ filling_steps++;
+ if (filling_steps < (runs + 1)) return;
+ svg.pauseAnimations();
+ assert_unreached("Fired too many onend events.");
+ });
+ onend_clearing = t.step_func(() => {
+ triggers++;
+ if (triggers != runs) return;
+ svg.pauseAnimations();
+ // We don't check the first element, since it might have started fading in
+ assert_not_equals(window.getComputedStyle(b, null).opacity, "1");
+ t.done();
+ });
+ });
+</script>
diff --git a/tests/wpt/web-platform-tests/svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html b/tests/wpt/web-platform-tests/svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html
new file mode 100644
index 00000000000..56f67dc5ed1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/animations/scripted/paced-value-animation-overwrites-keyTimes.html
@@ -0,0 +1,37 @@
+<!doctype html>
+<title>Paced value animation doesn't overwrite keyTimes</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<meta charset="utf-8">
+<link rel="author" title="Edvard Thörnros" href="mailto:edvardt@opera.com">
+<link rel="help" href="https://www.w3.org/TR/SMIL20/animation.html#animationNS-animateMotionElement">
+<link rel="bug" href="https://bugs.chromium.org/p/chromium/issues/detail?id=231525&hotlist_id=5524&sort=%20rank%20-ID">
+
+<svg id="svg" xmlns="http://www.w3.org/2000/svg" width="500" height="500">
+ <rect x="151" y="1" width="98" height="98" fill="red"/>
+ <rect id="rect" x="0" y="0" width="100" height="100" fill="green">
+ <animate id="animate1" attributeName="x" dur="10s" calcMode="paced" values="100; 150; 200;" keyTimes="0; 0.2; 1"/>
+ </rect>
+</svg>
+
+<script>
+ async_test(function(t) {
+ window.onload = t.step_func(function() {
+ let svg = document.getElementById('svg');
+ let animate1 = document.getElementById('animate1');
+ let rect = document.getElementById('rect');
+ t.step_timeout(function() {
+ // animate1's keyTimes should not be affected by starting with calcMode=paced
+ animate1.setAttribute('calcMode', 'linear');
+ svg.pauseAnimations();
+ svg.setCurrentTime(2);
+ window.requestAnimationFrame(t.step_func(function() {
+ window.requestAnimationFrame(t.step_func_done(function() {
+ assert_approx_equals(rect.x.animVal.value, 150, 5);
+ }));
+ }));
+ }, 10);
+ });
+ });
+</script>
diff --git a/tests/wpt/web-platform-tests/svg/text/parsing/text-anchor-computed.svg b/tests/wpt/web-platform-tests/svg/text/parsing/text-anchor-computed.svg
new file mode 100644
index 00000000000..e11b23fc231
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/text/parsing/text-anchor-computed.svg
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg"
+ xmlns:h="http://www.w3.org/1999/xhtml"
+ width="800px" height="800px">
+ <title>SVG Text: getComputedStyle().textAnchor</title>
+ <metadata>
+ <h:link rel="help" href="https://svgwg.org/svg2-draft/text.html#TextAnchorProperty"/>
+ <h:meta name="assert" content="text-anchor computed value is the specified keyword."/>
+ </metadata>
+ <text id="target"></text>
+ <h:script src="/resources/testharness.js"/>
+ <h:script src="/resources/testharnessreport.js"/>
+ <h:script src="/css/support/computed-testcommon.js"/>
+ <script><![CDATA[
+
+test_computed_value("text-anchor", "start");
+test_computed_value("text-anchor", "middle");
+test_computed_value("text-anchor", "end");
+
+ ]]></script>
+</svg>
diff --git a/tests/wpt/web-platform-tests/tools/ci/tests/test_update_pr_preview.py b/tests/wpt/web-platform-tests/tools/ci/tests/test_update_pr_preview.py
index 3202a1a2df6..056add73a92 100644
--- a/tests/wpt/web-platform-tests/tools/ci/tests/test_update_pr_preview.py
+++ b/tests/wpt/web-platform-tests/tools/ci/tests/test_update_pr_preview.py
@@ -6,12 +6,9 @@ except ImportError:
import json
import os
import subprocess
-import sys
import tempfile
import threading
-import pytest
-
subject = os.path.join(
os.path.dirname(os.path.abspath(__file__)), '..', 'update_pr_preview.py'
)
@@ -74,7 +71,12 @@ def assert_fail(returncode):
def run(event_data, responses=None):
- event_data_file = tempfile.mkstemp()[1]
+ fd, event_data_file = tempfile.mkstemp(text=True)
+ handle = os.fdopen(fd, 'w')
+ try:
+ json.dump(event_data, handle)
+ finally:
+ handle.close()
env = {
'GITHUB_EVENT_PATH': event_data_file,
'GITHUB_REPOSITORY': 'test-org/test-repo'
@@ -85,9 +87,6 @@ def run(event_data, responses=None):
threading.Thread(target=lambda: server.serve_forever()).start()
try:
- with open(event_data_file, 'w') as handle:
- json.dump(event_data, handle)
-
child = subprocess.Popen(
['python', subject, 'http://{}:{}'.format(test_host, test_port)],
env=env
@@ -174,8 +173,6 @@ def default_data(action):
}
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_close_active_with_label():
event_data = default_data('closed')
event_data['pull_request']['closed_at'] = '2019-07-05'
@@ -191,8 +188,6 @@ def test_close_active_with_label():
assert Requests.delete_ref_labeled not in requests
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_close_active_with_label_error():
event_data = default_data('closed')
event_data['pull_request']['closed_at'] = '2019-07-05'
@@ -208,8 +203,6 @@ def test_close_active_with_label_error():
assert_fail(returncode)
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_close_active_without_label():
event_data = default_data('closed')
event_data['pull_request']['closed_at'] = '2019-07-05'
@@ -220,8 +213,6 @@ def test_close_active_without_label():
assert [Requests.delete_ref_open] == requests
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_open_with_label():
event_data = default_data('opened')
event_data['pull_request']['labels'].append(
@@ -235,8 +226,6 @@ def test_open_with_label():
assert Requests.update_ref_labeled in requests
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_open_without_label_for_collaborator():
event_data = default_data('opened')
responses = {
@@ -253,8 +242,6 @@ def test_open_without_label_for_collaborator():
assert Requests.create_ref_labeled in requests
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_open_without_label_for_non_collaborator():
event_data = default_data('opened')
responses = {
@@ -267,8 +254,6 @@ def test_open_without_label_for_non_collaborator():
assert [Requests.read_collaborator] == requests
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_add_unrelated_label():
event_data = default_data('labeled')
event_data['label'] = {'name': 'foobar'}
@@ -280,8 +265,6 @@ def test_add_unrelated_label():
assert len(requests) == 0
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_add_active_label():
event_data = default_data('labeled')
event_data['label'] = {'name': 'pull-request-has-preview'}
@@ -300,8 +283,6 @@ def test_add_active_label():
assert Requests.create_ref_labeled in requests
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_add_active_label_to_closed():
event_data = default_data('labeled')
event_data['pull_request']['closed_at'] = '2019-07-05'
@@ -321,8 +302,6 @@ def test_add_active_label_to_closed():
assert Requests.create_ref_labeled in requests
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_remove_unrelated_label():
event_data = default_data('unlabeled')
event_data['label'] = {'name': 'foobar'}
@@ -333,8 +312,6 @@ def test_remove_unrelated_label():
assert len(requests) == 0
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_remove_active_label():
event_data = default_data('unlabeled')
event_data['label'] = {'name': 'pull-request-has-preview'}
@@ -349,8 +326,6 @@ def test_remove_active_label():
assert Requests.delete_ref_open not in requests
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_remove_active_label_from_closed():
event_data = default_data('unlabeled')
event_data['pull_request']['closed_at'] = '2019-07-05'
@@ -366,8 +341,6 @@ def test_remove_active_label_from_closed():
assert Requests.delete_ref_open not in requests
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_synchronize_without_label():
event_data = default_data('synchronize')
@@ -377,8 +350,6 @@ def test_synchronize_without_label():
assert len(requests) == 0
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_synchronize_with_label():
event_data = default_data('synchronize')
event_data['pull_request']['labels'].append(
@@ -392,8 +363,6 @@ def test_synchronize_with_label():
assert Requests.update_ref_labeled in requests
-@pytest.mark.xfail(sys.platform == "win32",
- reason="https://github.com/web-platform-tests/wpt/issues/18255")
def test_unrecognized_action():
event_data = default_data('assigned')
diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html
index 5be4571493a..24d5046f483 100644
--- a/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html
+++ b/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html
@@ -23,9 +23,13 @@
assert_equals(message.records.length, 1, 'one text record');
assert_equals(message.records[0].recordType, 'text', 'messageType');
assert_equals(message.records[0].mediaType, 'text/plain', 'mediaType');
- assert_true(typeof message.records[0].data() === 'string');
- assert_equals(message.records[0].data(), test_text_data,
- 'data() contains the same text content');
+ assert_true(typeof message.records[0].toText() === 'string');
+ assert_equals(message.records[0].toText(), test_text_data,
+ 'toText() contains the same text content');
+ assert_equals(message.records[0].toArrayBuffer(), null,
+ 'toArrayBuffer() returns null');
+ assert_equals(message.records[0].toJSON(), undefined,
+ 'toJSON() returns undefined');
}, 'NDEFMessage constructor with a text record');
</script>
diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html
index e2e2c455072..2264815780b 100644
--- a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html
+++ b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html
@@ -15,7 +15,9 @@
const record = new NDEFRecord(null);
assert_equals(record.recordType.length, 0, 'empty recordType');
assert_equals(record.mediaType.length, 0, 'empty mediaType');
- assert_equals(record.data(), null, 'null data');
+ assert_equals(record.toText().length, 0, 'toText() gets an empty string');
+ assert_equals(record.toArrayBuffer(), null, 'toArrayBuffer() returns null');
+ assert_equals(record.toJSON(), undefined, 'toJSON() returns undefined');
}, 'NDEFRecord constructor with null init dict');
test(() => {
@@ -27,27 +29,28 @@
assert_equals(record.recordType, 'opaque', 'recordType');
assert_equals(record.mediaType, 'application/octet-stream', 'mediaType');
- const data_1 = record.data();
+ const data_1 = record.toArrayBuffer();
assert_true(data_1 instanceof ArrayBuffer);
- assert_not_equals(data_1, buffer, 'data() returns a new object');
+ assert_not_equals(data_1, buffer, 'toArrayBuffer() returns a new object');
assert_array_equals(new Uint8Array(data_1), original_data,
- 'data() has the same content with the original buffer');
+ 'toArrayBuffer() has the same content with the original buffer');
- const data_2 = record.data();
+ const data_2 = record.toArrayBuffer();
assert_true(data_2 instanceof ArrayBuffer);
- assert_not_equals(data_2, data_1, 'data() again returns another new object');
+ assert_not_equals(data_2, data_1,
+ 'toArrayBuffer() again returns another new object');
assert_array_equals(new Uint8Array(data_2), original_data,
- 'data() has the same content with the original buffer');
+ 'toArrayBuffer() has the same content with the original buffer');
buffer_view.set([4, 3, 2, 1]);
- const data_3 = record.data();
+ const data_3 = record.toArrayBuffer();
assert_true(data_3 instanceof ArrayBuffer);
assert_array_equals(new Uint8Array(data_1), original_data,
- 'Modifying the original buffer does not affect data() content');
+ 'Modifying the original buffer does not affect toArrayBuffer() content');
assert_array_equals(new Uint8Array(data_2), original_data,
- 'Modifying the original buffer does not affect data() content');
+ 'Modifying the original buffer does not affect toArrayBuffer() content');
assert_array_equals(new Uint8Array(data_3), original_data,
- 'Modifying the original buffer does not affect data() content');
+ 'Modifying the original buffer does not affect toArrayBuffer() content');
}, 'NDEFRecord constructor with opaque data');
test(() => {
@@ -55,17 +58,18 @@
assert_equals(record.recordType, 'json', 'recordType');
assert_equals(record.mediaType, 'application/json', 'mediaType');
- const data_1 = record.data();
+ const data_1 = record.toJSON();
assert_true(typeof data_1 === 'object');
- assert_not_equals(data_1, test_json_data, 'data() returns a new object');
+ assert_not_equals(data_1, test_json_data, 'toJSON() returns a new object');
assert_object_equals(data_1, test_json_data,
- 'data() has the same content with the original dictionary');
+ 'toJSON() has the same content with the original dictionary');
- const data_2 = record.data();
+ const data_2 = record.toJSON();
assert_true(typeof data_2 === 'object');
- assert_not_equals(data_2, data_1, 'data() again returns another new object');
+ assert_not_equals(data_2, data_1,
+ 'toJSON() again returns another new object');
assert_object_equals(data_2, test_json_data,
- 'data() has the same content with the original dictionary');
+ 'toJSON() has the same content with the original dictionary');
}, 'NDEFRecord constructor with json data');
</script>
diff --git a/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html
index c2f9cef6e50..20585176b7f 100644
--- a/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html
+++ b/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html
@@ -34,7 +34,7 @@
const event = new NFCReadingEvent('type', {serialNumber: '', message: message});
assert_equals(event.type, 'type', 'type');
assert_equals(event.serialNumber, '', 'serialNumber');
- assertWebNDEFMessagesEqual(event.message, message);
+ assertWebNDEFMessagesEqual(event.message, new NDEFMessage(message));
}, 'NFCReadingEvent constructor with valid parameters');
</script>
diff --git a/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js b/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js
index fc72fa2de89..76c878ae094 100644
--- a/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js
+++ b/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js
@@ -136,27 +136,39 @@ function assertNDEFMessagesEqual(providedMessage, receivedMessage) {
compareNDEFRecords(provided.records[i], receivedMessage.data[i]);
}
-// Used to compare two WebNFC messages, one that is provided to mock NFC
-// service and another that is received from NFCWriter.onreading() EventHandler.
-function assertWebNDEFMessagesEqual(a, b) {
- if (b.url) assert_equals(a.url, b.url);
- assert_equals(a.records.length, b.records.length);
- for(let i in a.records) {
- let recordA = a.records[i];
- let recordB = b.records[i];
- assert_equals(recordA.recordType, recordB.recordType);
- assert_equals(recordA.mediaType, recordB.mediaType);
- if (recordA.data() == null) {
- assert_true(recordB.data == null);
- } else if (recordA.data() instanceof ArrayBuffer) {
- assert_array_equals(new Uint8Array(recordA.data()),
- new Uint8Array(recordB.data));
- } else if (typeof recordA.data() === 'object') {
- assert_object_equals(recordA.data(), recordB.data);
- } else if (typeof recordA.data() === 'number'
- || typeof recordA.data() === 'string') {
- assert_true(recordA.data() == recordB.data);
+// Used to compare two NDEFMessage, one that is received from
+// NFCWriter.onreading() EventHandler and another that is provided to mock NFC
+// service.
+function assertWebNDEFMessagesEqual(message, expectedMessage) {
+ if (expectedMessage.url)
+ assert_equals(message.url, expectedMessage.url);
+
+ assert_equals(message.records.length, expectedMessage.records.length);
+
+ for(let i in message.records) {
+ let record = message.records[i];
+ let expectedRecord = expectedMessage.records[i];
+ assert_equals(record.recordType, expectedRecord.recordType);
+ assert_equals(record.mediaType, expectedRecord.mediaType);
+
+ // Compares record data
+ assert_equals(record.toText(), expectedRecord.toText());
+ assert_array_equals(new Uint8Array(record.toArrayBuffer()),
+ new Uint8Array(expectedRecord.toArrayBuffer()));
+ let json;
+ try {
+ json = record.toJSON();
+ } catch (e) {
+ }
+ let expectedJson;
+ try {
+ expectedJson = expectedRecord.toJSON();
+ } catch (e) {
}
+ if (json === undefined)
+ assert_equals(expectedJson, undefined);
+ else
+ assert_object_equals(json, expectedJson);
}
}
@@ -176,7 +188,7 @@ function testNFCReaderOptions(message, readOptions, unmatchedReadOptions, desc)
const promise = readerWatcher.wait_for("reading").then(event => {
reader1.stop();
reader2.stop();
- assertWebNDEFMessagesEqual(event.message, message);
+ assertWebNDEFMessagesEqual(event.message, new NDEFMessage(message));
});
// NFCReader#start() asynchronously dispatches the onreading event.
reader2.start();
@@ -192,7 +204,7 @@ function testReadingMultiMessages(message, readOptions, unmatchedMessage,
const promise = readerWatcher.wait_for("reading").then(event => {
reader.stop();
- assertWebNDEFMessagesEqual(event.message, message);
+ assertWebNDEFMessagesEqual(event.message, new NDEFMessage(message));
});
// NFCReader#start() asynchronously dispatches the onreading event.
reader.start();
diff --git a/tests/wpt/web-platform-tests/webgpu/cts.html b/tests/wpt/web-platform-tests/webgpu/cts.html
new file mode 100644
index 00000000000..661060fcd7b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/cts.html
@@ -0,0 +1,34 @@
+<!--
+ This test suite is built from the TypeScript sources at:
+ https://github.com/gpuweb/cts
+-->
+<!doctype html>
+<title>WebGPU CTS</title>
+<meta charset=utf-8>
+<link rel="help" href="https://gpuweb.github.io/gpuweb/">
+
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<style>
+#results {
+ font-family: monospace;
+ width: 100%;
+ height: 15em;
+}
+</style>
+
+<textarea id=results></textarea>
+<script type=module src="runtime/wpt.js"></script>
+
+<meta name="variant" content="?q=cts:buffers/create_mapped:">
+<meta name="variant" content="?q=cts:buffers/map:">
+<meta name="variant" content="?q=cts:buffers/map_detach:">
+<meta name="variant" content="?q=cts:buffers/map_oom:">
+<meta name="variant" content="?q=cts:canvas/context_creation:">
+<meta name="variant" content="?q=cts:command_buffer/basic:">
+<meta name="variant" content="?q=cts:command_buffer/compute/basic:">
+<meta name="variant" content="?q=cts:command_buffer/copies:">
+<meta name="variant" content="?q=cts:command_buffer/render/basic:">
+<meta name="variant" content="?q=cts:command_buffer/render/rendering:">
+<meta name="variant" content="?q=cts:examples:">
+<meta name="variant" content="?q=cts:fences:">
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/allowed_characters.js b/tests/wpt/web-platform-tests/webgpu/framework/allowed_characters.js
new file mode 100644
index 00000000000..f49e19641d9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/allowed_characters.js
@@ -0,0 +1,7 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+// It may be OK to add more allowed characters here.
+export const allowedTestNameCharacters = 'a-zA-Z0-9/_ ';
+//# sourceMappingURL=allowed_characters.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/collect_garbage.js b/tests/wpt/web-platform-tests/webgpu/framework/collect_garbage.js
new file mode 100644
index 00000000000..5589fa7deb3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/collect_garbage.js
@@ -0,0 +1,48 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export function attemptGarbageCollection() {
+ const w = window;
+
+ if (w.GCController) {
+ w.GCController.collect();
+ return;
+ }
+
+ if (w.opera && w.opera.collect) {
+ w.opera.collect();
+ return;
+ }
+
+ try {
+ w.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils).garbageCollect();
+ return;
+ } catch (e) {}
+
+ if (w.gc) {
+ w.gc();
+ return;
+ }
+
+ if (w.CollectGarbage) {
+ w.CollectGarbage();
+ return;
+ }
+
+ let i;
+
+ function gcRec(n) {
+ if (n < 1) return;
+ let temp = {
+ i: 'ab' + i + i / 100000
+ };
+ temp = temp + 'foo';
+ gcRec(n - 1);
+ }
+
+ for (i = 0; i < 1000; i++) {
+ gcRec(10);
+ }
+}
+//# sourceMappingURL=collect_garbage.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/fixture.js b/tests/wpt/web-platform-tests/webgpu/framework/fixture.js
new file mode 100644
index 00000000000..d77ede708f0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/fixture.js
@@ -0,0 +1,105 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+// A Fixture is a class used to instantiate each test case at run time.
+// A new instance of the Fixture is created for every single test case
+// (i.e. every time the test function is run).
+export class Fixture {
+ constructor(rec, params) {
+ _defineProperty(this, "params", void 0);
+
+ _defineProperty(this, "rec", void 0);
+
+ _defineProperty(this, "numOutstandingAsyncExpectations", 0);
+
+ this.rec = rec;
+ this.params = params;
+ } // This has to be a member function instead of an async `createFixture` function, because
+ // we need to be able to ergonomically override it in subclasses.
+
+
+ async init() {}
+
+ log(msg) {
+ this.rec.log(msg);
+ }
+
+ finalize() {
+ if (this.numOutstandingAsyncExpectations !== 0) {
+ throw new Error('there were outstanding asynchronous expectations (e.g. shouldReject) at the end of the test');
+ }
+ }
+
+ warn(msg) {
+ this.rec.warn(msg);
+ }
+
+ fail(msg) {
+ this.rec.fail(msg);
+ }
+
+ ok(msg) {
+ const m = msg ? ': ' + msg : '';
+ this.log('OK' + m);
+ }
+
+ async asyncExpectation(fn) {
+ this.numOutstandingAsyncExpectations++;
+ await fn();
+ this.numOutstandingAsyncExpectations--;
+ }
+
+ expectErrorValue(expectedName, ex, m) {
+ if (!(ex instanceof Error)) {
+ this.fail('THREW NON-ERROR');
+ return;
+ }
+
+ const actualName = ex.name;
+
+ if (actualName !== expectedName) {
+ this.fail(`THREW ${actualName} INSTEAD OF ${expectedName}${m}`);
+ } else {
+ this.ok(`threw ${actualName}${m}`);
+ }
+ }
+
+ async shouldReject(expectedName, p, msg) {
+ this.asyncExpectation(async () => {
+ const m = msg ? ': ' + msg : '';
+
+ try {
+ await p;
+ this.fail('DID NOT THROW' + m);
+ } catch (ex) {
+ this.expectErrorValue(expectedName, ex, m);
+ }
+ });
+ }
+
+ shouldThrow(expectedName, fn, msg) {
+ const m = msg ? ': ' + msg : '';
+
+ try {
+ fn();
+ this.fail('DID NOT THROW' + m);
+ } catch (ex) {
+ this.expectErrorValue(expectedName, ex, m);
+ }
+ }
+
+ expect(cond, msg) {
+ if (cond) {
+ this.ok(msg);
+ } else {
+ this.rec.fail(msg);
+ }
+
+ return cond;
+ }
+
+}
+//# sourceMappingURL=fixture.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/gpu/implementation.js b/tests/wpt/web-platform-tests/webgpu/framework/gpu/implementation.js
new file mode 100644
index 00000000000..726eeab4eed
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/gpu/implementation.js
@@ -0,0 +1,19 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+/// <reference types="@webgpu/types" />
+let impl = undefined;
+export function getGPU() {
+ if (impl) {
+ return impl;
+ }
+
+ if (typeof navigator === 'undefined' || navigator.gpu === undefined) {
+ throw new Error('No WebGPU implementation found');
+ }
+
+ impl = navigator.gpu;
+ return impl;
+}
+//# sourceMappingURL=implementation.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/id.js b/tests/wpt/web-platform-tests/webgpu/framework/id.js
new file mode 100644
index 00000000000..8e5db2c7d7f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/id.js
@@ -0,0 +1,4 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+//# sourceMappingURL=id.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/index.js b/tests/wpt/web-platform-tests/webgpu/framework/index.js
new file mode 100644
index 00000000000..93ee2096399
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/index.js
@@ -0,0 +1,9 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export * from './fixture.js';
+export * from './params/index.js';
+export * from './test_group.js';
+export * from './util/index.js';
+//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/listing.js b/tests/wpt/web-platform-tests/webgpu/framework/listing.js
new file mode 100644
index 00000000000..856afa99c36
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/listing.js
@@ -0,0 +1,4 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+//# sourceMappingURL=listing.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/loader.js b/tests/wpt/web-platform-tests/webgpu/framework/loader.js
new file mode 100644
index 00000000000..c9cd20f307c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/loader.js
@@ -0,0 +1,52 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+import { loadFilter } from './test_filter/index.js';
+
+function* concat(lists) {
+ for (const specs of lists) {
+ yield* specs;
+ }
+}
+
+class DefaultTestFileLoader {
+ async listing(suite) {
+ return (await import(`../suites/${suite}/index.js`)).listing;
+ }
+
+ import(path) {
+ return import('../suites/' + path);
+ }
+
+}
+
+export class TestLoader {
+ constructor(fileLoader = new DefaultTestFileLoader()) {
+ _defineProperty(this, "fileLoader", void 0);
+
+ this.fileLoader = fileLoader;
+ } // TODO: Test
+
+
+ async loadTestsFromQuery(query) {
+ return this.loadTests(new URLSearchParams(query).getAll('q'));
+ } // TODO: Test
+ // TODO: Probably should actually not exist at all, just use queries on cmd line too.
+
+
+ async loadTestsFromCmdLine(filters) {
+ // In actual URL queries (?q=...), + represents a space. But decodeURIComponent doesn't do this,
+ // so do it manually. (+ is used over %20 for readability.) (See also encodeSelectively.)
+ return this.loadTests(filters.map(f => decodeURIComponent(f.replace(/\+/g, '%20'))));
+ }
+
+ async loadTests(filters) {
+ const loads = filters.map(f => loadFilter(this.fileLoader, f));
+ return concat((await Promise.all(loads)));
+ }
+
+}
+//# sourceMappingURL=loader.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/logger.js b/tests/wpt/web-platform-tests/webgpu/framework/logger.js
new file mode 100644
index 00000000000..8aa332c571a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/logger.js
@@ -0,0 +1,121 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+import { makeQueryString } from './url_query.js';
+import { getStackTrace, now } from './util/index.js';
+import { version } from './version.js';
+export class Logger {
+ constructor() {
+ _defineProperty(this, "results", []);
+ }
+
+ record(spec) {
+ const result = {
+ spec: makeQueryString(spec),
+ cases: []
+ };
+ this.results.push(result);
+ return [new TestSpecRecorder(result), result];
+ }
+
+ asJSON(space) {
+ return JSON.stringify({
+ version,
+ results: this.results
+ }, undefined, space);
+ }
+
+}
+export class TestSpecRecorder {
+ constructor(result) {
+ _defineProperty(this, "result", void 0);
+
+ this.result = result;
+ }
+
+ record(test, params) {
+ const result = {
+ test,
+ params,
+ status: 'running',
+ timems: -1
+ };
+ this.result.cases.push(result);
+ return [new TestCaseRecorder(result), result];
+ }
+
+}
+export class TestCaseRecorder {
+ constructor(result) {
+ _defineProperty(this, "result", void 0);
+
+ _defineProperty(this, "failed", false);
+
+ _defineProperty(this, "warned", false);
+
+ _defineProperty(this, "startTime", -1);
+
+ _defineProperty(this, "logs", []);
+
+ this.result = result;
+ }
+
+ start() {
+ this.startTime = now();
+ this.logs = [];
+ this.failed = false;
+ this.warned = false;
+ }
+
+ finish() {
+ if (this.startTime < 0) {
+ throw new Error('finish() before start()');
+ }
+
+ const endTime = now(); // Round to next microsecond to avoid storing useless .xxxx00000000000002 in results.
+
+ this.result.timems = Math.ceil((endTime - this.startTime) * 1000) / 1000;
+ this.result.status = this.failed ? 'fail' : this.warned ? 'warn' : 'pass';
+ this.result.logs = this.logs;
+ }
+
+ log(msg) {
+ this.logs.push(msg);
+ }
+
+ warn(msg) {
+ this.warned = true;
+ let m = 'WARN';
+
+ if (msg) {
+ m += ': ' + msg;
+ }
+
+ m += ' ' + getStackTrace(new Error());
+ this.log(m);
+ }
+
+ fail(msg) {
+ this.failed = true;
+ let m = 'FAIL';
+
+ if (msg) {
+ m += ': ' + msg;
+ }
+
+ m += ' ' + getStackTrace(new Error());
+ this.log(m);
+ }
+
+ threw(e) {
+ this.failed = true;
+ let m = 'EXCEPTION';
+ m += ' ' + getStackTrace(e);
+ this.log(m);
+ }
+
+}
+//# sourceMappingURL=logger.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/params/combine.js b/tests/wpt/web-platform-tests/webgpu/framework/params/combine.js
new file mode 100644
index 00000000000..d85e81dc885
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/params/combine.js
@@ -0,0 +1,58 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+let _Symbol$iterator;
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+export function pcombine(params) {
+ return new PCombine(params);
+}
+
+function merge(a, b) {
+ for (const key of Object.keys(a)) {
+ if (b.hasOwnProperty(key)) {
+ throw new Error('Duplicate key: ' + key);
+ }
+ }
+
+ return { ...a,
+ ...b
+ };
+}
+
+function* cartesian(iters) {
+ if (iters.length === 0) {
+ return;
+ }
+
+ if (iters.length === 1) {
+ yield* iters[0];
+ return;
+ }
+
+ const [as, ...rest] = iters;
+
+ for (const a of as) {
+ for (const b of cartesian(rest)) {
+ yield merge(a, b);
+ }
+ }
+}
+
+_Symbol$iterator = Symbol.iterator;
+
+class PCombine {
+ constructor(params) {
+ _defineProperty(this, "params", void 0);
+
+ this.params = params;
+ }
+
+ [_Symbol$iterator]() {
+ return cartesian(this.params);
+ }
+
+}
+//# sourceMappingURL=combine.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/params/exclude.js b/tests/wpt/web-platform-tests/webgpu/framework/params/exclude.js
new file mode 100644
index 00000000000..23bc6ee0f69
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/params/exclude.js
@@ -0,0 +1,34 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+let _Symbol$iterator;
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+import { paramsEquals } from './index.js';
+export function pexclude(params, exclude) {
+ return new PExclude(params, exclude);
+}
+_Symbol$iterator = Symbol.iterator;
+
+class PExclude {
+ constructor(cases, exclude) {
+ _defineProperty(this, "cases", void 0);
+
+ _defineProperty(this, "exclude", void 0);
+
+ this.cases = cases;
+ this.exclude = Array.from(exclude);
+ }
+
+ *[_Symbol$iterator]() {
+ for (const p of this.cases) {
+ if (this.exclude.every(e => !paramsEquals(p, e))) {
+ yield p;
+ }
+ }
+ }
+
+}
+//# sourceMappingURL=exclude.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/params/filter.js b/tests/wpt/web-platform-tests/webgpu/framework/params/filter.js
new file mode 100644
index 00000000000..6a5d99e765f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/params/filter.js
@@ -0,0 +1,33 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+let _Symbol$iterator;
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+export function pfilter(cases, pred) {
+ return new PFilter(cases, pred);
+}
+_Symbol$iterator = Symbol.iterator;
+
+class PFilter {
+ constructor(cases, pred) {
+ _defineProperty(this, "cases", void 0);
+
+ _defineProperty(this, "pred", void 0);
+
+ this.cases = cases;
+ this.pred = pred;
+ }
+
+ *[_Symbol$iterator]() {
+ for (const p of this.cases) {
+ if (this.pred(p)) {
+ yield p;
+ }
+ }
+ }
+
+}
+//# sourceMappingURL=filter.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/params/index.js b/tests/wpt/web-platform-tests/webgpu/framework/params/index.js
new file mode 100644
index 00000000000..5d89da54f5b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/params/index.js
@@ -0,0 +1,54 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export * from './combine.js';
+export * from './filter.js';
+export * from './options.js';
+export * from './exclude.js';
+export function paramsEquals(x, y) {
+ if (x === y) {
+ return true;
+ }
+
+ if (x === null || y === null) {
+ return false;
+ }
+
+ for (const xk of Object.keys(x)) {
+ if (!y.hasOwnProperty(xk)) {
+ return false;
+ }
+
+ if (x[xk] !== y[xk]) {
+ return false;
+ }
+ }
+
+ for (const yk of Object.keys(y)) {
+ if (!x.hasOwnProperty(yk)) {
+ return false;
+ }
+ }
+
+ return true;
+}
+export function paramsSupersets(sup, sub) {
+ if (sub === null) {
+ return true;
+ }
+
+ if (sup === null) {
+ // && sub !== undefined
+ return false;
+ }
+
+ for (const k of Object.keys(sub)) {
+ if (!sup.hasOwnProperty(k) || sup[k] !== sub[k]) {
+ return false;
+ }
+ }
+
+ return true;
+}
+//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/params/options.js b/tests/wpt/web-platform-tests/webgpu/framework/params/options.js
new file mode 100644
index 00000000000..6906863880c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/params/options.js
@@ -0,0 +1,36 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+let _Symbol$iterator;
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+export function poptions(name, values) {
+ return new POptions(name, values);
+}
+export function pbool(name) {
+ return new POptions(name, [false, true]);
+}
+_Symbol$iterator = Symbol.iterator;
+
+class POptions {
+ constructor(name, values) {
+ _defineProperty(this, "name", void 0);
+
+ _defineProperty(this, "values", void 0);
+
+ this.name = name;
+ this.values = values;
+ }
+
+ *[_Symbol$iterator]() {
+ for (const value of this.values) {
+ yield {
+ [this.name]: value
+ };
+ }
+ }
+
+}
+//# sourceMappingURL=options.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_by_group.js b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_by_group.js
new file mode 100644
index 00000000000..3036e21bd63
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_by_group.js
@@ -0,0 +1,49 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+export class FilterByGroup {
+ constructor(suite, groupPrefix) {
+ _defineProperty(this, "suite", void 0);
+
+ _defineProperty(this, "groupPrefix", void 0);
+
+ this.suite = suite;
+ this.groupPrefix = groupPrefix;
+ }
+
+ matches(spec, testcase) {
+ throw new Error('unimplemented');
+ }
+
+ async iterate(loader) {
+ const specs = await loader.listing(this.suite);
+ const entries = [];
+ const suite = this.suite;
+
+ for (const {
+ path,
+ description
+ } of specs) {
+ if (path.startsWith(this.groupPrefix)) {
+ const isReadme = path === '' || path.endsWith('/');
+ const spec = isReadme ? {
+ description
+ } : await loader.import(`${suite}/${path}.spec.js`);
+ entries.push({
+ id: {
+ suite,
+ path
+ },
+ spec
+ });
+ }
+ }
+
+ return entries;
+ }
+
+}
+//# sourceMappingURL=filter_by_group.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_one_file.js b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_one_file.js
new file mode 100644
index 00000000000..6a998db0de9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/filter_one_file.js
@@ -0,0 +1,102 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+import { paramsEquals, paramsSupersets } from '../params/index.js';
+
+class FilterOneFile {
+ constructor(specId) {
+ _defineProperty(this, "specId", void 0);
+
+ this.specId = specId;
+ }
+
+ async iterate(loader) {
+ const spec = await loader.import(`${this.specId.suite}/${this.specId.path}.spec.js`);
+ return [{
+ id: this.specId,
+ spec: {
+ description: spec.description,
+ g: this.getCases(spec)
+ }
+ }];
+ }
+
+}
+
+function filterTestGroup(group, filter) {
+ return {
+ *iterate(log) {
+ for (const rc of group.iterate(log)) {
+ if (filter(rc.id)) {
+ yield rc;
+ }
+ }
+ }
+
+ };
+}
+
+export class FilterByTestMatch extends FilterOneFile {
+ constructor(specId, testPrefix) {
+ super(specId);
+
+ _defineProperty(this, "testPrefix", void 0);
+
+ this.testPrefix = testPrefix;
+ }
+
+ getCases(spec) {
+ return filterTestGroup(spec.g, testcase => testcase.test.startsWith(this.testPrefix));
+ }
+
+ matches(spec, testcase) {
+ throw new Error('unimplemented');
+ }
+
+}
+export class FilterByParamsMatch extends FilterOneFile {
+ constructor(specId, test, params) {
+ super(specId);
+
+ _defineProperty(this, "test", void 0);
+
+ _defineProperty(this, "params", void 0);
+
+ this.test = test;
+ this.params = params;
+ }
+
+ getCases(spec) {
+ return filterTestGroup(spec.g, testcase => testcase.test === this.test && paramsSupersets(testcase.params, this.params));
+ }
+
+ matches(spec, testcase) {
+ throw new Error('unimplemented');
+ }
+
+}
+export class FilterByParamsExact extends FilterOneFile {
+ constructor(specId, test, params) {
+ super(specId);
+
+ _defineProperty(this, "test", void 0);
+
+ _defineProperty(this, "params", void 0);
+
+ this.test = test;
+ this.params = params;
+ }
+
+ getCases(spec) {
+ return filterTestGroup(spec.g, testcase => testcase.test === this.test && paramsEquals(testcase.params, this.params));
+ }
+
+ matches(spec, testcase) {
+ throw new Error('unimplemented');
+ }
+
+}
+//# sourceMappingURL=filter_one_file.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_filter/index.js b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/index.js
new file mode 100644
index 00000000000..1a9dbcad487
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/index.js
@@ -0,0 +1,6 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export { loadFilter } from './load_filter.js'; // Result of iterating a test filter. Contains a loaded spec (.spec.ts) file and its id.
+//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_filter/internal.js b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/internal.js
new file mode 100644
index 00000000000..ae55718f3b3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/internal.js
@@ -0,0 +1,4 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+//# sourceMappingURL=internal.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_filter/load_filter.js b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/load_filter.js
new file mode 100644
index 00000000000..03d475eb4b8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/test_filter/load_filter.js
@@ -0,0 +1,71 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+import { allowedTestNameCharacters } from '../allowed_characters.js';
+import { FilterByGroup } from './filter_by_group.js';
+import { FilterByParamsExact, FilterByParamsMatch, FilterByTestMatch } from './filter_one_file.js';
+// Each filter is of one of the forms below (urlencoded).
+export async function loadFilter(loader, filter) {
+ const i1 = filter.indexOf(':');
+
+ if (i1 === -1) {
+ throw new Error('Test queries must fully specify their suite name (e.g. "cts:")');
+ }
+
+ const suite = filter.substring(0, i1);
+ const i2 = filter.indexOf(':', i1 + 1);
+
+ if (i2 === -1) {
+ // - cts:
+ // - cts:buf
+ // - cts:buffers/
+ // - cts:buffers/map
+ const groupPrefix = filter.substring(i1 + 1);
+ return new FilterByGroup(suite, groupPrefix).iterate(loader);
+ }
+
+ const path = filter.substring(i1 + 1, i2);
+ const endOfTestName = new RegExp('[^' + allowedTestNameCharacters + ']');
+ const i3sub = filter.substring(i2 + 1).search(endOfTestName);
+
+ if (i3sub === -1) {
+ // - cts:buffers/mapWriteAsync:
+ // - cts:buffers/mapWriteAsync:b
+ const testPrefix = filter.substring(i2 + 1);
+ return new FilterByTestMatch({
+ suite,
+ path
+ }, testPrefix).iterate(loader);
+ }
+
+ const i3 = i2 + 1 + i3sub;
+ const test = filter.substring(i2 + 1, i3);
+ const token = filter.charAt(i3);
+ let params = null;
+
+ if (i3 + 1 < filter.length) {
+ params = JSON.parse(filter.substring(i3 + 1));
+ }
+
+ if (token === '~') {
+ // - cts:buffers/mapWriteAsync:basic~
+ // - cts:buffers/mapWriteAsync:basic~{}
+ // - cts:buffers/mapWriteAsync:basic~{filter:"params"}
+ return new FilterByParamsMatch({
+ suite,
+ path
+ }, test, params).iterate(loader);
+ } else if (token === '=') {
+ // - cts:buffers/mapWriteAsync:basic=
+ // - cts:buffers/mapWriteAsync:basic={}
+ // - cts:buffers/mapWriteAsync:basic={exact:"params"}
+ return new FilterByParamsExact({
+ suite,
+ path
+ }, test, params).iterate(loader);
+ } else {
+ throw new Error("invalid character after test name; must be '~' or '='");
+ }
+}
+//# sourceMappingURL=load_filter.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/test_group.js b/tests/wpt/web-platform-tests/webgpu/framework/test_group.js
new file mode 100644
index 00000000000..c9cafb37b67
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/test_group.js
@@ -0,0 +1,134 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+import { allowedTestNameCharacters } from './allowed_characters.js';
+import { paramsEquals } from './params/index.js';
+const validNames = new RegExp('^[' + allowedTestNameCharacters + ']+$');
+export class TestGroup {
+ constructor(fixture) {
+ _defineProperty(this, "fixture", void 0);
+
+ _defineProperty(this, "seen", new Set());
+
+ _defineProperty(this, "tests", []);
+
+ this.fixture = fixture;
+ }
+
+ *iterate(log) {
+ for (const test of this.tests) {
+ yield* test.iterate(log);
+ }
+ }
+
+ checkName(name) {
+ if (!validNames.test(name)) {
+ throw new Error(`Invalid test name ${name}; must match [${validNames}]+`);
+ }
+
+ if (name !== decodeURIComponent(name)) {
+ // Shouldn't happen due to the rule above. Just makes sure that treated
+ // unencoded strings as encoded strings is OK.
+ throw new Error(`Not decodeURIComponent-idempotent: ${name} !== ${decodeURIComponent(name)}`);
+ }
+
+ if (this.seen.has(name)) {
+ throw new Error('Duplicate test name');
+ }
+
+ this.seen.add(name);
+ } // TODO: This could take a fixture, too, to override the one for the group.
+
+
+ test(name, fn) {
+ this.checkName(name);
+ const test = new Test(name, this.fixture, fn);
+ this.tests.push(test);
+ return test;
+ }
+
+} // This test is created when it's inserted, but may be parameterized afterward (.params()).
+
+class Test {
+ constructor(name, fixture, fn) {
+ _defineProperty(this, "name", void 0);
+
+ _defineProperty(this, "fixture", void 0);
+
+ _defineProperty(this, "fn", void 0);
+
+ _defineProperty(this, "cases", null);
+
+ this.name = name;
+ this.fixture = fixture;
+ this.fn = fn;
+ }
+
+ params(specs) {
+ if (this.cases !== null) {
+ throw new Error('test case is already parameterized');
+ }
+
+ const cases = Array.from(specs);
+ const seen = []; // This is n^2.
+
+ for (const spec of cases) {
+ if (seen.some(x => paramsEquals(x, spec))) {
+ throw new Error('Duplicate test case params');
+ }
+
+ seen.push(spec);
+ }
+
+ this.cases = cases;
+ }
+
+ *iterate(rec) {
+ for (const params of this.cases || [null]) {
+ yield new RunCaseSpecific(rec, {
+ test: this.name,
+ params
+ }, this.fixture, this.fn);
+ }
+ }
+
+}
+
+class RunCaseSpecific {
+ constructor(recorder, id, fixture, fn) {
+ _defineProperty(this, "id", void 0);
+
+ _defineProperty(this, "recorder", void 0);
+
+ _defineProperty(this, "fixture", void 0);
+
+ _defineProperty(this, "fn", void 0);
+
+ this.recorder = recorder;
+ this.id = id;
+ this.fixture = fixture;
+ this.fn = fn;
+ }
+
+ async run() {
+ const [rec, res] = this.recorder.record(this.id.test, this.id.params);
+ rec.start();
+
+ try {
+ const inst = new this.fixture(rec, this.id.params || {});
+ await inst.init();
+ await this.fn(inst);
+ inst.finalize();
+ } catch (e) {
+ rec.threw(e);
+ }
+
+ rec.finish();
+ return res;
+ }
+
+}
+//# sourceMappingURL=test_group.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/url_query.js b/tests/wpt/web-platform-tests/webgpu/framework/url_query.js
new file mode 100644
index 00000000000..b2651390439
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/url_query.js
@@ -0,0 +1,32 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export function encodeSelectively(s) {
+ let ret = encodeURIComponent(s);
+ ret = ret.replace(/%20/g, '+'); // Encode space with + (equivalent but more readable)
+
+ ret = ret.replace(/%22/g, '"');
+ ret = ret.replace(/%2C/g, ',');
+ ret = ret.replace(/%2F/g, '/');
+ ret = ret.replace(/%3A/g, ':');
+ ret = ret.replace(/%3D/g, '=');
+ ret = ret.replace(/%7B/g, '{');
+ ret = ret.replace(/%7D/g, '}');
+ return ret;
+}
+export function makeQueryString(spec, testcase) {
+ let s = spec.suite + ':';
+ s += spec.path + ':';
+
+ if (testcase !== undefined) {
+ s += testcase.test + '=';
+
+ if (testcase.params) {
+ s += JSON.stringify(testcase.params);
+ }
+ }
+
+ return encodeSelectively(s);
+}
+//# sourceMappingURL=url_query.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/util/index.js b/tests/wpt/web-platform-tests/webgpu/framework/util/index.js
new file mode 100644
index 00000000000..8d0fe0e5b48
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/util/index.js
@@ -0,0 +1,27 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export * from './stack.js'; // performance.now() is available in all browsers, but not in scope by default in Node.
+
+const perf = typeof performance !== 'undefined' ? performance : require('perf_hooks').performance;
+export function now() {
+ return perf.now();
+}
+export function objectEquals(x, y) {
+ if (typeof x !== 'object' || typeof y !== 'object') return x === y;
+ if (x === null || y === null) return x === y;
+ if (x.constructor !== y.constructor) return false;
+ if (x instanceof Function) return x === y;
+ if (x instanceof RegExp) return x === y;
+ if (x === y || x.valueOf() === y.valueOf()) return true;
+ if (Array.isArray(x) && Array.isArray(y) && x.length !== y.length) return false;
+ if (x instanceof Date) return false;
+ if (!(x instanceof Object)) return false;
+ if (!(y instanceof Object)) return false;
+ const x1 = x;
+ const y1 = y;
+ const p = Object.keys(x);
+ return Object.keys(y).every(i => p.indexOf(i) !== -1) && p.every(i => objectEquals(x1[i], y1[i]));
+}
+//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/util/stack.js b/tests/wpt/web-platform-tests/webgpu/framework/util/stack.js
new file mode 100644
index 00000000000..ae99ac904a1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/util/stack.js
@@ -0,0 +1,94 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+// Takes a stack trace, and extracts only the first continuous range of lines
+// containing '/suites/', which should provide only the useful part of the stack
+// to the caller (for logging).
+export function getStackTrace(e) {
+ if (!e.stack) {
+ return '';
+ }
+
+ const parts = e.stack.split('\n');
+ const stack = [];
+ let found = false;
+ const suitesRegex = /[\/\\]suites[\/\\]/;
+
+ for (let i = 0; i < parts.length; ++i) {
+ const part = parts[i].trim();
+ const isSuites = suitesRegex.test(part);
+
+ if (found && !isSuites) {
+ break;
+ }
+
+ if (isSuites) {
+ found = true;
+ }
+
+ stack.push(part);
+ }
+
+ return stack.join('\n');
+} // *** Examples ***
+//
+// Node fail()
+// > Error:
+// > at CaseRecorder.fail (/Users/kainino/src/cts-experiment/src/framework/logger.ts:99:30)
+// > at RunCaseSpecific.exports.g.test.t [as fn] (/Users/kainino/src/cts-experiment/src/suites/unittests/logger.spec.ts:80:7)
+// x at RunCaseSpecific.run (/Users/kainino/src/cts-experiment/src/framework/test_group.ts:121:18)
+// x at processTicksAndRejections (internal/process/task_queues.js:86:5)
+//
+// Node throw
+// > Error: hello
+// > at RunCaseSpecific.g.test.t [as fn] (/Users/kainino/src/cts-experiment/src/suites/unittests/test_group.spec.ts:51:11)
+// x at RunCaseSpecific.run (/Users/kainino/src/cts-experiment/src/framework/test_group.ts:121:18)
+// x at processTicksAndRejections (internal/process/task_queues.js:86:5)
+//
+// Firefox fail()
+// > fail@http://localhost:8080/out/framework/logger.js:104:30
+// > expect@http://localhost:8080/out/framework/default_fixture.js:59:16
+// > @http://localhost:8080/out/suites/unittests/util.spec.js:35:5
+// x run@http://localhost:8080/out/framework/test_group.js:119:18
+//
+// Firefox throw
+// > @http://localhost:8080/out/suites/unittests/test_group.spec.js:48:11
+// x run@http://localhost:8080/out/framework/test_group.js:119:18
+//
+// Safari fail()
+// > fail@http://localhost:8080/out/framework/logger.js:104:39
+// > expect@http://localhost:8080/out/framework/default_fixture.js:59:20
+// > http://localhost:8080/out/suites/unittests/util.spec.js:35:11
+// x http://localhost:8080/out/framework/test_group.js:119:20
+// x asyncFunctionResume@[native code]
+// x [native code]
+// x promiseReactionJob@[native code]
+//
+// Safari throw
+// > http://localhost:8080/out/suites/unittests/test_group.spec.js:48:20
+// x http://localhost:8080/out/framework/test_group.js:119:20
+// x asyncFunctionResume@[native code]
+// x [native code]
+// x promiseReactionJob@[native code]
+//
+// Chrome fail()
+// x Error
+// x at CaseRecorder.fail (http://localhost:8080/out/framework/logger.js:104:30)
+// x at DefaultFixture.expect (http://localhost:8080/out/framework/default_fixture.js:59:16)
+// > at RunCaseSpecific.fn (http://localhost:8080/out/suites/unittests/util.spec.js:35:5)
+// x at RunCaseSpecific.run (http://localhost:8080/out/framework/test_group.js:119:18)
+// x at async runCase (http://localhost:8080/out/runtime/standalone.js:37:17)
+// x at async http://localhost:8080/out/runtime/standalone.js:102:7
+//
+// Chrome throw
+// x Error: hello
+// > at RunCaseSpecific.fn (http://localhost:8080/out/suites/unittests/test_group.spec.js:48:11)
+// x at RunCaseSpecific.run (http://localhost:8080/out/framework/test_group.js:119:18)"
+// x at async Promise.all (index 0)
+// x at async TestGroupTest.run (http://localhost:8080/out/suites/unittests/test_group_test.js:6:5)
+// x at async RunCaseSpecific.fn (http://localhost:8080/out/suites/unittests/test_group.spec.js:53:15)
+// x at async RunCaseSpecific.run (http://localhost:8080/out/framework/test_group.js:119:7)
+// x at async runCase (http://localhost:8080/out/runtime/standalone.js:37:17)
+// x at async http://localhost:8080/out/runtime/standalone.js:102:7
+//# sourceMappingURL=stack.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/framework/version.js b/tests/wpt/web-platform-tests/webgpu/framework/version.js
new file mode 100644
index 00000000000..b9ec1b4f9f3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/framework/version.js
@@ -0,0 +1,3 @@
+// AUTO-GENERATED - DO NOT EDIT. See tools/gen_version.
+
+export const version = '84ef21bec576c9272e64e08727dbdf75a2b0e9d8';
diff --git a/tests/wpt/web-platform-tests/webgpu/runtime/wpt.js b/tests/wpt/web-platform-tests/webgpu/runtime/wpt.js
new file mode 100644
index 00000000000..d11499f1e8c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/runtime/wpt.js
@@ -0,0 +1,42 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+import { TestLoader } from '../framework/loader.js';
+import { Logger } from '../framework/logger.js';
+import { makeQueryString } from '../framework/url_query.js';
+
+(async () => {
+ const loader = new TestLoader();
+ const files = await loader.loadTestsFromQuery(window.location.search);
+ const log = new Logger();
+ const running = [];
+
+ for (const f of files) {
+ if (!('g' in f.spec)) {
+ continue;
+ }
+
+ const [rec] = log.record(f.id); // TODO: don't run all tests all at once
+
+ for (const t of f.spec.g.iterate(rec)) {
+ const run = t.run();
+ running.push(run); // Note: apparently, async_tests must ALL be added within the same task.
+
+ async_test(async function () {
+ const r = await run;
+ this.step(() => {
+ if (r.status === 'fail') {
+ throw (r.logs || []).join('\n');
+ }
+ });
+ this.done();
+ }, makeQueryString(f.id, t.id));
+ }
+ }
+
+ await Promise.all(running);
+ const resultsElem = document.getElementById('results');
+ resultsElem.textContent = log.asJSON(2);
+})();
+//# sourceMappingURL=wpt.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/create_mapped.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/create_mapped.spec.js
new file mode 100644
index 00000000000..30a6638889a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/create_mapped.spec.js
@@ -0,0 +1,27 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = ``;
+import { TestGroup, pbool, pcombine, poptions } from '../../../framework/index.js';
+import { MappingTest } from './mapping_test.js';
+export const g = new TestGroup(MappingTest);
+g.test('createBufferMapped', async t => {
+ const size = t.params.size;
+ const [buffer, arrayBuffer] = t.device.createBufferMapped({
+ size,
+ usage: GPUBufferUsage.COPY_SRC | (t.params.mappable ? GPUBufferUsage.MAP_WRITE : 0)
+ });
+ await t.checkMapWrite(buffer, arrayBuffer, size);
+}).params(pcombine([poptions('size', [12, 512 * 1024]), //
+pbool('mappable')]));
+g.test('createBufferMappedAsync', async t => {
+ const size = t.params.size;
+ const [buffer, arrayBuffer] = await t.device.createBufferMappedAsync({
+ size,
+ usage: GPUBufferUsage.COPY_SRC | (t.params.mappable ? GPUBufferUsage.MAP_WRITE : 0)
+ });
+ await t.checkMapWrite(buffer, arrayBuffer, size);
+}).params(pcombine([poptions('size', [12, 512 * 1024]), //
+pbool('mappable')]));
+//# sourceMappingURL=create_mapped.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map.spec.js
new file mode 100644
index 00000000000..dfc79ac5d1e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map.spec.js
@@ -0,0 +1,53 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = ``;
+import { TestGroup, pbool, pcombine, poptions } from '../../../framework/index.js';
+import { MappingTest } from './mapping_test.js';
+export const g = new TestGroup(MappingTest);
+g.test('mapWriteAsync', async t => {
+ const size = t.params.size;
+ const buffer = t.device.createBuffer({
+ size,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.MAP_WRITE
+ });
+ const arrayBuffer = await buffer.mapWriteAsync();
+ await t.checkMapWrite(buffer, arrayBuffer, size);
+}).params(poptions('size', [12, 512 * 1024]));
+g.test('mapReadAsync', async t => {
+ const size = t.params.size;
+ const [buffer, init] = t.device.createBufferMapped({
+ size,
+ usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ
+ });
+ const expected = new Uint32Array(new ArrayBuffer(size));
+ const data = new Uint32Array(init);
+
+ for (let i = 0; i < data.length; ++i) {
+ data[i] = expected[i] = i + 1;
+ }
+
+ buffer.unmap();
+ const actual = new Uint8Array((await buffer.mapReadAsync()));
+ t.expectBuffer(actual, new Uint8Array(expected.buffer));
+}).params(poptions('size', [12, 512 * 1024]));
+g.test('createBufferMapped', async t => {
+ const size = t.params.size;
+ const [buffer, arrayBuffer] = t.device.createBufferMapped({
+ size,
+ usage: GPUBufferUsage.COPY_SRC | (t.params.mappable ? GPUBufferUsage.MAP_WRITE : 0)
+ });
+ await t.checkMapWrite(buffer, arrayBuffer, size);
+}).params(pcombine([poptions('size', [12, 512 * 1024]), //
+pbool('mappable')]));
+g.test('createBufferMappedAsync', async t => {
+ const size = t.params.size;
+ const [buffer, arrayBuffer] = await t.device.createBufferMappedAsync({
+ size,
+ usage: GPUBufferUsage.COPY_SRC | (t.params.mappable ? GPUBufferUsage.MAP_WRITE : 0)
+ });
+ await t.checkMapWrite(buffer, arrayBuffer, size);
+}).params(pcombine([poptions('size', [12, 512 * 1024]), //
+pbool('mappable')]));
+//# sourceMappingURL=map.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_detach.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_detach.spec.js
new file mode 100644
index 00000000000..afaab08606b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_detach.spec.js
@@ -0,0 +1,83 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = ``;
+import { TestGroup, pbool, pcombine } from '../../../framework/index.js';
+import { GPUTest } from '../gpu_test.js';
+
+class F extends GPUTest {
+ checkDetach(buffer, arrayBuffer, unmap, destroy) {
+ const view = new Uint8Array(arrayBuffer);
+ this.expect(arrayBuffer.byteLength === 4);
+ this.expect(view.length === 4);
+ if (unmap) buffer.unmap();
+ if (destroy) buffer.destroy();
+ this.expect(arrayBuffer.byteLength === 0, 'ArrayBuffer should be detached');
+ this.expect(view.byteLength === 0, 'ArrayBufferView should be detached');
+ }
+
+}
+
+export const g = new TestGroup(F);
+g.test('mapWriteAsync', async t => {
+ const buffer = t.device.createBuffer({
+ size: 4,
+ usage: GPUBufferUsage.MAP_WRITE
+ });
+ const arrayBuffer = await buffer.mapWriteAsync();
+ t.checkDetach(buffer, arrayBuffer, t.params.unmap, t.params.destroy);
+}).params([{
+ unmap: true,
+ destroy: false
+}, //
+{
+ unmap: false,
+ destroy: true
+}, {
+ unmap: true,
+ destroy: true
+}]);
+g.test('mapReadAsync', async t => {
+ const buffer = t.device.createBuffer({
+ size: 4,
+ usage: GPUBufferUsage.MAP_READ
+ });
+ const arrayBuffer = await buffer.mapReadAsync();
+ t.checkDetach(buffer, arrayBuffer, t.params.unmap, t.params.destroy);
+}).params([{
+ unmap: true,
+ destroy: false
+}, //
+{
+ unmap: false,
+ destroy: true
+}, {
+ unmap: true,
+ destroy: true
+}]);
+g.test('create mapped', async t => {
+ const desc = {
+ size: 4,
+ usage: GPUBufferUsage.MAP_WRITE
+ };
+ const [buffer, arrayBuffer] = t.params.async ? await t.device.createBufferMappedAsync(desc) : t.device.createBufferMapped(desc);
+ const view = new Uint8Array(arrayBuffer);
+ t.expect(arrayBuffer.byteLength === 4);
+ t.expect(view.length === 4);
+ if (t.params.unmap) buffer.unmap();
+ if (t.params.destroy) buffer.destroy();
+ t.expect(arrayBuffer.byteLength === 0, 'ArrayBuffer should be detached');
+ t.expect(view.byteLength === 0, 'ArrayBufferView should be detached');
+}).params(pcombine([pbool('async'), //
+[{
+ unmap: true,
+ destroy: false
+}, {
+ unmap: false,
+ destroy: true
+}, {
+ unmap: true,
+ destroy: true
+}]]));
+//# sourceMappingURL=map_detach.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_oom.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_oom.spec.js
new file mode 100644
index 00000000000..f39021ca9a1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/map_oom.spec.js
@@ -0,0 +1,33 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = ``;
+import { TestGroup } from '../../../framework/index.js';
+import { GPUTest } from '../gpu_test.js';
+
+function getBufferDesc() {
+ return {
+ size: Number.MAX_SAFE_INTEGER,
+ usage: GPUBufferUsage.MAP_WRITE
+ };
+}
+
+export const g = new TestGroup(GPUTest);
+g.test('mapWriteAsync', async t => {
+ const buffer = t.device.createBuffer(getBufferDesc());
+ await t.shouldReject('RangeError', buffer.mapWriteAsync());
+});
+g.test('mapReadAsync', async t => {
+ const buffer = t.device.createBuffer(getBufferDesc());
+ await t.shouldReject('RangeError', buffer.mapReadAsync());
+});
+g.test('createBufferMapped', async t => {
+ await t.shouldThrow('RangeError', () => {
+ t.device.createBufferMapped(getBufferDesc());
+ });
+});
+g.test('createBufferAsync', async t => {
+ await t.shouldReject('RangeError', t.device.createBufferMappedAsync(getBufferDesc()));
+});
+//# sourceMappingURL=map_oom.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/mapping_test.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/mapping_test.js
new file mode 100644
index 00000000000..1baa6ffc351
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/buffers/mapping_test.js
@@ -0,0 +1,39 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+import { GPUTest } from '../gpu_test.js';
+export class MappingTest extends GPUTest {
+ checkMapWrite(buffer, mappedContents, size) {
+ this.checkMapWriteZeroed(mappedContents, size);
+ const mappedView = new Uint32Array(mappedContents);
+ const expected = new Uint32Array(new ArrayBuffer(size));
+ this.expect(mappedView.byteLength === size);
+
+ for (let i = 0; i < mappedView.length; ++i) {
+ mappedView[i] = expected[i] = i + 1;
+ }
+
+ buffer.unmap();
+ return this.expectContents(buffer, expected);
+ }
+
+ checkMapWriteZeroed(arrayBuffer, expectedSize) {
+ this.expect(arrayBuffer.byteLength === expectedSize);
+ const view = new Uint8Array(arrayBuffer);
+ this.expectZero(view);
+ }
+
+ expectZero(actual) {
+ const size = actual.byteLength;
+
+ for (let i = 0; i < size; ++i) {
+ if (actual[i] !== 0) {
+ this.fail(`at [${i}], expected zero, got ${actual[i]}`);
+ break;
+ }
+ }
+ }
+
+}
+//# sourceMappingURL=mapping_test.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/canvas/context_creation.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/canvas/context_creation.spec.js
new file mode 100644
index 00000000000..b0b2c48b418
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/canvas/context_creation.spec.js
@@ -0,0 +1,18 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = ``;
+import { TestGroup } from '../../../framework/index.js';
+import { GPUTest } from '../gpu_test.js'; // TODO: doesn't need to use GPUTest
+
+export const g = new TestGroup(GPUTest);
+g.test('getContext returns GPUCanvasContext', async t => {
+ const canvas = document.createElement('canvas');
+ canvas.width = 10;
+ canvas.height = 10; // TODO: fix types so these aren't necessary
+
+ const ctx = canvas.getContext('gpupresent');
+ t.expect(ctx instanceof window.GPUCanvasContext);
+});
+//# sourceMappingURL=context_creation.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/basic.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/basic.spec.js
new file mode 100644
index 00000000000..137e428bd9d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/basic.spec.js
@@ -0,0 +1,16 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = `
+Basic tests.
+`;
+import { TestGroup } from '../../../framework/index.js';
+import { GPUTest } from '../gpu_test.js';
+export const g = new TestGroup(GPUTest);
+g.test('empty', async t => {
+ const encoder = t.device.createCommandEncoder({});
+ const cmd = encoder.finish();
+ t.device.getQueue().submit([cmd]); // TODO: test that submit() succeeded.
+});
+//# sourceMappingURL=basic.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/compute/basic.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/compute/basic.spec.js
new file mode 100644
index 00000000000..56754d5f39e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/compute/basic.spec.js
@@ -0,0 +1,90 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = `
+Basic command buffer compute tests.
+`;
+import { TestGroup } from '../../../../framework/index.js';
+import { GPUTest } from '../../gpu_test.js';
+export const g = new TestGroup(GPUTest);
+g.test('memcpy', async t => {
+ const data = new Uint32Array([0x01020304]);
+ const src = t.device.createBuffer({
+ size: 4,
+ usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.STORAGE
+ });
+ const dst = t.device.createBuffer({
+ size: 4,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.STORAGE
+ });
+ src.setSubData(0, data);
+ const bgl = t.device.createBindGroupLayout({
+ bindings: [{
+ binding: 0,
+ visibility: 4,
+ type: 'storage-buffer'
+ }, {
+ binding: 1,
+ visibility: 4,
+ type: 'storage-buffer'
+ }]
+ });
+ const bg = t.device.createBindGroup({
+ bindings: [{
+ binding: 0,
+ resource: {
+ buffer: src,
+ offset: 0,
+ size: 4
+ }
+ }, {
+ binding: 1,
+ resource: {
+ buffer: dst,
+ offset: 0,
+ size: 4
+ }
+ }],
+ layout: bgl
+ });
+ const module = t.device.createShaderModule({
+ code:
+ /* GLSL(
+ * 'compute',
+ * `#version 310 es
+ * layout(std140, set = 0, binding = 0) buffer Src {
+ * int value;
+ * } src;
+ * layout(std140, set = 0, binding = 1) buffer Dst {
+ * int value;
+ * } dst;
+ *
+ * void main() {
+ * dst.value = src.value;
+ * }
+ * `
+ * )
+ */
+ new Uint32Array([119734787, 66304, 524295, 18, 0, 131089, 1, 393227, 1, 1280527431, 1685353262, 808793134, 0, 196622, 0, 1, 327695, 5, 4, 1852399981, 0, 393232, 4, 17, 1, 1, 1, 196611, 1, 310, 262149, 4, 1852399981, 0, 196613, 7, 7631684, 327686, 7, 0, 1970037110, 101, 196613, 9, 7631716, 196613, 11, 6517331, 327686, 11, 0, 1970037110, 101, 196613, 13, 6517363, 327752, 7, 0, 35, 0, 196679, 7, 2, 262215, 9, 34, 0, 262215, 9, 33, 1, 327752, 11, 0, 35, 0, 196679, 11, 2, 262215, 13, 34, 0, 262215, 13, 33, 0, 131091, 2, 196641, 3, 2, 262165, 6, 32, 1, 196638, 7, 6, 262176, 8, 12, 7, 262203, 8, 9, 12, 262187, 6, 10, 0, 196638, 11, 6, 262176, 12, 12, 11, 262203, 12, 13, 12, 262176, 14, 12, 6, 327734, 2, 4, 0, 3, 131320, 5, 327745, 14, 15, 13, 10, 262205, 6, 16, 15, 327745, 14, 17, 9, 10, 196670, 17, 16, 65789, 65592])
+ });
+ const pl = t.device.createPipelineLayout({
+ bindGroupLayouts: [bgl]
+ });
+ const pipeline = t.device.createComputePipeline({
+ computeStage: {
+ module,
+ entryPoint: 'main'
+ },
+ layout: pl
+ });
+ const encoder = t.device.createCommandEncoder({});
+ const pass = encoder.beginComputePass();
+ pass.setPipeline(pipeline);
+ pass.setBindGroup(0, bg);
+ pass.dispatch(1, 1, 1);
+ pass.endPass();
+ t.device.getQueue().submit([encoder.finish()]);
+ await t.expectContents(dst, data);
+});
+//# sourceMappingURL=basic.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/copies.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/copies.spec.js
new file mode 100644
index 00000000000..9bf78db8454
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/copies.spec.js
@@ -0,0 +1,169 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = `
+copy{Buffer,Texture}To{Buffer,Texture} tests.
+`;
+import { TestGroup } from '../../../framework/index.js';
+import { GPUTest } from '../gpu_test.js';
+export const g = new TestGroup(GPUTest);
+g.test('b2b', async t => {
+ const data = new Uint32Array([0x01020304]);
+ const [src, map] = t.device.createBufferMapped({
+ size: 4,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST
+ });
+ new Uint32Array(map).set(data);
+ src.unmap();
+ const dst = t.device.createBuffer({
+ size: 4,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST
+ });
+ const encoder = t.device.createCommandEncoder({});
+ encoder.copyBufferToBuffer(src, 0, dst, 0, 4);
+ t.device.getQueue().submit([encoder.finish()]);
+ await t.expectContents(dst, data);
+});
+g.test('b2t2b', async t => {
+ const data = new Uint32Array([0x01020304]);
+ const [src, map] = t.device.createBufferMapped({
+ size: 4,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST
+ });
+ new Uint32Array(map).set(data);
+ src.unmap();
+ const dst = t.device.createBuffer({
+ size: 4,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST
+ });
+ const mid = t.device.createTexture({
+ size: {
+ width: 1,
+ height: 1,
+ depth: 1
+ },
+ format: 'rgba8uint',
+ usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST
+ });
+ const encoder = t.device.createCommandEncoder({});
+ encoder.copyBufferToTexture({
+ buffer: src,
+ rowPitch: 256,
+ imageHeight: 1
+ }, {
+ texture: mid,
+ mipLevel: 0,
+ origin: {
+ x: 0,
+ y: 0,
+ z: 0
+ }
+ }, {
+ width: 1,
+ height: 1,
+ depth: 1
+ });
+ encoder.copyTextureToBuffer({
+ texture: mid,
+ mipLevel: 0,
+ origin: {
+ x: 0,
+ y: 0,
+ z: 0
+ }
+ }, {
+ buffer: dst,
+ rowPitch: 256,
+ imageHeight: 1
+ }, {
+ width: 1,
+ height: 1,
+ depth: 1
+ });
+ t.device.getQueue().submit([encoder.finish()]);
+ await t.expectContents(dst, data);
+});
+g.test('b2t2t2b', async t => {
+ const data = new Uint32Array([0x01020304]);
+ const [src, map] = t.device.createBufferMapped({
+ size: 4,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST
+ });
+ new Uint32Array(map).set(data);
+ src.unmap();
+ const dst = t.device.createBuffer({
+ size: 4,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST
+ });
+ const midDesc = {
+ size: {
+ width: 1,
+ height: 1,
+ depth: 1
+ },
+ format: 'rgba8uint',
+ usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.COPY_DST
+ };
+ const mid1 = t.device.createTexture(midDesc);
+ const mid2 = t.device.createTexture(midDesc);
+ const encoder = t.device.createCommandEncoder({});
+ encoder.copyBufferToTexture({
+ buffer: src,
+ rowPitch: 256,
+ imageHeight: 1
+ }, {
+ texture: mid1,
+ mipLevel: 0,
+ origin: {
+ x: 0,
+ y: 0,
+ z: 0
+ }
+ }, {
+ width: 1,
+ height: 1,
+ depth: 1
+ });
+ encoder.copyTextureToTexture({
+ texture: mid1,
+ mipLevel: 0,
+ origin: {
+ x: 0,
+ y: 0,
+ z: 0
+ }
+ }, {
+ texture: mid2,
+ mipLevel: 0,
+ origin: {
+ x: 0,
+ y: 0,
+ z: 0
+ }
+ }, {
+ width: 1,
+ height: 1,
+ depth: 1
+ });
+ encoder.copyTextureToBuffer({
+ texture: mid2,
+ mipLevel: 0,
+ origin: {
+ x: 0,
+ y: 0,
+ z: 0
+ }
+ }, {
+ buffer: dst,
+ rowPitch: 256,
+ imageHeight: 1
+ }, {
+ width: 1,
+ height: 1,
+ depth: 1
+ });
+ t.device.getQueue().submit([encoder.finish()]);
+ await t.expectContents(dst, data);
+});
+//# sourceMappingURL=copies.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/basic.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/basic.spec.js
new file mode 100644
index 00000000000..bb201dbe846
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/basic.spec.js
@@ -0,0 +1,60 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = `
+Basic command buffer rendering tests.
+`;
+import { TestGroup } from '../../../../framework/index.js';
+import { GPUTest } from '../../gpu_test.js';
+export const g = new TestGroup(GPUTest);
+g.test('clear', async t => {
+ const dst = t.device.createBuffer({
+ size: 4,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST
+ });
+ const colorAttachment = t.device.createTexture({
+ format: 'rgba8unorm',
+ size: {
+ width: 1,
+ height: 1,
+ depth: 1
+ },
+ usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.OUTPUT_ATTACHMENT
+ });
+ const colorAttachmentView = colorAttachment.createDefaultView();
+ const encoder = t.device.createCommandEncoder({});
+ const pass = encoder.beginRenderPass({
+ colorAttachments: [{
+ attachment: colorAttachmentView,
+ loadValue: {
+ r: 0.0,
+ g: 1.0,
+ b: 0.0,
+ a: 1.0
+ },
+ storeOp: 'store'
+ }]
+ });
+ pass.endPass();
+ encoder.copyTextureToBuffer({
+ texture: colorAttachment,
+ mipLevel: 0,
+ origin: {
+ x: 0,
+ y: 0,
+ z: 0
+ }
+ }, {
+ buffer: dst,
+ rowPitch: 256,
+ imageHeight: 1
+ }, {
+ width: 1,
+ height: 1,
+ depth: 1
+ });
+ t.device.getQueue().submit([encoder.finish()]);
+ await t.expectContents(dst, new Uint8Array([0x00, 0xff, 0x00, 0xff]));
+});
+//# sourceMappingURL=basic.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/rendering.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/rendering.spec.js
new file mode 100644
index 00000000000..762285d1bcc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/command_buffer/render/rendering.spec.js
@@ -0,0 +1,117 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = ``;
+import { TestGroup } from '../../../../framework/index.js';
+import { GPUTest } from '../../gpu_test.js';
+export const g = new TestGroup(GPUTest);
+g.test('fullscreen quad', async t => {
+ const dst = t.device.createBuffer({
+ size: 4,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST
+ });
+ const colorAttachment = t.device.createTexture({
+ format: 'rgba8unorm',
+ size: {
+ width: 1,
+ height: 1,
+ depth: 1
+ },
+ usage: GPUTextureUsage.COPY_SRC | GPUTextureUsage.OUTPUT_ATTACHMENT
+ });
+ const colorAttachmentView = colorAttachment.createDefaultView();
+ const vertexModule = t.device.createShaderModule({
+ code:
+ /* GLSL(
+ * 'vertex',
+ * `#version 310 es
+ * void main() {
+ * const vec2 pos[3] = vec2[3](
+ * vec2(-1.f, -3.f), vec2(3.f, 1.f), vec2(-1.f, 1.f));
+ * gl_Position = vec4(pos[gl_VertexIndex], 0.f, 1.f);
+ * }
+ * `
+ * )
+ */
+ new Uint32Array([119734787, 66304, 524295, 39, 0, 131089, 1, 393227, 1, 1280527431, 1685353262, 808793134, 0, 196622, 0, 1, 458767, 0, 4, 1852399981, 0, 10, 26, 196611, 1, 310, 262149, 4, 1852399981, 0, 393221, 8, 1348430951, 1700164197, 2019914866, 0, 393222, 8, 0, 1348430951, 1953067887, 7237481, 458758, 8, 1, 1348430951, 1953393007, 1702521171, 0, 196613, 10, 0, 393221, 26, 1449094247, 1702130277, 1684949368, 30821, 327685, 29, 1701080681, 1818386808, 101, 327752, 8, 0, 11, 0, 327752, 8, 1, 11, 1, 196679, 8, 2, 262215, 26, 11, 42, 131091, 2, 196641, 3, 2, 196630, 6, 32, 262167, 7, 6, 4, 262174, 8, 7, 6, 262176, 9, 3, 8, 262203, 9, 10, 3, 262165, 11, 32, 1, 262187, 11, 12, 0, 262167, 13, 6, 2, 262165, 14, 32, 0, 262187, 14, 15, 3, 262172, 16, 13, 15, 262187, 6, 17, 3212836864, 262187, 6, 18, 3225419776, 327724, 13, 19, 17, 18, 262187, 6, 20, 1077936128, 262187, 6, 21, 1065353216, 327724, 13, 22, 20, 21, 327724, 13, 23, 17, 21, 393260, 16, 24, 19, 22, 23, 262176, 25, 1, 11, 262203, 25, 26, 1, 262176, 28, 7, 16, 262176, 30, 7, 13, 262187, 6, 33, 0, 262176, 37, 3, 7, 327734, 2, 4, 0, 3, 131320, 5, 262203, 28, 29, 7, 262205, 11, 27, 26, 196670, 29, 24, 327745, 30, 31, 29, 27, 262205, 13, 32, 31, 327761, 6, 34, 32, 0, 327761, 6, 35, 32, 1, 458832, 7, 36, 34, 35, 33, 21, 327745, 37, 38, 10, 12, 196670, 38, 36, 65789, 65592])
+ });
+ const fragmentModule = t.device.createShaderModule({
+ code:
+ /* GLSL(
+ * 'fragment',
+ * `#version 310 es
+ * precision mediump float;
+ * layout(location = 0) out vec4 fragColor;
+ * void main() {
+ * fragColor = vec4(0.0, 1.0, 0.0, 1.0);
+ * }
+ * `
+ * )
+ */
+ new Uint32Array([119734787, 66304, 524295, 13, 0, 131089, 1, 393227, 1, 1280527431, 1685353262, 808793134, 0, 196622, 0, 1, 393231, 4, 4, 1852399981, 0, 9, 196624, 4, 7, 196611, 1, 310, 262149, 4, 1852399981, 0, 327685, 9, 1734439526, 1869377347, 114, 196679, 9, 0, 262215, 9, 30, 0, 131091, 2, 196641, 3, 2, 196630, 6, 32, 262167, 7, 6, 4, 262176, 8, 3, 7, 262203, 8, 9, 3, 262187, 6, 10, 0, 262187, 6, 11, 1065353216, 458796, 7, 12, 10, 11, 10, 11, 327734, 2, 4, 0, 3, 131320, 5, 196670, 9, 12, 65789, 65592])
+ });
+ const pl = t.device.createPipelineLayout({
+ bindGroupLayouts: []
+ });
+ const pipeline = t.device.createRenderPipeline({
+ vertexStage: {
+ module: vertexModule,
+ entryPoint: 'main'
+ },
+ fragmentStage: {
+ module: fragmentModule,
+ entryPoint: 'main'
+ },
+ layout: pl,
+ primitiveTopology: 'triangle-list',
+ rasterizationState: {
+ frontFace: 'ccw'
+ },
+ colorStates: [{
+ format: 'rgba8unorm',
+ alphaBlend: {},
+ colorBlend: {}
+ }],
+ vertexInput: {
+ indexFormat: 'uint16',
+ vertexBuffers: []
+ }
+ });
+ const encoder = t.device.createCommandEncoder({});
+ const pass = encoder.beginRenderPass({
+ colorAttachments: [{
+ attachment: colorAttachmentView,
+ storeOp: 'store',
+ loadValue: {
+ r: 1.0,
+ g: 0.0,
+ b: 0.0,
+ a: 1.0
+ }
+ }]
+ });
+ pass.setPipeline(pipeline);
+ pass.draw(3, 1, 0, 0);
+ pass.endPass();
+ encoder.copyTextureToBuffer({
+ texture: colorAttachment,
+ mipLevel: 0,
+ origin: {
+ x: 0,
+ y: 0,
+ z: 0
+ }
+ }, {
+ buffer: dst,
+ rowPitch: 256,
+ imageHeight: 1
+ }, {
+ width: 1,
+ height: 1,
+ depth: 1
+ });
+ t.device.getQueue().submit([encoder.finish()]);
+ await t.expectContents(dst, new Uint8Array([0x00, 0xff, 0x00, 0xff]));
+});
+//# sourceMappingURL=rendering.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/examples.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/examples.spec.js
new file mode 100644
index 00000000000..ad86e73b191
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/examples.spec.js
@@ -0,0 +1,71 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = `
+Examples of writing CTS tests with various features.
+`;
+import { TestGroup } from '../../framework/index.js';
+import { GPUTest } from './gpu_test.js'; // To run these tests in the standalone runner, run `grunt build` or `grunt pre` then open:
+// - http://localhost:8080/?runnow=1&q=cts:examples:
+// To run in WPT, copy/symlink the out-wpt/ directory as the webgpu/ directory in WPT, then open:
+// - (wpt server url)/webgpu/cts.html?q=cts:examples:
+//
+// Tests here can be run individually or in groups:
+// - ?q=cts:examples:basic/async=
+// - ?q=cts:examples:basic/
+// - ?q=cts:examples:
+
+export const g = new TestGroup(GPUTest);
+g.test('basic', t => {
+ t.expect(true);
+ t.expect(true, 'true should be true');
+ t.shouldThrow( // The expected '.name' of the thrown error.
+ 'TypeError', // This function is run inline inside shouldThrow, and is expected to throw.
+ () => {
+ throw new TypeError();
+ }, // Log message.
+ 'function should throw Error');
+});
+g.test('basic/async', async t => {
+ // shouldReject must be awaited to ensure it can wait for the promise before the test ends.
+ await t.shouldReject( // The expected '.name' of the thrown error.
+ 'TypeError', // Promise expected to reject.
+ Promise.reject(new TypeError()), // Log message.
+ 'Promise.reject should reject'); // Promise can also be an IIFE.
+
+ await t.shouldReject('TypeError', (async () => {
+ throw new TypeError();
+ })(), 'Promise.reject should reject');
+});
+g.test('basic/params', t => {
+ t.expect(t.params.x + t.params.y === t.params.result);
+}).params([{
+ x: 2,
+ y: 4,
+ result: 6
+}, // (blank comment to enforce newlines on autoformat)
+{
+ x: -10,
+ y: 18,
+ result: 8
+}]);
+g.test('gpu/async', async t => {
+ const fence = t.queue.createFence();
+ t.queue.signal(fence, 2);
+ await fence.onCompletion(1);
+ t.expect(fence.getCompletedValue() === 2);
+});
+g.test('gpu/buffers', async t => {
+ const data = new Uint32Array([0, 1234, 0]);
+ const [src, map] = t.device.createBufferMapped({
+ size: 12,
+ usage: GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST
+ });
+ new Uint32Array(map).set(data);
+ src.unmap(); // Use the expectContents helper to check the actual contents of a GPUBuffer.
+ // Like shouldReject, it must be awaited.
+
+ await t.expectContents(src, data);
+});
+//# sourceMappingURL=examples.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/fences.spec.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/fences.spec.js
new file mode 100644
index 00000000000..d9f8ce57678
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/fences.spec.js
@@ -0,0 +1,126 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+export const description = ``;
+import { attemptGarbageCollection } from '../../framework/collect_garbage.js';
+import { TestGroup } from '../../framework/index.js';
+import { GPUTest } from './gpu_test.js';
+export const g = new TestGroup(GPUTest);
+g.test('initial/no descriptor', t => {
+ const fence = t.queue.createFence();
+ t.expect(fence.getCompletedValue() === 0);
+});
+g.test('initial/empty descriptor', t => {
+ const fence = t.queue.createFence({});
+ t.expect(fence.getCompletedValue() === 0);
+});
+g.test('initial/descriptor with initialValue', t => {
+ const fence = t.queue.createFence({
+ initialValue: 2
+ });
+ t.expect(fence.getCompletedValue() === 2);
+}); // Promise resolves when onCompletion value is less than signal value.
+
+g.test('wait/less than signaled', async t => {
+ const fence = t.queue.createFence();
+ t.queue.signal(fence, 2);
+ await fence.onCompletion(1);
+ t.expect(fence.getCompletedValue() === 2);
+}); // Promise resolves when onCompletion value is equal to signal value.
+
+g.test('wait/equal to signaled', async t => {
+ const fence = t.queue.createFence();
+ t.queue.signal(fence, 2);
+ await fence.onCompletion(2);
+ t.expect(fence.getCompletedValue() === 2);
+}); // Test it is illegal to wait on a value greater than the signaled value.
+
+g.test('wait/greater than signaled', async t => {
+ const fence = t.queue.createFence();
+ t.queue.signal(fence, 2);
+ const promise = fence.onCompletion(3);
+ await t.shouldReject('OperationError', promise);
+}); // Promise resolves when signal is called multiple times.
+
+g.test('wait/signaled multiple times', async t => {
+ const fence = t.queue.createFence();
+ t.queue.signal(fence, 1);
+ t.queue.signal(fence, 2);
+ await fence.onCompletion(2);
+ t.expect(fence.getCompletedValue() === 2);
+}); // Promise resolves if fence has already completed.
+
+g.test('wait/already completed', async t => {
+ const fence = t.queue.createFence();
+ t.queue.signal(fence, 2); // Wait for value to update.
+
+ while (fence.getCompletedValue() < 2) {
+ await new Promise(resolve => {
+ requestAnimationFrame(resolve);
+ });
+ }
+
+ t.expect(fence.getCompletedValue() === 2);
+ await fence.onCompletion(2);
+ t.expect(fence.getCompletedValue() === 2);
+}); // Test it is illegal to wait on a fence without signaling the value.
+
+g.test('wait/without signal', async t => {
+ const fence = t.queue.createFence();
+ const promise = fence.onCompletion(2);
+ await t.shouldReject('OperationError', promise);
+}); // Test it is illegal to wait on a fence before it is signaled.
+
+g.test('wait/before signaled', async t => {
+ const fence = t.queue.createFence();
+ const promise = fence.onCompletion(2);
+ t.queue.signal(fence, 2);
+ await t.shouldReject('OperationError', promise);
+}); // Test many calls to signal and wait on fence values one at a time.
+
+g.test('wait/many/serially', async t => {
+ const fence = t.queue.createFence();
+
+ for (let i = 1; i <= 20; ++i) {
+ t.queue.signal(fence, i);
+ await fence.onCompletion(i);
+ t.expect(fence.getCompletedValue() === i);
+ }
+}); // Test many calls to signal and wait on all fence values.
+
+g.test('wait/many/parallel', async t => {
+ const fence = t.queue.createFence();
+ const promises = [];
+
+ for (let i = 1; i <= 20; ++i) {
+ t.queue.signal(fence, i);
+ promises.push(fence.onCompletion(i).then(() => {
+ t.expect(fence.getCompletedValue() >= i);
+ }));
+ }
+
+ await Promise.all(promises);
+ t.expect(fence.getCompletedValue() === 20);
+}); // Test dropping references to the fence and onCompletion promise does not crash.
+
+g.test('drop/fence and promise', t => {
+ {
+ const fence = t.queue.createFence();
+ t.queue.signal(fence, 2);
+ fence.onCompletion(2);
+ }
+ attemptGarbageCollection();
+}); // Test dropping references to the fence and holding the promise does not crash.
+
+g.test('drop/promise', async t => {
+ let promise;
+ {
+ const fence = t.queue.createFence();
+ t.queue.signal(fence, 2);
+ promise = fence.onCompletion(2);
+ }
+ attemptGarbageCollection();
+ await promise;
+});
+//# sourceMappingURL=fences.spec.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/gpu_test.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/gpu_test.js
new file mode 100644
index 00000000000..a67ce4ab0ba
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/gpu_test.js
@@ -0,0 +1,75 @@
+/**
+* AUTO-GENERATED - DO NOT EDIT. Source: https://github.com/gpuweb/cts
+**/
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+import { getGPU } from '../../framework/gpu/implementation.js';
+import { Fixture } from '../../framework/index.js'; // TODO: Should this gain some functionality currently only in UnitTest?
+
+export class GPUTest extends Fixture {
+ constructor(...args) {
+ super(...args);
+
+ _defineProperty(this, "device", undefined);
+
+ _defineProperty(this, "queue", undefined);
+ }
+
+ async init() {
+ super.init();
+ const gpu = getGPU();
+ const adapter = await gpu.requestAdapter();
+ this.device = await adapter.requestDevice({});
+ this.queue = this.device.getQueue();
+ } // TODO: add an expectContents for textures, which logs data: uris on failure
+
+
+ expectContents(src, expected) {
+ return this.asyncExpectation(async () => {
+ const exp = new Uint8Array(expected.buffer, expected.byteOffset, expected.byteLength);
+ const size = expected.buffer.byteLength;
+ const dst = this.device.createBuffer({
+ size: expected.buffer.byteLength,
+ usage: GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST
+ });
+ const c = this.device.createCommandEncoder({});
+ c.copyBufferToBuffer(src, 0, dst, 0, size);
+ this.queue.submit([c.finish()]);
+ const actual = new Uint8Array((await dst.mapReadAsync()));
+ this.expectBuffer(actual, exp);
+ });
+ }
+
+ expectBuffer(actual, exp) {
+ const size = exp.byteLength;
+
+ if (actual.byteLength !== size) {
+ this.rec.fail('size mismatch');
+ return;
+ }
+
+ let failedPixels = 0;
+
+ for (let i = 0; i < size; ++i) {
+ if (actual[i] !== exp[i]) {
+ if (failedPixels > 4) {
+ this.rec.fail('... and more');
+ break;
+ }
+
+ failedPixels++;
+ this.rec.fail(`at [${i}], expected ${exp[i]}, got ${actual[i]}`);
+ }
+ }
+
+ if (size <= 256 && failedPixels > 0) {
+ const expHex = Array.from(exp).map(x => x.toString(16).padStart(2, '0')).join('');
+ const actHex = Array.from(actual).map(x => x.toString(16).padStart(2, '0')).join('');
+ this.rec.log('EXPECT: ' + expHex);
+ this.rec.log('ACTUAL: ' + actHex);
+ }
+ }
+
+}
+//# sourceMappingURL=gpu_test.js.map \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webgpu/suites/cts/index.js b/tests/wpt/web-platform-tests/webgpu/suites/cts/index.js
new file mode 100644
index 00000000000..cb2a592697f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webgpu/suites/cts/index.js
@@ -0,0 +1,52 @@
+// AUTO-GENERATED - DO NOT EDIT. See src/tools/gen.ts.
+
+export const listing = [
+ {
+ "path": "buffers/create_mapped",
+ "description": ""
+ },
+ {
+ "path": "buffers/map",
+ "description": ""
+ },
+ {
+ "path": "buffers/map_detach",
+ "description": ""
+ },
+ {
+ "path": "buffers/map_oom",
+ "description": ""
+ },
+ {
+ "path": "canvas/context_creation",
+ "description": ""
+ },
+ {
+ "path": "command_buffer/basic",
+ "description": "Basic tests."
+ },
+ {
+ "path": "command_buffer/compute/basic",
+ "description": "Basic command buffer compute tests."
+ },
+ {
+ "path": "command_buffer/copies",
+ "description": "copy{Buffer,Texture}To{Buffer,Texture} tests."
+ },
+ {
+ "path": "command_buffer/render/basic",
+ "description": "Basic command buffer rendering tests."
+ },
+ {
+ "path": "command_buffer/render/rendering",
+ "description": ""
+ },
+ {
+ "path": "examples",
+ "description": "Examples of writing CTS tests with various features."
+ },
+ {
+ "path": "fences",
+ "description": ""
+ }
+];
diff --git a/tests/wpt/web-platform-tests/webxr/events_input_sources_change.https.html b/tests/wpt/web-platform-tests/webxr/events_input_sources_change.https.html
index bc2b2a95e40..107cc9b544e 100644
--- a/tests/wpt/web-platform-tests/webxr/events_input_sources_change.https.html
+++ b/tests/wpt/web-platform-tests/webxr/events_input_sources_change.https.html
@@ -24,6 +24,7 @@ let testFunction = function(session, fakeDeviceController, t) {
t.step(() => {
inputChangeEvents++;
assert_equals(event.session, session);
+ validateSameObject(event);
// The first change event should be adding our controller.
if (inputChangeEvents === 1) {
@@ -69,6 +70,23 @@ let testFunction = function(session, fakeDeviceController, t) {
});
}
+ // Verifies that the same object is returned each time attributes are accessed
+ // on an XRInputSourcesChangeEvent, as required by the spec.
+ function validateSameObject(event) {
+ let eventSession = event.session;
+ let added = event.added;
+ let removed = event.removed;
+
+ t.step(() => {
+ assert_equals(eventSession, event.session,
+ "XRInputSourcesChangeEvent.session returns the same object.");
+ assert_equals(added, event.added,
+ "XRInputSourcesChangeEvent.added returns the same object.");
+ assert_equals(removed, event.removed,
+ "XRInputSourcesChangeEvent.removed returns the same object.");
+ });
+ }
+
session.addEventListener('inputsourceschange', onInputSourcesChange, false);
// Create our input source and immediately toggle the primary input so that
diff --git a/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html b/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html
index f15ffc52a88..3a931168fd3 100644
--- a/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html
+++ b/tests/wpt/web-platform-tests/webxr/events_referenceSpace_reset.https.html
@@ -21,7 +21,19 @@ let testFunction = function(session, fakeDeviceController, t) {
let eventWatcher = new EventWatcher(
t, refSpace, ["reset", "watcherdone"]);
refSpace.addEventListener("reset", (event) => {
- assert_equals(event.referenceSpace, refSpace);
+ t.step(() => {
+ assert_equals(event.referenceSpace, refSpace);
+
+ // Also make sure the same objects are returned each time these
+ // attributes are accessed.
+ let eventRefSpace = event.referenceSpace;
+ let transform = event.transform;
+ assert_equals(eventRefSpace, event.referenceSpace,
+ "XRReferenceSpaceEvent.referenceSpace returns the same object.");
+ assert_equals(transform, event.transform,
+ "XRReferenceSpaceEvent.transform returns the same object.");
+ });
+
refSpace.dispatchEvent(watcherDone);
}, false);
return eventWatcher.wait_for(["reset", "watcherdone"]);
@@ -38,6 +50,8 @@ let testFunction = function(session, fakeDeviceController, t) {
xr_session_promise_test(
immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr');
xr_session_promise_test(
- nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline');
+ nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline', {
+ requiredFeatures: ['local'],
+ });
</script>
diff --git a/tests/wpt/web-platform-tests/webxr/events_session_select.https.html b/tests/wpt/web-platform-tests/webxr/events_session_select.https.html
index b74d5ea02db..396d6b23939 100644
--- a/tests/wpt/web-platform-tests/webxr/events_session_select.https.html
+++ b/tests/wpt/web-platform-tests/webxr/events_session_select.https.html
@@ -38,6 +38,7 @@ let testFunction = function(session, fakeDeviceController, t) {
let input_sources = session.inputSources;
assert_equals(event.frame.session, session);
assert_equals(event.inputSource, input_sources[0]);
+ validateSameObject(event);
tryCallingFrameMethods(event.frame);
});
}
@@ -47,6 +48,7 @@ let testFunction = function(session, fakeDeviceController, t) {
let input_sources = session.inputSources;
assert_equals(event.frame.session, session);
assert_equals(event.inputSource, input_sources[0]);
+ validateSameObject(event);
tryCallingFrameMethods(event.frame);
});
session.dispatchEvent(watcherDone);
@@ -57,10 +59,24 @@ let testFunction = function(session, fakeDeviceController, t) {
let input_sources = session.inputSources;
assert_equals(event.frame.session, session);
assert_equals(event.inputSource, input_sources[0]);
+ validateSameObject(event);
tryCallingFrameMethods(event.frame);
});
}
+ // Verifies that the same object is returned each time attributes are accessed
+ // on an XRInputSoruceEvent, as required by the spec.
+ function validateSameObject(event) {
+ let frame = event.frame;
+ let source = event.inputSource;
+ t.step(() => {
+ assert_equals(frame, event.frame,
+ "XRInputSourceEvent.frame returns the same object.");
+ assert_equals(source, event.inputSource,
+ "XRInputSourceEvent.inputSource returns the same object.");
+ });
+ }
+
session.addEventListener("selectstart", onSessionSelectStart, false);
session.addEventListener("selectend", onSessionSelectEnd, false);
session.addEventListener("select", onSessionSelect, false);
diff --git a/tests/wpt/web-platform-tests/webxr/navigator_xr_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/navigator_xr_sameObject.https.html
new file mode 100644
index 00000000000..56cd65c4e42
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/navigator_xr_sameObject.https.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webxr_util.js"></script>
+<script src="resources/webxr_test_constants.js"></script>
+<canvas id="webgl-canvas"></canvas>
+
+<script>
+let testName = "Navigator.xr meets [SameObject] requirement";
+
+let testFunction = function(session, fakeDeviceController, t) {
+ let xr = navigator.xr;
+
+ return new Promise((resolve) => {
+ // Make sure the navigator.xr object is the same on each frame.
+ session.requestAnimationFrame((time, xrFrame) => {
+ t.step(() => {
+ assert_equals(navigator.xr, xr, "navigator.xr returns the same object");
+ });
+ session.requestAnimationFrame((time, xrFrame) => {
+ t.step(() => {
+ assert_equals(navigator.xr, xr,
+ "naivgator.xr returns the same object");
+ });
+ resolve();
+ });
+ });
+ });
+};
+
+xr_session_promise_test(
+ testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
+</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html b/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html
index 2f84d645367..1d7ad93695a 100644
--- a/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html
+++ b/tests/wpt/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html
@@ -58,6 +58,6 @@ let testFunction = function(session, fakeDeviceController, t) {
});
};
-xr_session_promise_test(testName, testFunction, fakeDeviceInitParams, 'immersive-vr');
+xr_session_promise_test(testName, testFunction, fakeDeviceInitParams, 'immersive-vr', { 'requiredFeatures': ['bounded-floor'] });
</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrFrame_getPose.https.html b/tests/wpt/web-platform-tests/webxr/xrFrame_getPose.https.html
index 8795a0a9737..71ca78abb48 100644
--- a/tests/wpt/web-platform-tests/webxr/xrFrame_getPose.https.html
+++ b/tests/wpt/web-platform-tests/webxr/xrFrame_getPose.https.html
@@ -77,6 +77,6 @@ let testFunction = function(session, fakeDeviceController, t) {
xr_session_promise_test(immersiveTestName, testFunction,
fakeDeviceInitParams, 'immersive-vr');
xr_session_promise_test(nonImmersiveTestName, testFunction,
- fakeDeviceInitParams, 'inline');
+ fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local'] });
</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html b/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html
index c7af792c7bb..2d706d24848 100644
--- a/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html
+++ b/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html
@@ -52,7 +52,7 @@
xr_session_promise_test(immersiveTestName, testFunction,
fakeDeviceInitParams, 'immersive-vr');
xr_session_promise_test(nonImmersiveTestName, testFunction,
- fakeDeviceInitParams, 'inline');
+ fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local'] });
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/webxr/xrFrame_session_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrFrame_session_sameObject.https.html
new file mode 100644
index 00000000000..cbbef68713b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrFrame_session_sameObject.https.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webxr_util.js"></script>
+<script src="resources/webxr_test_constants.js"></script>
+<canvas id="webgl-canvas"></canvas>
+
+<script>
+let testName = "XRFrame.session meets [SameObject] requirement";
+
+let testFunction = function(session, fakeDeviceController, t) {
+ return new Promise((resolve) => {
+ session.requestAnimationFrame((time, xrFrame) => {
+ let session = xrFrame.session;
+ t.step(() => {
+ assert_equals(session, xrFrame.session,
+ "XRFrame.session returns the same object.");
+ });
+ resolve();
+ });
+ });
+};
+
+xr_session_promise_test(
+ testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
+</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrInputSource_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrInputSource_sameObject.https.html
new file mode 100644
index 00000000000..78240de2f90
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrInputSource_sameObject.https.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webxr_util.js"></script>
+<script src="resources/webxr_test_constants.js"></script>
+<canvas id="webgl-canvas"></canvas>
+
+<script>
+let testName = "XRInputSource attributes meet [SameObject] requirement";
+
+let testFunction = function(session, fakeDeviceController, t) {
+ return new Promise((resolve) => {
+ let input_source = fakeDeviceController.simulateInputSourceConnection({
+ handedness: "right",
+ targetRayMode: "tracked-pointer",
+ pointerOrigin: VALID_POINTER_TRANSFORM,
+ gripOrigin: VALID_GRIP_TRANSFORM,
+ profiles: ["foo", "bar"]
+ });
+
+ session.requestAnimationFrame((time, xrFrame) => {
+ let source = session.inputSources[0];
+ let targetRaySpace = source.targetRaySpace;
+ let gripSpace = source.gripSpace;
+ let profiles = source.profiles;
+
+ t.step(() => {
+ assert_not_equals(targetRaySpace, null,
+ "target ray space must not be null");
+ assert_not_equals(gripSpace, null, "grip space must not be null");
+
+ // Make sure [SameObject] attributes actually have the same object
+ // returned each time they are accessed.
+ assert_equals(targetRaySpace, source.targetRaySpace,
+ "XRInputSource.targetRaySpace returns the same object.");
+ assert_equals(gripSpace, source.gripSpace,
+ "XRInputSource.gripSpace returns the same object.");
+ assert_equals(profiles, source.profiles,
+ "XRInputSource.profiles returns the same object.");
+ });
+
+ session.requestAnimationFrame((time, xrFrame) => {
+ // Make sure the attributes still return the same object on the next
+ // frame when nothing has happened that would cause the input source
+ // to be recreated.
+ t.step(() => {
+ assert_equals(targetRaySpace, source.targetRaySpace,
+ "XRInputSource.targetRaySpace returns the same object each frame.");
+ assert_equals(gripSpace, source.gripSpace,
+ "XRInputSource.gripSpace returns the same object each frame.");
+ assert_equals(profiles, source.profiles,
+ "XRInputSource.profiles returns the same object each frame.");
+ });
+
+ resolve();
+ });
+ });
+ });
+};
+
+xr_session_promise_test(
+ testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
+</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrPose_transform_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrPose_transform_sameObject.https.html
new file mode 100644
index 00000000000..79eed4cdec4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrPose_transform_sameObject.https.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webxr_util.js"></script>
+<script src="resources/webxr_test_constants.js"></script>
+<canvas id="webgl-canvas"></canvas>
+
+<script>
+let testName = "XRPose.transform meets [SameObject] requirement";
+
+let testFunction = function(session, fakeDeviceController, t) {
+ return new Promise((resolve) => {
+ let input_source = fakeDeviceController.simulateInputSourceConnection({
+ handedness: "right",
+ targetRayMode: "tracked-pointer",
+ pointerOrigin: VALID_POINTER_TRANSFORM,
+ gripOrigin: VALID_GRIP_TRANSFORM,
+ profiles: []
+ });
+
+ session.requestReferenceSpace('local').then((referenceSpace) => {
+ session.requestAnimationFrame((time, xrFrame) => {
+ let source = session.inputSources[0];
+ let input_pose = xrFrame.getPose(source.targetRaySpace, referenceSpace);
+
+ // Make sure that the transform attribute is the same object each time
+ // we access it. This verifies that the XRPose does *not* do something
+ // spec-noncompliant such as creating and returning a new
+ // XRRigidTransform object each time the attribute is accessed.
+ let transform = input_pose.transform;
+ t.step(() => {
+ assert_equals(transform, input_pose.transform,
+ "XRPose.transform returns the same object.");
+ });
+ resolve();
+ });
+ });
+ });
+};
+
+xr_session_promise_test(
+ testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
+</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html b/tests/wpt/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html
index ae1767ba74e..d0f91a4630d 100644
--- a/tests/wpt/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html
+++ b/tests/wpt/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https.html
@@ -239,6 +239,6 @@ function testFunction(session, fakeDeviceController, t) {
};
xr_session_promise_test(
- testName, testFunction, fakeDeviceInitParams, 'immersive-vr');
+ testName, testFunction, fakeDeviceInitParams, 'immersive-vr', { 'requiredFeatures': ['bounded-floor'] });
</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrRigidTransform_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrRigidTransform_sameObject.https.html
new file mode 100644
index 00000000000..d014fe6fb56
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrRigidTransform_sameObject.https.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webxr_util.js"></script>
+<script src="resources/webxr_test_constants.js"></script>
+<canvas id="webgl-canvas"></canvas>
+<script>
+
+let testName = "XRRigidTransform position and orientation meet [SameObject] requirements";
+
+// xrRigidTransform_inverse.https.html already checks [SameObject] requirement
+// for XRRigidTransform.inverse. It's in a separate test because there are
+// additional constraints around how the inverse attribute should work besides
+// just [SameObject].
+
+let testFunction =
+ (session, fakeDeviceController, t) => new Promise((resolve, reject) => {
+
+ let transform = new XRRigidTransform(
+ { x: -9.0, y: 8.0, z: -7.0 },
+ { x: 6.0, y: -5.0, z: 4.0, w: 3.0 });
+
+ let position = transform.position;
+ let orientation = transform.orientation;
+ t.step(() => {
+ assert_equals(position, transform.position,
+ "XRRigidTransform.position returns the same object.");
+ assert_equals(orientation, transform.orientation,
+ "XRRigidTransform.orientation returns the same object.");
+ });
+
+ resolve();
+});
+
+xr_session_promise_test(testName, testFunction, TRACKED_IMMERSIVE_DEVICE,
+ 'immersive-vr');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html
index b91a5b977ca..e8c078ead9b 100644
--- a/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html
+++ b/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html
@@ -19,6 +19,11 @@
function onSessionEnd(event) {
t.step( () => {
assert_equals(event.session, session);
+
+ let eventSession = event.session;
+ assert_equals(eventSession, event.session,
+ "XRSessionEvent.session returns the same object.");
+
session.dispatchEvent(watcherDone);
});
}
diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html
index bdb5edda566..9ddc36e95b3 100644
--- a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html
+++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html
@@ -68,7 +68,7 @@
};
xr_session_promise_test(nonImmersiveTestName, testFunction,
- fakeDeviceInitParams, 'inline');
+ fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local'] });
xr_session_promise_test(immersiveTestName, testFunction,
fakeDeviceInitParams, 'immersive-vr');
diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html
index daa786b3686..2796be9987b 100644
--- a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html
+++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https.html
@@ -15,7 +15,7 @@ let nonImmersiveTestName = "XRFrame getViewerPose updates on the next frame for
let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
let testFunction = function(session, fakeDeviceController, t) {
- return session.requestReferenceSpace('local')
+ return session.requestReferenceSpace('viewer')
.then((referenceSpace) => new Promise((resolve, reject) => {
let counter = 0;
let windowFrameTime = 0;
diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_sameObject.https.html
new file mode 100644
index 00000000000..837fa0a008d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrSession_sameObject.https.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webxr_util.js"></script>
+<script src="resources/webxr_test_constants.js"></script>
+<canvas id="webgl-canvas"></canvas>
+
+<script>
+let testName = "XRSession attributes meet [SameObject] requirement";
+
+let testFunction = function(session, fakeDeviceController, t) {
+ return new Promise((resolve) => {
+ let input_source = fakeDeviceController.simulateInputSourceConnection({
+ handedness: "right",
+ targetRayMode: "tracked-pointer",
+ pointerOrigin: VALID_POINTER_TRANSFORM,
+ gripOrigin: VALID_GRIP_TRANSFORM,
+ profiles: ["foo", "bar"]
+ });
+
+ session.requestAnimationFrame((time, xrFrame) => {
+ let renderState = session.renderState;
+ let sources = session.inputSources;
+
+ t.step(() => {
+ assert_not_equals(renderState, null, "renderState must not be null.");
+ assert_not_equals(sources, null, "inputSources must not be null.");
+
+ // Make sure [SameObject] attributes actually have the same object
+ // returned each time they are accessed.
+ assert_equals(renderState, session.renderState,
+ "XRSession.renderState returns the same object.");
+ assert_equals(sources, session.inputSources,
+ "XRSession.inputSources returns the same object.");
+ });
+
+ session.requestAnimationFrame((time, xrFrame) => {
+ t.step(() => {
+ // Make sure the attributes still return the same object on the next
+ // frame.
+ assert_equals(renderState, session.renderState,
+ "XRSession.renderState returns the same object.");
+ assert_equals(sources, session.inputSources,
+ "XRSession.inputSources returns the same object.");
+ });
+
+ // Even though changing handedness on the input source should cause that
+ // source to be re-created, it should not cause the entire
+ // XRInputSourceArray object on XRSession to be re-created.
+ input_source.setHandedness("left");
+ session.requestAnimationFrame((time, xrFrame) => {
+ t.step(() => {
+ assert_equals(renderState, session.renderState,
+ "XRSession.renderState returns the same object.");
+ assert_equals(sources, session.inputSources,
+ "XRSession.inputSources returns the same object.");
+ });
+ resolve();
+ });
+ });
+ });
+ });
+};
+
+xr_session_promise_test(
+ testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
+</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html b/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html
index aa3c1b85c5d..3f33cf354b8 100644
--- a/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html
+++ b/tests/wpt/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html
@@ -64,7 +64,7 @@ let testFunction = function(session, fakeDeviceController, t) {
}));
};
-xr_session_promise_test(immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr');
-xr_session_promise_test(nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline');
+xr_session_promise_test(immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr', { 'requiredFeatures': ['local-floor'] });
+xr_session_promise_test(nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline', { 'requiredFeatures': ['local-floor'] });
</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrView_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrView_sameObject.https.html
new file mode 100644
index 00000000000..1213bcb1f11
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrView_sameObject.https.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webxr_util.js"></script>
+<script src="resources/webxr_test_constants.js"></script>
+<canvas id="webgl-canvas"></canvas>
+
+<script>
+let testName = "XRView attributes meet [SameObject] requirement";
+
+let testFunction = function(session, fakeDeviceController, t) {
+ return new Promise((resolve) => {
+ session.requestReferenceSpace('local').then((referenceSpace) => {
+ session.requestAnimationFrame((time, xrFrame) => {
+ // Make sure that the projectionMatrix and transform attributes on
+ // XRView always return the same object.
+ let viewerPose = xrFrame.getViewerPose(referenceSpace);
+ let view = viewerPose.views[0];
+
+ let transform = view.transform;
+ let projectionMatrix = view.projectionMatrix;
+
+ t.step(() => {
+ assert_equals(transform, view.transform,
+ "XRView.transform returns the same object.");
+ assert_equals(projectionMatrix, view.projectionMatrix,
+ "XRView.projectionMatrix returns the same object.");
+ });
+
+ resolve();
+ });
+ });
+ });
+};
+
+xr_session_promise_test(
+ testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
+</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrViewerPose_views_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrViewerPose_views_sameObject.https.html
new file mode 100644
index 00000000000..ec1ee6964f0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrViewerPose_views_sameObject.https.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webxr_util.js"></script>
+<script src="resources/webxr_test_constants.js"></script>
+<canvas id="webgl-canvas"></canvas>
+
+<script>
+let testName = "XRViewerPose.views meets [SameObject] requirement";
+
+let testFunction = function(session, fakeDeviceController, t) {
+ return new Promise((resolve) => {
+ session.requestReferenceSpace('local').then((referenceSpace) => {
+ session.requestAnimationFrame((time, xrFrame) => {
+ // Make sure that the views attribute is the same object each time we
+ // access it. This verifies that XRViewerPose does *not* do something
+ // spec-noncompliant such as creating and returning a new XRView array
+ // each time the attribute is accessed.
+ let viewerPose = xrFrame.getViewerPose(referenceSpace);
+ let views = viewerPose.views;
+ t.step(() => {
+ assert_equals(viewerPose.views, views,
+ "XRViewerPose.views returns the same object.");
+ });
+
+ resolve();
+ });
+ });
+ });
+};
+
+xr_session_promise_test(
+ testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
+</script>
diff --git a/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https.html b/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https.html
new file mode 100644
index 00000000000..b0f637863b6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/webxr_util.js"></script>
+<script src="resources/webxr_test_constants.js"></script>
+<canvas />
+
+<script>
+
+let testName = "XRWebGLLayer.framebuffer meets [SameObject] requirement";
+
+let testFunction =
+ (session, fakeDeviceController, t, sessionObjects) => new Promise((resolve, reject) => {
+ let layer = new XRWebGLLayer(session, sessionObjects.gl, {});
+ let framebuffer = layer.framebuffer;
+ t.step(() => {
+ assert_equals(framebuffer, layer.framebuffer,
+ "XRWebGLLayer.framebuffer returns the same object.");
+ });
+ resolve();
+});
+
+xr_session_promise_test(
+ testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
+
+</script>