aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini6
-rw-r--r--tests/wpt/metadata/MANIFEST.json489
-rw-r--r--tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-break-word-008.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-text/white-space/break-spaces-009.html.ini2
-rw-r--r--tests/wpt/metadata/encoding/single-byte-decoder.html.ini2
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini9
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-string.tentative.html.ini4
-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/semantics/embedded-content/the-img-element/non-active-document.html.ini10
-rw-r--r--tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini7
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini1
-rw-r--r--tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini1
-rw-r--r--tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window.js2
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-content-001.html43
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-content-002.html56
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-content-003.html53
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-content-004.html63
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-content-011.html94
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/contain-strict-011.html64
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/reference/contain-content-011-ref.html27
-rw-r--r--tests/wpt/web-platform-tests/css/css-contain/reference/contain-strict-011-ref.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-properties-values-api/var-reference-registered-properties.html9
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-001.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-002.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-003.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-004.html32
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040.html40
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040a.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-041.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-044.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-045.html33
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-046a.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048.html35
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048a.html40
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-049.html41
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-082.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-085.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090a.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091a.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092a.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-095a.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096a.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097.html34
-rw-r--r--tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097a.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-008.html40
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/white-space/break-spaces-009.html38
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-001-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-002-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-003-ref.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-004-ref.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-001.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-002.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-003.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-004.html2
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/resources/helper.js38
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/sandbox-policies-in-allow-attribute.html46
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/reporting/legacy-image-formats-reporting.html24
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/reporting/legacy-image-formats-reporting.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html9
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html9
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html11
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html7
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html7
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html11
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html11
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html7
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html6
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html11
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html23
-rw-r--r--tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html5
-rw-r--r--tests/wpt/web-platform-tests/interfaces/CSP.idl14
-rw-r--r--tests/wpt/web-platform-tests/quirks/percentage-height-calculation.html4
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCDataChannel-id.html3
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-transceivers.https.html8
80 files changed, 2127 insertions, 133 deletions
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 3a3d15b8406..947e223fb28 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
@@ -14,9 +14,6 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
- [Revoke blob URL after calling fetch, fetch should succeed]
- expected: FAIL
-
[url-with-fetch.any.html]
[Untitled]
@@ -37,6 +34,3 @@
[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 ac63788bfbd..37915a34204 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -111279,6 +111279,66 @@
{}
]
],
+ "css/css-contain/contain-content-001.html": [
+ [
+ "css/css-contain/contain-content-001.html",
+ [
+ [
+ "/css/css-contain/reference/contain-layout-ifc-022-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-contain/contain-content-002.html": [
+ [
+ "css/css-contain/contain-content-002.html",
+ [
+ [
+ "/css/css-contain/reference/contain-paint-ifc-011-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-contain/contain-content-003.html": [
+ [
+ "css/css-contain/contain-content-003.html",
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-contain/contain-content-004.html": [
+ [
+ "css/css-contain/contain-content-004.html",
+ [
+ [
+ "/css/css-contain/reference/contain-layout-cell-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-contain/contain-content-011.html": [
+ [
+ "css/css-contain/contain-content-011.html",
+ [
+ [
+ "/css/css-contain/reference/contain-content-011-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-contain/contain-layout-001.html": [
[
"css/css-contain/contain-layout-001.html",
@@ -112779,6 +112839,18 @@
{}
]
],
+ "css/css-contain/contain-strict-011.html": [
+ [
+ "css/css-contain/contain-strict-011.html",
+ [
+ [
+ "/css/css-contain/reference/contain-strict-011-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-contain/contain-style-baseline-001.html": [
[
"css/css-contain/contain-style-baseline-001.html",
@@ -141857,6 +141929,18 @@
{}
]
],
+ "css/css-text/overflow-wrap/overflow-wrap-break-word-008.html": [
+ [
+ "css/css-text/overflow-wrap/overflow-wrap-break-word-008.html",
+ [
+ [
+ "/css/css-text/overflow-wrap/reference/overflow-wrap-break-word-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html": [
[
"css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html",
@@ -144221,6 +144305,18 @@
{}
]
],
+ "css/css-text/white-space/break-spaces-009.html": [
+ [
+ "css/css-text/white-space/break-spaces-009.html",
+ [
+ [
+ "/css/css-text/white-space/reference/white-space-break-spaces-005-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-text/white-space/control-chars-000.html": [
[
"css/css-text/white-space/control-chars-000.html",
@@ -257506,6 +257602,11 @@
{}
]
],
+ "css/css-contain/reference/contain-content-011-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-contain/reference/contain-layout-baseline-004-ref.html": [
[
{}
@@ -257721,6 +257822,11 @@
{}
]
],
+ "css/css-contain/reference/contain-strict-011-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-contain/reference/contain-style-breaks-001-ref.html": [
[
{}
@@ -291476,11 +291582,6 @@
{}
]
],
- "feature-policy/reporting/legacy-image-formats-reporting.html.headers": [
- [
- {}
- ]
- ],
"feature-policy/reporting/microphone-report-only.https.html.headers": [
[
{}
@@ -380080,6 +380181,12 @@
}
]
],
+ "feature-policy/feature-policy-for-sandbox/sandbox-policies-in-allow-attribute.html": [
+ [
+ "feature-policy/feature-policy-for-sandbox/sandbox-policies-in-allow-attribute.html",
+ {}
+ ]
+ ],
"feature-policy/feature-policy-frame-policy-allowed-for-all.https.sub.html": [
[
"feature-policy/feature-policy-frame-policy-allowed-for-all.https.sub.html",
@@ -380335,12 +380442,6 @@
{}
]
],
- "feature-policy/reporting/legacy-image-formats-reporting.html": [
- [
- "feature-policy/reporting/legacy-image-formats-reporting.html",
- {}
- ]
- ],
"feature-policy/reporting/microphone-report-only.https.html": [
[
"feature-policy/reporting/microphone-report-only.https.html",
@@ -472863,6 +472964,162 @@
{}
]
],
+ "css/css-text-decor/text-decoration-001.html": [
+ [
+ "css/css-text-decor/text-decoration-001.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-002.html": [
+ [
+ "css/css-text-decor/text-decoration-002.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-003.html": [
+ [
+ "css/css-text-decor/text-decoration-003.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-004.html": [
+ [
+ "css/css-text-decor/text-decoration-004.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-040.html": [
+ [
+ "css/css-text-decor/text-decoration-040.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-040a.html": [
+ [
+ "css/css-text-decor/text-decoration-040a.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-041.html": [
+ [
+ "css/css-text-decor/text-decoration-041.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-044.html": [
+ [
+ "css/css-text-decor/text-decoration-044.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-045.html": [
+ [
+ "css/css-text-decor/text-decoration-045.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-046a.html": [
+ [
+ "css/css-text-decor/text-decoration-046a.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-048.html": [
+ [
+ "css/css-text-decor/text-decoration-048.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-048a.html": [
+ [
+ "css/css-text-decor/text-decoration-048a.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-049.html": [
+ [
+ "css/css-text-decor/text-decoration-049.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-082.html": [
+ [
+ "css/css-text-decor/text-decoration-082.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-085.html": [
+ [
+ "css/css-text-decor/text-decoration-085.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-090.html": [
+ [
+ "css/css-text-decor/text-decoration-090.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-090a.html": [
+ [
+ "css/css-text-decor/text-decoration-090a.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-091.html": [
+ [
+ "css/css-text-decor/text-decoration-091.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-091a.html": [
+ [
+ "css/css-text-decor/text-decoration-091a.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-092.html": [
+ [
+ "css/css-text-decor/text-decoration-092.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-092a.html": [
+ [
+ "css/css-text-decor/text-decoration-092a.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-095a.html": [
+ [
+ "css/css-text-decor/text-decoration-095a.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-096.html": [
+ [
+ "css/css-text-decor/text-decoration-096.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-096a.html": [
+ [
+ "css/css-text-decor/text-decoration-096a.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-097.html": [
+ [
+ "css/css-text-decor/text-decoration-097.html",
+ {}
+ ]
+ ],
+ "css/css-text-decor/text-decoration-097a.html": [
+ [
+ "css/css-text-decor/text-decoration-097a.html",
+ {}
+ ]
+ ],
"css/css-text-decor/text-decoration-visibility-001.xht": [
[
"css/css-text-decor/text-decoration-visibility-001.xht",
@@ -507019,7 +507276,7 @@
"testharness"
],
"content-security-policy/securitypolicyviolation/idlharness.window.js": [
- "fc5e65d6cfdc59fb8bd3c10e3ed358d5b7f8074d",
+ "25efd0d4e1f5224cda5a74457e801d84777bbcb0",
"testharness"
],
"content-security-policy/securitypolicyviolation/img-src-redirect-upgrade-reporting.https.html": [
@@ -575726,6 +575983,26 @@
"449221428c3d76d31ff84a5792c7578c36cbebed",
"reftest"
],
+ "css/css-contain/contain-content-001.html": [
+ "649bf54df5b6e005253e1a8d5d8b45521889e9f5",
+ "reftest"
+ ],
+ "css/css-contain/contain-content-002.html": [
+ "d18ba3c4dd4b894e1c635c471d4045be912ee482",
+ "reftest"
+ ],
+ "css/css-contain/contain-content-003.html": [
+ "bb421c01732261d4fad354c9d8c6aeace7e5f7e0",
+ "reftest"
+ ],
+ "css/css-contain/contain-content-004.html": [
+ "37b2daf845ad9aff8277dda42ab3320dd3a151a9",
+ "reftest"
+ ],
+ "css/css-contain/contain-content-011.html": [
+ "1646413fee73845a56af73135e7ad9e25598b363",
+ "reftest"
+ ],
"css/css-contain/contain-layout-001.html": [
"85b959da2b9a151c13be3dc83485646341752915",
"reftest"
@@ -576226,6 +576503,10 @@
"792710cd87d8ee0813838dd39847f9dd2db2e2a9",
"reftest"
],
+ "css/css-contain/contain-strict-011.html": [
+ "a3c506b1baa5a45baf696977aec0e27344e47306",
+ "reftest"
+ ],
"css/css-contain/contain-style-baseline-001.html": [
"f05d20982833077d53ecad3340065aee7e0ca8cd",
"reftest"
@@ -576318,6 +576599,10 @@
"1fdecb1c33149af52c48c105bce8ad91904bad44",
"support"
],
+ "css/css-contain/reference/contain-content-011-ref.html": [
+ "21043b083c893a474aee7e0a926ce5be3d73ec12",
+ "support"
+ ],
"css/css-contain/reference/contain-layout-baseline-004-ref.html": [
"d0c7788fc18533343ee3830d96161f04ccb5d406",
"support"
@@ -576490,6 +576775,10 @@
"402ff6c95e14c7c6dbe6e91cd779937bf6c4caa8",
"support"
],
+ "css/css-contain/reference/contain-strict-011-ref.html": [
+ "3e69ee5ab8da7dadde757b1cdb811d49bd048a0b",
+ "support"
+ ],
"css/css-contain/reference/contain-style-breaks-001-ref.html": [
"2c0b758e6bf83ab83444422d39535e14af8c1ab1",
"support"
@@ -597967,7 +598256,7 @@
"testharness"
],
"css/css-properties-values-api/var-reference-registered-properties.html": [
- "166754574faa025807847209f1ab157111a4a6d8",
+ "050b5e2cf694bc293834a444cf9fa82726968bb3",
"testharness"
],
"css/css-pseudo/META.yml": [
@@ -603630,6 +603919,110 @@
"6bf79ba4527f99af740bdeca945449e8f9ed7a57",
"support"
],
+ "css/css-text-decor/text-decoration-001.html": [
+ "9b620132697dfbf68f0d10575afaf7d902e649da",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-002.html": [
+ "71c815b34e0eb43d38456ac3ec67cf3a7f96308c",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-003.html": [
+ "ee987654bf1eab14c45393314adcc6425713c154",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-004.html": [
+ "0419d85f9625f07d439b57ebc72a422ced6a5099",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-040.html": [
+ "63b63759197870f9a0616b853a4dd58e282876b1",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-040a.html": [
+ "90963c8db6ca41c9c962ee0f38d6153cc9e7fc2b",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-041.html": [
+ "32e0598ab4a9268fd4c2f4b48dec7bbc4632ab0b",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-044.html": [
+ "63732387f27a9bd32ee42fcf3400f4b8a22c642c",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-045.html": [
+ "e8a6904071419c0b049ed5b5aad83401e236957d",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-046a.html": [
+ "a3d5e717e3f882ba2ce9a4bf148fd62856c73b76",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-048.html": [
+ "c9070bedb3b3450e7d2c0b2b0a76dfbdfdb8e4f2",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-048a.html": [
+ "7d598af677e9f5be323886842560f9c04d79da8a",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-049.html": [
+ "b8fb70dcd79a50ae2a49bf705688695f66ee2a88",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-082.html": [
+ "a1d5497ad2ac01d8df295b8203a9769780317f27",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-085.html": [
+ "30522cf331fecc3eb17a43a53b1bc9aa5d63ae1d",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-090.html": [
+ "580fb98c87961670cd2c23f3d01be40477cd06db",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-090a.html": [
+ "d9ac430079b621104da62a11fca6b0bd3d6cff57",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-091.html": [
+ "2097792f1c317daaad0f05281a3b547d3555cd3d",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-091a.html": [
+ "ee2464c5263e1cd7eb1389d4b052bc08633a78e8",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-092.html": [
+ "5ba99f0de3b463eef56f477d5e2cfffd06f16786",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-092a.html": [
+ "5f034b3e729955dbc4c0be3c1787745423f224ff",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-095a.html": [
+ "dc4ae513d125b9cb065875ecd2b5155ff2169fe2",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-096.html": [
+ "b7c0dc4878b365e9009026c4f537a4312bab761c",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-096a.html": [
+ "a1f13e57cafd437805633587bdcc1190c18fb26a",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-097.html": [
+ "4d352e4da17d515aa4426ac286ca663bd8a13834",
+ "visual"
+ ],
+ "css/css-text-decor/text-decoration-097a.html": [
+ "64b3249dd6be2cf4364c3ebe62ff256a0373a29d",
+ "visual"
+ ],
"css/css-text-decor/text-decoration-color-recalc.html": [
"b7cde934fcfd3c73ac351f7b9566adadad542294",
"reftest"
@@ -606374,6 +606767,10 @@
"0491b921e1aed4b030ca5cf0214afad7bdf3aba1",
"reftest"
],
+ "css/css-text/overflow-wrap/overflow-wrap-break-word-008.html": [
+ "9a3a95ba382e770eb6506102a64771caaf4f00af",
+ "reftest"
+ ],
"css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html": [
"2c83c46aa50f6d51efbb4d05635d86f7c166042d",
"reftest"
@@ -608302,6 +608699,10 @@
"7bcb9dd33758baf715060aa288d9a091e9cb0c94",
"reftest"
],
+ "css/css-text/white-space/break-spaces-009.html": [
+ "9ecaa919ddfd42c920523e123afbeec232bdc920",
+ "reftest"
+ ],
"css/css-text/white-space/control-chars-000.html": [
"b038fe9a90d3b8b9cb3bde7fd46396c7121688c9",
"reftest"
@@ -608703,19 +609104,19 @@
"support"
],
"css/css-text/white-space/reference/white-space-intrinsic-size-001-ref.html": [
- "1f1761d5a3de94e63cf231d892d50704ddee8d6b",
+ "cf59a70890adb3cca4dffbf8495e1437887ef133",
"support"
],
"css/css-text/white-space/reference/white-space-intrinsic-size-002-ref.html": [
- "a97a089153d952d3b32177144ab20bbff2ef790b",
+ "78ee28b61fd2a6c49d0bdfeb1c3cb76066284a81",
"support"
],
"css/css-text/white-space/reference/white-space-intrinsic-size-003-ref.html": [
- "2ead6c8c7ae74a9a81f38db7d8226873abae2b59",
+ "1d9ac7abc4ac498e3f8920c6212ca4a4e55ba304",
"support"
],
"css/css-text/white-space/reference/white-space-intrinsic-size-004-ref.html": [
- "6b2d4b49d53a0e4ed7268d4417ac69d0cc3fbe11",
+ "34757067b15b6a30e8273a93df7f68a7cfb4a686",
"support"
],
"css/css-text/white-space/reference/white-space-pre-wrap-trailing-spaces-001-ref.html": [
@@ -608923,19 +609324,19 @@
"reftest"
],
"css/css-text/white-space/white-space-intrinsic-size-001.html": [
- "22514ed669f0438738026c0276d89b845f58942e",
+ "9974041c80ae660ce018d4bd507717525ad90eeb",
"reftest"
],
"css/css-text/white-space/white-space-intrinsic-size-002.html": [
- "ce222d898798812a525776ead4263e6032e74f87",
+ "d105756d0baa7e04b154abe2e05507f4454095f4",
"reftest"
],
"css/css-text/white-space/white-space-intrinsic-size-003.html": [
- "50c1d1aca6d50f31cb0f2426d2269885ba848dd7",
+ "fca1ec39ed07bfa06e8102281e148d2b8d780adb",
"reftest"
],
"css/css-text/white-space/white-space-intrinsic-size-004.html": [
- "21c0bd66cb54410a7c7e03d6c638cc5efa349ae2",
+ "510a5c5d14188e9dc042ee061f6cb91bb169b73c",
"reftest"
],
"css/css-text/white-space/white-space-pre-wrap-trailing-spaces-001.html": [
@@ -646695,7 +647096,7 @@
"testharness"
],
"feature-policy/feature-policy-for-sandbox/resources/helper.js": [
- "0d82811bcee613547cc8d0b23a9b5aa8fe369caf",
+ "09a8aa7846cd724e203bb12ce9a014662d01ea0d",
"support"
],
"feature-policy/feature-policy-for-sandbox/resources/opened_window.html": [
@@ -646714,6 +647115,10 @@
"263a17b524b14fcf8576f61c901df7c0b6afdeca",
"support"
],
+ "feature-policy/feature-policy-for-sandbox/sandbox-policies-in-allow-attribute.html": [
+ "a29d43e5fccabedf376ec5cd28fe213d7902081e",
+ "testharness"
+ ],
"feature-policy/feature-policy-frame-policy-allowed-for-all.https.sub.html": [
"aede7e7876b197417d4fb6f156fda3285ac7e9a4",
"testharness"
@@ -646982,14 +647387,6 @@
"c059b96d97fc3701ce4325165b79948f69189135",
"support"
],
- "feature-policy/reporting/legacy-image-formats-reporting.html": [
- "6cd2e752eb915b984adc0552a8f792143d8e448b",
- "testharness"
- ],
- "feature-policy/reporting/legacy-image-formats-reporting.html.headers": [
- "1003c32a445d7f3dafb233e8b49839d9fa336416",
- "support"
- ],
"feature-policy/reporting/microphone-report-only.https.html": [
"539994cd70a2b5a8d598577a0d493c13346755b8",
"testharness"
@@ -648575,7 +648972,7 @@
"support"
],
"fetch/sec-metadata/embed.tentative.https.sub.html": [
- "6f0c439595047049f8c5e71948bbcce6f8c22bd7",
+ "b97de9ef2fd4c0c41a5671ad7cd20c5814ab5223",
"testharness"
],
"fetch/sec-metadata/fetch.tentative.https.sub.html": [
@@ -648603,27 +649000,27 @@
"testharness"
],
"fetch/sec-metadata/object.tentative.https.sub.html": [
- "2a0e8de85568c1ae6008af793f4ca9a6fad77a3d",
+ "474962918b03075b0fa97d199a339b5f504d8c20",
"testharness"
],
"fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html": [
- "f88cf140d4e32ee21d3d0d6475905be55fe8adad",
+ "1634a29f3791490aa782435a294442d3a925ebda",
"testharness"
],
"fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html": [
- "688c697ac931eefb445e75240bc4cb978c088e47",
+ "7647a5b1c89a99ab4c8227a6690c457915e07a62",
"testharness"
],
"fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html": [
- "bc79f7810a1be2cd12b40463ec6cac9a9e80d723",
+ "e83d6fd97e844f84dc5fb6c39a3acc99e5e9f087",
"testharness"
],
"fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html": [
- "a5323921c26bc9882c0c17e75a2a562fe7d6972f",
+ "2033eab5979a619f918443d98788ae3caaefecb5",
"testharness"
],
"fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html": [
- "92749ae0b80c44938e6ca88e7c9bbbcd1cef48ca",
+ "c5b6830abed5f197f2640fa1ddb18be9f79480fd",
"testharness"
],
"fetch/sec-metadata/report.tentative.https.sub.html": [
@@ -648675,19 +649072,19 @@
"testharness"
],
"fetch/sec-metadata/serviceworker.tentative.https.sub.html": [
- "5b7ee772b6175d7c2af3b1932a6194d69785ce65",
+ "590a6c33475d26e54ef31e7a766f596d4b6d5215",
"testharness"
],
"fetch/sec-metadata/sharedworker.tentative.https.sub.html": [
- "cfeadd8d8e206bc7a108b25b177ec0b3666d8e58",
+ "a1c558ad35dfbdb7d2f35535ba26148f31e3f2c6",
"testharness"
],
"fetch/sec-metadata/style.tentative.https.sub.html": [
- "4ae12662a29380b5c241988b7b97d34031d7bec7",
+ "46f64f49bde0ce6c642a517aacaf5af8c3074edc",
"testharness"
],
"fetch/sec-metadata/track.tentative.https.sub.html": [
- "89933f22c393711dd599cbdc4c3a18251005b7f6",
+ "817e4845edb215cd1fdf8183e6d306a4fe4172c4",
"testharness"
],
"fetch/sec-metadata/trailing-dot.tentative.https.sub.html": [
@@ -648699,7 +649096,7 @@
"testharness"
],
"fetch/sec-metadata/worker.tentative.https.sub.html": [
- "89be6f0b5a1b2cdb6ab2489a2cf70a77baf44667",
+ "dc21d0324f442a8aa801dbddb04e0b2fe93464d0",
"testharness"
],
"fetch/sec-metadata/xslt.tentative.https.sub.html": [
@@ -670031,7 +670428,7 @@
"support"
],
"interfaces/CSP.idl": [
- "4b53e3a3a40386d93abded001ac99bc04ea46b3e",
+ "e427ae8801a7863a59d9507d384e075e34bd4731",
"support"
],
"interfaces/CSS-Parser-API.idl": [
@@ -684567,7 +684964,7 @@
"reftest"
],
"quirks/percentage-height-calculation.html": [
- "987cc245ca220bd92108b6babe17d35733fd0697",
+ "e56a03b4b41b72edca91ff261e766fc9d2cc5426",
"testharness"
],
"quirks/reference/green-100px-square-no-red.html": [
@@ -716795,7 +717192,7 @@
"testharness"
],
"webrtc/RTCDataChannel-id.html": [
- "98be63d923c016eded8080f89987af3dbd60850a",
+ "4c16547ca780c5285fbb2a264bfaf7b10b43eab6",
"testharness"
],
"webrtc/RTCDataChannel-send.html": [
@@ -716991,7 +717388,7 @@
"testharness"
],
"webrtc/RTCPeerConnection-transceivers.https.html": [
- "9b3a9a85413e2dcfdbcbbefe2b8b05a0ffd05ca0",
+ "73668e7be6ed8d98630d857657fcace9072b9aee",
"testharness"
],
"webrtc/RTCPeerConnectionIceEvent-constructor.html": [
diff --git a/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-break-word-008.html.ini b/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-break-word-008.html.ini
new file mode 100644
index 00000000000..cce949c8c12
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/overflow-wrap/overflow-wrap-break-word-008.html.ini
@@ -0,0 +1,2 @@
+[overflow-wrap-break-word-008.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-text/white-space/break-spaces-009.html.ini b/tests/wpt/metadata/css/css-text/white-space/break-spaces-009.html.ini
new file mode 100644
index 00000000000..61175c0921c
--- /dev/null
+++ b/tests/wpt/metadata/css/css-text/white-space/break-spaces-009.html.ini
@@ -0,0 +1,2 @@
+[break-spaces-009.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
index e85a200d4e9..15f0a4d066d 100644
--- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
+++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
@@ -32,7 +32,7 @@
[single-byte-decoder.html?XMLHttpRequest]
- expected: TIMEOUT
+ expected: CRASH
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
index 18f786d4963..c29ff22ada2 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,3 +312,12 @@
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
+ [<iframe>: combined response Content-Type: text/html;" text/plain]
+ expected: FAIL
+
+ [<iframe>: combined response Content-Type: text/html */*]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/html;x=" text/plain]
+ 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 87c807a49ff..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,3 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
+ [Content-Type-Options%3A%20nosniff]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-string.tentative.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-string.tentative.html.ini
new file mode 100644
index 00000000000..9bacb9f5c4e
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-string.tentative.html.ini
@@ -0,0 +1,4 @@
+[javascript-url-abort-return-value-string.tentative.html]
+ [Aborting fetch for javascript:string navigation]
+ 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/semantics/embedded-content/the-img-element/non-active-document.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini
new file mode 100644
index 00000000000..8cc42056d34
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini
@@ -0,0 +1,10 @@
+[non-active-document.html]
+ [DOMParser]
+ expected: FAIL
+
+ [createHTMLDocument]
+ expected: FAIL
+
+ [<template>]
+ 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/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
index a56bad443a2..66bd350083b 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
@@ -1,5 +1,4 @@
[realtimeanalyser-fft-scaling.html]
- expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL
diff --git a/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini b/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini
index d6e39444229..49f489d2a1c 100644
--- a/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini
+++ b/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini
@@ -1,5 +1,6 @@
[003.html]
type: testharness
+ expected: ERROR
[shared]
expected: FAIL
diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini
new file mode 100644
index 00000000000..dbea4f293ad
--- /dev/null
+++ b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini
@@ -0,0 +1,2 @@
+[transition_calc_implicit.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window.js b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window.js
index fc5e65d6cfd..25efd0d4e1f 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window.js
+++ b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/idlharness.window.js
@@ -7,7 +7,7 @@
idl_test(
['CSP'],
- ['dom'],
+ ['dom', 'reporting'],
idl_array => {
idl_array.add_objects({
SecurityPolicyViolationEvent: [
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-content-001.html b/tests/wpt/web-platform-tests/css/css-contain/contain-content-001.html
new file mode 100644
index 00000000000..649bf54df5b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-content-001.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+
+ <meta charset="UTF-8">
+
+ <title>CSS Containment Test: a block with 'contain: content' alongside a float</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+ <link rel="help" href="https://www.w3.org/TR/css-contain-1/#contain-property">
+ <link rel="match" href="reference/contain-layout-ifc-022-ref.html">
+
+ <meta content="" name="flags">
+
+ <style>
+ div
+ {
+ color: transparent;
+ font-size: 16px;
+ padding: 8px;
+ }
+
+ div#floated-left
+ {
+ background-color: blue;
+ float: left;
+ margin: 8px;
+ width: 6em;
+ }
+
+ div#with-contain-content
+ {
+ background-color: orange;
+ width: 12em;
+
+ contain: content;
+ }
+ </style>
+
+
+ <p>Test passes if the orange rectangle and blue rectangle do not overlap.
+
+ <div id="floated-left">Some text in a blue rectangle.</div>
+
+ <div id="with-contain-content">Some text in an orange rectangle. Some text in an orange rectangle. Some text in an orange rectangle.</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-content-002.html b/tests/wpt/web-platform-tests/css/css-contain/contain-content-002.html
new file mode 100644
index 00000000000..d18ba3c4dd4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-content-002.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+
+ <meta charset="UTF-8">
+
+ <title>CSS Containment Test: 'contain: content' and margin collapsing</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+ <link rel="help" href="https://www.w3.org/TR/css-contain-1/#contain-property">
+ <link rel="match" href="reference/contain-paint-ifc-011-ref.html">
+
+ <meta content="This test checks that a block element with 'contain: content' establishes a new block formatting context which is independent and separate from others. This causes margin collapsing to be ineffective among vertically-adjacent boxes. In this test, the top margin of parent boxes and top margin of their respective first in-flow child do not collapse. Also, in this test, the bottom margin of the last in-flow child of boxes and bottom margin of their respective parent boxes do not collapse." name="assert">
+ <meta name="flags" content="">
+
+ <style>
+ div
+ {
+ contain: content;
+ margin: 30px 0px;
+ }
+
+ div#grand-grand-parent-orange
+ {
+ background-color: orange;
+ }
+
+ div#grand-parent-blue
+ {
+ background-color: blue;
+ }
+
+ div#parent-lime
+ {
+ background-color: lime;
+ }
+
+ div#collapse-through-child /* margin collapsing through element */
+ {
+ contain: none;
+ }
+ </style>
+
+ <p>Test passes if there are 5 horizontal stripes across the page in this order (from top to bottom): an orange stripe, a blue stripe, a bright green stripe, a blue stripe and then an orange stripe.
+
+ <div id="grand-grand-parent-orange">
+
+ <div id="grand-parent-blue">
+
+ <div id="parent-lime">
+
+ <div id="collapse-through-child"></div>
+
+ </div>
+
+ </div>
+
+ </div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-content-003.html b/tests/wpt/web-platform-tests/css/css-contain/contain-content-003.html
new file mode 100644
index 00000000000..bb421c01732
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-content-003.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+
+ <meta charset="UTF-8">
+
+ <title>CSS Containment Test: element with 'contain: content' and absolutely positioned descendants</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+ <link rel="help" href="https://drafts.csswg.org/css-contain/#contain-property">
+ <link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+
+ <meta name="flags" content="">
+ <meta name="assert" content="This test checks that an element with 'contain: content' acts as containing block for its absolutely positioned descendants.">
+
+ <style>
+ div
+ {
+ width: 100px;
+ }
+
+ div#contain-content
+ {
+ background-color: red;
+ contain: content;
+ height: 100px;
+ }
+
+ div.abspos
+ {
+ background-color: green;
+ height: 50px;
+ position: absolute;
+ right: 0;
+ }
+
+ div#first-abspos
+ {
+ top: 0px;
+ }
+
+ div#second-abspos
+ {
+ bottom: 0px;
+ }
+ </style>
+
+ <body>
+
+ <p>Test passes if there is a filled green square and <strong>no red</strong>.
+
+ <div id="contain-content">
+ <div id="first-abspos" class="abspos"></div>
+ <div id="second-abspos" class="abspos"></div>
+ </div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-content-004.html b/tests/wpt/web-platform-tests/css/css-contain/contain-content-004.html
new file mode 100644
index 00000000000..37b2daf845a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-content-004.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+
+ <meta charset="UTF-8">
+
+ <title>CSS Containment Test: 'contain: content' applies to 'table-cell' elements</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+ <link rel="help" href="https://www.w3.org/TR/css-contain-1/#containment-layout">
+ <link rel="match" href="reference/contain-layout-cell-001-ref.html">
+
+ <meta content="In this test, the td#contain should act as the containing block for div#abs-pos ." name="assert">
+ <meta name="flags" content="">
+
+ <style>
+ table
+ {
+ background-color: blue;
+ border-spacing: 2px;
+ height: 206px;
+ table-layout: fixed;
+ width: 206px;
+ }
+
+ td
+ {
+ background-color: white;
+ padding: 0px;
+ vertical-align: top;
+ }
+
+ td#contain
+ {
+ contain: content;
+ }
+
+ span
+ {
+ background-color: red;
+ color: yellow;
+ font-family: monospace;
+ vertical-align: top;
+ }
+
+ div#abs-pos
+ {
+ background-color: green;
+ color: white;
+ font-family: monospace;
+ left: 0px;
+ position: absolute;
+ top: 0px;
+ }
+ </style>
+
+ <p>Test passes if there is the word PASS and if there is <strong>no red</strong>.
+
+ <table>
+
+ <tr><td>&nbsp;<td>&nbsp;
+
+ <tr><td>&nbsp;<td id="contain"><span>FAIL</span><div id="abs-pos">PASS</div>
+
+ </table>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-content-011.html b/tests/wpt/web-platform-tests/css/css-contain/contain-content-011.html
new file mode 100644
index 00000000000..1646413fee7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-content-011.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+
+ <meta charset="UTF-8">
+
+ <title>CSS Containment Test: 'contain: content' does not turn on style containment</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+ <link rel="help" href="https://drafts.csswg.org/css-contain/#contain-property">
+ <link rel="match" href="reference/contain-content-011-ref.html">
+
+ <meta name="flags" content="">
+ <meta name="assert" content="'contain: content' does not turn on style containment. So, in this test, the counter of div.abspos child should not be reset and must not be reset.">
+
+ <style>
+ body
+ {
+ counter-reset: counter-of-abspos-div 17;
+ }
+
+ /*
+ This creates a new counter identified as
+ "counter-of-abspos-div" and initially sets
+ such counter to 17 (an entirely arbitrary
+ number)
+ */
+
+ div
+ {
+ width: 100px;
+ }
+
+
+ div#contain-content
+ {
+ background-color: red;
+ contain: content;
+ height: 100px;
+ }
+
+ div.abspos
+ {
+ background-color: green;
+ height: 50px;
+ position: absolute;
+ right: 0;
+ }
+
+ div#contain-content > div.abspos
+ {
+ counter-increment: counter-of-abspos-div 4;
+ }
+
+ /*
+ This increments the counter identified as
+ "counter-of-abspos-div" of the step value
+ of 4 (an entirely arbitrary number) each and
+ every time there is a div.abspos child
+ within the subtree of div#contain-content
+ */
+
+ div#first-abspos
+ {
+ top: 0px;
+ }
+
+ div#second-abspos
+ {
+ bottom: 0px;
+ }
+
+ div#result::after
+ {
+ content: counter(counter-of-abspos-div);
+ font-size: 3em;
+ }
+
+ /*
+ Now, the generated content is set to the
+ current value of the counter identified
+ as "counter-of-abspos-div":
+ 17 + 4 * 2 == 25
+ */
+ </style>
+
+ <body>
+
+ <p>Test passes if there is a filled green square, no red and the number 25.
+
+ <div id="contain-content">
+ <div id="first-abspos" class="abspos"></div>
+ <div id="second-abspos" class="abspos"></div>
+ </div>
+
+ <div id="result"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-strict-011.html b/tests/wpt/web-platform-tests/css/css-contain/contain-strict-011.html
new file mode 100644
index 00000000000..a3c506b1baa
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/contain-strict-011.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+
+ <meta charset="UTF-8">
+
+ <title>CSS Containment Test: 'contain: strict' does not turn on style containment</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+ <link rel="help" href="https://drafts.csswg.org/css-contain/#contain-property">
+ <link rel="match" href="reference/contain-strict-011-ref.html">
+
+ <meta name="flags" content="">
+ <meta name="assert" content="'contain: strict' does not turn on style containment. So, in this test, the counter of spans should not be reset and must not be reset.">
+
+ <style>
+ body
+ {
+ counter-reset: counter-of-span 17;
+ }
+
+ /*
+ This creates a new counter identified as "counter-of-span"
+ and initially sets such counter to 17 (an entirely
+ arbitrary number)
+ */
+
+ div
+ {
+ contain: strict;
+ }
+
+ div > span
+ {
+ background-color: yellow;
+ color: red;
+ counter-increment: counter-of-span 3;
+ }
+
+ /*
+ This increments the counter identified as "counter-of-span"
+ of the step value of 3 (an entirely arbitrary number) each
+ and every time there is a <span> child within the subtree
+ of div
+ */
+
+ p#test::after
+ {
+ content: counter(counter-of-span);
+ font-size: 3em;
+ }
+
+ /*
+ Now, the generated content is set to the current
+ value of the counter identified as "counter-of-span":
+ 17 + 3 * 3 == 26
+ */
+ </style>
+
+ <body>
+
+ <div><span>FAIL1</span> <span>FAIL2</span> <span>FAIL3</span></div>
+
+ <p id="pass-fail-conditions-sentence">Test passes if there is the number 26.
+
+ <p id="test">
diff --git a/tests/wpt/web-platform-tests/css/css-contain/reference/contain-content-011-ref.html b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-content-011-ref.html
new file mode 100644
index 00000000000..21043b083c8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-content-011-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+
+ <meta charset="UTF-8">
+
+ <title>CSS Reference Test</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+
+ <style>
+ div#green-square
+ {
+ background-color: green;
+ height: 100px;
+ width: 100px;
+ }
+
+ div#result
+ {
+ font-size: 3em;
+ }
+ </style>
+
+ <p>Test passes if there is a filled green square, no red and the number 25.
+
+ <div id="green-square"></div>
+
+ <div id="result">25</div>
diff --git a/tests/wpt/web-platform-tests/css/css-contain/reference/contain-strict-011-ref.html b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-strict-011-ref.html
new file mode 100644
index 00000000000..3e69ee5ab8d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-strict-011-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+
+ <meta charset="UTF-8">
+
+ <title>CSS Reference Test</title>
+
+ <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
+
+ <style>
+ p
+ {
+ margin-top: 1.5em;
+ }
+
+ div
+ {
+ font-size: 3em;
+ }
+ </style>
+
+ <p>Test passes if there is the number 26.
+
+ <div>26</div>
diff --git a/tests/wpt/web-platform-tests/css/css-properties-values-api/var-reference-registered-properties.html b/tests/wpt/web-platform-tests/css/css-properties-values-api/var-reference-registered-properties.html
index 166754574fa..050b5e2cf69 100644
--- a/tests/wpt/web-platform-tests/css/css-properties-values-api/var-reference-registered-properties.html
+++ b/tests/wpt/web-platform-tests/css/css-properties-values-api/var-reference-registered-properties.html
@@ -136,6 +136,15 @@ test(function(){
element.style = '';
}, 'Lists with relative units are absolutized when substituting');
+test(function(){
+ let length = generate_property('none | <length>');
+ let universal = generate_property('*');
+ element.style = `font-size: 10px; ${length}: 10em; ${universal}: var(${length})`;
+ let computedStyle = getComputedStyle(element);
+ assert_equals(computedStyle.getPropertyValue(universal), ' 100px');
+ element.style = '';
+}, 'Values are absolutized when substituting into properties with universal syntax');
+
function test_valid_fallback(syntax, value, fallback) {
test(function(){
let name = generate_property(syntax);
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-001.html
new file mode 100644
index 00000000000..9b620132697
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-001.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration underline</title>
+<meta name="assert" content="text-decoration:underline; there is a line at or under the alphabetic baseline">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:underline;
+}
+</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line at or under the alphabetic baseline.</p>
+<div id="htmlsrc">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-002.html
new file mode 100644
index 00000000000..71c815b34e0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-002.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration overline</title>
+<meta name="assert" content="text-decoration:overline; there is an overline">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is an overline.</p>
+<div id="htmlsrc">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-003.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-003.html
new file mode 100644
index 00000000000..ee987654bf1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-003.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration line-through</title>
+<meta name="assert" content="text-decoration:line-through; there is a solid line through the centre of the characters">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:line-through;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a solid line through the centre of the characters.</p>
+<div id="htmlsrc">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-004.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-004.html
new file mode 100644
index 00000000000..0419d85f962
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-004.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration underline overline</title>
+<meta name="assert" content="text-decoration:underline overline; there is an overline and an underline">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:underline overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is an overline and an underline.</p>
+<div id="htmlsrc">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040.html
new file mode 100644
index 00000000000..63b63759197
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration underline tbrl hor scripts</title>
+<meta name="assert" content="text-decoration:underline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: vertical-rl">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:underline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the LEFT of the characters for all lines.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-rl">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
+<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
+<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
+<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
+<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040a.html
new file mode 100644
index 00000000000..90963c8db6c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040a.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration underline tbrl mixed</title>
+<meta name="assert" content="text-decoration:underline; there is an unbroken line to the LEFT of the characters for each lines">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 3.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
+</style>
+<!-- the test -->
+<style>
+div p {
+text-decoration:underline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is an unbroken line to the LEFT of the characters for all lines.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-rl">
+
+<div>
+<p lang="zh">引发<span lang="en">quick brown fox</span>网络<span lang="ar">جهانی سازیم</span>的全<span lang="my">အပြည်ပြည်</span>部潜<span lang="th">ปิ้งอยู่ในถ้ำ</span>能引<span lang="bo">འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་</span>發網<span lang="hi">विश्वव्यापी बना रहें हैं絡</span>的全<span lang="ja">部潛能</span></p>
+</div>
+</div>
+</body>
+</html>
+
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-041.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-041.html
new file mode 100644
index 00000000000..32e0598ab4a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-041.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration underline tbrl (zh)</title>
+<meta name="assert" content="text-decoration:underline; there is a line to the LEFT of the characters">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:underline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the LEFT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-rl">
+
+<div>
+<p lang="zh"><span>引发网络的全部潜能引發網絡的全部潛能</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-044.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-044.html
new file mode 100644
index 00000000000..63732387f27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-044.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration overline tbrl hor scripts</title>
+<meta name="assert" content="text-decoration-line:overline; there is a line to the RIGHT of the characters for horizontal scripts set vertically using writing-mode: vertical-rl">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the RIGHT of the characters for all lines.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-rl">
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
+<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
+<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
+<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
+<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-045.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-045.html
new file mode 100644
index 00000000000..e8a69040714
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-045.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration overline tbrl (zh)</title>
+<meta name="assert" content="text-decoration-line:overline; there is a line to the RIGHT of the characters">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the RIGHT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-rl">
+<div>
+<p lang="zh"><span>引发网络的全部潜能引發網絡的全部潛能</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-046a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-046a.html
new file mode 100644
index 00000000000..a3d5e717e3f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-046a.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration overline tbrl mixed</title>
+<meta name="assert" content="text-decoration-line:overline; there is an unbroken line to the RIGHT of the characters for all lines">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 3.5;
+ }
+:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div p {
+text-decoration:overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is an unbroken line to the RIGHT of the characters for each line.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-rl">
+
+<div>
+<p lang="zh">引发<span lang="en">quick brown fox</span>网络<span lang="ar">جهانی سازیم</span>的全<span lang="my">အပြည်ပြည်</span>部潜<span lang="th">ปิ้งอยู่ในถ้ำ</span>能引<span lang="bo">འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་</span>發網<span lang="hi">विश्वव्यापी बना रहें हैं絡</span>的全<span lang="ja">部潛能</span></p>
+</div>
+</div>
+</body>
+</html>
+
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048.html
new file mode 100644
index 00000000000..c9070bedb3b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration line-through vertical-rl</title>
+<meta name="assert" content="text-decoration:line-through; there is a solid vertical line through the centre of the characters">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:line-through;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a solid vertical line through the centre of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-rl">
+
+<div>
+<p lang="zh"><span>引发网络的全部潜能引發網絡的全部潛能</span></p>
+<p lang="ja"><span>可能性を最大限に導き出すために</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048a.html
new file mode 100644
index 00000000000..7d598af677e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048a.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration line-through vertical-rl hor scripts</title>
+<meta name="assert" content="text-decoration:line-through; there is a solid vertical line through the centre of the characters">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:line-through;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a solid vertical line through the centre of the characters.<br/><span class="hint">Skip the test if the text the text fails for the Chinese line, or is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-rl">
+
+<div>
+<p lang="zh"><span>引发网络的全部潜能引發網絡的全部潛能</span></p>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
+<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
+<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
+<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
+<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-049.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-049.html
new file mode 100644
index 00000000000..b8fb70dcd79
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-049.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration vertical-rl over+under</title>
+<meta name="assert" content="text-decoration:underline overline; there is a vertical line on both sides of the characters">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:underline overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a vertical line on both sides of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-rl">
+<div>
+<p lang="zh"><span>引发网络的全部潜能引發網絡的全部潛能</span></p>
+<p lang="ja"><span>可能性を最大限に導き出すために</span></p>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
+<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
+<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
+<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
+<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-082.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-082.html
new file mode 100644
index 00000000000..a1d5497ad2a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-082.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration underline overline tblr</title>
+<meta name="assert" content="text-decoration:underline overline; there is a line on both sides of the characters">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:underline overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line on both sides of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-lr">
+<div>
+<p lang="mn"><span>ᠣᠯᠠᠨ ᠦᠨᠳᠦᠰᠦᠲᠡᠨ ᠦ ᠪᠣᠯᠭᠠᠬᠤ ᠦᠢᠯᠡ ᠠᠵᠢᠯᠯᠠᠭ᠎ᠠ</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-085.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-085.html
new file mode 100644
index 00000000000..30522cf331f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-085.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration line-through tblr</title>
+<meta name="assert" content="text-decoration:line-through; there is a solid vertical line through the centre of the characters.">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+:lang(mn) { font-family: "Mongolian Baiti", "Noto sans Mongolian", serif; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:line-through;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a solid vertical line through the centre of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:vertical-lr">
+<div>
+<p lang="mn"><span>ᠣᠯᠠᠨ ᠦᠨᠳᠦᠰᠦᠲᠡᠨ ᠦ ᠪᠣᠯᠭᠠᠬᠤ ᠦᠢᠯᠡ ᠠᠵᠢᠯᠯᠠᠭ᠎ᠠ</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090.html
new file mode 100644
index 00000000000..580fb98c879
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration underline sideways-rl</title>
+<meta name="assert" content="text-decoration:underline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:underline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the LEFT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-rl">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090a.html
new file mode 100644
index 00000000000..d9ac430079b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090a.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration underline sideways-rl non-Latin</title>
+<meta name="assert" content="text-decoration:underline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:underline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the LEFT of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English text, or if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-rl">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
+<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
+<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
+<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
+<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091.html
new file mode 100644
index 00000000000..2097792f1c3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration overline sideways-rl</title>
+<meta name="assert" content="text-decoration:overline; there is a line to the RIGHT of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the RIGHT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-rl">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091a.html
new file mode 100644
index 00000000000..ee2464c5263
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091a.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration overline sideways-rl non-Latin</title>
+<meta name="assert" content="text-decoration:overline; there is a line to the RIGHT of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the RIGHT of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English sentence, or if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-rl">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
+<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
+<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
+<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
+<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092.html
new file mode 100644
index 00000000000..5ba99f0de3b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration line-through sideways-rl</title>
+<meta name="assert" content="text-decoration:line-through; there is a line through the CENTRE of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:line-through;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line through the CENTRE of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-rl">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092a.html
new file mode 100644
index 00000000000..5f034b3e729
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092a.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration line-through sideways-rl non-Latin</title>
+<meta name="assert" content="text-decoration:line-through; there is a line through the CENTRE of the characters for horizontal scripts set vertically using writing-mode: sideways-rl">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:line-through;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line through the CENTRE of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English sentence, or if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-rl">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
+<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
+<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
+<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
+<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-095a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-095a.html
new file mode 100644
index 00000000000..dc4ae513d12
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-095a.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration underline sideways-lr non-Latin</title>
+<meta name="assert" content="text-decoration:underline; there is a line to the RIGHT of the characters for horizontal scripts set vertically using writing-mode: sideways-lr">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:underline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the RIGHT of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English sentence, or if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-lr">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
+<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
+<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
+<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
+<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096.html
new file mode 100644
index 00000000000..b7c0dc4878b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration overline sideways-lr</title>
+<meta name="assert" content="text-decoration:overline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: sideways-lr">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the LEFT of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-lr">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096a.html
new file mode 100644
index 00000000000..a1f13e57caf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096a.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration overline sideways-lr non-Latin</title>
+<meta name="assert" content="text-decoration:overline; there is a line to the LEFT of the characters for horizontal scripts set vertically using writing-mode: sideways-lr">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:overline;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line to the LEFT of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English sentence, or if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-lr">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
+<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
+<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
+<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
+<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097.html
new file mode 100644
index 00000000000..4d352e4da17
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration line-through sideways-lr</title>
+<meta name="assert" content="text-decoration:line-through; there is a line through the CENTRE of the characters for horizontal scripts set vertically using writing-mode: sideways-lr">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:line-through;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line through the CENTRE of the characters.<br/><span class="hint">Skip the test if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-lr">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097a.html
new file mode 100644
index 00000000000..64b3249dd6b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097a.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>text-decoration line-through sideways-lr non-Latin</title>
+<meta name="assert" content="text-decoration:line-through; there is a line through the CENTRE of the characters for horizontal scripts set vertically using writing-mode: sideways-lr">
+<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#line-decoration">
+<!-- cosmetic styling -->
+<style>
+#htmlsrc { margin: 2em; }
+#htmlsrc p {
+ font-size: 28px;
+ border-radius: 5px;
+ line-height: 1.5;
+ }
+.hint { color: brown; font-family: sans-serif; font-size: 90%; }
+.hint:before { content: '❗ '; }
+</style>
+<!-- the test -->
+<style>
+div span {
+text-decoration:line-through;
+}</style>
+</head>
+<body>
+<p class="instructions">Test passes if there is a line through the CENTRE of the characters for all lines.<br/><span class="hint">Skip the test if it fails for the English sentence, or if the text is not vertical.</span></p>
+<div id="htmlsrc" style="writing-mode:sideways-lr">
+
+<div>
+<p lang="en"><span>The quick brown fox jumps over the lazy dog.</span></p>
+<p lang="ar"><span>وب جهانی را به‌درستی جهانی سازیم!</span></p>
+<p lang="my"><span>အပြည်ပြည်ဆိုင်ရာလှုပ်ရှားမှု၊</span></p>
+<p lang="th"><span>กูกินกุ้งปิ้งอยู่ในถ้ำ กูกินกุ้งปิ้งอยู่ในถ้ำ</span></p>
+<p lang="bo"><span>འཛམ་གླིང་ཡོངས་འབྲེལ་འདི་ ངོ་མ་འབད་རང་ འཛམ་གླིང་ཡོངས་ལུ་ཁྱབ་ཚུགསཔ་བཟོ་བ།</span></p>
+<p lang="hi"><span>वर्ल्ड वाईड वेब को सचमुच विश्वव्यापी बना रहें हैं !</span></p-->
+</div> </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-008.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-008.html
new file mode 100644
index 00000000000..9a3a95ba382
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-008.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: overflow-wrap:break-word + white-space:break-spaces</title>
+<link rel="author" title="Javier Fernandez" href="mailto:jfernandez@igalia.com" />
+<link rel="help" title="3. White Space and Wrapping: the white-space property" href="https://drafts.csswg.org/css-text-3/#white-space-property">
+<link rel="help" title="5.5. Overflow Wrapping: the overflow-wrap/word-wrap property " href="https://drafts.csswg.org/css-text-3/#overflow-wrap-property">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-overflow-wrap-break-word">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-white-space-break-spaces">
+<meta name="flags" content="ahem">
+<link rel="match" href="reference/overflow-wrap-break-word-001-ref.html">
+<meta name="assert" content="break-word + break-spaces do allow a break
+between the last character of a word and the first space of a sequence of preserved spaces
+if there are no other wrapping opportunities earlier in the line">
+<style>
+div {
+ position: relative;
+ font-family: Ahem;
+ font-size: 25px;
+ line-height: 1em;
+}
+.red {
+ position: absolute;
+ color: green;
+ width: 100px;
+ height: 100px;
+ white-space: pre;
+}
+.test {
+ background: green;
+ color: red;
+ width: 4ch;
+ z-index: -1;
+
+ white-space: break-spaces;
+ overflow-wrap: break-word;
+</style>
+
+<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+<div class="red">XXXX<br> <br>XXXX<br></div>
+<div class="test">XXXX XXXX </div>
diff --git a/tests/wpt/web-platform-tests/css/css-text/white-space/break-spaces-009.html b/tests/wpt/web-platform-tests/css/css-text/white-space/break-spaces-009.html
new file mode 100644
index 00000000000..9ecaa919ddf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-text/white-space/break-spaces-009.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Text Test: word-break:break-word + white-space:break-spaces</title>
+<link rel="author" title="Javier Fernandez" href="mailto:jfernandez@igalia.com" />
+<link rel="help" title="3. White Space and Wrapping: the white-space property" href="https://drafts.csswg.org/css-text-3/#white-space-property">
+<link rel="help" title="5.2. Breaking Rules for Letters: the word-break property" href="https://drafts.csswg.org/css-text-3/#word-break-property">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-white-space-break-spaces">
+<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-word-break-break-word">
+<meta name="flags" content="ahem">
+<link rel="match" href="reference/white-space-break-spaces-005-ref.html">
+<meta name="assert" content="break-word + break-spaces do allow a break
+between the last character of a word and the first space of a sequence of preserved spaces
+if there are no other wrapping opportunities earlier in the line">
+<style>
+div {
+ position: relative;
+ font: 25px/1 Ahem;
+}
+.red {
+ position: absolute;
+ color: green;
+ width: 100px;
+ height: 100px;
+ white-space: pre;
+}
+.test {
+ background: green;
+ color: red;
+ width: 4ch;
+ z-index: -1;
+
+ white-space: break-spaces;
+ word-break: break-word;
+</style>
+
+<p>Test passes if there is a <strong>filled green square</strong> and <strong>no red</strong>.</p>
+<div class="red">XXXX<br> <br>XXXX<br></div>
+<div class="test">XXXX XXXX </div>
diff --git a/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-001-ref.html b/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-001-ref.html
index 1f1761d5a3d..cf59a70890a 100644
--- a/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-001-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-001-ref.html
@@ -4,7 +4,7 @@
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
<style>
div {
- font-family: monospace;
+ font-family: Ahem;
color: transparent;
font-size: 50px;
background: green;
diff --git a/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-002-ref.html b/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-002-ref.html
index a97a089153d..78ee28b61fd 100644
--- a/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-002-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-002-ref.html
@@ -6,7 +6,7 @@
div {
color: transparent;
background: blue;
- font-family: monospace;
+ font-family: Ahem;
font-size: 50px;
width: 3ch;
}
diff --git a/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-003-ref.html b/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-003-ref.html
index 2ead6c8c7ae..1d9ac7abc4a 100644
--- a/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-003-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-003-ref.html
@@ -4,6 +4,7 @@
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/">
<style>
div {
+ font-family: Ahem;
color: transparent;
font-size: 50px;
background: green;
diff --git a/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-004-ref.html b/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-004-ref.html
index 6b2d4b49d53..34757067b15 100644
--- a/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-004-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-text/white-space/reference/white-space-intrinsic-size-004-ref.html
@@ -9,7 +9,7 @@ aside {
}
div {
color: transparent;
- font-family: monospace;
+ font-family: Ahem;
font-size: 50px;
width: 5ch;
}
diff --git a/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-001.html b/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-001.html
index 22514ed669f..9974041c80a 100644
--- a/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-001.html
+++ b/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-001.html
@@ -15,7 +15,7 @@ aside {
}
aside:last-of-type { overflow-wrap: break-word; }
div {
- font-family: monospace;
+ font-family: Ahem;
color: transparent;
font-size: 50px;
width: 0ch;
diff --git a/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-002.html b/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-002.html
index ce222d89879..d105756d0ba 100644
--- a/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-002.html
+++ b/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-002.html
@@ -19,7 +19,7 @@ aside:last-of-type {
}
div {
color: transparent;
- font-family: monospace;
+ font-family: Ahem;
font-size: 50px;
width: 3ch;
/* both floats should take the full 3ch,
diff --git a/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-003.html b/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-003.html
index 50c1d1aca6d..fca1ec39ed0 100644
--- a/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-003.html
+++ b/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-003.html
@@ -15,6 +15,7 @@ aside {
}
div {
color: transparent;
+ font-family: Ahem;
font-size: 50px;
width: 0ch;
}
diff --git a/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-004.html b/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-004.html
index 21c0bd66cb5..510a5c5d141 100644
--- a/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-004.html
+++ b/tests/wpt/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-004.html
@@ -17,7 +17,7 @@ aside {
aside:last-of-type { overflow-wrap: break-word; }
div {
color: transparent;
- font-family: monospace;
+ font-family: Ahem;
font-size: 50px;
width: 3ch; /* enough room for both floats if their max-content size does not include the preserved spaces,
but not enough if they do, causing a line break in that case. */
diff --git a/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/resources/helper.js b/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/resources/helper.js
index 0d82811bcee..09a8aa7846c 100644
--- a/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/resources/helper.js
+++ b/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/resources/helper.js
@@ -3,13 +3,18 @@ const all_features = document.featurePolicy.allowedFeatures();
// 'popups' is nonsensical in this test and it is not possible to test 'scripts'
// within this test model.
-const ignore_features = ["popups", "scripts"];
+const ignore_features_for_auxilary_context = ["popups", "scripts"];
+
+// Feature-policies that represent specific sandbox flags.
+const sandbox_features = [
+ "forms", "modals", "orientation-lock", "pointer-lock", "popups",
+ "presentation", "scripts", "top-navigation"];
// TODO(ekaramad): Figure out different inheritance requirements for different
// policies.
// Features which will be tested for propagation to auxiliary contexts.
const features_that_propagate = all_features.filter(
- (feature) => !ignore_features.includes(feature));
+ (feature) => !ignore_features_for_auxilary_context.includes(feature));
var last_feature_message = null;
var on_new_feature_callback = null;
@@ -29,10 +34,28 @@ function add_iframe(options) {
});
}
+// Resolves after |c| animation frames.
+function wait_for_raf_count(c) {
+ let count = c;
+ let callback = null;
+ function on_raf() {
+ if (--count === 0) {
+ callback();
+ return;
+ }
+ window.requestAnimationFrame(on_raf);
+ }
+ return new Promise( r => {
+ callback = r;
+ window.requestAnimationFrame(on_raf);
+ });
+}
+
// Returns a promise which is resolved with the next/already received message
// with feature update for |feature|. The resolved value is the state of the
-// feature |feature|.
-function feature_update(feature) {
+// feature |feature|. If |optional_timeout| is provided, after the given delay
+// (in terms of rafs) the promise is resolved with false.
+function feature_update(feature, optional_timeout_rafs) {
function reset_for_next_update() {
return new Promise((r) => {
const state = last_feature_message.state;
@@ -43,6 +66,13 @@ function feature_update(feature) {
if (last_feature_message && last_feature_message.feature === feature)
return reset_for_next_update();
+ if (optional_timeout_rafs) {
+ wait_for_raf_count(optional_timeout_rafs).then (() => {
+ last_feature_message = {state: false};
+ on_new_feature_callback();
+ });
+ }
+
return new Promise((r) => on_new_feature_callback = r)
.then(() => reset_for_next_update());
}
diff --git a/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/sandbox-policies-in-allow-attribute.html b/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/sandbox-policies-in-allow-attribute.html
new file mode 100644
index 00000000000..a29d43e5fcc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/feature-policy/feature-policy-for-sandbox/sandbox-policies-in-allow-attribute.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+<div id="iframe-embedder"></div>
+<script src="./resources/helper.js"></script>
+<script>
+'use strict';
+
+const iframe_src = "/feature-policy/feature-policy-for-sandbox/resources/window_opener.html";
+
+promise_test( async () => {
+ for (const feature of sandbox_features) {
+ // For the test to work correctly we need "scripts";
+ const sandbox_flags = feature === "scripts" ? "" : "allow-scripts";
+ const iframe = await add_iframe(
+ {src: iframe_src, allow: `${feature} *`, sandbox: sandbox_flags});
+ iframe.contentWindow.postMessage({type: "feature", feature: feature}, "*");
+ const iframe_state = await feature_update(feature);
+ assert_true(iframe_state,
+ `'${feature}' should not be disabled in <iframe>.'`);
+ iframe.parentElement.removeChild(iframe);
+ }
+}, "Verify that when a sandbox related feature is enabled in 'allow' then " +
+ " the feature will be enabled regardless of sandbox attribute's value.");
+
+promise_test( async() => {
+ for (const feature of sandbox_features) {
+ const sandbox_flags = `allow-${feature} allow-scripts`;
+ const iframe = await add_iframe(
+ {src: iframe_src, allow: `${feature} 'none'`, sandbox: sandbox_flags});
+ iframe.contentWindow.postMessage({type: "feature", feature: feature}, "*");
+ // 'scripts' will block running code in the subframe and no update can be
+ // sent. A timeout determines the feature is disabled.
+ const timeout = (feature === "scripts") ? 10 : false;
+ const iframe_state = await feature_update(feature, timeout);
+ assert_false(iframe_state,
+ `'${feature}' should be disabled in <iframe>.'`);
+ iframe.parentElement.removeChild(iframe);
+ }
+}, "Verify that when a sandbox related feature is disabled in 'allow' then " +
+ " the feature will be disabled regardless of sandbox attribute's value.");
+</script>
+</body> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/feature-policy/reporting/legacy-image-formats-reporting.html b/tests/wpt/web-platform-tests/feature-policy/reporting/legacy-image-formats-reporting.html
deleted file mode 100644
index 6cd2e752eb9..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/reporting/legacy-image-formats-reporting.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <script src='/resources/testharness.js'></script>
- <script src='/resources/testharnessreport.js'></script>
-</head>
-<body>
- <img src="image.bmp">
- <script>
- var check_report_format = (reports, observer) => {
- let report = reports[0];
- assert_equals(report.type, "feature-policy-violation");
- assert_equals(report.url, document.location.href);
- assert_equals(report.body.featureId, "legacy-image-formats");
- assert_equals(report.body.disposition, "enforce");
- };
-
- async_test(t => {
- new ReportingObserver(t.step_func_done(check_report_format),
- {types: ['feature-policy-violation'], buffered: true}).observe();
- }, "Unsized-media Report Format");
- </script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/feature-policy/reporting/legacy-image-formats-reporting.html.headers b/tests/wpt/web-platform-tests/feature-policy/reporting/legacy-image-formats-reporting.html.headers
deleted file mode 100644
index 1003c32a445..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/reporting/legacy-image-formats-reporting.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Feature-Policy: legacy-image-formats 'none'
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html
index 6f0c4395950..b97de9ef2fd 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html
@@ -4,11 +4,14 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<body>
<script>
+ let nonce = token();
+
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "embed-same-origin";
+ let key = "embed-same-origin" + nonce;
let e = document.createElement('embed');
e.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
@@ -27,7 +30,7 @@
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "embed-same-site";
+ let key = "embed-same-site" + nonce;
let e = document.createElement('embed');
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
@@ -46,7 +49,7 @@
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "embed-cross-site";
+ let key = "embed-cross-site" + nonce;
let e = document.createElement('embed');
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html
index 2a0e8de8556..474962918b0 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html
@@ -4,11 +4,14 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<body>
<script>
+ let nonce = token();
+
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "object-same-origin";
+ let key = "object-same-origin" + nonce;
let e = document.createElement('object');
e.data = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
@@ -27,7 +30,7 @@
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "object-same-site";
+ let key = "object-same-site" + nonce;
let e = document.createElement('object');
e.data = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
@@ -46,7 +49,7 @@
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "object-cross-site";
+ let key = "object-cross-site" + nonce;
let e = document.createElement('object');
e.data = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html
index f88cf140d4e..1634a29f379 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html
@@ -4,11 +4,14 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<body></body>
<script>
-promise_test(t => {
+ let nonce = token();
+
+ promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-cross-site-same-origin";
+ let key = "redirect-cross-site-same-origin" + nonce;
let e = document.createElement('img');
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
@@ -34,7 +37,7 @@ promise_test(t => {
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-cross-site-same-site";
+ let key = "redirect-cross-site-same-site" + nonce;
let e = document.createElement('img');
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
@@ -60,7 +63,7 @@ promise_test(t => {
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-cross-site-cross-site";
+ let key = "redirect-cross-site-cross-site" + nonce;
let e = document.createElement('img');
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html
index 688c697ac93..7647a5b1c89 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html
@@ -4,11 +4,14 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<body></body>
<script>
-promise_test(t => {
+ let nonce = token();
+
+ promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-multiple-cross-site";
+ let key = "redirect-multiple-cross-site" + nonce;
let e = document.createElement('img');
e.src = "https://{{host}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-origin
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html
index bc79f7810a1..e83d6fd97e8 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html
@@ -4,11 +4,14 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<body></body>
<script>
-promise_test(t => {
+ let nonce = token();
+
+ promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-multiple-same-site";
+ let key = "redirect-multiple-same-site" + nonce;
let e = document.createElement('img');
e.src = "https://{{host}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-origin
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html
index a5323921c26..2033eab5979 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html
@@ -4,11 +4,14 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<body></body>
<script>
-promise_test(t => {
+ let nonce = token();
+
+ promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-same-origin-same-origin";
+ let key = "redirect-same-origin-same-origin" + nonce;
let e = document.createElement('img');
e.src = "/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
@@ -35,7 +38,7 @@ promise_test(t => {
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-same-origin-same-site";
+ let key = "redirect-same-origin-same-site" + nonce;
let e = document.createElement('img');
e.src = "/xhr/resources/redirect.py?location=https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
@@ -62,7 +65,7 @@ promise_test(t => {
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-same-origin-cross-site";
+ let key = "redirect-same-origin-cross-site" + nonce;
let e = document.createElement('img');
e.src = "/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html
index 92749ae0b80..c5b6830abed 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html
@@ -4,11 +4,14 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<body></body>
<script>
-promise_test(t => {
+ let nonce = token();
+
+ promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-same-site-same-origin";
+ let key = "redirect-same-site-same-origin" + nonce;
let e = document.createElement('img');
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
@@ -35,7 +38,7 @@ promise_test(t => {
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-same-site-same-site";
+ let key = "redirect-same-site-same-site" + nonce;
let e = document.createElement('img');
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
@@ -62,7 +65,7 @@ promise_test(t => {
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "redirect-same-site-cross-site";
+ let key = "redirect-same-site-cross-site" + nonce;
let e = document.createElement('img');
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html
index 5b7ee772b61..590a6c33475 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html
@@ -4,11 +4,15 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<body>
<script>
+ let nonce = token();
+ let key = "serviceworker-same-origin" + nonce;
+
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
- navigator.serviceWorker.register('https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=serviceworker-same-origin').then(function(registration) {
+ navigator.serviceWorker.register('https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=' + key).then(function(registration) {
test_same_origin();
// uninstall the serviceworker after the test
@@ -34,7 +38,6 @@
function test_same_origin(){
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "serviceworker-same-origin";
let expected = {"dest":"serviceworker", "site":"same-origin", "user":"?F", "mode": "same-origin"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text())
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html
index cfeadd8d8e2..a1c558ad35d 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html
@@ -4,13 +4,16 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<script>
+ let nonce = token();
+ let key = "sharedworker-same-origin" + nonce;
// TESTS //
if (window.Worker) {
// Same-Origin test
- var sharedWorker = new SharedWorker('/fetch/sec-metadata/resources/record-header.py?file=sharedworker-same-origin');
+ var sharedWorker = new SharedWorker('/fetch/sec-metadata/resources/record-header.py?file=' + key);
sharedWorker.port.start();
sharedWorker.onerror = function(){
@@ -25,7 +28,6 @@
function test_same_origin(){
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "sharedworker-same-origin";
let expected = {"dest":"sharedworker", "site":"same-origin", "user":"?F", "mode": "same-origin"};
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html
index 4ae12662a29..46f64f49bde 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html
@@ -4,11 +4,14 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<body></body>
<script>
+ let nonce = token();
+
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "style-same-origin";
+ let key = "style-same-origin" + nonce;
let e = document.createElement('link');
e.rel = "stylesheet";
@@ -28,7 +31,7 @@
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "style-same-site";
+ let key = "style-same-site" + nonce;
let e = document.createElement('link');
e.rel = "stylesheet";
@@ -48,7 +51,7 @@
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "style-cross-site";
+ let key = "style-cross-site" + nonce;
let e = document.createElement('link');
e.rel = "stylesheet";
@@ -68,7 +71,7 @@
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "style-same-origin";
+ let key = "style-same-origin-cors" + nonce;
let e = document.createElement('link');
e.rel = "stylesheet";
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html
index 89933f22c39..817e4845edb 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html
@@ -4,9 +4,12 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<body>
</body>
<script>
+ let nonce = token();
+
function createVideoElement() {
let el = document.createElement('video');
el.src = "/media/movie_5.mp4";
@@ -25,9 +28,10 @@
promise_test(t => {
return new Promise((resolve, reject) => {
+ let key = "track-same-origin" + nonce;
let video = createVideoElement();
let el = createTrack();
- el.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-same-origin";
+ el.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
el.onload = t.step_func(_ => {
expected = {
"dest": "track",
@@ -35,7 +39,7 @@
"user": "?F",
"mode": "cors" // Because the `video` element has `crossorigin`
};
- fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-same-origin")
+ fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text())
.then(text => assert_header_equals(text, expected))
.then(_ => resolve());
@@ -47,9 +51,10 @@
promise_test(t => {
return new Promise((resolve, reject) => {
+ let key = "track-same-site" + nonce;
let video = createVideoElement();
let el = createTrack();
- el.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-same-site";
+ el.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
el.onload = t.step_func(_ => {
expected = {
"dest": "track",
@@ -57,7 +62,7 @@
"user": "?F",
"mode": "cors" // Because the `video` element has `crossorigin`
};
- fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-same-site")
+ fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text())
.then(text => assert_header_equals(text, expected))
.then(resolve)
@@ -71,9 +76,10 @@
promise_test(t => {
return new Promise((resolve, reject) => {
+ let key = "track-cross-site" + nonce;
let video = createVideoElement();
let el = createTrack();
- el.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-cross-site";
+ el.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
el.onload = t.step_func(_ => {
expected = {
"dest": "track",
@@ -81,7 +87,7 @@
"user": "?F",
"mode": "cors" // Because the `video` element has `crossorigin`
};
- fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-cross-site")
+ fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text())
.then(text => assert_header_equals(text, expected))
.then(resolve)
@@ -94,13 +100,14 @@
promise_test(t => {
return new Promise((resolve, reject) => {
+ let key = "track-same-origin-cors" + nonce;
let video = createVideoElement();
// Unset `crossorigin` to change the CORS mode:
video.crossOrigin = undefined;
let el = createTrack();
- el.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-same-origin";
+ el.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
el.onload = t.step_func(_ => {
expected = {
"dest":"track",
@@ -108,7 +115,7 @@
"user":"?F",
"mode": "same-origin"
};
- fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-same-origin")
+ fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
.then(response => response.text())
.then(text => assert_header_equals(text, expected))
.then(_ => resolve());
diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html
index 89be6f0b5a1..dc21d0324f4 100644
--- a/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html
@@ -4,10 +4,13 @@
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=/fetch/sec-metadata/resources/helper.js></script>
+<script src=/common/utils.js></script>
<script>
+ let nonce = token();
+
promise_test(t => {
return new Promise((resolve, reject) => {
- let key = "worker-same-origin";
+ let key = "worker-same-origin" + nonce;
let w = new Worker("/fetch/sec-metadata/resources/record-header.py?file=" + key);
w.onmessage = e => {
let expected = {"dest":"worker", "site":"same-origin", "user":"?F", "mode": "same-origin"};
diff --git a/tests/wpt/web-platform-tests/interfaces/CSP.idl b/tests/wpt/web-platform-tests/interfaces/CSP.idl
index 4b53e3a3a40..e427ae8801a 100644
--- a/tests/wpt/web-platform-tests/interfaces/CSP.idl
+++ b/tests/wpt/web-platform-tests/interfaces/CSP.idl
@@ -3,6 +3,20 @@
// (https://github.com/tidoust/reffy-reports)
// Source: Content Security Policy Level 3 (https://w3c.github.io/webappsec-csp/)
+interface CSPViolationReportBody : ReportBody {
+ readonly attribute USVString documentURL;
+ readonly attribute USVString? referrer;
+ readonly attribute USVString? blockedURL;
+ readonly attribute DOMString effectiveDirective;
+ readonly attribute DOMString originalPolicy;
+ readonly attribute USVString? sourceFile;
+ readonly attribute DOMString? sample;
+ readonly attribute SecurityPolicyViolationEventDisposition disposition;
+ readonly attribute unsigned short statusCode;
+ readonly attribute unsigned long? lineNumber;
+ readonly attribute unsigned long? columnNumber;
+};
+
enum SecurityPolicyViolationEventDisposition {
"enforce", "report"
};
diff --git a/tests/wpt/web-platform-tests/quirks/percentage-height-calculation.html b/tests/wpt/web-platform-tests/quirks/percentage-height-calculation.html
index 987cc245ca2..e56a03b4b41 100644
--- a/tests/wpt/web-platform-tests/quirks/percentage-height-calculation.html
+++ b/tests/wpt/web-platform-tests/quirks/percentage-height-calculation.html
@@ -56,6 +56,10 @@
{style:'', body:'<img id=test src="{png}" height=100% border=10>', q:184, s:1},
{style:'', body:'<table id=test height=100%><tr><td></table>', q:184, s:6},
{style:'#foo { height:100px } #test { height:100% }', body:'<div id=foo><div><div id=test></div></div></div>', q:100, s:0},
+ {style:'#foo { height:100px } #grid { display:grid } #test { height:100% }', body:'<div id=foo><div id=grid><div id=test></div></div></div>', q:0, s:0},
+ {style:'#foo { height:100px } #grid { display:inline-grid } #test { height:100% }', body:'<div id=foo><div id=grid><div id=test></div></div></div>', q:0, s:0},
+ {style:'#foo { height:100px } #flex { display:flex } #test { height:100% }', body:'<div id=foo><div id=flex><div id=test></div></div></div>', q:0, s:0},
+ {style:'#foo { height:100px } #flex { display:inline-flex } #test { height:100% }', body:'<div id=foo><div id=flex><div id=test></div></div></div>', q:0, s:0},
{style:'#foo { position:absolute } #test { height:100% }', body:'<div id=foo><div><div id=test></div></div></div>', q:0, s:0},
{style:'#foo { position:relative } #test { height:100% }', body:'<div id=foo><div><div id=test></div></div></div>', q:184, s:0},
{style:'#foo { height:100px } #test { height:100%; position:absolute }', body:'<div id=foo><div><div id=test></div></div></div>', q:200, s:200},
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-id.html b/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-id.html
index 98be63d923c..4c16547ca78 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-id.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-id.html
@@ -246,6 +246,7 @@ promise_test(async (t) => {
3. Fire an event named error with an OperationError exception at channel.
4. Fire a simple event named close at channel.
*/
+/* TEST DISABLED - it takes so long, it times out.
promise_test(async (t) => {
const resolver = new Resolver();
// Takes the DTLS server role
@@ -339,4 +340,6 @@ promise_test(async (t) => {
await resolver;
}, 'Channel ID exhaustion handling (before and after connection establishment)');
+END DISABLED TEST */
+
</script>
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-transceivers.https.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-transceivers.https.html
index 9b3a9a85413..73668e7be6e 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-transceivers.https.html
+++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-transceivers.https.html
@@ -210,10 +210,10 @@ promise_test(async t => {
const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2);
const transceiver = trackEvent.transceiver;
assert_equals(transceiver.currentDirection, null,
- 'SRD(offer): transciever.currentDirection is null');
+ 'SRD(offer): transceiver.currentDirection is null');
await pc2.setLocalDescription(await pc2.createAnswer());
assert_equals(transceiver.currentDirection, 'recvonly',
- 'SLD(answer): transciever.currentDirection is recvonly');
+ 'SLD(answer): transceiver.currentDirection is recvonly');
}, 'setLocalDescription(answer): transceiver.currentDirection is recvonly');
promise_test(async t => {
@@ -223,10 +223,10 @@ promise_test(async t => {
const pc2 = createPeerConnectionWithCleanup(t);
await exchangeOffer(pc1, pc2);
assert_equals(transceiver.currentDirection, null,
- 'SLD(offer): transciever.currentDirection is null');
+ 'SLD(offer): transceiver.currentDirection is null');
await exchangeAnswer(pc1, pc2);
assert_equals(transceiver.currentDirection, 'sendonly',
- 'SRD(answer): transciever.currentDirection is sendonly');
+ 'SRD(answer): transceiver.currentDirection is sendonly');
}, 'setLocalDescription(answer): transceiver.currentDirection is sendonly');
promise_test(async t => {