aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWPT Sync Bot <josh+wptsync@joshmatthews.net>2019-07-20 10:25:14 +0000
committerWPT Sync Bot <josh+wptsync@joshmatthews.net>2019-07-20 14:47:24 +0000
commitdc1f7ba3ec4ac980906bdd130fb1491c5b7acc22 (patch)
tree768b3927f8d7c51dff23043156c68193afcb18fc
parent60f1ffc5a79f98c261dbf5f8d184da160dfadfc5 (diff)
downloadservo-dc1f7ba3ec4ac980906bdd130fb1491c5b7acc22.tar.gz
servo-dc1f7ba3ec4ac980906bdd130fb1491c5b7acc22.zip
Update web-platform-tests to revision 6fa9de7201cd41564d02c3edd62365aeb40e171b
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini2
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini3
-rw-r--r--tests/wpt/metadata/MANIFEST.json492
-rw-r--r--tests/wpt/metadata/css/css-align/parsing/align-content-computed.html.ini25
-rw-r--r--tests/wpt/metadata/css/css-align/parsing/align-items-computed.html.ini25
-rw-r--r--tests/wpt/metadata/css/css-align/parsing/align-self-computed.html.ini28
-rw-r--r--tests/wpt/metadata/css/css-align/parsing/justify-content-computed.html.ini25
-rw-r--r--tests/wpt/metadata/css/css-align/parsing/justify-items-computed.html.ini61
-rw-r--r--tests/wpt/metadata/css/css-align/parsing/justify-self-computed.html.ini49
-rw-r--r--tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-valid.html.ini6
-rw-r--r--tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-valid.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-computed.html.ini10
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-initial.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-linethrough-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-overline-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-scroll-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-underline-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-valid.html.ini25
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-002.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini8
-rw-r--r--tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini2
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini11
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini3
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini5
-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.ini (renamed from tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini)2
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini6
-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.ini5
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini7
-rw-r--r--tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini4
-rw-r--r--tests/wpt/metadata/navigation-timing/buffered-flag.window.js.ini5
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini6
-rw-r--r--tests/wpt/metadata/webxr/xrDevice_requestSession_immersive.https.html.ini7
-rw-r--r--tests/wpt/metadata/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini7
-rw-r--r--tests/wpt/metadata/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini4
-rw-r--r--tests/wpt/metadata/webxr/xrSession_requestReferenceSpace_features.https.html.ini37
-rw-r--r--tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/align-content-computed.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/align-items-computed.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/align-self-computed.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-computed.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-computed.html56
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-computed.html35
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-x-valid.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-y-valid.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-valid.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-width-valid.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-valid.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-width-valid.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-logical/parsing/inset-block-inline-valid.html8
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001-ref.html25
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001.html46
-rw-r--r--tests/wpt/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element.html67
-rw-r--r--tests/wpt/web-platform-tests/css/css-tables/parsing/border-spacing-valid.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-001-notref.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-001-notref.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html)2
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-001.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-001.html)8
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-computed.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-computed.html)10
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-initial.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-initial.html)6
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-invalid.html27
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-linethrough-001.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-linethrough-001.html)8
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-overline-001.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-overline-001.html)8
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-scroll-001.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-scroll-001.html)8
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-underline-001.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-underline-001.html)8
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-valid.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-001.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-vertical-001.html)8
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-002.html (renamed from tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-vertical-002.html)6
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-invalid.html27
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-valid.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html (renamed from tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html)4
-rw-r--r--tests/wpt/web-platform-tests/event-timing/bufferbeforeonload.html3
-rw-r--r--tests/wpt/web-platform-tests/event-timing/buffered-flag.html3
-rw-r--r--tests/wpt/web-platform-tests/event-timing/crossiframe.html3
-rw-r--r--tests/wpt/web-platform-tests/event-timing/observethenonload.html3
-rw-r--r--tests/wpt/web-platform-tests/event-timing/onloadthenobserve-firstInput.html3
-rw-r--r--tests/wpt/web-platform-tests/event-timing/onloadthenobserve.html3
-rw-r--r--tests/wpt/web-platform-tests/event-timing/only-observe-firstInput.html3
-rw-r--r--tests/wpt/web-platform-tests/event-timing/programmatic-click-not-observed.html3
-rw-r--r--tests/wpt/web-platform-tests/event-timing/retrieve-firstInput.html3
-rw-r--r--tests/wpt/web-platform-tests/event-timing/timingconditions.html3
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html2
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html31
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html)17
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html9
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html16
-rw-r--r--tests/wpt/web-platform-tests/interfaces/webrtc.idl845
-rw-r--r--tests/wpt/web-platform-tests/interfaces/xslt.tentative.idl (renamed from tests/wpt/web-platform-tests/interfaces/xslt.idl)0
-rw-r--r--tests/wpt/web-platform-tests/layout-instability/buffer-layout-shift.html2
-rw-r--r--tests/wpt/web-platform-tests/layout-instability/buffered-flag.html2
-rw-r--r--tests/wpt/web-platform-tests/layout-instability/observe-layout-shift.html2
-rw-r--r--tests/wpt/web-platform-tests/longtask-timing/buffered-flag-unsupported.window.js19
-rw-r--r--tests/wpt/web-platform-tests/mediasession/setactionhandler.html1
-rw-r--r--tests/wpt/web-platform-tests/navigation-timing/buffered-flag.window.js16
-rw-r--r--tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html37
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-redirect.https.html28
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js7
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker.py19
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html9
-rw-r--r--tests/wpt/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html13
-rw-r--r--tests/wpt/web-platform-tests/webxr/resources/webxr_util.js30
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html12
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https.html27
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html27
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html10
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https.html83
-rw-r--r--tests/wpt/web-platform-tests/xslt/idlharness.tentative.window.js (renamed from tests/wpt/web-platform-tests/xslt/idlharness.window.js)2
124 files changed, 2001 insertions, 798 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/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
index 947e223fb28..3b874fc1748 100644
--- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
+++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
@@ -34,3 +34,6 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
+ [Revoke blob URL after calling fetch, fetch should succeed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index c22c2e55422..5325d206c66 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -131539,6 +131539,18 @@
{}
]
],
+ "css/css-multicol/multicol-dynamic-add-001.html": [
+ [
+ "css/css-multicol/multicol-dynamic-add-001.html",
+ [
+ [
+ "/css/css-multicol/multicol-dynamic-add-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-multicol/multicol-fill-000.xht": [
[
"css/css-multicol/multicol-fill-000.xht",
@@ -142331,120 +142343,120 @@
{}
]
],
- "css/css-text-decor/text-decoration-underline-position-horizontal.html": [
+ "css/css-text-decor/text-decoration-thickness-001.html": [
[
- "css/css-text-decor/text-decoration-underline-position-horizontal.html",
+ "css/css-text-decor/text-decoration-thickness-001.html",
[
[
- "/css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html",
- "=="
+ "/css/css-text-decor/reference/text-decoration-thickness-001-notref.html",
+ "!="
]
],
{}
]
],
- "css/css-text-decor/text-decoration-underline-position-vertical-ja.html": [
+ "css/css-text-decor/text-decoration-thickness-linethrough-001.html": [
[
- "css/css-text-decor/text-decoration-underline-position-vertical-ja.html",
+ "css/css-text-decor/text-decoration-thickness-linethrough-001.html",
[
[
- "/css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html",
+ "/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html",
"=="
]
],
{}
]
],
- "css/css-text-decor/text-decoration-underline-position-vertical.html": [
+ "css/css-text-decor/text-decoration-thickness-overline-001.html": [
[
- "css/css-text-decor/text-decoration-underline-position-vertical.html",
+ "css/css-text-decor/text-decoration-thickness-overline-001.html",
[
[
- "/css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html",
+ "/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html",
"=="
]
],
{}
]
],
- "css/css-text-decor/text-decoration-width-001.html": [
+ "css/css-text-decor/text-decoration-thickness-scroll-001.html": [
[
- "css/css-text-decor/text-decoration-width-001.html",
+ "css/css-text-decor/text-decoration-thickness-scroll-001.html",
[
[
- "/css/css-text-decor/reference/text-decoration-width-001-notref.html",
- "!="
+ "/css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html",
+ "=="
]
],
{}
]
],
- "css/css-text-decor/text-decoration-width-linethrough-001.html": [
+ "css/css-text-decor/text-decoration-thickness-underline-001.html": [
[
- "css/css-text-decor/text-decoration-width-linethrough-001.html",
+ "css/css-text-decor/text-decoration-thickness-underline-001.html",
[
[
- "/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html",
+ "/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html",
"=="
]
],
{}
]
],
- "css/css-text-decor/text-decoration-width-overline-001.html": [
+ "css/css-text-decor/text-decoration-thickness-vertical-001.html": [
[
- "css/css-text-decor/text-decoration-width-overline-001.html",
+ "css/css-text-decor/text-decoration-thickness-vertical-001.html",
[
[
- "/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html",
+ "/css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html",
"=="
]
],
{}
]
],
- "css/css-text-decor/text-decoration-width-scroll-001.html": [
+ "css/css-text-decor/text-decoration-thickness-vertical-002.html": [
[
- "css/css-text-decor/text-decoration-width-scroll-001.html",
+ "css/css-text-decor/text-decoration-thickness-vertical-002.html",
[
[
- "/css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html",
+ "/css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html",
"=="
]
],
{}
]
],
- "css/css-text-decor/text-decoration-width-underline-001.html": [
+ "css/css-text-decor/text-decoration-underline-position-horizontal.html": [
[
- "css/css-text-decor/text-decoration-width-underline-001.html",
+ "css/css-text-decor/text-decoration-underline-position-horizontal.html",
[
[
- "/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html",
+ "/css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html",
"=="
]
],
{}
]
],
- "css/css-text-decor/text-decoration-width-vertical-001.html": [
+ "css/css-text-decor/text-decoration-underline-position-vertical-ja.html": [
[
- "css/css-text-decor/text-decoration-width-vertical-001.html",
+ "css/css-text-decor/text-decoration-underline-position-vertical-ja.html",
[
[
- "/css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html",
+ "/css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html",
"=="
]
],
{}
]
],
- "css/css-text-decor/text-decoration-width-vertical-002.html": [
+ "css/css-text-decor/text-decoration-underline-position-vertical.html": [
[
- "css/css-text-decor/text-decoration-width-vertical-002.html",
+ "css/css-text-decor/text-decoration-underline-position-vertical.html",
[
[
- "/css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html",
+ "/css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html",
"=="
]
],
@@ -250487,6 +250499,9 @@
"css/css-multicol/multicol-count-computed-004-ref.xht": [
[]
],
+ "css/css-multicol/multicol-dynamic-add-001-ref.html": [
+ []
+ ],
"css/css-multicol/multicol-fill-000-ref.xht": [
[]
],
@@ -252962,28 +252977,28 @@
"css/css-text-decor/reference/text-decoration-style-recalc-ref.html": [
[]
],
- "css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html": [
+ "css/css-text-decor/reference/text-decoration-thickness-001-notref.html": [
[]
],
- "css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html": [
+ "css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html": [
[]
],
- "css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html": [
+ "css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html": [
[]
],
- "css/css-text-decor/reference/text-decoration-underline-ref.html": [
+ "css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html": [
[]
],
- "css/css-text-decor/reference/text-decoration-width-001-notref.html": [
+ "css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html": [
[]
],
- "css/css-text-decor/reference/text-decoration-width-green-rect-ref.html": [
+ "css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html": [
[]
],
- "css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html": [
+ "css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html": [
[]
],
- "css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html": [
+ "css/css-text-decor/reference/text-decoration-underline-ref.html": [
[]
],
"css/css-text-decor/reference/text-emphasis-color-001-ref.xht": [
@@ -269429,12 +269444,18 @@
"html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js": [
[]
],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers": [
+ []
+ ],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/blank.html": [
[]
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html": [
[]
],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers": [
+ []
+ ],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js": [
[]
],
@@ -272696,7 +272717,7 @@
"interfaces/xhr.idl": [
[]
],
- "interfaces/xslt.idl": [
+ "interfaces/xslt.tentative.idl": [
[]
],
"intersection-observer/META.yml": [
@@ -278273,6 +278294,9 @@
"service-workers/service-worker/resources/import-scripts-redirect-import.js": [
[]
],
+ "service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js": [
+ []
+ ],
"service-workers/service-worker/resources/import-scripts-redirect-worker.js": [
[]
],
@@ -309109,6 +309133,12 @@
{}
]
],
+ "css/css-align/parsing/align-content-computed.html": [
+ [
+ "css/css-align/parsing/align-content-computed.html",
+ {}
+ ]
+ ],
"css/css-align/parsing/align-content-invalid.html": [
[
"css/css-align/parsing/align-content-invalid.html",
@@ -309121,6 +309151,12 @@
{}
]
],
+ "css/css-align/parsing/align-items-computed.html": [
+ [
+ "css/css-align/parsing/align-items-computed.html",
+ {}
+ ]
+ ],
"css/css-align/parsing/align-items-invalid.html": [
[
"css/css-align/parsing/align-items-invalid.html",
@@ -309133,6 +309169,12 @@
{}
]
],
+ "css/css-align/parsing/align-self-computed.html": [
+ [
+ "css/css-align/parsing/align-self-computed.html",
+ {}
+ ]
+ ],
"css/css-align/parsing/align-self-invalid.html": [
[
"css/css-align/parsing/align-self-invalid.html",
@@ -309145,6 +309187,12 @@
{}
]
],
+ "css/css-align/parsing/justify-content-computed.html": [
+ [
+ "css/css-align/parsing/justify-content-computed.html",
+ {}
+ ]
+ ],
"css/css-align/parsing/justify-content-invalid.html": [
[
"css/css-align/parsing/justify-content-invalid.html",
@@ -309157,6 +309205,12 @@
{}
]
],
+ "css/css-align/parsing/justify-items-computed.html": [
+ [
+ "css/css-align/parsing/justify-items-computed.html",
+ {}
+ ]
+ ],
"css/css-align/parsing/justify-items-invalid.html": [
[
"css/css-align/parsing/justify-items-invalid.html",
@@ -309169,6 +309223,12 @@
{}
]
],
+ "css/css-align/parsing/justify-self-computed.html": [
+ [
+ "css/css-align/parsing/justify-self-computed.html",
+ {}
+ ]
+ ],
"css/css-align/parsing/justify-self-invalid.html": [
[
"css/css-align/parsing/justify-self-invalid.html",
@@ -318307,27 +318367,27 @@
{}
]
],
- "css/css-text-decor/text-decoration-width-computed.html": [
+ "css/css-text-decor/text-decoration-thickness-computed.html": [
[
- "css/css-text-decor/text-decoration-width-computed.html",
+ "css/css-text-decor/text-decoration-thickness-computed.html",
{}
]
],
- "css/css-text-decor/text-decoration-width-initial.html": [
+ "css/css-text-decor/text-decoration-thickness-initial.html": [
[
- "css/css-text-decor/text-decoration-width-initial.html",
+ "css/css-text-decor/text-decoration-thickness-initial.html",
{}
]
],
- "css/css-text-decor/text-decoration-width-invalid.html": [
+ "css/css-text-decor/text-decoration-thickness-invalid.html": [
[
- "css/css-text-decor/text-decoration-width-invalid.html",
+ "css/css-text-decor/text-decoration-thickness-invalid.html",
{}
]
],
- "css/css-text-decor/text-decoration-width-valid.html": [
+ "css/css-text-decor/text-decoration-thickness-valid.html": [
[
- "css/css-text-decor/text-decoration-width-valid.html",
+ "css/css-text-decor/text-decoration-thickness-valid.html",
{}
]
],
@@ -322131,9 +322191,9 @@
{}
]
],
- "css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html": [
+ "css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html": [
[
- "css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html",
+ "css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html",
{}
]
],
@@ -346948,9 +347008,9 @@
{}
]
],
- "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html": [
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html": [
[
- "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html",
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html",
{}
]
],
@@ -359864,6 +359924,12 @@
{}
]
],
+ "longtask-timing/buffered-flag-unsupported.window.js": [
+ [
+ "longtask-timing/buffered-flag-unsupported.window.html",
+ {}
+ ]
+ ],
"longtask-timing/idlharness.window.js": [
[
"longtask-timing/idlharness.window.html",
@@ -364099,6 +364165,12 @@
}
]
],
+ "navigation-timing/buffered-flag.window.js": [
+ [
+ "navigation-timing/buffered-flag.window.html",
+ {}
+ ]
+ ],
"navigation-timing/dom_interactive_image_document.html": [
[
"navigation-timing/dom_interactive_image_document.html",
@@ -410373,6 +410445,18 @@
{}
]
],
+ "webxr/xrDevice_requestSession_optionalFeatures.https.html": [
+ [
+ "webxr/xrDevice_requestSession_optionalFeatures.https.html",
+ {}
+ ]
+ ],
+ "webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html": [
+ [
+ "webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html",
+ {}
+ ]
+ ],
"webxr/xrDevice_supportsSession_immersive.https.html": [
[
"webxr/xrDevice_supportsSession_immersive.https.html",
@@ -410517,6 +410601,12 @@
{}
]
],
+ "webxr/xrSession_requestReferenceSpace_features.https.html": [
+ [
+ "webxr/xrSession_requestReferenceSpace_features.https.html",
+ {}
+ ]
+ ],
"webxr/xrSession_viewer_referenceSpace.https.html": [
[
"webxr/xrSession_viewer_referenceSpace.https.html",
@@ -415596,9 +415686,9 @@
{}
]
],
- "xslt/idlharness.window.js": [
+ "xslt/idlharness.tentative.window.js": [
[
- "xslt/idlharness.window.html",
+ "xslt/idlharness.tentative.window.html",
{
"script_metadata": [
[
@@ -531206,6 +531296,10 @@
"7e2fa130be24214fa8c21f58d0f88a744beb6b79",
"testharness"
],
+ "css/css-align/parsing/align-content-computed.html": [
+ "8b5465c6b275118ec067cb6ef7b3026aca825e65",
+ "testharness"
+ ],
"css/css-align/parsing/align-content-invalid.html": [
"ae244389bf1b54f37a9fd6a65111d5e8f3c703fc",
"testharness"
@@ -531214,6 +531308,10 @@
"46c4724516855f169fba15650e89d56e18d884c9",
"testharness"
],
+ "css/css-align/parsing/align-items-computed.html": [
+ "23d4c2fd0d1193181b2aea7b870f0b194dbcdcfd",
+ "testharness"
+ ],
"css/css-align/parsing/align-items-invalid.html": [
"8e329d50e5c34a8fba0eb122be8686e1dfafed31",
"testharness"
@@ -531222,6 +531320,10 @@
"e88845b962ac2df802346b8d57c4b17147d79a81",
"testharness"
],
+ "css/css-align/parsing/align-self-computed.html": [
+ "e61a88a72e8fe9bb304758ea8a47e29263888a0b",
+ "testharness"
+ ],
"css/css-align/parsing/align-self-invalid.html": [
"27b025002655d859c290a4e41d46289680a7a810",
"testharness"
@@ -531230,28 +531332,40 @@
"25ea093b20997419f4d560d47cb9300d136d090e",
"testharness"
],
+ "css/css-align/parsing/justify-content-computed.html": [
+ "b04d2db1429c385d57b9d6b232282d7924d6589b",
+ "testharness"
+ ],
"css/css-align/parsing/justify-content-invalid.html": [
- "971f94bcf8be5ad4e9b4978dc3bc4211e9804881",
+ "47f3a59a7d7f9723c50d338b04a7c54a0b2f4dc3",
"testharness"
],
"css/css-align/parsing/justify-content-valid.html": [
- "d476a268addc672fdde32465eb2570315becf0cf",
+ "4372f6fdc31af0d41e0016aaf250450f8df0a407",
+ "testharness"
+ ],
+ "css/css-align/parsing/justify-items-computed.html": [
+ "b93f2a381b110467e89767e0b1c643e245e4e2b0",
"testharness"
],
"css/css-align/parsing/justify-items-invalid.html": [
- "18da059376095c00c791445268ccba53066b749e",
+ "87d03cb3d124de868d430b3a10935c99882b2f67",
"testharness"
],
"css/css-align/parsing/justify-items-valid.html": [
- "36584f86feb4533b712c418f6cdc20f761d4f172",
+ "51496554cb0214d85c2561fc4b3a7d98340709dc",
+ "testharness"
+ ],
+ "css/css-align/parsing/justify-self-computed.html": [
+ "f560d23d7b1df51de41e9339437d391248f931db",
"testharness"
],
"css/css-align/parsing/justify-self-invalid.html": [
- "846cdd8a00f028b2b04707b4325bfb10f0a5239a",
+ "7823c0aa586b1d9644973c92ca89fb725262518c",
"testharness"
],
"css/css-align/parsing/justify-self-valid.html": [
- "1ee23af200f6300bc3a86f0a1b843c875c8c92a9",
+ "4cca080995859320d7a89943caa8eada6440f46c",
"testharness"
],
"css/css-align/parsing/place-content-computed.html": [
@@ -534783,7 +534897,7 @@
"testharness"
],
"css/css-backgrounds/parsing/background-position-x-valid.html": [
- "282d7d27bf5560bef47f57e43dcc460143f50e7a",
+ "ca9c229db4a8bd52a39f8c342701b70dab6c82c7",
"testharness"
],
"css/css-backgrounds/parsing/background-position-y-computed.html": [
@@ -534795,7 +534909,7 @@
"testharness"
],
"css/css-backgrounds/parsing/background-position-y-valid.html": [
- "1413a2e959a4cf00b64fecf06932a083e1480e54",
+ "55c54b84262148a506c15e462e803e7c41690967",
"testharness"
],
"css/css-backgrounds/parsing/background-repeat-computed.html": [
@@ -554163,19 +554277,19 @@
"reftest"
],
"css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html": [
- "e6640cc749e945b0fb78026b7b984d3c72c4c0f0",
+ "778c97be1f0196bd2123c15c6c5c5a0a177ab5a5",
"support"
],
"css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html": [
- "6733759cf00b264f4920ef9bca51a0e4a3f4dc63",
+ "cb1cfdc06a3bcc90a68024af2b264a56a113f869",
"reftest"
],
"css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html": [
- "2b1bbaebb46e937d9f915d2907564e3061c1cd83",
+ "a51134751616fdb1eede6a1774c3edd6571ddc28",
"support"
],
"css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html": [
- "a3de9386a81af4058246842200d889a603d98fd2",
+ "03144ae0da7ef09e1807e307563428b93acc6640",
"reftest"
],
"css/css-grid/grid-model/grid-container-sizing-constraints-001.html": [
@@ -555983,7 +556097,7 @@
"testharness"
],
"css/css-logical/parsing/border-block-valid.html": [
- "973a1199c285f99713c4ef3790b77a391bf09926",
+ "68c9797c0f44a760d8252685e727adfb0f72111f",
"testharness"
],
"css/css-logical/parsing/border-block-width-computed.html": [
@@ -555995,7 +556109,7 @@
"testharness"
],
"css/css-logical/parsing/border-block-width-valid.html": [
- "98987df9a703ef38d20c6bc1581b2ca136342615",
+ "03b02a2566491d9118ad33ce0065691a1143625d",
"testharness"
],
"css/css-logical/parsing/border-inline-color-computed.html": [
@@ -556023,7 +556137,7 @@
"testharness"
],
"css/css-logical/parsing/border-inline-valid.html": [
- "b7207c0f23541e958eeea0bbe0a8c527af67af23",
+ "be29783acf474d8f1dffe77f335e9f1e155c7370",
"testharness"
],
"css/css-logical/parsing/border-inline-width-computed.html": [
@@ -556035,7 +556149,7 @@
"testharness"
],
"css/css-logical/parsing/border-inline-width-valid.html": [
- "03c3e0fca2fb56b7116aae6b25eae020538ecf57",
+ "81c7049c5e94c891b72f953356fadac0aeb3ae5c",
"testharness"
],
"css/css-logical/parsing/inline-size-invalid.html": [
@@ -556055,7 +556169,7 @@
"testharness"
],
"css/css-logical/parsing/inset-block-inline-valid.html": [
- "1287f697873efb6a538f8682a484f9db48df054d",
+ "b08975251d841bda035d1490a32be0543b6d984e",
"testharness"
],
"css/css-logical/parsing/margin-block-inline-invalid.html": [
@@ -557538,6 +557652,14 @@
"6c94be98775661bea5c5fb698aae868b179be34a",
"reftest"
],
+ "css/css-multicol/multicol-dynamic-add-001-ref.html": [
+ "380c746301ff9b871a40692ccacaac7da4d974e2",
+ "support"
+ ],
+ "css/css-multicol/multicol-dynamic-add-001.html": [
+ "ccc44add0b4d74d45ec2366f8ae3683c9645f96a",
+ "reftest"
+ ],
"css/css-multicol/multicol-fill-000-ref.xht": [
"c68a7a61d2de4a4ad8265fb557a88142eb01ab7c",
"support"
@@ -560935,7 +561057,7 @@
"testharness"
],
"css/css-properties-values-api/register-property-syntax-parsing.html": [
- "fe2a63a57a168c8e791c6cec9d9d1843ca2c1216",
+ "6d7dbc63a1d38f108a3a10e99b09cddd84b135f7",
"testharness"
],
"css/css-properties-values-api/register-property.html": [
@@ -564115,7 +564237,7 @@
"testharness"
],
"css/css-scroll-snap/scroll-snap-type-on-root-element.html": [
- "c2c413d04bde1a419c346fbc1d47c19825de9365",
+ "eaa94176547481429d0ebdbe296fc5752e31bfb2",
"testharness"
],
"css/css-scroll-snap/scroll-snap-type.html": [
@@ -566775,7 +566897,7 @@
"testharness"
],
"css/css-tables/parsing/border-spacing-valid.html": [
- "98bf402fc6ccd0266908da2d6270e5e4af71f670",
+ "cf594ee6b89e807ced476a2b7c48464adcff3238",
"testharness"
],
"css/css-tables/parsing/caption-side-computed.html": [
@@ -567246,36 +567368,36 @@
"30592b44cec51eb7f0835c7abc9aaafe7458ceff",
"support"
],
- "css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html": [
- "be9155bbcf82bec1011de42ed5054ca8d1da72de",
+ "css/css-text-decor/reference/text-decoration-thickness-001-notref.html": [
+ "f876afa68c655535017fe5a6e6feff0ce1df4045",
"support"
],
- "css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html": [
- "303655abdd2489884a6e0fd6ab08eef114fcbc5f",
+ "css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html": [
+ "14d1219001c85dcf785e648db81ca5d6fc6d4301",
"support"
],
- "css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html": [
- "8c0bee6720355c6216ce6f11d27e2f1fb4d4b401",
+ "css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html": [
+ "394811468fea2d4e7daaffad19742cd8e206a8bd",
"support"
],
- "css/css-text-decor/reference/text-decoration-underline-ref.html": [
- "2370054a8fbd5cb8c00bfb95401129d01de38d00",
+ "css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html": [
+ "8955e8469aa6cd3d63a34e9376b3f6c135f01e85",
"support"
],
- "css/css-text-decor/reference/text-decoration-width-001-notref.html": [
- "53a87c014d7dff7a33c2cbf042c181173a351618",
+ "css/css-text-decor/reference/text-decoration-underline-position-horizontal-ref.html": [
+ "be9155bbcf82bec1011de42ed5054ca8d1da72de",
"support"
],
- "css/css-text-decor/reference/text-decoration-width-green-rect-ref.html": [
- "7bc3865a8619ccfb6f5e621b8443d6680f9f2739",
+ "css/css-text-decor/reference/text-decoration-underline-position-vertical-ja-ref.html": [
+ "303655abdd2489884a6e0fd6ab08eef114fcbc5f",
"support"
],
- "css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html": [
- "dd4868417ba51bfa0b7d86ed4a2f2c3526acb9e5",
+ "css/css-text-decor/reference/text-decoration-underline-position-vertical-ref.html": [
+ "8c0bee6720355c6216ce6f11d27e2f1fb4d4b401",
"support"
],
- "css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html": [
- "ec7db180dc2c29e82ebb4f2565faf6eeb9b8720c",
+ "css/css-text-decor/reference/text-decoration-underline-ref.html": [
+ "2370054a8fbd5cb8c00bfb95401129d01de38d00",
"support"
],
"css/css-text-decor/reference/text-emphasis-color-001-ref.xht": [
@@ -567658,6 +567780,50 @@
"d4538e7c7b45356d08cf5dc90273b6aee77c49fa",
"reftest"
],
+ "css/css-text-decor/text-decoration-thickness-001.html": [
+ "8f314793f2634406c8ad5d3fa268bf56eb864406",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-thickness-computed.html": [
+ "99e693afb5a395f3aa4af59a735054ce3559069c",
+ "testharness"
+ ],
+ "css/css-text-decor/text-decoration-thickness-initial.html": [
+ "4c4ca9cc9ab972f61bd9cc6dc87f03e29d027241",
+ "testharness"
+ ],
+ "css/css-text-decor/text-decoration-thickness-invalid.html": [
+ "656fa3bba2aee70381eb1c0e82e963f9f4bea502",
+ "testharness"
+ ],
+ "css/css-text-decor/text-decoration-thickness-linethrough-001.html": [
+ "37e954b2b8769e882420a49ef0adf42a8b4b096e",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-thickness-overline-001.html": [
+ "325811c96fd45463cc4802232fc6e5f5df6fd652",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-thickness-scroll-001.html": [
+ "acc829dc66d75e776dbe4ca5ad2976576c5c3241",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-thickness-underline-001.html": [
+ "020f849f4cf2d1ffcee7ba494384fc8f5425b876",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-thickness-valid.html": [
+ "d05c892674844691ec23bcad1bf4dbd8ab53981c",
+ "testharness"
+ ],
+ "css/css-text-decor/text-decoration-thickness-vertical-001.html": [
+ "f04f1b52f95fb307043519c8da9ec34ad978a5f2",
+ "reftest"
+ ],
+ "css/css-text-decor/text-decoration-thickness-vertical-002.html": [
+ "70421c507b71e5e0e9775fa73ab5f8671912b80b",
+ "reftest"
+ ],
"css/css-text-decor/text-decoration-underline-position-horizontal.html": [
"e4d495e722e43414e562c315c530c285d7bc6356",
"reftest"
@@ -567718,50 +567884,6 @@
"904460a7bfeef5a35261641422a5fde2dd07dce4",
"visual"
],
- "css/css-text-decor/text-decoration-width-001.html": [
- "ab6dfcadeb1ae1ab967efb85d23470b90a26aefe",
- "reftest"
- ],
- "css/css-text-decor/text-decoration-width-computed.html": [
- "0e00240141ea45ac95e8778474df3472afaf766c",
- "testharness"
- ],
- "css/css-text-decor/text-decoration-width-initial.html": [
- "ee47af0f115d29705b2cb485af63ecec67b5645e",
- "testharness"
- ],
- "css/css-text-decor/text-decoration-width-invalid.html": [
- "e89fe47ff2d567db6eae913a49d3abe2d62eaa7c",
- "testharness"
- ],
- "css/css-text-decor/text-decoration-width-linethrough-001.html": [
- "cc48da15a7a7f07c2efb51868d38a02222420ebd",
- "reftest"
- ],
- "css/css-text-decor/text-decoration-width-overline-001.html": [
- "21eb18b7ab28defcdd5921b3730f11f48bbe848c",
- "reftest"
- ],
- "css/css-text-decor/text-decoration-width-scroll-001.html": [
- "f203bf10c2d67c664a263694c5f6ac69771edc42",
- "reftest"
- ],
- "css/css-text-decor/text-decoration-width-underline-001.html": [
- "97ecc73a4a9119056720daa25e6dc32aefd45012",
- "reftest"
- ],
- "css/css-text-decor/text-decoration-width-valid.html": [
- "583ebb0d3cf52d5af73da39f979e2c1d90ffa8ea",
- "testharness"
- ],
- "css/css-text-decor/text-decoration-width-vertical-001.html": [
- "5b4ab5e74dd8b7efa572e4858c7a1d616d62b8e8",
- "reftest"
- ],
- "css/css-text-decor/text-decoration-width-vertical-002.html": [
- "cbe4b1f8374c4617b43ef288906e6dd5f1a1e347",
- "reftest"
- ],
"css/css-text-decor/text-emphasis-color-001.xht": [
"b60f03591ed067b8a8411cdad2ea8bcd222a37fc",
"reftest"
@@ -581694,8 +581816,8 @@
"956c6e578b098d1c5a69f8228cb85434b1d048ee",
"testharness"
],
- "css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html": [
- "43aeb165645d10bea23db42055453001223f0f3e",
+ "css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html": [
+ "903ca8603fb882e19c0ecfc6760a64495e6361dd",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/text-decoration.html": [
@@ -612303,15 +612425,15 @@
"support"
],
"event-timing/bufferbeforeonload.html": [
- "c30c01aa96bb9bc835bb1ce93bff86f5e99789d7",
+ "4b003a98f64ed99266f9bb12c09c4b5cde5afa32",
"testharness"
],
"event-timing/buffered-flag.html": [
- "8b56ad7f44d6b2849d300338b45dd104059c3520",
+ "b9c63ffd8fdd6dca11211376538c65fa9571c437",
"testharness"
],
"event-timing/crossiframe.html": [
- "c1a27a5d021e210d7604f6a7dfab436c8547f03c",
+ "bb19c82a2a1d64e5edcdc965812488aab1a73652",
"testharness"
],
"event-timing/idlharness.any.js": [
@@ -612323,23 +612445,23 @@
"manual"
],
"event-timing/observethenonload.html": [
- "4145eae0a59a5da2fc5fbca95ee2721fc3b58b2b",
+ "8295aaf04128c3998a6ce30703bcf85c99a49865",
"testharness"
],
"event-timing/onloadthenobserve-firstInput.html": [
- "fe40bdf65fbb61671e01a4c11039027deaed677a",
+ "3cd80e2eba1a748a68151a8bf45cfdc93a7b3f71",
"testharness"
],
"event-timing/onloadthenobserve.html": [
- "d97228577a187ddf10f5513697d9b0424aab4588",
+ "4365f4837bcceb070f683db2ee1d2f2a7ea050d6",
"testharness"
],
"event-timing/only-observe-firstInput.html": [
- "d356902c31d4b9d6d23042d8f57cb1d9ec2a8447",
+ "48df6ec9fc65a9eb8c4adf62f5fc7219b7c5a056",
"testharness"
],
"event-timing/programmatic-click-not-observed.html": [
- "9eb067024da8c01c2575eeb6ff86c27329498a68",
+ "c84d4eff6b8779953bcde54eb5169f0ffa1c6314",
"testharness"
],
"event-timing/resources/crossiframe-childframe.html": [
@@ -612363,7 +612485,7 @@
"testharness"
],
"event-timing/retrieve-firstInput.html": [
- "5ea5d74b1a86abf81d69ec1165b58ecd07a72ea5",
+ "5ddd9b5f01b75d9530adac84acab9a214bfded87",
"testharness"
],
"event-timing/supported-types.window.js": [
@@ -612371,7 +612493,7 @@
"testharness"
],
"event-timing/timingconditions.html": [
- "a7847b3ccc000077a7791e65371bd58344dbf2ef",
+ "1fcda21a197028ee3b6812f63aef41503d2a7b9b",
"testharness"
],
"eventsource/META.yml": [
@@ -614275,7 +614397,7 @@
"testharness"
],
"fetch/api/response/response-consume-empty.html": [
- "4bfcfbc8f44617190e9469f7ce85ce6dc91d2df9",
+ "6e51ff8b59a6f2d80f407d0cca0e99d8642f71b1",
"testharness"
],
"fetch/api/response/response-consume-stream.html": [
@@ -617911,7 +618033,7 @@
"testharness"
],
"html/browsers/history/the-location-interface/location_hash.html": [
- "99f64ddea248a2fc77eb3faaa51f12ee97843eed",
+ "ef6f6331389168c8fed45c1eabe810e0cdf5e512",
"testharness"
],
"html/browsers/history/the-location-interface/location_host.html": [
@@ -624446,10 +624568,14 @@
"8902de49cfb10293ddb6246dc834268621e0dcad",
"testharness"
],
- "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html": [
- "f6d7f26ce83c17dfb330e683e00b0e562572a03d",
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html": [
+ "d3e9956368a5ce538ff6e57d6f1febcf8d882a59",
"testharness"
],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers": [
+ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8",
+ "support"
+ ],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html": [
"869f49043e9736bf62c2ec60257019175d2961f6",
"testharness"
@@ -624467,7 +624593,11 @@
"support"
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html": [
- "792d6fd201380723225c7337ed496afffa9cf054",
+ "02b9bcbbe8827e590e10f70e2a2f4576a7a8ca0a",
+ "support"
+ ],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers": [
+ "6604450991a122e3e241e40b1b9e0516c525389d",
"support"
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js": [
@@ -629351,7 +629481,7 @@
"support"
],
"html/semantics/embedded-content/the-img-element/invalid-src.html": [
- "49e956565cc7c386cf548eab37097a9b995d4f1b",
+ "c3c57ee3c0a05019be4db6650eeefdd53648401e",
"testharness"
],
"html/semantics/embedded-content/the-img-element/ismap/img-ismap-coordinates-iframe-after.html": [
@@ -637287,7 +637417,7 @@
"support"
],
"interfaces/webrtc.idl": [
- "83f009fed5346c978deb90b29f3bcc0260e21f58",
+ "faccd6f47d37443c0d5df63ce71a1f68ebc07bc2",
"support"
],
"interfaces/webusb.idl": [
@@ -637310,7 +637440,7 @@
"27660bfd573b6dbd38f7c52b514fab9f4bd52996",
"support"
],
- "interfaces/xslt.idl": [
+ "interfaces/xslt.tentative.idl": [
"e97d8b000441bf7c700d377f20f74b44831cffa3",
"support"
],
@@ -637807,15 +637937,15 @@
"testharness"
],
"layout-instability/buffer-layout-shift.html": [
- "216cafd45de0785b27a0ca7fa009352de7887e23",
+ "0cfce2f7124226cf4256284c1238ba1ef024c42b",
"testharness"
],
"layout-instability/buffered-flag.html": [
- "6a8c937e5ff17ee54c87facf1e247839a5142707",
+ "dabc8068931ff3b15eb4b80481ed2102a7725a62",
"testharness"
],
"layout-instability/observe-layout-shift.html": [
- "a522b49034e58c7aafd98eacae12353bc3476d06",
+ "8e5624e09a3d92975f315f7601c8cfc474c89c9e",
"testharness"
],
"layout-instability/resources/slow-image.py": [
@@ -637934,6 +638064,10 @@
"91c07f9fd3f3097367f2ad87a2ebb0d98b11d4e2",
"support"
],
+ "longtask-timing/buffered-flag-unsupported.window.js": [
+ "ea17b824c355ace2b67ccefc1ddbf25e03a299d0",
+ "testharness"
+ ],
"longtask-timing/idlharness.window.js": [
"0ef7e85440ee1fc99c05ef5be0fc1fe61f818118",
"testharness"
@@ -639787,7 +639921,7 @@
"testharness"
],
"mediasession/setactionhandler.html": [
- "06d145b37d1603680ef61de4b2953f5bfc4ed650",
+ "6e1bb26c67a828ae847734070024b404138e7932",
"testharness"
],
"mimesniff/META.yml": [
@@ -642506,6 +642640,10 @@
"c09a6e03fd19f5a405b391c2c4671df6ff04edf1",
"support"
],
+ "navigation-timing/buffered-flag.window.js": [
+ "c6b1e0bc8558a2908d6471fff0e7f5351d4a0022",
+ "testharness"
+ ],
"navigation-timing/dom_interactive_image_document.html": [
"36742f0eff6d07c7c0694b066dfa017f0d1042be",
"testharness"
@@ -650215,7 +650353,7 @@
"manual"
],
"payment-request/rejects_if_not_active.https.html": [
- "4ba760ac987746ad9b561377a6b1e4185f7e7331",
+ "1c666aea435758cd7f79172aaa691f43f7907a47",
"testharness"
],
"payment-request/resources/page1.html": [
@@ -663683,7 +663821,7 @@
"testharness"
],
"service-workers/service-worker/import-scripts-redirect.https.html": [
- "e52adfa37800853a86da9f5f30bc0dd41e4afcb6",
+ "07ea49439eba8f9762b2bc17b5ae2346d9d15397",
"testharness"
],
"service-workers/service-worker/import-scripts-resource-map.https.html": [
@@ -664590,6 +664728,10 @@
"56c04f094602b484a289b58dcfb25c4d6620c355",
"support"
],
+ "service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js": [
+ "f612ab8e6aa4272083abf573978d1932d18f6535",
+ "support"
+ ],
"service-workers/service-worker/resources/import-scripts-redirect-worker.js": [
"d02a45349c24298542ea4fca64971a888ae883a6",
"support"
@@ -665159,7 +665301,7 @@
"support"
],
"service-workers/service-worker/resources/update-worker.py": [
- "2bc99a3d044b3d75a40ce60379dc145220d49eda",
+ "446d547ca78277c69795233f0d7c0f64125059d8",
"support"
],
"service-workers/service-worker/resources/update/update-after-oneday.https.html": [
@@ -665371,7 +665513,7 @@
"testharness"
],
"service-workers/service-worker/update.https.html": [
- "6f7db0542b7898b1765a3d43ed1618cf1d1e45b9",
+ "7232419cd0acc33515113363540b332e397025d7",
"testharness"
],
"service-workers/service-worker/waiting.https.html": [
@@ -680255,7 +680397,7 @@
"testharness"
],
"web-animations/timing-model/timelines/document-timelines.html": [
- "be8e3cca1c77e34f4a52e5d4e51c423161b7886f",
+ "4023bba55612b689d98a9773c9c6fafe11408e2b",
"testharness"
],
"web-animations/timing-model/timelines/timelines.html": [
@@ -688255,7 +688397,7 @@
"support"
],
"webxr/resources/webxr_util.js": [
- "3a6a6c96fe0c419c1ff7ed7c5ab347cbc6978c13",
+ "baf1d66b00daa98c07b9bfc91436018d12eef097",
"support"
],
"webxr/webGLCanvasContext_create_xrcompatible.https.html": [
@@ -688283,7 +688425,7 @@
"testharness"
],
"webxr/xrDevice_requestSession_immersive.https.html": [
- "a397d1a89f6e0d3ac7784a39ac8612350aa69dcd",
+ "be0bb32995b86ee576c1e55414d7f7d81a1e0fc1",
"testharness"
],
"webxr/xrDevice_requestSession_immersive_no_gesture.https.html": [
@@ -688302,6 +688444,14 @@
"59950592558513f2530aaedaa86f89c955166863",
"testharness"
],
+ "webxr/xrDevice_requestSession_optionalFeatures.https.html": [
+ "c274f4ff7138df2bdc98fbc173db73d29321afc2",
+ "testharness"
+ ],
+ "webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html": [
+ "02b26c05cb5dc0e5b721e472632fae3aa83b6275",
+ "testharness"
+ ],
"webxr/xrDevice_supportsSession_immersive.https.html": [
"fd0827a526ef01299eeccd94f93f131e4014cd7b",
"testharness"
@@ -688395,7 +688545,11 @@
"testharness"
],
"webxr/xrSession_requestReferenceSpace.https.html": [
- "c90d6ce5a545563664ed34d946db2bca48edca40",
+ "51aa8885f5e853ca4bf225134dee120b71d28011",
+ "testharness"
+ ],
+ "webxr/xrSession_requestReferenceSpace_features.https.html": [
+ "1bd516ee12e1d3ba24fd13ff04974c72e284b38a",
"testharness"
],
"webxr/xrSession_viewer_referenceSpace.https.html": [
@@ -691846,8 +692000,8 @@
"7a2bf3622554937bf483a3b3afa9f16187fdabf6",
"support"
],
- "xslt/idlharness.window.js": [
- "51b0cd3dbac772f85d50debdf414a5726875b7d4",
+ "xslt/idlharness.tentative.window.js": [
+ "1da8db8cb208aa278527bbe9192944b68e19340b",
"testharness"
],
"xslt/transformToFragment.tentative.window.js": [
diff --git a/tests/wpt/metadata/css/css-align/parsing/align-content-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/align-content-computed.html.ini
new file mode 100644
index 00000000000..036730941a3
--- /dev/null
+++ b/tests/wpt/metadata/css/css-align/parsing/align-content-computed.html.ini
@@ -0,0 +1,25 @@
+[align-content-computed.html]
+ [Property align-content value 'start' computes to 'start']
+ expected: FAIL
+
+ [Property align-content value 'safe flex-start' computes to 'safe flex-start']
+ expected: FAIL
+
+ [Property align-content value 'unsafe end' computes to 'unsafe end']
+ expected: FAIL
+
+ [Property align-content value 'baseline' computes to 'baseline']
+ expected: FAIL
+
+ [Property align-content value 'last baseline' computes to 'last baseline']
+ expected: FAIL
+
+ [Property align-content value 'normal' computes to 'normal']
+ expected: FAIL
+
+ [Property align-content value 'end' computes to 'end']
+ expected: FAIL
+
+ [Property align-content value 'space-evenly' computes to 'space-evenly']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-align/parsing/align-items-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/align-items-computed.html.ini
new file mode 100644
index 00000000000..7901836699f
--- /dev/null
+++ b/tests/wpt/metadata/css/css-align/parsing/align-items-computed.html.ini
@@ -0,0 +1,25 @@
+[align-items-computed.html]
+ [Property align-items value 'self-start' computes to 'self-start']
+ expected: FAIL
+
+ [Property align-items value 'self-end' computes to 'self-end']
+ expected: FAIL
+
+ [Property align-items value 'unsafe center' computes to 'unsafe center']
+ expected: FAIL
+
+ [Property align-items value 'normal' computes to 'normal']
+ expected: FAIL
+
+ [Property align-items value 'start' computes to 'start']
+ expected: FAIL
+
+ [Property align-items value 'safe self-end' computes to 'safe self-end']
+ expected: FAIL
+
+ [Property align-items value 'end' computes to 'end']
+ expected: FAIL
+
+ [Property align-items value 'last baseline' computes to 'last baseline']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-align/parsing/align-self-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/align-self-computed.html.ini
new file mode 100644
index 00000000000..fa61b083ab8
--- /dev/null
+++ b/tests/wpt/metadata/css/css-align/parsing/align-self-computed.html.ini
@@ -0,0 +1,28 @@
+[align-self-computed.html]
+ [Property align-self value 'safe self-end' computes to 'safe self-end']
+ expected: FAIL
+
+ [Property align-self value 'self-start' computes to 'self-start']
+ expected: FAIL
+
+ [Property align-self value 'end' computes to 'end']
+ expected: FAIL
+
+ [Property align-self value 'auto' computes to 'auto']
+ expected: FAIL
+
+ [Property align-self value 'last baseline' computes to 'last baseline']
+ expected: FAIL
+
+ [Property align-self value 'normal' computes to 'normal']
+ expected: FAIL
+
+ [Property align-self value 'self-end' computes to 'self-end']
+ expected: FAIL
+
+ [Property align-self value 'unsafe center' computes to 'unsafe center']
+ expected: FAIL
+
+ [Property align-self value 'start' computes to 'start']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-align/parsing/justify-content-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/justify-content-computed.html.ini
new file mode 100644
index 00000000000..f96a01069a2
--- /dev/null
+++ b/tests/wpt/metadata/css/css-align/parsing/justify-content-computed.html.ini
@@ -0,0 +1,25 @@
+[justify-content-computed.html]
+ [Property justify-content value 'unsafe end' computes to 'unsafe end']
+ expected: FAIL
+
+ [Property justify-content value 'start' computes to 'start']
+ expected: FAIL
+
+ [Property justify-content value 'end' computes to 'end']
+ expected: FAIL
+
+ [Property justify-content value 'left' computes to 'left']
+ expected: FAIL
+
+ [Property justify-content value 'unsafe right' computes to 'unsafe right']
+ expected: FAIL
+
+ [Property justify-content value 'space-evenly' computes to 'space-evenly']
+ expected: FAIL
+
+ [Property justify-content value 'normal' computes to 'normal']
+ expected: FAIL
+
+ [Property justify-content value 'safe flex-start' computes to 'safe flex-start']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-align/parsing/justify-items-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/justify-items-computed.html.ini
new file mode 100644
index 00000000000..b9104efccf3
--- /dev/null
+++ b/tests/wpt/metadata/css/css-align/parsing/justify-items-computed.html.ini
@@ -0,0 +1,61 @@
+[justify-items-computed.html]
+ [Property justify-items value 'self-start' computes to 'self-start']
+ expected: FAIL
+
+ [Property justify-items value 'legacy' computes to 'normal']
+ expected: FAIL
+
+ [Property justify-items value 'stretch' computes to 'stretch']
+ expected: FAIL
+
+ [Property justify-items value 'start' computes to 'start']
+ expected: FAIL
+
+ [Property justify-items value 'right' computes to 'right']
+ expected: FAIL
+
+ [Property justify-items value 'center' computes to 'center']
+ expected: FAIL
+
+ [Property justify-items value 'legacy right' computes to 'legacy right']
+ expected: FAIL
+
+ [Property justify-items value 'self-end' computes to 'self-end']
+ expected: FAIL
+
+ [Property justify-items value 'legacy center' computes to 'legacy center']
+ expected: FAIL
+
+ [Property justify-items value 'unsafe center' computes to 'unsafe center']
+ expected: FAIL
+
+ [Property justify-items value 'flex-start' computes to 'flex-start']
+ expected: FAIL
+
+ [Property justify-items value 'legacy left' computes to 'legacy left']
+ expected: FAIL
+
+ [Property justify-items value 'flex-end' computes to 'flex-end']
+ expected: FAIL
+
+ [justify-items legacy depends on inherited value]
+ expected: FAIL
+
+ [Property justify-items value 'last baseline' computes to 'last baseline']
+ expected: FAIL
+
+ [Property justify-items value 'baseline' computes to 'baseline']
+ expected: FAIL
+
+ [Property justify-items value 'safe left' computes to 'safe left']
+ expected: FAIL
+
+ [Property justify-items value 'normal' computes to 'normal']
+ expected: FAIL
+
+ [Property justify-items value 'safe self-end' computes to 'safe self-end']
+ expected: FAIL
+
+ [Property justify-items value 'end' computes to 'end']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-align/parsing/justify-self-computed.html.ini b/tests/wpt/metadata/css/css-align/parsing/justify-self-computed.html.ini
new file mode 100644
index 00000000000..97de7bd520a
--- /dev/null
+++ b/tests/wpt/metadata/css/css-align/parsing/justify-self-computed.html.ini
@@ -0,0 +1,49 @@
+[justify-self-computed.html]
+ [Property justify-self value 'baseline' computes to 'baseline']
+ expected: FAIL
+
+ [Property justify-self value 'end' computes to 'end']
+ expected: FAIL
+
+ [Property justify-self value 'safe self-end' computes to 'safe self-end']
+ expected: FAIL
+
+ [Property justify-self value 'auto' computes to 'auto']
+ expected: FAIL
+
+ [Property justify-self value 'last baseline' computes to 'last baseline']
+ expected: FAIL
+
+ [Property justify-self value 'flex-end' computes to 'flex-end']
+ expected: FAIL
+
+ [Property justify-self value 'self-end' computes to 'self-end']
+ expected: FAIL
+
+ [Property justify-self value 'center' computes to 'center']
+ expected: FAIL
+
+ [Property justify-self value 'stretch' computes to 'stretch']
+ expected: FAIL
+
+ [Property justify-self value 'normal' computes to 'normal']
+ expected: FAIL
+
+ [Property justify-self value 'self-start' computes to 'self-start']
+ expected: FAIL
+
+ [Property justify-self value 'start' computes to 'start']
+ expected: FAIL
+
+ [Property justify-self value 'left' computes to 'left']
+ expected: FAIL
+
+ [Property justify-self value 'unsafe right' computes to 'unsafe right']
+ expected: FAIL
+
+ [Property justify-self value 'flex-start' computes to 'flex-start']
+ expected: FAIL
+
+ [Property justify-self value 'unsafe center' computes to 'unsafe center']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-valid.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-valid.html.ini
index 00376a56fce..566b507fd81 100644
--- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-valid.html.ini
+++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-x-valid.html.ini
@@ -1,10 +1,4 @@
[background-position-x-valid.html]
- [e.style['background-position-x'\] = "calc(10px - 0.5em)" should set the property value]
- expected: FAIL
-
- [e.style['background-position-x'\] = "calc(10px - 0.5em), left -20%, right 10px" should set the property value]
- expected: FAIL
-
[e.style['background-position-x'\] = "x-end" should set the property value]
expected: FAIL
diff --git a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-valid.html.ini b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-valid.html.ini
index 429c6adbac5..f2a01f43d9a 100644
--- a/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-valid.html.ini
+++ b/tests/wpt/metadata/css/css-backgrounds/parsing/background-position-y-valid.html.ini
@@ -11,6 +11,3 @@
[e.style['background-position-y'\] = "y-end" should set the property value]
expected: FAIL
- [e.style['background-position-y'\] = "calc(10px - 0.5em)" should set the property value]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-001.html.ini
new file mode 100644
index 00000000000..5450301361b
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-001.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-thickness-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-computed.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-computed.html.ini
new file mode 100644
index 00000000000..7b59ea11fdf
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-computed.html.ini
@@ -0,0 +1,10 @@
+[text-decoration-thickness-computed.html]
+ [Property text-decoration-thickness value 'from-font' computes to 'from-font']
+ expected: FAIL
+
+ [Property text-decoration-thickness value 'auto' computes to 'auto']
+ expected: FAIL
+
+ [Property text-decoration-thickness value 'calc(10px - 8px)' computes to '2px']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-initial.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-initial.html.ini
new file mode 100644
index 00000000000..fe8a17fb543
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-initial.html.ini
@@ -0,0 +1,4 @@
+[text-decoration-thickness-initial.html]
+ [Initial value of text-decoration-thickness should be auto]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-linethrough-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-linethrough-001.html.ini
new file mode 100644
index 00000000000..10ec51bb16d
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-linethrough-001.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-thickness-linethrough-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-overline-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-overline-001.html.ini
new file mode 100644
index 00000000000..3b81932352b
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-overline-001.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-thickness-overline-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-scroll-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-scroll-001.html.ini
new file mode 100644
index 00000000000..84bbbf7b288
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-scroll-001.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-thickness-scroll-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-underline-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-underline-001.html.ini
new file mode 100644
index 00000000000..e68d54c347d
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-underline-001.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-thickness-underline-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-valid.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-valid.html.ini
new file mode 100644
index 00000000000..e89dadce620
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-valid.html.ini
@@ -0,0 +1,25 @@
+[text-decoration-thickness-valid.html]
+ [e.style['text-decoration-thickness'\] = "from-font" should set the property value]
+ expected: FAIL
+
+ [e.style['text-decoration-thickness'\] = "2001em" should set the property value]
+ expected: FAIL
+
+ [e.style['text-decoration-thickness'\] = "-49em" should set the property value]
+ expected: FAIL
+
+ [e.style['text-decoration-thickness'\] = "auto" should set the property value]
+ expected: FAIL
+
+ [e.style['text-decoration-thickness'\] = "calc(-50em + 13px)" should set the property value]
+ expected: FAIL
+
+ [e.style['text-decoration-thickness'\] = "53px" should set the property value]
+ expected: FAIL
+
+ [e.style['text-decoration-thickness'\] = "calc(40em - 10px)" should set the property value]
+ expected: FAIL
+
+ [e.style['text-decoration-thickness'\] = "-10px" should set the property value]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-001.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-001.html.ini
new file mode 100644
index 00000000000..2f48fe751b2
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-001.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-thickness-vertical-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-002.html.ini b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-002.html.ini
new file mode 100644
index 00000000000..1bfad2cf8e8
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text-decor/text-decoration-thickness-vertical-002.html.ini
@@ -0,0 +1,2 @@
+[text-decoration-thickness-vertical-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini
index 38fcecc620d..24c66214652 100644
--- a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini
+++ b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini
@@ -1079,12 +1079,6 @@
[text-indent percentage(%) / values]
expected: FAIL
- [margin-top length(ex) / values]
- expected: FAIL
-
- [margin-top length(mm) / values]
- expected: FAIL
-
- [margin-top length(pt) / values]
+ [padding-bottom length(ex) / values]
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/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
index 86eb218a129..228cc1d76a4 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,6 +312,15 @@
[<iframe>: separate response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
+ [<iframe>: combined response Content-Type: text/html */*]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/plain */*]
+ expected: FAIL
+
+ [<iframe>: combined response Content-Type: text/html;x=" text/plain]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
index d2df9b78483..5c001592859 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -56,3 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
+ [separate text/javascript;charset=windows-1252 error text/javascript]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
index a2a0c8f8200..a639f15230c 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,9 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
- [X-Content-Type-Options%3A%20'NosniFF']
- expected: FAIL
-
- [X-Content-Type-Options%3A%20%22nosniFF%22]
+ [Content-Type-Options%3A%20nosniff]
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_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
index 75d75b4cda2..385376c7321 100644
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
@@ -1,4 +1,4 @@
-[traverse_the_history_2.html]
+[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini
index 14fb78311f2..3fddf7d569b 100644
--- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini
+++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location_hash.html.ini
@@ -3,3 +3,9 @@
[Setting location.hash on srcdoc iframe]
expected: FAIL
+ [Setting hash which is partially encoded should only encode incompatible characters]
+ expected: FAIL
+
+ [Setting hash should encode incompatible characters]
+ 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
deleted file mode 100644
index 5d28284b841..00000000000
--- 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
+++ /dev/null
@@ -1,5 +0,0 @@
-[creating_browsing_context_test_01.html]
- type: testharness
- [first argument: absolute url]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.ini
new file mode 100644
index 00000000000..a9f756ce5e9
--- /dev/null
+++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.ini
@@ -0,0 +1,4 @@
+[broadcastchannel-success.https.html]
+ [Structured cloning of SharedArrayBuffers: BroadcastChannel within the same agent cluster]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini
new file mode 100644
index 00000000000..9e522297c94
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini
@@ -0,0 +1,7 @@
+[toggleEvent.html]
+ [Calling open twice on 'details' fires only one toggle event]
+ expected: FAIL
+
+ [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
+ expected: FAIL
+
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/navigation-timing/buffered-flag.window.js.ini b/tests/wpt/metadata/navigation-timing/buffered-flag.window.js.ini
new file mode 100644
index 00000000000..611eac9d684
--- /dev/null
+++ b/tests/wpt/metadata/navigation-timing/buffered-flag.window.js.ini
@@ -0,0 +1,5 @@
+[buffered-flag.window.html]
+ expected: TIMEOUT
+ [PerformanceObserver with buffered flag sees previous navigation entry.]
+ expected: TIMEOUT
+
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 537266bfb84..036692e72bf 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
@@ -116,3 +116,9 @@
[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 1.1836414583850666e+22 at index of 39267.\n\t[39267\]\t1.1836414583850666e+22\t-9.8276454210281372e-1\t1.1836414583850666e+22\t1.2043998411383850e+22\t3.8985999999999999e-3\n\tMax RelError of 2.3038078820072928e+22 at index of 20238.\n\t[20238\]\t1.0960356369936048e+22\t-4.7574958205223083e-1\t1.0960356369936048e+22\t2.3038078820072928e+22\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 1.5492252409458160e+0 at index of 20238.\n\t[20238\]\t-2.0249748229980469e+0\t-4.7574958205223083e-1\t1.5492252409458160e+0\t3.2563880230077262e+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 SNR (21.35658911509222 dB) is not greater than or equal to 65.737. Got 21.35658911509222.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webxr/xrDevice_requestSession_immersive.https.html.ini b/tests/wpt/metadata/webxr/xrDevice_requestSession_immersive.https.html.ini
new file mode 100644
index 00000000000..0d5790999bb
--- /dev/null
+++ b/tests/wpt/metadata/webxr/xrDevice_requestSession_immersive.https.html.ini
@@ -0,0 +1,7 @@
+[xrDevice_requestSession_immersive.https.html]
+ [Tests requestSession ignores unknown optionalFeatures]
+ expected: FAIL
+
+ [Tests requestSession accepts XRSessionInit dictionary]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini b/tests/wpt/metadata/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini
new file mode 100644
index 00000000000..40c12b5fea7
--- /dev/null
+++ b/tests/wpt/metadata/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini
@@ -0,0 +1,7 @@
+[xrDevice_requestSession_optionalFeatures.https.html]
+ [Tests requestSession ignores unknown optionalFeatures]
+ expected: FAIL
+
+ [Tests requestSession accepts XRSessionInit dictionary with empty feature lists]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini b/tests/wpt/metadata/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini
new file mode 100644
index 00000000000..f0e6c00ee15
--- /dev/null
+++ b/tests/wpt/metadata/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini
@@ -0,0 +1,4 @@
+[xrDevice_requestSession_requiredFeatures_unknown.https.html]
+ [Tests requestSession rejects for unknown requiredFeatures]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webxr/xrSession_requestReferenceSpace_features.https.html.ini b/tests/wpt/metadata/webxr/xrSession_requestReferenceSpace_features.https.html.ini
new file mode 100644
index 00000000000..84a5e1496a8
--- /dev/null
+++ b/tests/wpt/metadata/webxr/xrSession_requestReferenceSpace_features.https.html.ini
@@ -0,0 +1,37 @@
+[xrSession_requestReferenceSpace_features.https.html]
+ [Non-immersive session rejects unbounded space even when requested]
+ expected: FAIL
+
+ [Immersive session supports local space by default]
+ expected: FAIL
+
+ [Non-immersive session supports local-floor space when required]
+ expected: FAIL
+
+ [Immersive session rejects local-floor space if not requested]
+ expected: FAIL
+
+ [Immersive session supports local-floor space when required]
+ expected: FAIL
+
+ [Non-immersive session rejects bounded-floor space even when requested]
+ expected: FAIL
+
+ [Non-immersive session supports local space when optional]
+ expected: FAIL
+
+ [Immersive session supports local-floor space when optional]
+ expected: FAIL
+
+ [Non-immersive session supports local space when required]
+ expected: FAIL
+
+ [Non-immersive session supports viewer space by default]
+ expected: FAIL
+
+ [Non-immersive session rejects local space if not requested]
+ expected: FAIL
+
+ [Immersive session supports viewer space by default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini
deleted file mode 100644
index 80f9a4f15b8..00000000000
--- a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[Worker-constructor.html]
- expected: ERROR
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-computed.html
new file mode 100644
index 00000000000..8b5465c6b27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-content-computed.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Box Alignment Level 3: getComputedStyle().alignContent</title>
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-content">
+<meta name="assert" content="align-content computed value is as specified.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<script>
+test_computed_value("align-content", "normal");
+
+test_computed_value("align-content", "baseline");
+test_computed_value("align-content", "last baseline");
+
+test_computed_value("align-content", "space-between");
+test_computed_value("align-content", "space-around");
+test_computed_value("align-content", "space-evenly");
+test_computed_value("align-content", "stretch");
+
+test_computed_value("align-content", "center");
+test_computed_value("align-content", "start");
+test_computed_value("align-content", "end");
+test_computed_value("align-content", "flex-start");
+test_computed_value("align-content", "flex-end");
+test_computed_value("align-content", "unsafe end");
+test_computed_value("align-content", "safe flex-start");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-computed.html
new file mode 100644
index 00000000000..23d4c2fd0d1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-items-computed.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Box Alignment Level 3: getComputedStyle().alignItems</title>
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
+<meta name="assert" content="align-items computed value is as specified.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<script>
+test_computed_value("align-items", "normal");
+test_computed_value("align-items", "stretch");
+
+test_computed_value("align-items", "baseline");
+test_computed_value("align-items", "last baseline");
+
+test_computed_value("align-items", "center");
+test_computed_value("align-items", "start");
+test_computed_value("align-items", "end");
+test_computed_value("align-items", "self-start");
+test_computed_value("align-items", "self-end");
+test_computed_value("align-items", "flex-start");
+test_computed_value("align-items", "flex-end");
+test_computed_value("align-items", "unsafe center");
+test_computed_value("align-items", "safe self-end");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-computed.html
new file mode 100644
index 00000000000..e61a88a72e8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/align-self-computed.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Box Alignment Level 3: getComputedStyle().alignSelf</title>
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
+<meta name="assert" content="align-self computed value is as specified.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<script>
+test_computed_value("align-self", "auto");
+test_computed_value("align-self", "normal");
+test_computed_value("align-self", "stretch");
+
+test_computed_value("align-self", "baseline");
+test_computed_value("align-self", "last baseline");
+
+test_computed_value("align-self", "center");
+test_computed_value("align-self", "start");
+test_computed_value("align-self", "end");
+test_computed_value("align-self", "self-start");
+test_computed_value("align-self", "self-end");
+test_computed_value("align-self", "flex-start");
+test_computed_value("align-self", "flex-end");
+test_computed_value("align-self", "unsafe center");
+test_computed_value("align-self", "safe self-end");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-computed.html
new file mode 100644
index 00000000000..b04d2db1429
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-computed.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Box Alignment Level 3: getComputedStyle().justifyContent</title>
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-content">
+<meta name="assert" content="justify-content computed value is as specified.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<script>
+test_computed_value("justify-content", "normal");
+
+test_computed_value("justify-content", "space-between");
+test_computed_value("justify-content", "space-around");
+test_computed_value("justify-content", "space-evenly");
+test_computed_value("justify-content", "stretch");
+
+test_computed_value("justify-content", "center");
+test_computed_value("justify-content", "start");
+test_computed_value("justify-content", "end");
+test_computed_value("justify-content", "flex-start");
+test_computed_value("justify-content", "flex-end");
+test_computed_value("justify-content", "unsafe end");
+test_computed_value("justify-content", "safe flex-start");
+test_computed_value("justify-content", "left");
+test_computed_value("justify-content", "unsafe right");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html
index 971f94bcf8b..47f3a59a7d7 100644
--- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-invalid.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>CSS Box Alignment Level 3: parsing justify-content with invalid values</title>
-<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-content">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-content">
<meta name="assert" content="justify-content supports only the grammar 'normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html
index d476a268add..4372f6fdc31 100644
--- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-content-valid.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>CSS Box Alignment Level 3: parsing justify-content with valid values</title>
-<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-content">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-content">
<meta name="assert" content="justify-content supports the full grammar 'normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-computed.html
new file mode 100644
index 00000000000..b93f2a381b1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-computed.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Box Alignment Level 3: getComputedStyle().justifyItems</title>
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
+<meta name="assert" content="justify-items computed value is as specified.">
+<meta name="assert" content="justify-items legacy depends on inherited value.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="container">
+ <div id="target"></div>
+</div>
+<script>
+test_computed_value("justify-items", "normal");
+test_computed_value("justify-items", "stretch");
+
+test_computed_value("justify-items", "baseline");
+test_computed_value("justify-items", "last baseline");
+
+test_computed_value("justify-items", "center");
+test_computed_value("justify-items", "start");
+test_computed_value("justify-items", "end");
+test_computed_value("justify-items", "self-start");
+test_computed_value("justify-items", "self-end");
+test_computed_value("justify-items", "flex-start");
+test_computed_value("justify-items", "flex-end");
+test_computed_value("justify-items", "unsafe center");
+test_computed_value("justify-items", "safe self-end");
+test_computed_value("justify-items", "right");
+test_computed_value("justify-items", "safe left");
+
+test_computed_value("justify-items", "legacy", "normal");
+test_computed_value("justify-items", "legacy left");
+test_computed_value("justify-items", "legacy right");
+test_computed_value("justify-items", "legacy center");
+
+test(() => {
+ const container = document.getElementById('container');
+ const target = document.getElementById('target');
+ target.style.justifyItems = 'legacy';
+ container.style.justifyItems = 'legacy left';
+ assert_equals(getComputedStyle(target).justifyItems, 'legacy left');
+ container.style.justifyItems = 'legacy right';
+ assert_equals(getComputedStyle(target).justifyItems, 'legacy right');
+ container.style.justifyItems = 'legacy center';
+ assert_equals(getComputedStyle(target).justifyItems, 'legacy center');
+ container.style.justifyItems = 'flex-end';
+ assert_equals(getComputedStyle(target).justifyItems, 'normal');
+}, 'justify-items legacy depends on inherited value');
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html
index 18da0593760..87d03cb3d12 100644
--- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-invalid.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>CSS Box Alignment Level 3: parsing justify-items with invalid values</title>
-<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
<meta name="assert" content="justify-items supports only the grammar 'normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html
index 36584f86feb..51496554cb0 100644
--- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-items-valid.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>CSS Box Alignment Level 3: parsing justify-items with valid values</title>
-<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-items">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-items">
<meta name="assert" content="justify-items supports the full grammar 'normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-computed.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-computed.html
new file mode 100644
index 00000000000..f560d23d7b1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-computed.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Box Alignment Level 3: getComputedStyle().justifySelf</title>
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
+<meta name="assert" content="justify-self computed value is as specified.">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+</head>
+<body>
+<div id="target"></div>
+<script>
+test_computed_value("justify-self", "auto");
+test_computed_value("justify-self", "normal");
+test_computed_value("justify-self", "stretch");
+
+test_computed_value("justify-self", "baseline");
+test_computed_value("justify-self", "last baseline");
+
+test_computed_value("justify-self", "center");
+test_computed_value("justify-self", "start");
+test_computed_value("justify-self", "end");
+test_computed_value("justify-self", "self-start");
+test_computed_value("justify-self", "self-end");
+test_computed_value("justify-self", "flex-start");
+test_computed_value("justify-self", "flex-end");
+test_computed_value("justify-self", "unsafe center");
+test_computed_value("justify-self", "safe self-end");
+test_computed_value("justify-self", "left");
+test_computed_value("justify-self", "unsafe right");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html
index 846cdd8a00f..7823c0aa586 100644
--- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-invalid.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>CSS Box Alignment Level 3: parsing justify-self with invalid values</title>
-<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-self">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
<meta name="assert" content="justify-self supports only the grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html
index 1ee23af200f..4cca0809958 100644
--- a/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-align/parsing/justify-self-valid.html
@@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>CSS Box Alignment Level 3: parsing justify-self with valid values</title>
-<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-self">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-justify-self">
<meta name="assert" content="justify-self supports the full grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-x-valid.html b/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-x-valid.html
index 282d7d27bf5..ca9c229db4a 100644
--- a/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-x-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-x-valid.html
@@ -19,13 +19,13 @@ test_valid_value("background-position-x", "x-end");
test_valid_value("background-position-x", "-20%");
test_valid_value("background-position-x", "10px");
test_valid_value("background-position-x", "0.5em");
-test_valid_value("background-position-x", "calc(10px - 0.5em)");
+test_valid_value("background-position-x", "calc(10px - 0.5em)", "calc(-0.5em + 10px)");
test_valid_value("background-position-x", "left -20%");
test_valid_value("background-position-x", "right 10px");
test_valid_value("background-position-x", "-20%, 10px");
test_valid_value("background-position-x", "center, left, right");
test_valid_value("background-position-x", "0.5em, x-start, x-end");
-test_valid_value("background-position-x", "calc(10px - 0.5em), left -20%, right 10px");
+test_valid_value("background-position-x", "calc(10px - 0.5em), left -20%, right 10px", "calc(-0.5em + 10px), left -20%, right 10px");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-y-valid.html b/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-y-valid.html
index 1413a2e959a..55c54b84262 100644
--- a/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-y-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-backgrounds/parsing/background-position-y-valid.html
@@ -19,13 +19,13 @@ test_valid_value("background-position-y", "y-end");
test_valid_value("background-position-y", "-20%");
test_valid_value("background-position-y", "10px");
test_valid_value("background-position-y", "0.5em");
-test_valid_value("background-position-y", "calc(10px - 0.5em)");
+test_valid_value("background-position-y", "calc(10px - 0.5em)", "calc(-0.5em + 10px)");
test_valid_value("background-position-y", "top -20%");
test_valid_value("background-position-y", "bottom 10px");
test_valid_value("background-position-y", "-20%, 10px");
test_valid_value("background-position-y", "center, top, bottom");
test_valid_value("background-position-y", "0.5em, y-start, y-end");
-test_valid_value("background-position-y", "calc(10px - 0.5em), top -20%, bottom 10px");
+test_valid_value("background-position-y", "calc(10px - 0.5em), top -20%, bottom 10px", "calc(-0.5em + 10px), top -20%, top 10px");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html
index e6640cc749e..778c97be1f0 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001-ref.html
@@ -2,6 +2,7 @@
<meta charset="utf-8">
<title>CSS container Layout Test Reference</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
.container {
font: 10px/1 Ahem;
diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html
index 6733759cf00..cb1cfdc06a3 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-lr-001.html
@@ -6,6 +6,7 @@
<link rel="match" href="grid-container-scrollbar-vertical-lr-001-ref.html">
<meta name="assert" content="This test verifies that scrollbars are properly painted on grid containers, and are shown in the expected position depending on the direction.">
<link href="support/grid.css" rel="stylesheet">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
.grid {
font: 10px/1 Ahem;
diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html
index 2b1bbaebb46..a5113475161 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001-ref.html
@@ -2,6 +2,7 @@
<meta charset="utf-8">
<title>CSS container Layout Test Reference</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
.container {
font: 10px/1 Ahem;
diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html
index a3de9386a81..03144ae0da7 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/grid-model/grid-container-scrollbar-vertical-rl-001.html
@@ -6,6 +6,7 @@
<link rel="match" href="grid-container-scrollbar-vertical-rl-001-ref.html">
<meta name="assert" content="This test verifies that scrollbars are properly painted on grid containers, and are shown in the expected position depending on the direction.">
<link href="support/grid.css" rel="stylesheet">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
.grid {
font: 10px/1 Ahem;
diff --git a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-valid.html b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-valid.html
index 973a1199c28..68c9797c0f4 100644
--- a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-valid.html
@@ -19,7 +19,7 @@ test_valid_value("border-block", "double", ["double", "medium double"]);
test_valid_value("border-block-start", "green double thin", "thin double green");
test_valid_value("border-block-start", "green", ["green", "medium none green"]);
test_valid_value("border-block-end", "thin", ["thin", "thin none"]);
-test_valid_value("border-block-end", "calc(10px - 0.5em) dotted red");
+test_valid_value("border-block-end", "calc(10px - 0.5em) dotted red", "calc(-0.5em + 10px) dotted red");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-width-valid.html b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-width-valid.html
index 98987df9a70..03b02a25664 100644
--- a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-width-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-block-width-valid.html
@@ -13,14 +13,14 @@
<script>
// <length> | thin | medium | thick
test_valid_value("border-block-start-width", "10px");
-test_valid_value("border-block-start-width", "calc(10px + 0.5em)");
+test_valid_value("border-block-start-width", "calc(10px + 0.5em)", "calc(0.5em + 10px)");
test_valid_value("border-block-start-width", "thick");
test_valid_value("border-block-start-width", "thin");
test_valid_value("border-block-end-width", "0", "0px");
-test_valid_value("border-block-end-width", "calc(10px - 0.5em)");
+test_valid_value("border-block-end-width", "calc(10px - 0.5em)", "calc(-0.5em + 10px)");
test_valid_value("border-block-end-width", "medium");
test_valid_value("border-block-width", "10px");
-test_valid_value("border-block-width", "medium calc(10px + 0.5em)");
+test_valid_value("border-block-width", "medium calc(10px + 0.5em)", "medium calc(0.5em + 10px)");
test_valid_value("border-block-width", "10px 10px", "10px");
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-valid.html b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-valid.html
index b7207c0f235..be29783acf4 100644
--- a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-valid.html
@@ -19,7 +19,7 @@ test_valid_value("border-inline", "double", ["double", "medium double"]);
test_valid_value("border-inline-start", "green double thin", "thin double green");
test_valid_value("border-inline-start", "green", ["green", "medium none green"]);
test_valid_value("border-inline-end", "thin", ["thin", "thin none"]);
-test_valid_value("border-inline-end", "calc(10px - 0.5em) dotted red");
+test_valid_value("border-inline-end", "calc(10px - 0.5em) dotted red", "calc(-0.5em + 10px) dotted red");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-width-valid.html b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-width-valid.html
index 03c3e0fca2f..81c7049c5e9 100644
--- a/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-width-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-logical/parsing/border-inline-width-valid.html
@@ -13,14 +13,14 @@
<script>
// <length> | thin | medium | thick
test_valid_value("border-inline-start-width", "10px");
-test_valid_value("border-inline-start-width", "calc(10px + 0.5em)");
+test_valid_value("border-inline-start-width", "calc(10px + 0.5em)", "calc(0.5em + 10px)");
test_valid_value("border-inline-start-width", "thick");
test_valid_value("border-inline-start-width", "thin");
test_valid_value("border-inline-end-width", "0", "0px");
-test_valid_value("border-inline-end-width", "calc(10px - 0.5em)");
+test_valid_value("border-inline-end-width", "calc(10px - 0.5em)", "calc(-0.5em + 10px)");
test_valid_value("border-inline-end-width", "medium");
test_valid_value("border-inline-width", "10px");
-test_valid_value("border-inline-width", "medium calc(10px + 0.5em)");
+test_valid_value("border-inline-width", "medium calc(10px + 0.5em)", "medium calc(0.5em + 10px)");
test_valid_value("border-inline-width", "10px 10px", "10px");
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/css/css-logical/parsing/inset-block-inline-valid.html b/tests/wpt/web-platform-tests/css/css-logical/parsing/inset-block-inline-valid.html
index 1287f697873..b08975251d8 100644
--- a/tests/wpt/web-platform-tests/css/css-logical/parsing/inset-block-inline-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-logical/parsing/inset-block-inline-valid.html
@@ -15,16 +15,16 @@
test_valid_value("inset-block-start", "auto");
test_valid_value("inset-block-end", "-10px");
test_valid_value("inset-inline-start", "-20%");
-test_valid_value("inset-inline-end", "calc(10px - 0.5em)");
+test_valid_value("inset-inline-end", "calc(10px - 0.5em)", "calc(-0.5em + 10px)");
test_valid_value("inset-block", "auto");
test_valid_value("inset-block", "-10px");
-test_valid_value("inset-block", "calc(10px - 0.5em) -20%");
+test_valid_value("inset-block", "calc(10px - 0.5em) -20%", "calc(-0.5em + 10px) -20%");
test_valid_value("inset-block", "auto auto", "auto");
test_valid_value("inset-inline", "-20%");
-test_valid_value("inset-inline", "calc(10px - 0.5em)");
+test_valid_value("inset-inline", "calc(10px - 0.5em)", "calc(-0.5em + 10px)");
test_valid_value("inset-inline", "-10px auto");
-test_valid_value("inset-inline", "auto calc(10px + 0.5em)");
+test_valid_value("inset-inline", "auto calc(10px + 0.5em)", "auto calc(0.5em + 10px)");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001-ref.html b/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001-ref.html
new file mode 100644
index 00000000000..380c746301f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+ <meta charset="utf-8">
+ <title>CSS Multi-column Layout Test: Append a block to an empty inline element</title>
+ <link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
+
+ <style>
+ #column {
+ column-count: 3;
+ column-rule: 6px solid;
+ width: 400px;
+ outline: 1px solid black;
+ }
+ div {
+ height: 300px;
+ background-color: yellow;
+ }
+ </style>
+ <body>
+ <article id="column">
+ <span id="span"><div>block</div></span>
+ </article>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001.html b/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001.html
new file mode 100644
index 00000000000..ccc44add0b4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-dynamic-add-001.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <meta charset="utf-8">
+ <title>CSS Multi-column Layout Test: Append a block to an empty inline element</title>
+ <link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
+ <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
+ <link rel="help" href="https://drafts.csswg.org/css-multicol-1/#cf">
+ <link rel="help" href="https://www.w3.org/TR/CSS22/visuren.html#anonymous-block-level">
+ <link rel="match" href="multicol-dynamic-add-001-ref.html">
+ <meta name="assert" content="This test checks that the block appended into an inline element should perform correct block-in-inline splitting, and balance the block's height into three columns.">
+
+ <script>
+ function runTest() {
+ document.body.offsetHeight;
+
+ /* Append a block to the inline element. */
+ var block = document.createElement("div");
+ var text = document.createTextNode("block");
+ block.appendChild(text);
+
+ var span = document.getElementById("span");
+ span.appendChild(block);
+
+ document.documentElement.removeAttribute("class");
+ }
+ </script>
+
+ <style>
+ #column {
+ column-count: 3;
+ column-rule: 6px solid;
+ width: 400px;
+ outline: 1px solid black;
+ }
+ div {
+ height: 300px;
+ background-color: yellow;
+ }
+ </style>
+
+ <body onload="runTest();">
+ <article id="column">
+ <span id="span"><!-- block will be added here. --></span>
+ </article>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html
index fe2a63a57a1..6d7dbc63a1d 100644
--- a/tests/wpt/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html
+++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html
@@ -54,6 +54,8 @@ assert_valid("<percentage>", "-9.3e3%");
assert_valid("<length-percentage>", "-54%");
assert_valid("<length-percentage>", "0");
assert_valid("<length-percentage>", "calc(-11px + 10.4%)");
+assert_valid("<length>", "10vmin");
+assert_valid("<percentage> | <length>+", "calc(100vh - 10px) 30px");
assert_valid("<number>", "-109");
assert_valid("<number>", "2.3e4");
@@ -183,14 +185,12 @@ assert_invalid("<length>", "10%");
assert_invalid("<length>", "calc(5px + 10%)");
assert_invalid("<length>", "calc(5px * 3px / 6px)");
assert_invalid("<length>", "10em");
-assert_invalid("<length>", "10vmin");
assert_invalid("<length>", "calc(4px + 3em)");
assert_invalid("<length>", "calc(4px + calc(8 * 2em))");
assert_invalid("<length>+", "calc(2ex + 16px)");
assert_invalid("<length>+", "10px calc(20px + 4rem)");
assert_invalid("<length>+", "");
assert_invalid("<length>#", "");
-assert_invalid("<percentage> | <length>+", "calc(100vh - 10px) 30px");
assert_invalid("<length>", "10px;");
assert_invalid("<length-percentage>", "calc(2px + 10% + 7ex)");
assert_invalid("<percentage>", "0");
diff --git a/tests/wpt/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element.html b/tests/wpt/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element.html
index c2c413d04bd..eaa94176547 100644
--- a/tests/wpt/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element.html
+++ b/tests/wpt/web-platform-tests/css/css-scroll-snap/scroll-snap-type-on-root-element.html
@@ -1,42 +1,73 @@
<!DOCTYPE html>
-<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-type"/>
-<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#principal-flow"/>
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-type" />
+<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#principal-flow" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
html {
height: 3000px;
- scroll-snap-type: inline mandatory;
+ width: 3000px;
}
+
#target {
position: absolute;
background-color: blue;
top: 1000px;
- width: 100%;
+ left: 100px;
+
+ width: 100vw;
height: 100px;
}
</style>
<div id="target"></div>
<script>
const documentHeight = document.documentElement.clientHeight;
-test(() => {
- target.style.scrollSnapAlign = "end start";
-
- window.scrollTo(0, 1000);
-
- // `target y (1000px)` + `target height (100px)` - document height.
- assert_equals(document.scrollingElement.scrollTop, 1100 - documentHeight);
+function cleanup() {
+ document.documentElement.style.scrollSnapType = "none";
target.style.scrollSnapAlign = "";
+ document.body.style.writingMode = "";
window.scrollTo(0, 0);
-}, "The scroll-snap-type on the root element is applied");
+}
+
+test(t => {
+ t.add_cleanup(cleanup);
+ document.documentElement.style.scrollSnapType = "y mandatory";
+ target.style.scrollSnapAlign = "end none";
-test(() => {
- document.body.style.writingMode = "vertical-rl";
- target.style.scrollSnapAlign = "start end";
+ window.scrollTo(0, 800);
- window.scrollTo(0, 1000);
// `target y (1000px)` + `target height (100px)` - document height.
assert_equals(document.scrollingElement.scrollTop, 1100 - documentHeight);
-}, "The writing-mode on the body is used");
-</script>
+ assert_equals(document.scrollingElement.scrollLeft, 0, "x should not snap");
+}, "The scroll-snap-type on the root element is applied");
+
+test(t => {
+ t.add_cleanup(cleanup);
+
+ document.documentElement.style.scrollSnapType = "inline mandatory";
+ document.body.style.writingMode = "vertical-lr";
+ target.style.scrollSnapAlign = "none end";
+
+ window.scrollTo(200, 800);
+
+ // Since inline axis is vertical, scrolling viewport vertically on block
+ // axis should snap.
+ assert_equals(document.scrollingElement.scrollTop, 1100 - documentHeight, "inline should snap");
+ // `target x (100px)`.
+ assert_equals(document.scrollingElement.scrollLeft, 200, "block should not snap");
+}, "The writing-mode (vertical-lr) on the body is used");
+
+test(t => {
+ t.add_cleanup(cleanup);
+
+ document.documentElement.style.scrollSnapType = "inline mandatory";
+ document.body.style.writingMode = "horizontal-tb"; // inline is horizontal
+ target.style.scrollSnapAlign = "none start";
+
+ window.scrollTo(200, 800);
+
+ assert_equals(document.scrollingElement.scrollLeft, 100, "inline should snap");
+ assert_equals(document.scrollingElement.scrollTop, 800, "block should not snap");
+}, "The writing-mode (horizontal-tb) on the body is used ");
+</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-tables/parsing/border-spacing-valid.html b/tests/wpt/web-platform-tests/css/css-tables/parsing/border-spacing-valid.html
index 98bf402fc6c..cf594ee6b89 100644
--- a/tests/wpt/web-platform-tests/css/css-tables/parsing/border-spacing-valid.html
+++ b/tests/wpt/web-platform-tests/css/css-tables/parsing/border-spacing-valid.html
@@ -13,7 +13,7 @@
<script>
test_valid_value("border-spacing", "0px");
test_valid_value("border-spacing", "10px 20px");
-test_valid_value("border-spacing", "calc(10px + 0.5em) calc(10px - 0.5em)");
+test_valid_value("border-spacing", "calc(10px + 0.5em) calc(10px - 0.5em)", "calc(0.5em + 10px) calc(-0.5em + 10px)");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-001-notref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-001-notref.html
index 53a87c014d7..f876afa68c6 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-001-notref.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-001-notref.html
@@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8">
- <title>Non-reference case for text-decoration-width</title>
+ <title>Non-reference case for text-decoration-thickness</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
#main {
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html
index 7bc3865a861..14d1219001c 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-green-rect-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-green-rect-ref.html
@@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8">
- <title>Reference case for text-decoration-width</title>
+ <title>Reference case for text-decoration-thickness</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
div{
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html
index dd4868417ba..394811468fe 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-scroll-001-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-scroll-001-ref.html
@@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8">
- <title>Reference case for text-decoration-width</title>
+ <title>Reference case for text-decoration-thickness</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
#box{
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html
index ec7db180dc2..8955e8469aa 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-width-vertical-green-rect-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/reference/text-decoration-thickness-vertical-green-rect-ref.html
@@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8">
- <title>Reference case for text-decoration-width</title>
+ <title>Reference case for text-decoration-thickness</title>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
#box{
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-001.html
index ab6dfcadeb1..8f314793f26 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-001.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-001.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta charset="utf-8">
- <title>Test case for text-decoration-width</title>
- <meta name="assert" content="text-decoration-width: should affect the underline thickness">
+ <title>Test case for text-decoration-thickness</title>
+ <meta name="assert" content="text-decoration-thickness: should affect the underline thickness">
<link rel="author" title="Charlie Marlow" href="mailto: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-width-property">
- <link rel="mismatch" href="reference/text-decoration-width-001-notref.html">
+ <link rel="mismatch" href="reference/text-decoration-thickness-001-notref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
#main {
@@ -21,7 +21,7 @@
padding-right: 1em;
}
#rightbox {
- text-decoration-width: 2em;
+ text-decoration-thickness: 2em;
}
</style>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-computed.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-computed.html
index 0e00240141e..99e693afb5a 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-computed.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-computed.html
@@ -2,9 +2,9 @@
<html>
<head>
<meta charset="utf-8">
-<title>CSS Text Decoration Test: parsing text-decoration-width computed values</title>
+<title>CSS Text Decoration Test: parsing text-decoration-thickness computed values</title>
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property">
-<meta name="assert" content="text-decoration-width computed value is as specified.">
+<meta name="assert" content="text-decoration-thickness computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
@@ -12,9 +12,9 @@
<body>
<div id="target"></div>
<script>
-test_computed_value("text-decoration-width", "auto");
-test_computed_value("text-decoration-width", "from-font");
-test_computed_value("text-decoration-width", "calc(10px - 8px)", "2px");
+test_computed_value("text-decoration-thickness", "auto");
+test_computed_value("text-decoration-thickness", "from-font");
+test_computed_value("text-decoration-thickness", "calc(10px - 8px)", "2px");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-initial.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-initial.html
index ee47af0f115..4c4ca9cc9ab 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-initial.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-initial.html
@@ -4,14 +4,14 @@
<meta charset="utf-8">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<link rel="help" title="2.4 Text Decoration Width: the 'text-decoration-width' property"
+<link rel="help" title="2.4 Text Decoration Width: the 'text-decoration-thickness' property"
href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property" />
</head>
<body>
<script>
test(function() {
- assert_equals(getComputedStyle(document.body)["text-decoration-width"], "auto", "Must be set to value auto as initial value.");
-}, "Initial value of text-decoration-width should be auto");
+ assert_equals(getComputedStyle(document.body)["text-decoration-thickness"], "auto", "Must be set to value auto as initial value.");
+}, "Initial value of text-decoration-thickness should be auto");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-invalid.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-invalid.html
new file mode 100644
index 00000000000..656fa3bba2a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-invalid.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Decoration Test: parsing text-decoration-thickness with invalid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property">
+<meta name="assert" content="text-decoration-thickness supports the following values: auto | from-font | <length>">
+<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("text-decoration-thickness", "otto");
+test_invalid_value("text-decoration-thickness", "asdlflj");
+test_invalid_value("text-decoration-thickness", "-10");
+test_invalid_value("text-decoration-thickness", "60002020");
+test_invalid_value("text-decoration-thickness", "!@#$%^&");
+test_invalid_value("text-decoration-thickness", "10e2");
+test_invalid_value("text-decoration-thickness", "from font");
+test_invalid_value("text-decoration-thickness", "10%");
+test_invalid_value("text-decoration-thickness", "-27%");
+test_invalid_value("text-decoration-thickness", "calc(40% - 20px)");
+test_invalid_value("text-decoration-thickness", "calc(100% - 40em)");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-linethrough-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-linethrough-001.html
index cc48da15a7a..37e954b2b87 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-linethrough-001.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-linethrough-001.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta charset="utf-8">
- <title>Test case for text-decoration-width</title>
- <meta name="assert" content="text-decoration-width; the width of the decoration line is increased">
+ <title>Test case for text-decoration-thickness</title>
+ <meta name="assert" content="text-decoration-thickness; the width of the decoration line is increased">
<link rel="author" title="Charlie Marlow" href="mailto: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-width-property">
- <link rel="match" href="reference/text-decoration-width-green-rect-ref.html">
+ <link rel="match" href="reference/text-decoration-thickness-green-rect-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
div{
@@ -22,7 +22,7 @@
* it will entirely cover the div's content-box (making it fully green) as long
* as the line-through is approximately centered, vertically.
*/
- text-decoration-width: 1.1em;
+ text-decoration-thickness: 1.1em;
}
</style>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-overline-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-overline-001.html
index 21eb18b7ab2..325811c96fd 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-overline-001.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-overline-001.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta charset="utf-8">
- <title>Test case for text-decoration-width</title>
- <meta name="assert" content="text-decoration-width: the width of the decoration line is increased">
+ <title>Test case for text-decoration-thickness</title>
+ <meta name="assert" content="text-decoration-thickness: the width of the decoration line is increased">
<link rel="author" title="Charlie Marlow" href="mailto: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-width-property">
- <link rel="match" href="reference/text-decoration-width-green-rect-ref.html">
+ <link rel="match" href="reference/text-decoration-thickness-green-rect-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
#box{
@@ -27,7 +27,7 @@
top: 3em;
text-decoration: green overline;
text-decoration-skip-ink: none;
- text-decoration-width: 4em;
+ text-decoration-thickness: 4em;
}
</style>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-scroll-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-scroll-001.html
index f203bf10c2d..acc829dc66d 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-scroll-001.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-scroll-001.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta charset="utf-8">
- <title>Test case for text-decoration-width</title>
- <meta name="assert" content="text-decoration-width: increased width text decorations don't create scrollable overflow">
+ <title>Test case for text-decoration-thickness</title>
+ <meta name="assert" content="text-decoration-thickness: increased width text decorations don't create scrollable overflow">
<link rel="author" title="Charlie Marlow" href="mailto: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-width-property">
- <link rel="match" href="reference/text-decoration-width-scroll-001-ref.html">
+ <link rel="match" href="reference/text-decoration-thickness-scroll-001-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
#box{
@@ -29,7 +29,7 @@
color: transparent;
text-decoration: green underline;
text-decoration-skip-ink: none;
- text-decoration-width: 8em;
+ text-decoration-thickness: 8em;
}
</style>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-underline-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-underline-001.html
index 97ecc73a4a9..020f849f4cf 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-underline-001.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-underline-001.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta charset="utf-8">
- <title>Test case for text-decoration-width</title>
- <meta name="assert" content="text-decoration-width: the width of the decoration line is increased">
+ <title>Test case for text-decoration-thickness</title>
+ <meta name="assert" content="text-decoration-thickness: the width of the decoration line is increased">
<link rel="author" title="Charlie Marlow" href="mailto: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-width-property">
- <link rel="match" href="reference/text-decoration-width-green-rect-ref.html">
+ <link rel="match" href="reference/text-decoration-thickness-green-rect-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
#box{
@@ -27,7 +27,7 @@
bottom: 3em;
text-decoration: green underline;
text-decoration-skip-ink: none;
- text-decoration-width: 4em;
+ text-decoration-thickness: 4em;
}
</style>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-valid.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-valid.html
new file mode 100644
index 00000000000..d05c8926748
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-valid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Text Decoration Test: parsing text-decoration-thickness longhands with valid values</title>
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property">
+<meta name="assert" content="text-decoration-thickness supports the following values: auto | from-font | <length>">
+<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("text-decoration-thickness", "auto");
+test_valid_value("text-decoration-thickness", "from-font");
+test_valid_value("text-decoration-thickness", "-10px");
+test_valid_value("text-decoration-thickness", "2001em");
+test_valid_value("text-decoration-thickness", "-49em");
+test_valid_value("text-decoration-thickness", "53px");
+test_valid_value("text-decoration-thickness", "calc(40em - 10px)");
+test_valid_value("text-decoration-thickness", "calc(-50em + 13px)");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-vertical-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-001.html
index 5b4ab5e74dd..f04f1b52f95 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-vertical-001.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-001.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta charset="utf-8">
- <title>Test case for text-decoration-width</title>
- <meta name="assert" content="text-decoration-width: the width of the decoration line is increased">
+ <title>Test case for text-decoration-thickness</title>
+ <meta name="assert" content="text-decoration-thickness: the width of the decoration line is increased">
<link rel="author" title="Charlie Marlow" href="mailto: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-width-property">
- <link rel="match" href="reference/text-decoration-width-vertical-green-rect-ref.html">
+ <link rel="match" href="reference/text-decoration-thickness-vertical-green-rect-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
#box{
@@ -34,7 +34,7 @@
left: 1.3em;
text-decoration: green underline;
text-decoration-skip-ink: none;
- text-decoration-width: 1.5em;
+ text-decoration-thickness: 1.5em;
}
</style>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-vertical-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-002.html
index cbe4b1f8374..70421c507b7 100644
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-vertical-002.html
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-thickness-vertical-002.html
@@ -2,12 +2,12 @@
<html>
<head>
<meta charset="utf-8">
- <title>Test case for text-decoration-width</title>
+ <title>Test case for text-decoration-thickness</title>
<meta name="assert" content="text-decoration:width; the width of the decoration line is increased">
<link rel="author" title="Charlie Marlow" href="mailto: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-width-property">
- <link rel="match" href="reference/text-decoration-width-vertical-green-rect-ref.html">
+ <link rel="match" href="reference/text-decoration-thickness-vertical-green-rect-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
#box{
@@ -33,7 +33,7 @@
right: 1em;
text-decoration: green underline;
text-decoration-skip-ink: none;
- text-decoration-width: 1.2em;
+ text-decoration-thickness: 1.2em;
}
</style>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-invalid.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-invalid.html
deleted file mode 100644
index e89fe47ff2d..00000000000
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-invalid.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<title>CSS Text Decoration Test: parsing text-decoration-width with invalid values</title>
-<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property">
-<meta name="assert" content="text-decoration-width supports the following values: auto | from-font | <length>">
-<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("text-decoration-width", "otto");
-test_invalid_value("text-decoration-width", "asdlflj");
-test_invalid_value("text-decoration-width", "-10");
-test_invalid_value("text-decoration-width", "60002020");
-test_invalid_value("text-decoration-width", "!@#$%^&");
-test_invalid_value("text-decoration-width", "10e2");
-test_invalid_value("text-decoration-width", "from font");
-test_invalid_value("text-decoration-width", "10%");
-test_invalid_value("text-decoration-width", "-27%");
-test_invalid_value("text-decoration-width", "calc(40% - 20px)");
-test_invalid_value("text-decoration-width", "calc(100% - 40em)");
-</script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-valid.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-valid.html
deleted file mode 100644
index 583ebb0d3cf..00000000000
--- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-width-valid.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8">
-<title>CSS Text Decoration Test: parsing text-decoration-width longhands with valid values</title>
-<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property">
-<meta name="assert" content="text-decoration-width supports the following values: auto | from-font | <length>">
-<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("text-decoration-width", "auto");
-test_valid_value("text-decoration-width", "from-font");
-test_valid_value("text-decoration-width", "-10px");
-test_valid_value("text-decoration-width", "2001em");
-test_valid_value("text-decoration-width", "-49em");
-test_valid_value("text-decoration-width", "53px");
-test_valid_value("text-decoration-width", "calc(40em - 10px)");
-test_valid_value("text-decoration-width", "calc(-50em + 13px)");
-</script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html
index 43aeb165645..903ca8603fb 100644
--- a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-width.html
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-thickness.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset="utf-8">
-<title>'text-decoration-width' property</title>
+<title>'text-decoration-thickness' property</title>
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
@@ -13,7 +13,7 @@
<script>
'use strict';
-runPropertyTests('text-decoration-width', [
+runPropertyTests('text-decoration-thickness', [
{ syntax: 'auto' },
{
syntax: '<length>',
diff --git a/tests/wpt/web-platform-tests/event-timing/bufferbeforeonload.html b/tests/wpt/web-platform-tests/event-timing/bufferbeforeonload.html
index c30c01aa96b..4b003a98f64 100644
--- a/tests/wpt/web-platform-tests/event-timing/bufferbeforeonload.html
+++ b/tests/wpt/web-platform-tests/event-timing/bufferbeforeonload.html
@@ -62,6 +62,9 @@
(Dispatch and Process Click 2 - not buffered)
*/
async_test(function(t) {
+ if (!window.PerformanceEventTiming)
+ assert_unreached("PerformanceEventTiming is not supported");
+
clickTimeMin = performance.now();
clickAndBlockMain('button');
// Event handlers will be dispatched asynchronously, so this will be called
diff --git a/tests/wpt/web-platform-tests/event-timing/buffered-flag.html b/tests/wpt/web-platform-tests/event-timing/buffered-flag.html
index 8b56ad7f44d..b9c63ffd8fd 100644
--- a/tests/wpt/web-platform-tests/event-timing/buffered-flag.html
+++ b/tests/wpt/web-platform-tests/event-timing/buffered-flag.html
@@ -12,6 +12,9 @@
let firstInputSeen = false;
let eventSeen = false;
async_test(t => {
+ if (!window.PerformanceEventTiming)
+ assert_unreached("PerformanceEventTiming is not supported");
+
const validateEntry = t.step_func(entry => {
if (entry.entryType === 'first-input')
firstInputSeen = true;
diff --git a/tests/wpt/web-platform-tests/event-timing/crossiframe.html b/tests/wpt/web-platform-tests/event-timing/crossiframe.html
index c1a27a5d021..bb19c82a2a1 100644
--- a/tests/wpt/web-platform-tests/event-timing/crossiframe.html
+++ b/tests/wpt/web-platform-tests/event-timing/crossiframe.html
@@ -65,6 +65,9 @@
}
async_test(function(t) {
+ if (!window.PerformanceEventTiming)
+ assert_unreached("PerformanceEventTiming is not supported");
+
clickTimeMin = performance.now();
clickAndBlockMain('button');
processingStartMin = performance.now();
diff --git a/tests/wpt/web-platform-tests/event-timing/observethenonload.html b/tests/wpt/web-platform-tests/event-timing/observethenonload.html
index 4145eae0a59..8295aaf0412 100644
--- a/tests/wpt/web-platform-tests/event-timing/observethenonload.html
+++ b/tests/wpt/web-platform-tests/event-timing/observethenonload.html
@@ -66,6 +66,9 @@
observer callback start
*/
async_test(function(t) {
+ if (!window.PerformanceEventTiming)
+ assert_unreached("PerformanceEventTiming is not supported");
+
const observerPromise = new Promise((resolve, reject) => {
new PerformanceObserver(function(entryList) {
observedEntries = observedEntries.concat(entryList.getEntries().filter(
diff --git a/tests/wpt/web-platform-tests/event-timing/onloadthenobserve-firstInput.html b/tests/wpt/web-platform-tests/event-timing/onloadthenobserve-firstInput.html
index fe40bdf65fb..3cd80e2eba1 100644
--- a/tests/wpt/web-platform-tests/event-timing/onloadthenobserve-firstInput.html
+++ b/tests/wpt/web-platform-tests/event-timing/onloadthenobserve-firstInput.html
@@ -21,6 +21,9 @@
(Dispatch and Process Click 2 - not buffered)
*/
async_test(function(t) {
+ if (!window.PerformanceEventTiming)
+ assert_unreached("PerformanceEventTiming is not supported");
+
let numFirstInputObserved = 0;
let numEventsObserved = 0;
let observedEventEntries = [];
diff --git a/tests/wpt/web-platform-tests/event-timing/onloadthenobserve.html b/tests/wpt/web-platform-tests/event-timing/onloadthenobserve.html
index d97228577a1..4365f4837bc 100644
--- a/tests/wpt/web-platform-tests/event-timing/onloadthenobserve.html
+++ b/tests/wpt/web-platform-tests/event-timing/onloadthenobserve.html
@@ -56,6 +56,9 @@ registration are lost
(Dispatch and Process Click 2 (not buffered, observed))
*/
async_test(function(t) {
+ if (!window.PerformanceEventTiming)
+ assert_unreached("PerformanceEventTiming is not supported");
+
// Use a dummy observer to know when the first click has been dispatched.
const observerPromise = new Promise((resolve, reject) => {
new PerformanceObserver((entryList, observer) => {
diff --git a/tests/wpt/web-platform-tests/event-timing/only-observe-firstInput.html b/tests/wpt/web-platform-tests/event-timing/only-observe-firstInput.html
index d356902c31d..48df6ec9fc6 100644
--- a/tests/wpt/web-platform-tests/event-timing/only-observe-firstInput.html
+++ b/tests/wpt/web-platform-tests/event-timing/only-observe-firstInput.html
@@ -20,6 +20,9 @@
PerformanceObserver should observe one and only one entry.
*/
async_test(function(t) {
+ if (!window.PerformanceEventTiming)
+ assert_unreached("PerformanceEventTiming is not supported");
+
let hasObservedFirstInput = false;
new PerformanceObserver(t.step_func((entryList) => {
assert_false(hasObservedFirstInput);
diff --git a/tests/wpt/web-platform-tests/event-timing/programmatic-click-not-observed.html b/tests/wpt/web-platform-tests/event-timing/programmatic-click-not-observed.html
index 9eb067024da..c84d4eff6b8 100644
--- a/tests/wpt/web-platform-tests/event-timing/programmatic-click-not-observed.html
+++ b/tests/wpt/web-platform-tests/event-timing/programmatic-click-not-observed.html
@@ -18,6 +18,9 @@
delayCalled = true;
}
async_test(function(t) {
+ if (!window.PerformanceEventTiming)
+ assert_unreached("PerformanceEventTiming is not supported");
+
const observer = new PerformanceObserver(t.step_func_done((entryList) => {
const entries = entryList.getEntries().filter(e => e.name === 'mousedown');
// There must only be one click entry: from the clickAndBlockMain() call.
diff --git a/tests/wpt/web-platform-tests/event-timing/retrieve-firstInput.html b/tests/wpt/web-platform-tests/event-timing/retrieve-firstInput.html
index 5ea5d74b1a8..5ddd9b5f01b 100644
--- a/tests/wpt/web-platform-tests/event-timing/retrieve-firstInput.html
+++ b/tests/wpt/web-platform-tests/event-timing/retrieve-firstInput.html
@@ -12,6 +12,9 @@
<script>
async_test(function(t) {
+ if (!window.PerformanceEventTiming)
+ assert_unreached("PerformanceEventTiming is not supported");
+
function testEntries() {
// First callback is not ensured to have the entry.
if (performance.getEntriesByType('first-input').length === 0) {
diff --git a/tests/wpt/web-platform-tests/event-timing/timingconditions.html b/tests/wpt/web-platform-tests/event-timing/timingconditions.html
index a7847b3ccc0..1fcda21a197 100644
--- a/tests/wpt/web-platform-tests/event-timing/timingconditions.html
+++ b/tests/wpt/web-platform-tests/event-timing/timingconditions.html
@@ -35,6 +35,9 @@
}
async_test(function(t) {
+ if (!window.PerformanceEventTiming)
+ assert_unreached("PerformanceEventTiming is not supported");
+
new PerformanceObserver(t.step_func_done(entryList => {
const observerCallbackTime = performance.now();
const entries = entryList.getEntries().filter(
diff --git a/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html b/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html
index 4bfcfbc8f44..6e51ff8b59a 100644
--- a/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html
+++ b/tests/wpt/web-platform-tests/fetch/api/response/response-consume-empty.html
@@ -89,7 +89,7 @@
assert_false(response.bodyUsed, "bodyUsed is false at init");
if (asText) {
return response.text().then(function(bodyAsString) {
- assert_equals(bodyAsString.length, 0, "Resolved value should be empty");
+ assert_equals(bodyAsString, "", "Resolved value should be empty");
assert_true(response.bodyUsed, "bodyUsed is true after being consumed");
});
}
diff --git a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html
index 99f64ddea24..ef6f6331389 100644
--- a/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html
+++ b/tests/wpt/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html
@@ -10,7 +10,12 @@
<iframe id="srcdoc-iframe"
srcdoc="<div style='height: 200vh'></div><div id='test'></div>"></iframe>
<script>
- test(function () {
+ function resetHash() {
+ location.hash = "";
+ }
+
+ test(function (t) {
+ t.add_cleanup(resetHash);
window.history.pushState(1, document.title, '#x=1');
var hash = location.hash;
@@ -30,6 +35,30 @@
assert_true(frameWin.scrollY > frameWin.innerHeight,
"Should have scrolled by more than one viewport height");
}));
+
+ test(function(t) {
+ t.add_cleanup(resetHash);
+ location.hash = "test";
+ assert_equals(location.hash, "#test");
+ }, "Setting hash should automatically include hash character");
+
+ test(function(t) {
+ t.add_cleanup(resetHash);
+ location.hash = "#not encoded";
+ assert_equals(location.hash, "#not%20encoded");
+ }, "Setting hash should encode incompatible characters");
+
+ test(function(t) {
+ t.add_cleanup(resetHash);
+ location.hash = "#already%20encoded";
+ assert_equals(location.hash, "#already%20encoded");
+ }, "Setting hash to an already encoded value should not double encode it");
+
+ test(function(t) {
+ t.add_cleanup(resetHash);
+ location.hash = "#mixed encoding%20here";
+ assert_equals(location.hash, "#mixed%20encoding%20here");
+ }, "Setting hash which is partially encoded should only encode incompatible characters");
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html
index f6d7f26ce83..d3e9956368a 100644
--- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.html
+++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html
@@ -6,6 +6,7 @@
<link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/common/utils.js"></script> <!-- Use token() to allow running tests in parallel -->
<div id="log"></div>
@@ -13,23 +14,19 @@
"use strict";
promise_test(t => {
+ const channelName = token();
return Promise.all([
- createIFrame("resources/broadcastchannel-iframe.html"),
- createIFrame("resources/broadcastchannel-iframe.html"),
- createIFrame("resources/broadcastchannel-iframe.html")
+ createIFrame(`resources/broadcastchannel-iframe.html?channel=${channelName}&index=0`),
+ createIFrame(`resources/broadcastchannel-iframe.html?channel=${channelName}&index=1`),
+ createIFrame(`resources/broadcastchannel-iframe.html?channel=${channelName}&index=2`)
]).then(() => {
const sab = new SharedArrayBuffer(3);
const view = new Uint8Array(sab);
- const channel = new BroadcastChannel("channel name");
+ const channel = new BroadcastChannel(channelName);
return new Promise(resolve => {
let soFar = 0;
- channel.onmessage = t.step_func(({ data: { sab: broadcastSAB, i } }) => {
- if (broadcastSAB) {
- // We only care about "broadcasts" from the workers.
- return;
- }
-
+ channel.onmessage = t.step_func(({ data: { i } }) => {
assert_in_array(i, [0, 1, 2], "Any message events must come from expected sources");
++soFar;
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers
new file mode 100644
index 00000000000..63b60e490f4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers
@@ -0,0 +1,2 @@
+Cross-Origin-Opener-Policy: same-origin
+Cross-Origin-Embedder-Policy: require-corp
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html
index 792d6fd2013..02b9bcbbe88 100644
--- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html
+++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html
@@ -4,10 +4,13 @@
<script>
"use strict";
-const channel = new BroadcastChannel("channel name");
+const query = new URLSearchParams(location.search);
+const channel = new BroadcastChannel(query.get("channel"));
+const i = Number(query.get("index"));
-channel.onmessage = ({ data: { sab, i }, source }) => {
- if (!sab) {
+channel.onmessage = e => {
+ const sab = e.data.sab;
+ if (sab === undefined) {
// We only care about "broadcasts" from the window
return;
}
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers
new file mode 100644
index 00000000000..6604450991a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers
@@ -0,0 +1 @@
+Cross-Origin-Embedder-Policy: require-corp
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html
index 49e956565cc..c3c57ee3c0a 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html
@@ -10,12 +10,20 @@ async_test(function(t) {
var img = document.getElementById("brokenurl");
img.src = "http://[";
var errorevent = false;
+ var loadendevent = false;
// The errors should be queued in the event loop, so they should only trigger
// after this block of code finishes, not during the img.src setter itself
- img.addEventListener('error', t.step_func(function(){errorevent = true;}));
- img.addEventListener('loadend', t.step_func_done(function() {
+ img.addEventListener('error', t.step_func(function() {
+ assert_false(loadendevent, "loadend should fire after error");
+ errorevent = true;
+ t.step_timeout(t.step_func_done(function() {
+ assert_true(loadendevent, "loadend event fired");
+ }), 0);
+ }));
+ img.addEventListener('loadend', t.step_func(function() {
assert_true(errorevent, "error event fired");
+ loadendevent = true;
}));
}, 'src="http://["');
@@ -31,8 +39,8 @@ async_test(function(t) {
// Queue this check in the event loop to check there is no loadend event
// fired.
t.step_timeout(t.step_func_done(function() {
- assert_false(loadendevent, "loadend event should not fired");
- }), 0)
+ assert_false(loadendevent, "loadend event should not be fired");
+ }), 0);
}));
img.addEventListener('loadend', t.step_func(function() {
loadendevent = true;
diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc.idl b/tests/wpt/web-platform-tests/interfaces/webrtc.idl
index 83f009fed53..faccd6f47d3 100644
--- a/tests/wpt/web-platform-tests/interfaces/webrtc.idl
+++ b/tests/wpt/web-platform-tests/interfaces/webrtc.idl
@@ -4,133 +4,140 @@
// Source: WebRTC 1.0: Real-time Communication Between Browsers (https://w3c.github.io/webrtc-pc/)
dictionary RTCConfiguration {
- sequence<RTCIceServer> iceServers;
- RTCIceTransportPolicy iceTransportPolicy;
- RTCBundlePolicy bundlePolicy;
- RTCRtcpMuxPolicy rtcpMuxPolicy;
- DOMString peerIdentity;
- sequence<RTCCertificate> certificates;
- [EnforceRange]
- octet iceCandidatePoolSize = 0;
+ sequence<RTCIceServer> iceServers;
+ RTCIceTransportPolicy iceTransportPolicy;
+ RTCBundlePolicy bundlePolicy;
+ RTCRtcpMuxPolicy rtcpMuxPolicy;
+ DOMString peerIdentity;
+ sequence<RTCCertificate> certificates;
+ [EnforceRange] octet iceCandidatePoolSize = 0;
};
enum RTCIceCredentialType {
- "password",
- "oauth"
+ "password",
+ "oauth"
};
dictionary RTCOAuthCredential {
- required DOMString macKey;
- required DOMString accessToken;
+ required DOMString macKey;
+ required DOMString accessToken;
};
dictionary RTCIceServer {
- required (DOMString or sequence<DOMString>) urls;
- DOMString username;
- (DOMString or RTCOAuthCredential) credential;
- RTCIceCredentialType credentialType = "password";
+ required (DOMString or sequence<DOMString>) urls;
+ DOMString username;
+ (DOMString or RTCOAuthCredential) credential;
+ RTCIceCredentialType credentialType = "password";
};
enum RTCIceTransportPolicy {
- "relay",
- "all"
+ "relay",
+ "all"
};
enum RTCBundlePolicy {
- "balanced",
- "max-compat",
- "max-bundle"
+ "balanced",
+ "max-compat",
+ "max-bundle"
};
enum RTCRtcpMuxPolicy {
- // At risk due to lack of implementers' interest.
- "negotiate",
- "require"
+ // At risk due to lack of implementers' interest.
+ "negotiate",
+ "require"
};
dictionary RTCOfferAnswerOptions {
- boolean voiceActivityDetection = true;
+ boolean voiceActivityDetection = true;
};
dictionary RTCOfferOptions : RTCOfferAnswerOptions {
- boolean iceRestart = false;
+ boolean iceRestart = false;
};
-dictionary RTCAnswerOptions : RTCOfferAnswerOptions {
-};
+dictionary RTCAnswerOptions : RTCOfferAnswerOptions {};
enum RTCSignalingState {
- "stable",
- "have-local-offer",
- "have-remote-offer",
- "have-local-pranswer",
- "have-remote-pranswer",
- "closed"
+ "stable",
+ "have-local-offer",
+ "have-remote-offer",
+ "have-local-pranswer",
+ "have-remote-pranswer",
+ "closed"
};
enum RTCIceGatheringState {
- "new",
- "gathering",
- "complete"
+ "new",
+ "gathering",
+ "complete"
};
enum RTCPeerConnectionState {
- "closed",
- "failed",
- "disconnected",
- "new",
- "connecting",
- "connected"
+ "closed",
+ "failed",
+ "disconnected",
+ "new",
+ "connecting",
+ "connected"
};
enum RTCIceConnectionState {
- "closed",
- "failed",
- "disconnected",
- "new",
- "checking",
- "completed",
- "connected"
+ "closed",
+ "failed",
+ "disconnected",
+ "new",
+ "checking",
+ "completed",
+ "connected"
};
-[ Constructor(optional RTCConfiguration configuration), Exposed=Window]
+[Exposed=Window, Constructor(optional RTCConfiguration configuration)]
interface RTCPeerConnection : EventTarget {
- Promise<RTCSessionDescriptionInit> createOffer(optional RTCOfferOptions options);
- Promise<RTCSessionDescriptionInit> createAnswer(optional RTCAnswerOptions options);
- Promise<void> setLocalDescription(RTCSessionDescriptionInit description);
- readonly attribute RTCSessionDescription? localDescription;
- readonly attribute RTCSessionDescription? currentLocalDescription;
- readonly attribute RTCSessionDescription? pendingLocalDescription;
- Promise<void> setRemoteDescription(RTCSessionDescriptionInit description);
- readonly attribute RTCSessionDescription? remoteDescription;
- readonly attribute RTCSessionDescription? currentRemoteDescription;
- readonly attribute RTCSessionDescription? pendingRemoteDescription;
- Promise<void> addIceCandidate(optional RTCIceCandidateInit candidate);
- readonly attribute RTCSignalingState signalingState;
- readonly attribute RTCIceGatheringState iceGatheringState;
- readonly attribute RTCIceConnectionState iceConnectionState;
- readonly attribute RTCPeerConnectionState connectionState;
- readonly attribute boolean? canTrickleIceCandidates;
- void restartIce();
- static sequence<RTCIceServer> getDefaultIceServers();
- RTCConfiguration getConfiguration();
- void setConfiguration(RTCConfiguration configuration);
- void close();
- attribute EventHandler onnegotiationneeded;
- attribute EventHandler onicecandidate;
- attribute EventHandler onicecandidateerror;
- attribute EventHandler onsignalingstatechange;
- attribute EventHandler oniceconnectionstatechange;
- attribute EventHandler onicegatheringstatechange;
- attribute EventHandler onconnectionstatechange;
+ Promise<RTCSessionDescriptionInit> createOffer(optional RTCOfferOptions options);
+ Promise<RTCSessionDescriptionInit> createAnswer(optional RTCAnswerOptions options);
+ Promise<void> setLocalDescription(RTCSessionDescriptionInit description);
+ readonly attribute RTCSessionDescription? localDescription;
+ readonly attribute RTCSessionDescription? currentLocalDescription;
+ readonly attribute RTCSessionDescription? pendingLocalDescription;
+ Promise<void> setRemoteDescription(RTCSessionDescriptionInit description);
+ readonly attribute RTCSessionDescription? remoteDescription;
+ readonly attribute RTCSessionDescription? currentRemoteDescription;
+ readonly attribute RTCSessionDescription? pendingRemoteDescription;
+ Promise<void> addIceCandidate(optional RTCIceCandidateInit candidate);
+ readonly attribute RTCSignalingState signalingState;
+ readonly attribute RTCIceGatheringState iceGatheringState;
+ readonly attribute RTCIceConnectionState iceConnectionState;
+ readonly attribute RTCPeerConnectionState connectionState;
+ readonly attribute boolean? canTrickleIceCandidates;
+ void restartIce();
+ static sequence<RTCIceServer> getDefaultIceServers();
+ RTCConfiguration getConfiguration();
+ void setConfiguration(RTCConfiguration configuration);
+ void close();
+ attribute EventHandler onnegotiationneeded;
+ attribute EventHandler onicecandidate;
+ attribute EventHandler onicecandidateerror;
+ attribute EventHandler onsignalingstatechange;
+ attribute EventHandler oniceconnectionstatechange;
+ attribute EventHandler onicegatheringstatechange;
+ attribute EventHandler onconnectionstatechange;
};
partial interface RTCPeerConnection {
- Promise<void> createOffer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback, optional RTCOfferOptions options);
- Promise<void> setLocalDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
- Promise<void> createAnswer(RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback);
- Promise<void> setRemoteDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
- Promise<void> addIceCandidate(RTCIceCandidateInit candidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback);
+ Promise<void> createOffer(RTCSessionDescriptionCallback successCallback,
+ RTCPeerConnectionErrorCallback failureCallback,
+ optional RTCOfferOptions options);
+ Promise<void> setLocalDescription(RTCSessionDescriptionInit description,
+ VoidFunction successCallback,
+ RTCPeerConnectionErrorCallback failureCallback);
+ Promise<void> createAnswer(RTCSessionDescriptionCallback successCallback,
+ RTCPeerConnectionErrorCallback failureCallback);
+ Promise<void> setRemoteDescription(RTCSessionDescriptionInit description,
+ VoidFunction successCallback,
+ RTCPeerConnectionErrorCallback failureCallback);
+ Promise<void> addIceCandidate(RTCIceCandidateInit candidate,
+ VoidFunction successCallback,
+ RTCPeerConnectionErrorCallback failureCallback);
};
callback RTCPeerConnectionErrorCallback = void (DOMException error);
@@ -138,524 +145,530 @@ callback RTCPeerConnectionErrorCallback = void (DOMException error);
callback RTCSessionDescriptionCallback = void (RTCSessionDescriptionInit description);
partial dictionary RTCOfferOptions {
- boolean offerToReceiveAudio;
- boolean offerToReceiveVideo;
- };
+ boolean offerToReceiveAudio;
+ boolean offerToReceiveVideo;
+};
enum RTCSdpType {
- "offer",
- "pranswer",
- "answer",
- "rollback"
+ "offer",
+ "pranswer",
+ "answer",
+ "rollback"
};
-[ Constructor(RTCSessionDescriptionInit descriptionInitDict), Exposed=Window]
+[Exposed=Window, Constructor(RTCSessionDescriptionInit descriptionInitDict)]
interface RTCSessionDescription {
- readonly attribute RTCSdpType type;
- readonly attribute DOMString sdp;
- [Default] object toJSON();
+ readonly attribute RTCSdpType type;
+ readonly attribute DOMString sdp;
+ [Default] object toJSON();
};
dictionary RTCSessionDescriptionInit {
- required RTCSdpType type;
- DOMString sdp = "";
+ required RTCSdpType type;
+ DOMString sdp = "";
};
-[ Constructor(optional RTCIceCandidateInit candidateInitDict), Exposed=Window]
+[Exposed=Window, Constructor(optional RTCIceCandidateInit candidateInitDict)]
interface RTCIceCandidate {
- readonly attribute DOMString candidate;
- readonly attribute DOMString? sdpMid;
- readonly attribute unsigned short? sdpMLineIndex;
- readonly attribute DOMString? foundation;
- readonly attribute RTCIceComponent? component;
- readonly attribute unsigned long? priority;
- readonly attribute DOMString? address;
- readonly attribute RTCIceProtocol? protocol;
- readonly attribute unsigned short? port;
- readonly attribute RTCIceCandidateType? type;
- readonly attribute RTCIceTcpCandidateType? tcpType;
- readonly attribute DOMString? relatedAddress;
- readonly attribute unsigned short? relatedPort;
- readonly attribute DOMString? usernameFragment;
- RTCIceCandidateInit toJSON();
+ readonly attribute DOMString candidate;
+ readonly attribute DOMString? sdpMid;
+ readonly attribute unsigned short? sdpMLineIndex;
+ readonly attribute DOMString? foundation;
+ readonly attribute RTCIceComponent? component;
+ readonly attribute unsigned long? priority;
+ readonly attribute DOMString? address;
+ readonly attribute RTCIceProtocol? protocol;
+ readonly attribute unsigned short? port;
+ readonly attribute RTCIceCandidateType? type;
+ readonly attribute RTCIceTcpCandidateType? tcpType;
+ readonly attribute DOMString? relatedAddress;
+ readonly attribute unsigned short? relatedPort;
+ readonly attribute DOMString? usernameFragment;
+ RTCIceCandidateInit toJSON();
};
dictionary RTCIceCandidateInit {
- DOMString candidate = "";
- DOMString? sdpMid = null;
- unsigned short? sdpMLineIndex = null;
- DOMString? usernameFragment = null;
+ DOMString candidate = "";
+ DOMString? sdpMid = null;
+ unsigned short? sdpMLineIndex = null;
+ DOMString? usernameFragment = null;
};
enum RTCIceProtocol {
- "udp",
- "tcp"
+ "udp",
+ "tcp"
};
enum RTCIceTcpCandidateType {
- "active",
- "passive",
- "so"
+ "active",
+ "passive",
+ "so"
};
enum RTCIceCandidateType {
- "host",
- "srflx",
- "prflx",
- "relay"
+ "host",
+ "srflx",
+ "prflx",
+ "relay"
};
-[ Constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict), Exposed=Window]
+[Exposed=Window,
+ Constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict)]
interface RTCPeerConnectionIceEvent : Event {
- readonly attribute RTCIceCandidate? candidate;
- readonly attribute DOMString? url;
+ readonly attribute RTCIceCandidate? candidate;
+ readonly attribute DOMString? url;
};
dictionary RTCPeerConnectionIceEventInit : EventInit {
- RTCIceCandidate? candidate;
- DOMString? url;
+ RTCIceCandidate? candidate;
+ DOMString? url;
};
-[ Constructor(DOMString type, RTCPeerConnectionIceErrorEventInit eventInitDict), Exposed=Window]
+[Exposed=Window,
+ Constructor(DOMString type, RTCPeerConnectionIceErrorEventInit eventInitDict)]
interface RTCPeerConnectionIceErrorEvent : Event {
- readonly attribute DOMString hostCandidate;
- readonly attribute DOMString url;
- readonly attribute unsigned short errorCode;
- readonly attribute USVString errorText;
+ readonly attribute DOMString hostCandidate;
+ readonly attribute DOMString url;
+ readonly attribute unsigned short errorCode;
+ readonly attribute USVString errorText;
};
dictionary RTCPeerConnectionIceErrorEventInit : EventInit {
- DOMString hostCandidate;
- DOMString url;
- required unsigned short errorCode;
- USVString statusText;
+ DOMString hostCandidate;
+ DOMString url;
+ required unsigned short errorCode;
+ USVString statusText;
};
enum RTCPriorityType {
- "very-low",
- "low",
- "medium",
- "high"
+ "very-low",
+ "low",
+ "medium",
+ "high"
};
partial interface RTCPeerConnection {
- static Promise<RTCCertificate> generateCertificate(AlgorithmIdentifier keygenAlgorithm);
+ static Promise<RTCCertificate> generateCertificate(AlgorithmIdentifier keygenAlgorithm);
};
dictionary RTCCertificateExpiration {
- [EnforceRange]
- DOMTimeStamp expires;
+ [EnforceRange] DOMTimeStamp expires;
};
-[Exposed=Window, Serializable] interface RTCCertificate {
- readonly attribute DOMTimeStamp expires;
- static sequence<AlgorithmIdentifier> getSupportedAlgorithms();
- sequence<RTCDtlsFingerprint> getFingerprints();
+[Exposed=Window, Serializable]
+interface RTCCertificate {
+ readonly attribute DOMTimeStamp expires;
+ static sequence<AlgorithmIdentifier> getSupportedAlgorithms();
+ sequence<RTCDtlsFingerprint> getFingerprints();
};
partial interface RTCPeerConnection {
- sequence<RTCRtpSender> getSenders();
- sequence<RTCRtpReceiver> getReceivers();
- sequence<RTCRtpTransceiver> getTransceivers();
- RTCRtpSender addTrack(MediaStreamTrack track, MediaStream... streams);
- void removeTrack(RTCRtpSender sender);
- RTCRtpTransceiver addTransceiver((MediaStreamTrack or DOMString) trackOrKind, optional RTCRtpTransceiverInit init);
- attribute EventHandler ontrack;
+ sequence<RTCRtpSender> getSenders();
+ sequence<RTCRtpReceiver> getReceivers();
+ sequence<RTCRtpTransceiver> getTransceivers();
+ RTCRtpSender addTrack(MediaStreamTrack track, MediaStream... streams);
+ void removeTrack(RTCRtpSender sender);
+ RTCRtpTransceiver addTransceiver((MediaStreamTrack or DOMString) trackOrKind,
+ optional RTCRtpTransceiverInit init);
+ attribute EventHandler ontrack;
};
dictionary RTCRtpTransceiverInit {
- RTCRtpTransceiverDirection direction = "sendrecv";
- sequence<MediaStream> streams = [];
- sequence<RTCRtpEncodingParameters> sendEncodings = [];
+ RTCRtpTransceiverDirection direction = "sendrecv";
+ sequence<MediaStream> streams = [];
+ sequence<RTCRtpEncodingParameters> sendEncodings = [];
};
enum RTCRtpTransceiverDirection {
- "sendrecv",
- "sendonly",
- "recvonly",
- "inactive"
-};
-
-[Exposed=Window] interface RTCRtpSender {
- readonly attribute MediaStreamTrack? track;
- readonly attribute RTCDtlsTransport? transport;
- readonly attribute RTCDtlsTransport? rtcpTransport;
- static RTCRtpCapabilities? getCapabilities(DOMString kind);
- Promise<void> setParameters(RTCRtpSendParameters parameters);
- RTCRtpSendParameters getParameters();
- Promise<void> replaceTrack(MediaStreamTrack? withTrack);
- void setStreams(MediaStream... streams);
- Promise<RTCStatsReport> getStats();
+ "sendrecv",
+ "sendonly",
+ "recvonly",
+ "inactive",
+ "stopped"
+};
+
+[Exposed=Window]
+interface RTCRtpSender {
+ readonly attribute MediaStreamTrack? track;
+ readonly attribute RTCDtlsTransport? transport;
+ readonly attribute RTCDtlsTransport? rtcpTransport;
+ static RTCRtpCapabilities? getCapabilities(DOMString kind);
+ Promise<void> setParameters(RTCRtpSendParameters parameters);
+ RTCRtpSendParameters getParameters();
+ Promise<void> replaceTrack(MediaStreamTrack? withTrack);
+ void setStreams(MediaStream... streams);
+ Promise<RTCStatsReport> getStats();
};
dictionary RTCRtpParameters {
- required sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
- required RTCRtcpParameters rtcp;
- required sequence<RTCRtpCodecParameters> codecs;
+ required sequence<RTCRtpHeaderExtensionParameters> headerExtensions;
+ required RTCRtcpParameters rtcp;
+ required sequence<RTCRtpCodecParameters> codecs;
};
dictionary RTCRtpSendParameters : RTCRtpParameters {
- required DOMString transactionId;
- required sequence<RTCRtpEncodingParameters> encodings;
- RTCDegradationPreference degradationPreference = "balanced";
- RTCPriorityType priority = "low";
+ required DOMString transactionId;
+ required sequence<RTCRtpEncodingParameters> encodings;
+ RTCDegradationPreference degradationPreference = "balanced";
+ RTCPriorityType priority = "low";
};
dictionary RTCRtpReceiveParameters : RTCRtpParameters {
- required sequence<RTCRtpDecodingParameters> encodings;
+ required sequence<RTCRtpDecodingParameters> encodings;
};
dictionary RTCRtpCodingParameters {
- DOMString rid;
+ DOMString rid;
};
-dictionary RTCRtpDecodingParameters : RTCRtpCodingParameters {
-};
+dictionary RTCRtpDecodingParameters : RTCRtpCodingParameters {};
dictionary RTCRtpEncodingParameters : RTCRtpCodingParameters {
- octet codecPayloadType;
- RTCDtxStatus dtx;
- boolean active = true;
- unsigned long ptime;
- unsigned long maxBitrate;
- double maxFramerate;
- double scaleResolutionDownBy;
+ octet codecPayloadType;
+ RTCDtxStatus dtx;
+ boolean active = true;
+ unsigned long ptime;
+ unsigned long maxBitrate;
+ double maxFramerate;
+ double scaleResolutionDownBy;
};
enum RTCDtxStatus {
- "disabled",
- "enabled"
- };
+ "disabled",
+ "enabled"
+};
enum RTCDegradationPreference {
- "maintain-framerate",
- "maintain-resolution",
- "balanced"
+ "maintain-framerate",
+ "maintain-resolution",
+ "balanced"
};
dictionary RTCRtcpParameters {
- DOMString cname;
- boolean reducedSize;
+ DOMString cname;
+ boolean reducedSize;
};
dictionary RTCRtpHeaderExtensionParameters {
- required DOMString uri;
- required unsigned short id;
- boolean encrypted = false;
+ required DOMString uri;
+ required unsigned short id;
+ boolean encrypted = false;
};
dictionary RTCRtpCodecParameters {
- required octet payloadType;
- required DOMString mimeType;
- required unsigned long clockRate;
- unsigned short channels;
- DOMString sdpFmtpLine;
+ required octet payloadType;
+ required DOMString mimeType;
+ required unsigned long clockRate;
+ unsigned short channels;
+ DOMString sdpFmtpLine;
};
dictionary RTCRtpCapabilities {
- required sequence<RTCRtpCodecCapability> codecs;
- required sequence<RTCRtpHeaderExtensionCapability> headerExtensions;
+ required sequence<RTCRtpCodecCapability> codecs;
+ required sequence<RTCRtpHeaderExtensionCapability> headerExtensions;
};
dictionary RTCRtpCodecCapability {
- required DOMString mimeType;
- required unsigned long clockRate;
- unsigned short channels;
- DOMString sdpFmtpLine;
+ required DOMString mimeType;
+ required unsigned long clockRate;
+ unsigned short channels;
+ DOMString sdpFmtpLine;
};
dictionary RTCRtpHeaderExtensionCapability {
- DOMString uri;
+ DOMString uri;
};
-[Exposed=Window] interface RTCRtpReceiver {
- readonly attribute MediaStreamTrack track;
- readonly attribute RTCDtlsTransport? transport;
- readonly attribute RTCDtlsTransport? rtcpTransport;
- static RTCRtpCapabilities? getCapabilities(DOMString kind);
- RTCRtpReceiveParameters getParameters();
- sequence<RTCRtpContributingSource> getContributingSources();
- sequence<RTCRtpSynchronizationSource> getSynchronizationSources();
- Promise<RTCStatsReport> getStats();
+[Exposed=Window]
+interface RTCRtpReceiver {
+ readonly attribute MediaStreamTrack track;
+ readonly attribute RTCDtlsTransport? transport;
+ readonly attribute RTCDtlsTransport? rtcpTransport;
+ static RTCRtpCapabilities? getCapabilities(DOMString kind);
+ RTCRtpReceiveParameters getParameters();
+ sequence<RTCRtpContributingSource> getContributingSources();
+ sequence<RTCRtpSynchronizationSource> getSynchronizationSources();
+ Promise<RTCStatsReport> getStats();
};
dictionary RTCRtpContributingSource {
- required DOMHighResTimeStamp timestamp;
- required unsigned long source;
- double audioLevel;
- required unsigned long rtpTimestamp;
+ required DOMHighResTimeStamp timestamp;
+ required unsigned long source;
+ double audioLevel;
+ required unsigned long rtpTimestamp;
};
dictionary RTCRtpSynchronizationSource : RTCRtpContributingSource {
- boolean voiceActivityFlag;
+ boolean voiceActivityFlag;
};
-[Exposed=Window] interface RTCRtpTransceiver {
- readonly attribute DOMString? mid;
- [SameObject]
- readonly attribute RTCRtpSender sender;
- [SameObject]
- readonly attribute RTCRtpReceiver receiver;
- readonly attribute boolean stopped;
- attribute RTCRtpTransceiverDirection direction;
- readonly attribute RTCRtpTransceiverDirection? currentDirection;
- void stop();
- void setCodecPreferences(sequence<RTCRtpCodecCapability> codecs);
+[Exposed=Window]
+interface RTCRtpTransceiver {
+ readonly attribute DOMString? mid;
+ [SameObject] readonly attribute RTCRtpSender sender;
+ [SameObject] readonly attribute RTCRtpReceiver receiver;
+ attribute RTCRtpTransceiverDirection direction;
+ readonly attribute RTCRtpTransceiverDirection? currentDirection;
+ void stop();
+ void setCodecPreferences(sequence<RTCRtpCodecCapability> codecs);
};
-[Exposed=Window] interface RTCDtlsTransport : EventTarget {
- [SameObject]
- readonly attribute RTCIceTransport iceTransport;
- readonly attribute RTCDtlsTransportState state;
- sequence<ArrayBuffer> getRemoteCertificates();
- attribute EventHandler onstatechange;
- attribute EventHandler onerror;
+[Exposed=Window]
+interface RTCDtlsTransport : EventTarget {
+ [SameObject] readonly attribute RTCIceTransport iceTransport;
+ readonly attribute RTCDtlsTransportState state;
+ sequence<ArrayBuffer> getRemoteCertificates();
+ attribute EventHandler onstatechange;
+ attribute EventHandler onerror;
};
enum RTCDtlsTransportState {
- "new",
- "connecting",
- "connected",
- "closed",
- "failed"
+ "new",
+ "connecting",
+ "connected",
+ "closed",
+ "failed"
};
dictionary RTCDtlsFingerprint {
- DOMString algorithm;
- DOMString value;
-};
-
-[Exposed=Window] interface RTCIceTransport : EventTarget {
- readonly attribute RTCIceRole role;
- readonly attribute RTCIceComponent component;
- readonly attribute RTCIceTransportState state;
- readonly attribute RTCIceGathererState gatheringState;
- sequence<RTCIceCandidate> getLocalCandidates();
- sequence<RTCIceCandidate> getRemoteCandidates();
- RTCIceCandidatePair? getSelectedCandidatePair();
- RTCIceParameters? getLocalParameters();
- RTCIceParameters? getRemoteParameters();
- attribute EventHandler onstatechange;
- attribute EventHandler ongatheringstatechange;
- attribute EventHandler onselectedcandidatepairchange;
+ DOMString algorithm;
+ DOMString value;
+};
+
+[Exposed=Window]
+interface RTCIceTransport : EventTarget {
+ readonly attribute RTCIceRole role;
+ readonly attribute RTCIceComponent component;
+ readonly attribute RTCIceTransportState state;
+ readonly attribute RTCIceGathererState gatheringState;
+ sequence<RTCIceCandidate> getLocalCandidates();
+ sequence<RTCIceCandidate> getRemoteCandidates();
+ RTCIceCandidatePair? getSelectedCandidatePair();
+ RTCIceParameters? getLocalParameters();
+ RTCIceParameters? getRemoteParameters();
+ attribute EventHandler onstatechange;
+ attribute EventHandler ongatheringstatechange;
+ attribute EventHandler onselectedcandidatepairchange;
};
dictionary RTCIceParameters {
- DOMString usernameFragment;
- DOMString password;
+ DOMString usernameFragment;
+ DOMString password;
};
dictionary RTCIceCandidatePair {
- RTCIceCandidate local;
- RTCIceCandidate remote;
+ RTCIceCandidate local;
+ RTCIceCandidate remote;
};
enum RTCIceGathererState {
- "new",
- "gathering",
- "complete"
+ "new",
+ "gathering",
+ "complete"
};
enum RTCIceTransportState {
- "new",
- "checking",
- "connected",
- "completed",
- "disconnected",
- "failed",
- "closed"
+ "new",
+ "checking",
+ "connected",
+ "completed",
+ "disconnected",
+ "failed",
+ "closed"
};
enum RTCIceRole {
- "unknown",
- "controlling",
- "controlled"
+ "unknown",
+ "controlling",
+ "controlled"
};
enum RTCIceComponent {
- "rtp",
- "rtcp"
+ "rtp",
+ "rtcp"
};
-[ Constructor(DOMString type, RTCTrackEventInit eventInitDict), Exposed=Window]
+[Exposed=Window, Constructor(DOMString type, RTCTrackEventInit eventInitDict)]
interface RTCTrackEvent : Event {
- readonly attribute RTCRtpReceiver receiver;
- readonly attribute MediaStreamTrack track;
- [SameObject]
- readonly attribute FrozenArray<MediaStream> streams;
- readonly attribute RTCRtpTransceiver transceiver;
+ readonly attribute RTCRtpReceiver receiver;
+ readonly attribute MediaStreamTrack track;
+ [SameObject] readonly attribute FrozenArray<MediaStream> streams;
+ readonly attribute RTCRtpTransceiver transceiver;
};
dictionary RTCTrackEventInit : EventInit {
- required RTCRtpReceiver receiver;
- required MediaStreamTrack track;
- sequence<MediaStream> streams = [];
- required RTCRtpTransceiver transceiver;
+ required RTCRtpReceiver receiver;
+ required MediaStreamTrack track;
+ sequence<MediaStream> streams = [];
+ required RTCRtpTransceiver transceiver;
};
partial interface RTCPeerConnection {
- readonly attribute RTCSctpTransport? sctp;
- RTCDataChannel createDataChannel(USVString label, optional RTCDataChannelInit dataChannelDict);
- attribute EventHandler ondatachannel;
+ readonly attribute RTCSctpTransport? sctp;
+ RTCDataChannel createDataChannel(USVString label,
+ optional RTCDataChannelInit dataChannelDict);
+ attribute EventHandler ondatachannel;
};
-[Exposed=Window] interface RTCSctpTransport : EventTarget {
- readonly attribute RTCDtlsTransport transport;
- readonly attribute RTCSctpTransportState state;
- readonly attribute unrestricted double maxMessageSize;
- readonly attribute unsigned short? maxChannels;
- attribute EventHandler onstatechange;
+[Exposed=Window]
+interface RTCSctpTransport : EventTarget {
+ readonly attribute RTCDtlsTransport transport;
+ readonly attribute RTCSctpTransportState state;
+ readonly attribute unrestricted double maxMessageSize;
+ readonly attribute unsigned short? maxChannels;
+ attribute EventHandler onstatechange;
};
enum RTCSctpTransportState {
- "connecting",
- "connected",
- "closed"
-};
-
-[Exposed=Window] interface RTCDataChannel : EventTarget {
- readonly attribute USVString label;
- readonly attribute boolean ordered;
- readonly attribute unsigned short? maxPacketLifeTime;
- readonly attribute unsigned short? maxRetransmits;
- readonly attribute USVString protocol;
- readonly attribute boolean negotiated;
- readonly attribute unsigned short? id;
- readonly attribute RTCPriorityType priority;
- readonly attribute RTCDataChannelState readyState;
- readonly attribute unsigned long bufferedAmount;
- [EnforceRange]
- attribute unsigned long bufferedAmountLowThreshold;
- attribute EventHandler onopen;
- attribute EventHandler onbufferedamountlow;
- attribute EventHandler onerror;
- attribute EventHandler onclose;
- void close();
- attribute EventHandler onmessage;
- attribute DOMString binaryType;
- void send(USVString data);
- void send(Blob data);
- void send(ArrayBuffer data);
- void send(ArrayBufferView data);
+ "connecting",
+ "connected",
+ "closed"
+};
+
+[Exposed=Window]
+interface RTCDataChannel : EventTarget {
+ readonly attribute USVString label;
+ readonly attribute boolean ordered;
+ readonly attribute unsigned short? maxPacketLifeTime;
+ readonly attribute unsigned short? maxRetransmits;
+ readonly attribute USVString protocol;
+ readonly attribute boolean negotiated;
+ readonly attribute unsigned short? id;
+ readonly attribute RTCPriorityType priority;
+ readonly attribute RTCDataChannelState readyState;
+ readonly attribute unsigned long bufferedAmount;
+ [EnforceRange] attribute unsigned long bufferedAmountLowThreshold;
+ attribute EventHandler onopen;
+ attribute EventHandler onbufferedamountlow;
+ attribute EventHandler onerror;
+ attribute EventHandler onclosing;
+ attribute EventHandler onclose;
+ void close();
+ attribute EventHandler onmessage;
+ attribute DOMString binaryType;
+ void send(USVString data);
+ void send(Blob data);
+ void send(ArrayBuffer data);
+ void send(ArrayBufferView data);
};
dictionary RTCDataChannelInit {
- boolean ordered = true;
- [EnforceRange]
- unsigned short maxPacketLifeTime;
- [EnforceRange]
- unsigned short maxRetransmits;
- USVString protocol = "";
- boolean negotiated = false;
- [EnforceRange]
- unsigned short id;
- RTCPriorityType priority = "low";
+ boolean ordered = true;
+ [EnforceRange] unsigned short maxPacketLifeTime;
+ [EnforceRange] unsigned short maxRetransmits;
+ USVString protocol = "";
+ boolean negotiated = false;
+ [EnforceRange] unsigned short id;
+ RTCPriorityType priority = "low";
};
enum RTCDataChannelState {
- "connecting",
- "open",
- "closing",
- "closed"
+ "connecting",
+ "open",
+ "closing",
+ "closed"
};
-[ Constructor(DOMString type, RTCDataChannelEventInit eventInitDict), Exposed=Window]
+[Exposed=Window, Constructor(DOMString type, RTCDataChannelEventInit eventInitDict)]
interface RTCDataChannelEvent : Event {
- readonly attribute RTCDataChannel channel;
+ readonly attribute RTCDataChannel channel;
};
dictionary RTCDataChannelEventInit : EventInit {
- required RTCDataChannel channel;
+ required RTCDataChannel channel;
};
partial interface RTCRtpSender {
- readonly attribute RTCDTMFSender? dtmf;
+ readonly attribute RTCDTMFSender? dtmf;
};
-[Exposed=Window] interface RTCDTMFSender : EventTarget {
- void insertDTMF(DOMString tones, optional unsigned long duration = 100, optional unsigned long interToneGap = 70);
- attribute EventHandler ontonechange;
- readonly attribute boolean canInsertDTMF;
- readonly attribute DOMString toneBuffer;
+[Exposed=Window]
+interface RTCDTMFSender : EventTarget {
+ void insertDTMF(DOMString tones, optional unsigned long duration = 100, optional unsigned long interToneGap = 70);
+ attribute EventHandler ontonechange;
+ readonly attribute boolean canInsertDTMF;
+ readonly attribute DOMString toneBuffer;
};
-[ Constructor(DOMString type, RTCDTMFToneChangeEventInit eventInitDict), Exposed=Window]
+[Exposed=Window,
+ Constructor(DOMString type, RTCDTMFToneChangeEventInit eventInitDict)]
interface RTCDTMFToneChangeEvent : Event {
- readonly attribute DOMString tone;
+ readonly attribute DOMString tone;
};
dictionary RTCDTMFToneChangeEventInit : EventInit {
- required DOMString tone;
+ required DOMString tone;
};
partial interface RTCPeerConnection {
- Promise<RTCStatsReport> getStats(optional MediaStreamTrack? selector = null);
- attribute EventHandler onstatsended;
- };
+ Promise<RTCStatsReport> getStats(optional MediaStreamTrack? selector = null);
+ attribute EventHandler onstatsended;
+};
-[Exposed=Window] interface RTCStatsReport {
- readonly maplike<DOMString, object>;
+[Exposed=Window]
+interface RTCStatsReport {
+ readonly maplike<DOMString, object>;
};
dictionary RTCStats {
- required DOMHighResTimeStamp timestamp;
- required RTCStatsType type;
- required DOMString id;
+ required DOMHighResTimeStamp timestamp;
+ required RTCStatsType type;
+ required DOMString id;
};
-[ Constructor(DOMString type, RTCStatsEventInit eventInitDict), Exposed=Window]
- interface RTCStatsEvent : Event {
- readonly attribute RTCStatsReport report;
- };
+[Exposed=Window,
+ Constructor(DOMString type, RTCStatsEventInit eventInitDict)]
+interface RTCStatsEvent : Event {
+ readonly attribute RTCStatsReport report;
+};
dictionary RTCStatsEventInit : EventInit {
- required RTCStatsReport report;
- };
+ required RTCStatsReport report;
+};
-[
- Exposed=Window,
- Constructor(RTCErrorInit init, optional DOMString message = "")] interface RTCError : DOMException {
- readonly attribute RTCErrorDetailType errorDetail;
- readonly attribute long? sdpLineNumber;
- readonly attribute long? httpRequestStatusCode;
- readonly attribute long? sctpCauseCode;
- readonly attribute unsigned long? receivedAlert;
- readonly attribute unsigned long? sentAlert;
+[Exposed=Window, Constructor(RTCErrorInit init, optional DOMString message = "")]
+interface RTCError : DOMException {
+ readonly attribute RTCErrorDetailType errorDetail;
+ readonly attribute long? sdpLineNumber;
+ readonly attribute long? httpRequestStatusCode;
+ readonly attribute long? sctpCauseCode;
+ readonly attribute unsigned long? receivedAlert;
+ readonly attribute unsigned long? sentAlert;
};
dictionary RTCErrorInit {
- required RTCErrorDetailType errorDetail;
- long sdpLineNumber;
- long httpRequestStatusCode;
- long sctpCauseCode;
- unsigned long receivedAlert;
- unsigned long sentAlert;
+ required RTCErrorDetailType errorDetail;
+ long sdpLineNumber;
+ long httpRequestStatusCode;
+ long sctpCauseCode;
+ unsigned long receivedAlert;
+ unsigned long sentAlert;
};
enum RTCErrorDetailType {
- "data-channel-failure",
- "dtls-failure",
- "fingerprint-failure",
- "idp-bad-script-failure",
- "idp-execution-failure",
- "idp-load-failure",
- "idp-need-login",
- "idp-timeout",
- "idp-tls-failure",
- "idp-token-expired",
- "idp-token-invalid",
- "sctp-failure",
- "sdp-syntax-error",
- "hardware-encoder-not-available",
- "hardware-encoder-error"
- };
-
-[
- Exposed=Window,
- Constructor(DOMString type, RTCErrorEventInit eventInitDict)] interface RTCErrorEvent : Event {
- [SameObject] readonly attribute RTCError error;
+ "data-channel-failure",
+ "dtls-failure",
+ "fingerprint-failure",
+ "idp-bad-script-failure",
+ "idp-execution-failure",
+ "idp-load-failure",
+ "idp-need-login",
+ "idp-timeout",
+ "idp-tls-failure",
+ "idp-token-expired",
+ "idp-token-invalid",
+ "sctp-failure",
+ "sdp-syntax-error",
+ "hardware-encoder-not-available",
+ "hardware-encoder-error"
+};
+
+[Exposed=Window,
+ Constructor(DOMString type, RTCErrorEventInit eventInitDict)]
+interface RTCErrorEvent : Event {
+ [SameObject] readonly attribute RTCError error;
};
dictionary RTCErrorEventInit : EventInit {
- required RTCError error;
+ required RTCError error;
};
diff --git a/tests/wpt/web-platform-tests/interfaces/xslt.idl b/tests/wpt/web-platform-tests/interfaces/xslt.tentative.idl
index e97d8b00044..e97d8b00044 100644
--- a/tests/wpt/web-platform-tests/interfaces/xslt.idl
+++ b/tests/wpt/web-platform-tests/interfaces/xslt.tentative.idl
diff --git a/tests/wpt/web-platform-tests/layout-instability/buffer-layout-shift.html b/tests/wpt/web-platform-tests/layout-instability/buffer-layout-shift.html
index 216cafd45de..0cfce2f7124 100644
--- a/tests/wpt/web-platform-tests/layout-instability/buffer-layout-shift.html
+++ b/tests/wpt/web-platform-tests/layout-instability/buffer-layout-shift.html
@@ -12,6 +12,8 @@
<img src="resources/slow-image.py">
<script>
async_test(function (t) {
+ if (!window.LayoutShift)
+ assert_unreached('LayoutShift entries are not supported');
const startTime = performance.now();
new PerformanceObserver(list => {
const endTime = performance.now();
diff --git a/tests/wpt/web-platform-tests/layout-instability/buffered-flag.html b/tests/wpt/web-platform-tests/layout-instability/buffered-flag.html
index 6a8c937e5ff..dabc8068931 100644
--- a/tests/wpt/web-platform-tests/layout-instability/buffered-flag.html
+++ b/tests/wpt/web-platform-tests/layout-instability/buffered-flag.html
@@ -10,6 +10,8 @@
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(t => {
+ if (!window.LayoutShift)
+ assert_unreached('LayoutShift entries are not supported');
const startTime = performance.now();
// First observer creates second in callback to ensure the entry has been dispatched by the time
// the second observer begins observing.
diff --git a/tests/wpt/web-platform-tests/layout-instability/observe-layout-shift.html b/tests/wpt/web-platform-tests/layout-instability/observe-layout-shift.html
index a522b49034e..8e5624e09a3 100644
--- a/tests/wpt/web-platform-tests/layout-instability/observe-layout-shift.html
+++ b/tests/wpt/web-platform-tests/layout-instability/observe-layout-shift.html
@@ -40,6 +40,8 @@
}
async_test(function (t) {
+ if (!window.LayoutShift)
+ assert_unreached('LayoutShift entries are not supported');
const startTime = performance.now();
const observer = new PerformanceObserver(
t.step_func_done(function(entryList) {
diff --git a/tests/wpt/web-platform-tests/longtask-timing/buffered-flag-unsupported.window.js b/tests/wpt/web-platform-tests/longtask-timing/buffered-flag-unsupported.window.js
new file mode 100644
index 00000000000..ea17b824c35
--- /dev/null
+++ b/tests/wpt/web-platform-tests/longtask-timing/buffered-flag-unsupported.window.js
@@ -0,0 +1,19 @@
+async_test(t => {
+ if (!window.PerformanceLongTaskTiming) {
+ assert_unreached("Longtasks are not supported.");
+ }
+ new PerformanceObserver(t.step_func(entryList => {
+ const observer = new PerformanceObserver(t.step_func_done(list => {
+ list.getEntries().forEach(entry => {
+ assert_not_equals(entry.entryType, 'longtask');
+ });
+ }));
+ observer.observe({type: 'longtask', buffered: true});
+ observer.observe({type: 'mark'});
+ // Create a mark to ensure the |observer|'s callback is dispatched.
+ performance.mark('a');
+ })).observe({entryTypes: ['longtask']});
+ // Create a long task.
+ const begin = window.performance.now();
+ while (window.performance.now() < begin + 60);
+}, 'PerformanceObserver with buffered flag cannot see previous longtask entries.');
diff --git a/tests/wpt/web-platform-tests/mediasession/setactionhandler.html b/tests/wpt/web-platform-tests/mediasession/setactionhandler.html
index 06d145b37d1..6e1bb26c67a 100644
--- a/tests/wpt/web-platform-tests/mediasession/setactionhandler.html
+++ b/tests/wpt/web-platform-tests/mediasession/setactionhandler.html
@@ -12,6 +12,7 @@ test(function(t) {
window.navigator.mediaSession.setActionHandler("seekbackward", null);
window.navigator.mediaSession.setActionHandler("seekforward", null);
window.navigator.mediaSession.setActionHandler("stop", null);
+ window.navigator.mediaSession.setActionHandler("seekto", null);
}, "Test that setActionHandler() can be executed for supported actions");
test(function(t) {
diff --git a/tests/wpt/web-platform-tests/navigation-timing/buffered-flag.window.js b/tests/wpt/web-platform-tests/navigation-timing/buffered-flag.window.js
new file mode 100644
index 00000000000..c6b1e0bc855
--- /dev/null
+++ b/tests/wpt/web-platform-tests/navigation-timing/buffered-flag.window.js
@@ -0,0 +1,16 @@
+async_test(t => {
+ function checkEntryList(entries) {
+ assert_equals(entries.length, 1, "Only one navigation timing entry");
+ assert_equals(entries[0].entryType, "navigation", "entryType is \"navigation\"");
+ assert_equals(entries[0].name, window.location.toString(), "name is the address of the document");
+ }
+ // First observer creates second in callback to ensure the entry has been dispatched by the time
+ // the second observer begins observing.
+ new PerformanceObserver(t.step_func(entryList => {
+ checkEntryList(entryList.getEntries());
+ // Second observer requires 'buffered: true' to see the navigation entry.
+ new PerformanceObserver(t.step_func_done(list => {
+ checkEntryList(list.getEntries());
+ })).observe({type: 'navigation', buffered: true});
+ })).observe({entryTypes: ["navigation"]});
+}, "PerformanceObserver with buffered flag sees previous navigation entry.");
diff --git a/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html b/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html
index 4ba760ac987..1c666aea435 100644
--- a/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html
+++ b/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html
@@ -65,14 +65,33 @@ promise_test(async t => {
await new Promise(resolve => {
iframe.addEventListener("load", resolve);
iframe.src = "/payment-request/resources/page2.html";
+ // An implementation may optionally reject |showPromise|.
+ showPromise.catch(e => {});
});
- await promise_rejects(
- t,
- "AbortError",
- showPromise,
- "The iframe was navigated away, so showPromise must reject with AbortError"
- );
- // We are done, so clean up.
- iframe.remove();
-}, "If a payment request is showing, but its document is navigated away (so no longer fully active), the payment request aborts.");
+
+ // The navigaton should have dismissed the previous payment request so it
+ // should be possible to show another one now.
+ const request2 = new iframe.contentWindow.PaymentRequest(
+ validMethods, validDetails);
+ const [showPromise2] = await test_driver.bless(
+ "show 2nd payment request", () => {
+ return [request2.show()];
+ });
+
+ // Stop the test in 1 second if it has not rejected, which means that a
+ // payment sheet is successfully shown.
+ t.step_timeout(async () => {
+ // We are done, so clean up.
+ iframe.remove();
+ t.done();
+ }, 1000);
+
+ // This should never settle because the payment sheet should be pending.
+ await showPromise2.then(() => {
+ assert_true(false, "Second payment should be pending but is resolved.");
+ })
+ .catch(e => {
+ assert_true(false, "Second payment should be pending but is rejected.");
+ });
+}, "If a payment request is showing, but its document is navigated away (so no longer fully active), the payment sheet is dismissed.");
</script>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-redirect.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-redirect.https.html
index e52adfa3780..07ea49439eb 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-redirect.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/import-scripts-redirect.https.html
@@ -1,6 +1,7 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Tests for importScripts: redirect</title>
+<script src="/common/utils.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/test-helpers.sub.js"></script>
@@ -20,14 +21,35 @@ promise_test(async t => {
await service_worker_unregister(t, scope);
let reg = await navigator.serviceWorker.register(
'resources/import-scripts-redirect-worker.js', { scope: scope });
- assert_not_equals(reg.installing, null, 'worker is installing');
+ assert_not_equals(reg.installing, null, 'before update');
await wait_for_state(t, reg.installing, 'activated');
await Promise.all([
wait_for_update(t, reg),
reg.update()
]);
- assert_not_equals(reg.installing, null, 'worker is installing');
+ assert_not_equals(reg.installing, null, 'after update');
await reg.unregister();
- }, 'importScripts() supports redirects and can be updated');
+ },
+ "an imported script redirects, and the body changes during the update check");
+
+promise_test(async t => {
+ const key = token();
+ const scope = 'resources/import-scripts-redirect';
+ await service_worker_unregister(t, scope);
+ let reg = await navigator.serviceWorker.register(
+ `resources/import-scripts-redirect-on-second-time-worker.js?Key=${key}`,
+ { scope });
+ t.add_cleanup(() => reg.unregister());
+
+ assert_not_equals(reg.installing, null, 'before update');
+ await wait_for_state(t, reg.installing, 'activated');
+ await Promise.all([
+ wait_for_update(t, reg),
+ reg.update()
+ ]);
+ assert_not_equals(reg.installing, null, 'after update');
+ },
+ "an imported script doesn't redirect initially, then redirects during " +
+ "the update check and the body changes");
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js
new file mode 100644
index 00000000000..f612ab8e6aa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/import-scripts-redirect-on-second-time-worker.js
@@ -0,0 +1,7 @@
+// This worker imports a script that returns 200 on the first request and a
+// redirect on the second request. The resulting body also changes each time it
+// is requested.
+const params = new URLSearchParams(location.search);
+const key = params.get('Key');
+importScripts(`update-worker.py?Key=${key}&Mode=redirect&` +
+ `Redirect=update-worker.py?Key=${key}%26Mode=normal`);
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker.py b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker.py
index 2bc99a3d044..446d547ca78 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker.py
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/update-worker.py
@@ -1,3 +1,20 @@
+import urllib
+
+def redirect_response(request, response, visited_count):
+ # |visited_count| is used as a unique id to differentiate responses
+ # every time.
+ location = 'empty.js'
+ if 'Redirect' in request.GET:
+ location = urllib.unquote(request.GET['Redirect'])
+ return (301,
+ [
+ ('Cache-Control', 'no-cache, must-revalidate'),
+ ('Pragma', 'no-cache'),
+ ('Content-Type', 'application/javascript'),
+ ('Location', location),
+ ],
+ '/* %s */' % str(visited_count))
+
def ok_response(request, response, visited_count,
extra_body='', mime_type='application/javascript'):
# |visited_count| is used as a unique id to differentiate responses
@@ -28,6 +45,8 @@ def main(request, response):
return ok_response(request, response, visited_count)
if mode == 'bad_mime_type':
return ok_response(request, response, visited_count, mime_type='text/html')
+ if mode == 'redirect':
+ return redirect_response(request, response, visited_count)
if mode == 'syntax_error':
return ok_response(request, response, visited_count, extra_body='badsyntax(isbad;')
if mode == 'throw_install':
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html
index 6f7db0542b7..7232419cd0a 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/update.https.html
@@ -81,6 +81,15 @@ promise_test(async t => {
promise_test(async t => {
const [registration, expected_url] =
+ await prepare_ready_registration(t, 'redirect');
+ t.add_cleanup(() => registration.unregister());
+
+ promise_rejects(t, new TypeError(), registration.update())
+ assert_active_only(registration, expected_url);
+}, 'update() should fail when a response for the main script is redirect.');
+
+promise_test(async t => {
+ const [registration, expected_url] =
await prepare_ready_registration(t, 'syntax_error');
t.add_cleanup(() => registration.unregister());
diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html b/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html
index be8e3cca1c7..4023bba5561 100644
--- a/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html
+++ b/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/document-timelines.html
@@ -12,6 +12,7 @@
async_test(t => {
assert_greater_than_equal(document.timeline.currentTime, 0,
'The current time is initially is positive or zero');
+
// document.timeline.currentTime should be set even before document
// load fires. We expect this code to be run before document load and hence
// the above assertion is sufficient.
@@ -34,4 +35,16 @@ async_test(t => {
});
}, 'Document timelines report current time relative to navigationStart');
+async_test(t => {
+ window.requestAnimationFrame(rafTime => {
+ t.step(() => {
+ const iframe = document.createElement('iframe');
+ document.body.appendChild(iframe);
+ assert_greater_than_equal(iframe.contentDocument.timeline.currentTime, 0,
+ 'The current time of a new iframe is initially is positive or zero');
+ });
+ t.done();
+ });
+}, 'Child frames do not report negative initial times');
+
</script>
diff --git a/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js b/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js
index 3a6a6c96fe0..baf1d66b00d 100644
--- a/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js
+++ b/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js
@@ -25,7 +25,7 @@ function xr_promise_test(name, func, properties) {
// device, and the test object.
// Requires a webglCanvas on the page.
function xr_session_promise_test(
- name, func, fakeDeviceInit, sessionMode, properties) {
+ name, func, fakeDeviceInit, sessionMode, sessionInit, properties) {
let testDeviceController;
let testSession;
@@ -39,7 +39,22 @@ function xr_session_promise_test(
xr_promise_test(
name,
- (t) =>{
+ (t) => {
+ // Ensure that any pending sessions are ended and devices are
+ // disconnected when done. This needs to use a cleanup function to
+ // ensure proper sequencing. If this were done in a .then() for the
+ // success case, a test that expected failure would already be marked
+ // done at the time that runs, and the shutdown would interfere with
+ // the next test which may have started already.
+ t.add_cleanup(async () => {
+ // If a session was created, end it.
+ if (testSession) {
+ await testSession.end().catch(() => {});
+ }
+ // Cleanup system state.
+ await navigator.xr.test.disconnectAllDevices();
+ });
+
return navigator.xr.test.simulateDeviceConnection(fakeDeviceInit)
.then((controller) => {
testDeviceController = controller;
@@ -48,7 +63,7 @@ function xr_session_promise_test(
.then(() => new Promise((resolve, reject) => {
// Perform the session request in a user gesture.
navigator.xr.test.simulateUserActivation(() => {
- navigator.xr.requestSession(sessionMode)
+ navigator.xr.requestSession(sessionMode, sessionInit || {})
.then((session) => {
testSession = session;
session.mode = sessionMode;
@@ -71,13 +86,8 @@ function xr_session_promise_test(
' with error: ' + err);
});
});
- }))
- .then(() => {
- // Cleanup system state.
- testSession.end().catch(() => {});
- return navigator.xr.test.disconnectAllDevices();
- })
- },
+ }));
+ },
properties);
}
diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html
index a397d1a89f6..be0bb32995b 100644
--- a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html
+++ b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html
@@ -11,5 +11,17 @@
(session) => {
assert_not_equals(session, null);
}, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
+
+ xr_session_promise_test(
+ "Tests requestSession accepts XRSessionInit dictionary",
+ (session) => {
+ assert_not_equals(session, null);
+ }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr', {});
+
+ xr_session_promise_test(
+ "Tests requestSession ignores unknown optionalFeatures",
+ (session) => {
+ assert_not_equals(session, null);
+ }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr', {optionalFeatures: ['unicorns']});
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https.html
new file mode 100644
index 00000000000..c274f4ff713
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<body>
+ <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></canvas>
+ <script>
+ xr_session_promise_test(
+ "Tests requestSession accepts XRSessionInit dictionary",
+ (session) => {
+ assert_not_equals(session, null);
+ }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr', {});
+
+ xr_session_promise_test(
+ "Tests requestSession accepts XRSessionInit dictionary with empty feature lists",
+ (session) => {
+ assert_not_equals(session, null);
+ }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr', {requiredFeatures: [], optionalFeatures: []});
+
+ xr_session_promise_test(
+ "Tests requestSession ignores unknown optionalFeatures",
+ (session) => {
+ assert_not_equals(session, null);
+ }, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr', {optionalFeatures: ['unicorns']});
+ </script>
+</body>
diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html
new file mode 100644
index 00000000000..02b26c05cb5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<body>
+ <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></canvas>
+ <script>
+ xr_promise_test(
+ "Tests requestSession rejects for unknown requiredFeatures",
+ (t) => {
+ return navigator.xr.test.simulateDeviceConnection(TRACKED_IMMERSIVE_DEVICE)
+ .then( (controller) => new Promise((resolve) => {
+ navigator.xr.test.simulateUserActivation( () => {
+ resolve(promise_rejects(
+ t,
+ "NotSupportedError",
+ navigator.xr.requestSession('immersive-vr',
+ {requiredFeatures: ['undefined-unicorns']}),
+ "unexpected requestSession success"
+ ))
+ });
+ }));
+ });
+
+ </script>
+</body>
diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html
index c90d6ce5a54..51aa8885f5e 100644
--- a/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html
+++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html
@@ -56,10 +56,16 @@
})
};
+ // Reference spaces that aren't included in the default feature list must
+ // be specified as a required or optional features on session creation.
xr_session_promise_test(
- immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr');
+ immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr',
+ {requiredFeatures: ['local-floor'],
+ optionalFeatures: ['bounded-floor', 'unbounded']});
xr_session_promise_test(
- nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline');
+ nonImmersiveTestName, testFunction, fakeDeviceInitParams, 'inline',
+ {requiredFeatures: ['local'],
+ optionalFeatures: ['local-floor']});
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https.html
new file mode 100644
index 00000000000..1bd516ee12e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<body>
+ <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></canvas>
+ <script>
+
+ let makeSpaceTest = (space_type) => {
+ return (session, fakeDeviceController, t) => {
+ return session.requestReferenceSpace(space_type).then( (referenceSpace) => {
+ t.step(() => {
+ assert_true(referenceSpace instanceof XRReferenceSpace,
+ "reference space is not correct type.");
+ });
+ });
+ };
+ };
+
+ let makeInvalidSpaceTest = (space_type) => {
+ return (session, fakeDeviceController, t) => {
+ return promise_rejects(t, "NotSupportedError",
+ session.requestReferenceSpace(space_type),
+ "requestReferenceSpace('" + space_type + "')");
+ };
+ };
+
+ let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
+
+ // Test that reference spaces matching default features work.
+ xr_session_promise_test(
+ "Non-immersive session supports viewer space by default",
+ makeSpaceTest('viewer'), fakeDeviceInitParams, 'inline', {});
+ xr_session_promise_test(
+ "Immersive session supports viewer space by default",
+ makeSpaceTest('viewer'), fakeDeviceInitParams, 'immersive-vr', {});
+ xr_session_promise_test(
+ "Immersive session supports local space by default",
+ makeSpaceTest('local'), fakeDeviceInitParams, 'immersive-vr', {});
+
+ // Test that session-appropriate non-default reference spaces work when requested
+ xr_session_promise_test(
+ "Non-immersive session supports local space when required",
+ makeSpaceTest('local'), fakeDeviceInitParams, 'inline',
+ {requiredFeatures: ['local']});
+ xr_session_promise_test(
+ "Non-immersive session supports local space when optional",
+ makeSpaceTest('local'), fakeDeviceInitParams, 'inline',
+ {optionalFeatures: ['local']});
+ xr_session_promise_test(
+ "Non-immersive session supports local-floor space when required",
+ makeSpaceTest('local-floor'), fakeDeviceInitParams, 'inline',
+ {requiredFeatures: ['local-floor']});
+ xr_session_promise_test(
+ "Immersive session supports local-floor space when required",
+ makeSpaceTest('local-floor'), fakeDeviceInitParams, 'immersive-vr',
+ {requiredFeatures: ['local-floor']});
+ xr_session_promise_test(
+ "Immersive session supports local-floor space when optional",
+ makeSpaceTest('local-floor'), fakeDeviceInitParams, 'immersive-vr',
+ {optionalFeatures: ['local-floor']});
+
+ // Test that inline space can't request 'bounded-floor' or 'unbounded'
+ xr_session_promise_test(
+ "Non-immersive session rejects bounded-floor space even when requested",
+ makeInvalidSpaceTest('bounded-floor'), fakeDeviceInitParams, 'inline',
+ {optionalFeatures: ['bounded-floor']});
+ xr_session_promise_test(
+ "Non-immersive session rejects unbounded space even when requested",
+ makeInvalidSpaceTest('unbounded'), fakeDeviceInitParams, 'inline',
+ {optionalFeatures: ['unbounded']});
+
+ // Test that reference spaces that aren't default features are rejected
+ // when not requested as a feature.
+ xr_session_promise_test(
+ "Non-immersive session rejects local space if not requested",
+ makeInvalidSpaceTest('local'), fakeDeviceInitParams, 'inline', {});
+ xr_session_promise_test(
+ "Immersive session rejects local-floor space if not requested",
+ makeInvalidSpaceTest('local-floor'), fakeDeviceInitParams, 'immersive-vr', {});
+ </script>
+</body>
diff --git a/tests/wpt/web-platform-tests/xslt/idlharness.window.js b/tests/wpt/web-platform-tests/xslt/idlharness.tentative.window.js
index 51b0cd3dbac..1da8db8cb20 100644
--- a/tests/wpt/web-platform-tests/xslt/idlharness.window.js
+++ b/tests/wpt/web-platform-tests/xslt/idlharness.tentative.window.js
@@ -4,7 +4,7 @@
'use strict';
idl_test(
- ['xslt'],
+ ['xslt.tentative'],
['html'],
async idlArray => {
idlArray.add_objects({