aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2019-10-28 16:05:39 -0400
committerGitHub <noreply@github.com>2019-10-28 16:05:39 -0400
commit6f4c6712cba4b6a72f93d6ed776263a0243a3196 (patch)
tree6ab50e2543c3c20a9164efc9f87e7adcf2d64740
parentbb2c03a6004b839270b5a830bc9d83afd378394f (diff)
parent9c6bf785bd92146a02d6637d75d62cbbad8930f2 (diff)
downloadservo-6f4c6712cba4b6a72f93d6ed776263a0243a3196.tar.gz
servo-6f4c6712cba4b6a72f93d6ed776263a0243a3196.zip
Auto merge of #24568 - servo-wpt-sync:wpt_update_28-10-2019, r=servo-wpt-sync
Sync WPT with upstream (28-10-2019) Automated downstream sync of changes from upstream as of 28-10-2019. [no-wpt-sync] r? @servo-wpt-sync
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini6
-rw-r--r--tests/wpt/metadata/MANIFEST.json418
-rw-r--r--tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini1
-rw-r--r--tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini17
-rw-r--r--tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini7
-rw-r--r--tests/wpt/metadata/css/cssom-view/matchMedia.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/matchMedia.xht.ini18
-rw-r--r--tests/wpt/metadata/css/cssom-view/matchMediaAddListener-handleEvent.html.ini10
-rw-r--r--tests/wpt/metadata/css/cssom-view/matchMediaAddListener.html.ini5
-rw-r--r--tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini2
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini17
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini3
-rw-r--r--tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini9
-rw-r--r--tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.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/browsers/history/the-history-interface/traverse_the_history_2.html.ini4
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini4
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.ini13
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini2
-rw-r--r--tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini4
-rw-r--r--tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini4
-rw-r--r--tests/wpt/metadata/navigation-timing/nav2_test_document_replaced.html.ini2
-rw-r--r--tests/wpt/metadata/resource-timing/nested-context-navigations-iframe.html.ini2
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini1
-rw-r--r--tests/wpt/metadata/webmessaging/with-ports/018.html.ini5
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/017.html.ini5
-rw-r--r--tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini1
-rw-r--r--tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini1
-rw-r--r--tests/wpt/web-platform-tests/.azure-pipelines.yml16
-rw-r--r--tests/wpt/web-platform-tests/.pyup.yml74
-rw-r--r--tests/wpt/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html1
-rw-r--r--tests/wpt/web-platform-tests/compat/webkit-box-removing-triggering-anonymous-merge.html9
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/script-src/scripthash-default-src.sub.html3
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/style-src/stylehash-default-src.sub.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1-ref.html43
-rw-r--r--tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1.html62
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-justify-stretch.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align.html222
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1-ref.html43
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1.html60
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/multicol-clip-scrolled-content-001.html53
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html52
-rw-r--r--tests/wpt/web-platform-tests/css/css-overflow/clip-001-ref.html27
-rw-r--r--tests/wpt/web-platform-tests/css/css-overflow/clip-001.html31
-rw-r--r--tests/wpt/web-platform-tests/css/css-overflow/dynamic-visible-to-clip-001.html36
-rw-r--r--tests/wpt/web-platform-tests/css/css-pseudo/parsing/tree-abiding-pseudo-elements.html54
-rw-r--r--tests/wpt/web-platform-tests/css/css-scoping/slotted-parsing.html23
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html7
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html7
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html7
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html7
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/test-utils.js10
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-shapes/spec-examples/support/spec-example-utils.js1
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/outline-018.html2
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-001.html21
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent.html106
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener.html121
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-with-empty-string.html12
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/MediaQueryListEvent.html24
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/matchMedia.html79
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/matchMedia.xht188
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener-handleEvent.html136
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener.html65
-rw-r--r--tests/wpt/web-platform-tests/css/cssom-view/resources/matchMedia.js27
-rw-r--r--tests/wpt/web-platform-tests/css/support/parsing-testcommon.js59
-rw-r--r--tests/wpt/web-platform-tests/css/support/width-keyword-classes.css (renamed from tests/wpt/web-platform-tests/css/css-grid/alignment/support/width-keyword-classes.css)0
-rw-r--r--tests/wpt/web-platform-tests/docs/requirements.txt5
-rw-r--r--tests/wpt/web-platform-tests/docs/running-tests/android_webview.md14
-rw-r--r--tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md4
-rw-r--r--tests/wpt/web-platform-tests/docs/writing-tests/testharness.md5
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html1
-rw-r--r--tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.https.sub.html12
-rw-r--r--tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.sub.html2
-rw-r--r--tests/wpt/web-platform-tests/fetch/metadata/portal.tentative.https.sub.html6
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html6
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html7
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html23
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html70
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.headers (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.jsbin142 -> 156 bytes
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.jsbin142 -> 156 bytes
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js2
-rw-r--r--tests/wpt/web-platform-tests/interfaces/media-capabilities.idl5
-rw-r--r--tests/wpt/web-platform-tests/intersection-observer/isIntersecting-change-events.html2
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-SecureContext.html15
-rw-r--r--tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_open.html2
-rw-r--r--tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_replaced.html2
-rw-r--r--tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html2
-rw-r--r--tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html1
-rw-r--r--tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html1
-rw-r--r--tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html1
-rw-r--r--tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_server.html1
-rw-r--r--tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html1
-rw-r--r--tests/wpt/web-platform-tests/preload/download-resources.html2
-rw-r--r--tests/wpt/web-platform-tests/preload/link-header-on-subresource.html2
-rw-r--r--tests/wpt/web-platform-tests/preload/link-header-preload-imagesrcset.html2
-rw-r--r--tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html2
-rw-r--r--tests/wpt/web-platform-tests/preload/link-header-preload.html2
-rw-r--r--tests/wpt/web-platform-tests/preload/onerror-event.html2
-rw-r--r--tests/wpt/web-platform-tests/preload/onload-event.html2
-rw-r--r--tests/wpt/web-platform-tests/preload/preload-with-type.html2
-rw-r--r--tests/wpt/web-platform-tests/preload/single-download-late-used-preload.html1
-rw-r--r--tests/wpt/web-platform-tests/server-timing/navigation_timing_idl.https.html2
-rw-r--r--tests/wpt/web-platform-tests/server-timing/resource_timing_idl.https.html2
-rw-r--r--tests/wpt/web-platform-tests/service-workers/service-worker/referer-toplevel-script-fetch.https.html31
-rw-r--r--tests/wpt/web-platform-tests/tools/ci/azure/pip_install.yml1
-rwxr-xr-xtests/wpt/web-platform-tests/tools/ci/ci_wptrunner_infrastructure.sh2
-rw-r--r--tests/wpt/web-platform-tests/tools/ci/jobs.py9
-rwxr-xr-xtests/wpt/web-platform-tests/tools/ci/taskcluster-run.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/requirements_mypy.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst26
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt6
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py6
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py6
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py12
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py6
-rwxr-xr-xtests/wpt/web-platform-tests/update-built-tests.sh2
-rw-r--r--tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html2
-rw-r--r--tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html2
-rw-r--r--tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html2
-rw-r--r--tests/wpt/web-platform-tests/webmessaging/with-ports/020.html2
-rw-r--r--tests/wpt/web-platform-tests/webmessaging/with-ports/021.html2
-rw-r--r--tests/wpt/web-platform-tests/webmessaging/without-ports/020.html2
-rw-r--r--tests/wpt/web-platform-tests/webmessaging/without-ports/021.html2
-rw-r--r--tests/wpt/web-platform-tests/workers/constructors/SharedWorker/URLMismatchError.htm2
-rw-r--r--tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html2
-rw-r--r--tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html2
-rw-r--r--tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html2
-rw-r--r--tests/wpt/web-platform-tests/workers/semantics/multiple-workers/004.html2
-rw-r--r--tests/wpt/web-platform-tests/workers/semantics/navigation/001.html1
-rw-r--r--tests/wpt/web-platform-tests/workers/shared-worker-name-via-options.html1
150 files changed, 1798 insertions, 876 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 947e223fb28..3a3d15b8406 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,6 +14,9 @@
[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]
@@ -34,3 +37,6 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
+ [Revoke blob URL after calling fetch, fetch should succeed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 5f2f94c5c09..bd2e474e4c9 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -118425,6 +118425,18 @@
{}
]
],
+ "css/css-flexbox/flex-child-percent-basis-resize-1.html": [
+ [
+ "css/css-flexbox/flex-child-percent-basis-resize-1.html",
+ [
+ [
+ "/css/css-flexbox/flex-child-percent-basis-resize-1-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-flexbox/flex-container-margin.html": [
[
"css/css-flexbox/flex-container-margin.html",
@@ -125695,6 +125707,18 @@
{}
]
],
+ "css/css-grid/grid-child-percent-basis-resize-1.html": [
+ [
+ "css/css-grid/grid-child-percent-basis-resize-1.html",
+ [
+ [
+ "/css/css-grid/grid-child-percent-basis-resize-1-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-grid/grid-definition/fr-unit-with-percentage.html": [
[
"css/css-grid/grid-definition/fr-unit-with-percentage.html",
@@ -132967,6 +132991,18 @@
{}
]
],
+ "css/css-multicol/multicol-clip-scrolled-content-001.html": [
+ [
+ "css/css-multicol/multicol-clip-scrolled-content-001.html",
+ [
+ [
+ "/css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-multicol/multicol-collapsing-001.xht": [
[
"css/css-multicol/multicol-collapsing-001.xht",
@@ -135451,6 +135487,30 @@
{}
]
],
+ "css/css-overflow/clip-001.html": [
+ [
+ "css/css-overflow/clip-001.html",
+ [
+ [
+ "/css/css-overflow/clip-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-overflow/dynamic-visible-to-clip-001.html": [
+ [
+ "css/css-overflow/dynamic-visible-to-clip-001.html",
+ [
+ [
+ "/css/css-overflow/clip-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-overflow/float-with-relpos-and-transform.html": [
[
"css/css-overflow/float-with-relpos-and-transform.html",
@@ -244827,6 +244887,9 @@
"css/css-flexbox/dynamic-bsize-change-ref.html": [
[]
],
+ "css/css-flexbox/flex-child-percent-basis-resize-1-ref.html": [
+ []
+ ],
"css/css-flexbox/flex-direction-row-vertical-ref.html": [
[]
],
@@ -250878,15 +250941,15 @@
"css/css-grid/alignment/support/style-change.js": [
[]
],
- "css/css-grid/alignment/support/width-keyword-classes.css": [
- []
- ],
"css/css-grid/animation/grid-template-columns-001-ref.html": [
[]
],
"css/css-grid/animation/grid-template-rows-001-ref.html": [
[]
],
+ "css/css-grid/grid-child-percent-basis-resize-1-ref.html": [
+ []
+ ],
"css/css-grid/grid-definition/grid-template-columns-fit-content-001-ref.html": [
[]
],
@@ -252228,6 +252291,9 @@
"css/css-multicol/reference/multicol-basic-ref.html": [
[]
],
+ "css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html": [
+ []
+ ],
"css/css-multicol/support/1x1-green.png": [
[]
],
@@ -252396,6 +252462,9 @@
"css/css-overflow/META.yml": [
[]
],
+ "css/css-overflow/clip-001-ref.html": [
+ []
+ ],
"css/css-overflow/reference/input-scrollable-region-001-ref.html": [
[]
],
@@ -261435,6 +261504,9 @@
"css/support/test-tr.png": [
[]
],
+ "css/support/width-keyword-classes.css": [
+ []
+ ],
"css/tools/META.yml": [
[]
],
@@ -271419,6 +271491,18 @@
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-failure.html.headers": [
[]
],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html": [
+ []
+ ],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers": [
+ []
+ ],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html": [
+ []
+ ],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers": [
+ []
+ ],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html": [
[]
],
@@ -271512,7 +271596,7 @@
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-failure.https.html.headers": [
[]
],
- "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers": [
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.headers": [
[]
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.headers": [
@@ -318874,6 +318958,12 @@
{}
]
],
+ "css/css-grid/alignment/grid-align.html": [
+ [
+ "css/css-grid/alignment/grid-align.html",
+ {}
+ ]
+ ],
"css/css-grid/alignment/grid-alignment-implies-size-change-001.html": [
[
"css/css-grid/alignment/grid-alignment-implies-size-change-001.html",
@@ -322756,6 +322846,12 @@
{}
]
],
+ "css/css-pseudo/parsing/tree-abiding-pseudo-elements.html": [
+ [
+ "css/css-pseudo/parsing/tree-abiding-pseudo-elements.html",
+ {}
+ ]
+ ],
"css/css-regions/cssomview-apis-no-region-chain-001.html": [
[
"css/css-regions/cssomview-apis-no-region-chain-001.html",
@@ -331330,15 +331426,15 @@
{}
]
],
- "css/cssom-view/MediaQueryList-001.html": [
+ "css/cssom-view/MediaQueryList-addListener-handleEvent.html": [
[
- "css/cssom-view/MediaQueryList-001.html",
+ "css/cssom-view/MediaQueryList-addListener-handleEvent.html",
{}
]
],
- "css/cssom-view/MediaQueryList-with-empty-string.html": [
+ "css/cssom-view/MediaQueryList-addListener-removeListener.html": [
[
- "css/cssom-view/MediaQueryList-with-empty-string.html",
+ "css/cssom-view/MediaQueryList-addListener-removeListener.html",
{}
]
],
@@ -331636,23 +331732,9 @@
{}
]
],
- "css/cssom-view/matchMedia.xht": [
- [
- "css/cssom-view/matchMedia.xht",
- {
- "timeout": "long"
- }
- ]
- ],
- "css/cssom-view/matchMediaAddListener-handleEvent.html": [
- [
- "css/cssom-view/matchMediaAddListener-handleEvent.html",
- {}
- ]
- ],
- "css/cssom-view/matchMediaAddListener.html": [
+ "css/cssom-view/matchMedia.html": [
[
- "css/cssom-view/matchMediaAddListener.html",
+ "css/cssom-view/matchMedia.html",
{}
]
],
@@ -355497,9 +355579,9 @@
{}
]
],
- "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html": [
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html": [
[
- "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html",
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html",
{}
]
],
@@ -403892,6 +403974,12 @@
{}
]
],
+ "service-workers/service-worker/referer-toplevel-script-fetch.https.html": [
+ [
+ "service-workers/service-worker/referer-toplevel-script-fetch.https.html",
+ {}
+ ]
+ ],
"service-workers/service-worker/referer.https.html": [
[
"service-workers/service-worker/referer.https.html",
@@ -456696,7 +456784,7 @@
},
"paths": {
".azure-pipelines.yml": [
- "7d9bce28879793aadbb9aebaf4f47f451655b5ce",
+ "82d5a899193681673c5b3843cccdc5f1a67a17ed",
"support"
],
".codecov.yml": [
@@ -456732,7 +456820,7 @@
"support"
],
".pyup.yml": [
- "f31f24406307e014bdbe568f3aba8a23b0cb2a86",
+ "05bee451e2f8891f235313f867be88bbc3ff3a14",
"support"
],
".taskcluster.yml": [
@@ -461432,7 +461520,7 @@
"testharness"
],
"FileAPI/url/multi-global-origin-serialization.sub.html": [
- "bc30d9c258001a66adb4a7bc62f52d1ef6f23a31",
+ "0052b26fa62130fa953d27d2278aa350881f1059",
"testharness"
],
"FileAPI/url/resources/create-helper.html": [
@@ -468748,7 +468836,7 @@
"testharness"
],
"compat/webkit-box-removing-triggering-anonymous-merge.html": [
- "8506425548b6ff97491e388dc1a1f3830aa790fc",
+ "30c243b301fbafc55a03aae0286ba4c2b1983da1",
"testharness"
],
"compat/webkit-box-vertically-centered.html": [
@@ -488524,7 +488612,7 @@
"testharness"
],
"content-security-policy/script-src/scripthash-default-src.sub.html": [
- "6025a67179fe2e71c60e811e7740f84f16da5d2a",
+ "9e035af7e8b68941f61adfe4847a76ba71464ce4",
"testharness"
],
"content-security-policy/script-src/scripthash-ignore-unsafeinline.sub.html": [
@@ -488920,7 +489008,7 @@
"testharness"
],
"content-security-policy/style-src/stylehash-default-src.sub.html": [
- "c7604b297230757a9511ce42849d7e6a5f478f68",
+ "236fbdd06011eb67dc1dfd5a84b06deab6e6ad82",
"testharness"
],
"content-security-policy/style-src/stylenonce-allowed.sub.html": [
@@ -562343,6 +562431,14 @@
"2a1ab9c00cda7b78026eb04e31894bda43392a5d",
"reftest"
],
+ "css/css-flexbox/flex-child-percent-basis-resize-1-ref.html": [
+ "2ee6b077d3c6a9375029209a6ce202478db437a4",
+ "support"
+ ],
+ "css/css-flexbox/flex-child-percent-basis-resize-1.html": [
+ "7631e02a2261211aee6156d81cac9fdc4c2aea6d",
+ "reftest"
+ ],
"css/css-flexbox/flex-container-margin.html": [
"4ea7441cb07dbc419d562092e00d08f9d4e13e2e",
"reftest"
@@ -573996,7 +574092,11 @@
"testharness"
],
"css/css-grid/alignment/grid-align-justify-stretch.html": [
- "09c34f1c125da62e6716b0156ffa2e56010035a1",
+ "9feeed3e0ef2a17b68bce2b7d71cbdb14a06ee2d",
+ "testharness"
+ ],
+ "css/css-grid/alignment/grid-align.html": [
+ "a195945d1f97f0f4befc7a8d86a6291a2e1bab34",
"testharness"
],
"css/css-grid/alignment/grid-alignment-implies-size-change-001.html": [
@@ -575087,10 +575187,6 @@
"766d140d2b239bcc0c11e92481c5ff302d12db5c",
"support"
],
- "css/css-grid/alignment/support/width-keyword-classes.css": [
- "b5c84a5d5f4611ffe3570c60ab2f55cf093f8ca8",
- "support"
- ],
"css/css-grid/animation/grid-template-columns-001-ref.html": [
"1d53815f37dd9e1809757074ef4a9aad557877e2",
"support"
@@ -575119,6 +575215,14 @@
"c9ea9332a1e49f300c0520b798653869ad82b5c6",
"testharness"
],
+ "css/css-grid/grid-child-percent-basis-resize-1-ref.html": [
+ "2ee6b077d3c6a9375029209a6ce202478db437a4",
+ "support"
+ ],
+ "css/css-grid/grid-child-percent-basis-resize-1.html": [
+ "7fb5d8e117d9f0b7e23bf3921843e8ea29ef4522",
+ "reftest"
+ ],
"css/css-grid/grid-definition/fr-unit-with-percentage.html": [
"82c97abdd5740d466f049d8b45b67e241f204899",
"reftest"
@@ -579959,6 +580063,10 @@
"6b97ad4811e7c6554d5dc84e1d8b45a2d3efbe1d",
"reftest"
],
+ "css/css-multicol/multicol-clip-scrolled-content-001.html": [
+ "868e91de345cc7d27cb0690f49aa8db53bd33e29",
+ "reftest"
+ ],
"css/css-multicol/multicol-collapsing-001-ref.xht": [
"b5cd90c4704ed5cced1b741b42b71fabd850fe18",
"support"
@@ -581363,6 +581471,10 @@
"7d88977b059defbe00f1b7dbbb37b58f607cf28b",
"support"
],
+ "css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html": [
+ "d19ec1b93a14cc030c5b97de775438d8cebb94c9",
+ "support"
+ ],
"css/css-multicol/support/1x1-green.png": [
"b98ca0ba0a03c580ac339e4a3653539cfa8edc71",
"support"
@@ -581699,6 +581811,18 @@
"b9ba7acd150e5022de5c5208cd7f5f7d4dde93c3",
"support"
],
+ "css/css-overflow/clip-001-ref.html": [
+ "9ccdbf93c615f6078b82add5362e6032e9efe583",
+ "support"
+ ],
+ "css/css-overflow/clip-001.html": [
+ "84bf8cdae55431f00f01358c93712074029fa815",
+ "reftest"
+ ],
+ "css/css-overflow/dynamic-visible-to-clip-001.html": [
+ "08114d73b8bf6364d2ad647236fe5388f9eef1b2",
+ "reftest"
+ ],
"css/css-overflow/float-with-relpos-and-transform.html": [
"6024b7261750e0c5dc4a681dccee2ab72b83abca",
"reftest"
@@ -584115,6 +584239,10 @@
"94d0c42eca8cffbd5637a1039028925c19e1f851",
"reftest"
],
+ "css/css-pseudo/parsing/tree-abiding-pseudo-elements.html": [
+ "4997ae4f564d382fafd03e742a4b706d7e98fc80",
+ "testharness"
+ ],
"css/css-pseudo/placeholder-input-number-notref.html": [
"92ae71d83fcbea52e4120ed28af5438dd54d4509",
"support"
@@ -586664,7 +586792,7 @@
"testharness"
],
"css/css-scoping/slotted-parsing.html": [
- "6888693bbf40932d62a19b535adba22adbd43b19",
+ "2c55a0ded0918b585443f255e81a2d3a2eaa3350",
"testharness"
],
"css/css-scoping/slotted-placeholder-ref.html": [
@@ -587572,19 +587700,19 @@
"reftest"
],
"css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html": [
- "3c01c08a64cc0786ae89d1c69768e546bd1343b3",
+ "25c465dd3a61fe68723635c1e459be20ff1f1a18",
"testharness"
],
"css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html": [
- "ff13d25204ae12d63c61ade8fce27b570b64053c",
+ "3a30e678649f4293b5993358066614314a33e271",
"testharness"
],
"css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html": [
- "043aa82f4676a3b39d6f441e3f15704be617c003",
+ "2e52163bf2124f1715c77c51919f73620142316e",
"testharness"
],
"css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html": [
- "15eb1b8ce5929148fe759a005e73398d3c41ad4d",
+ "5224b23caef910a7aadbf18afba256cd925f4fbb",
"testharness"
],
"css/css-shapes/shape-outside/shape-image/reference/shape-image-000-ref.html": [
@@ -588104,7 +588232,7 @@
"support"
],
"css/css-shapes/shape-outside/supported-shapes/support/test-utils.js": [
- "616374d4937b2af0490fde1af42e3870ff3b5264",
+ "906fe6560884c05a65879d9b4dc847e359e56bf4",
"support"
],
"css/css-shapes/shape-outside/values/shape-image-threshold-000.html": [
@@ -588412,43 +588540,43 @@
"reftest"
],
"css/css-shapes/spec-examples/shape-outside-010.html": [
- "83897e9fe6bef26bf617efc7fddd1e3e4f0aad61",
+ "4f6a4f732d05b06812d2e0e877863a1a43343f6f",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-011.html": [
- "93bfbea9ff84cc39bd40bc9c641d1f5f1e0eb428",
+ "5f63c12cd9688effe9520f075efba3c1ac62c6be",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-012.html": [
- "71ef19ef1a6191c3fab59b5bfc7f299f282a5ddb",
+ "129412f1f5872e71a2cd3c5b9515d4ae230bdc7b",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-013.html": [
- "1b7746113b95af219561d88a651a832014b138e6",
+ "329f033a4a917fd58c8c8ea905096bc14eadfe4b",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-014.html": [
- "3e97ae4c3aee9618baa525511d89d3a330b05978",
+ "682ac0986e453247299789f28143c4ede21f0b14",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-015.html": [
- "d75d598bf371e9a5ecce86344075abd5448e17d7",
+ "23b6b4e3481b41f670387a7610c57419506aa04c",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-016.html": [
- "212b21817a923b716066bb585783448e8df8c1ea",
+ "a7c4d591bc4cc0f3c3cbf62c6051584500cbe8e5",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-017.html": [
- "b16362153e512f9cccdeb5059f9bf9fa71c98c43",
+ "2e9c193044baf93276750384520b18ad47e37fc7",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-018.html": [
- "058e5793e5c2e6110f51299b1041da94cb3cdc79",
+ "6c285e07f9ccd0356143a6b2fb48baad3347bfe5",
"testharness"
],
"css/css-shapes/spec-examples/shape-outside-019.html": [
- "4f59ff331fe0bf0f9759d9fca3f71a79bdc98971",
+ "22828e3984ff0cf7396fa8512e0779790d8a5b66",
"testharness"
],
"css/css-shapes/spec-examples/support/circle-no-shadow.png": [
@@ -588464,7 +588592,7 @@
"support"
],
"css/css-shapes/spec-examples/support/spec-example-utils.js": [
- "c5b0411ca2706444814090f6a7bcfa43d55f5d8a",
+ "6939b753aad8bc17aebe58673a6e2001f59c07a2",
"support"
],
"css/css-shapes/support/1x1-green.png": [
@@ -605556,7 +605684,7 @@
"testharness"
],
"css/css-ui/outline-018.html": [
- "ff79144da2aa50e09504f8f37bb5d230def1fca8",
+ "c2db6f99719369484f07cee39871841cb498031d",
"testharness"
],
"css/css-ui/outline-019.html": [
@@ -615371,16 +615499,16 @@
"a6644945910fc83ca079c93507b21117b91de9c3",
"support"
],
- "css/cssom-view/MediaQueryList-001.html": [
- "06c81d5de4c67efaba23f18abcbf8532257a54eb",
+ "css/cssom-view/MediaQueryList-addListener-handleEvent.html": [
+ "5bdd9dfc9ced8459b459970cf187456c3f82fbe4",
"testharness"
],
- "css/cssom-view/MediaQueryList-with-empty-string.html": [
- "3d5a5316566411c49895e845d8dd0df8e7553a1e",
+ "css/cssom-view/MediaQueryList-addListener-removeListener.html": [
+ "5446e48e6cfcf20d5005ecfa4f75523f61ab83e2",
"testharness"
],
"css/cssom-view/MediaQueryListEvent.html": [
- "6631039d248b757b3b423929a8fa4a290ec22287",
+ "24cce3cc0973cf7478c92ce05137926ea0b78f77",
"testharness"
],
"css/cssom-view/Screen-pixelDepth-Screen-colorDepth001.html": [
@@ -615599,16 +615727,8 @@
"08fcb3c5386228b167cc76e9cd02a34903c86912",
"testharness"
],
- "css/cssom-view/matchMedia.xht": [
- "202a3b738dd0d7c83ed9b4cdff8c7212ae09f61e",
- "testharness"
- ],
- "css/cssom-view/matchMediaAddListener-handleEvent.html": [
- "8bc665693d8f722fcd8a1f6fde9d6c36e4ecfd23",
- "testharness"
- ],
- "css/cssom-view/matchMediaAddListener.html": [
- "7236be7febc985a9432e3127b78acf352bb91fa1",
+ "css/cssom-view/matchMedia.html": [
+ "14df3d02425ddf32caa904cfcfe3d8e2fae0c803",
"testharness"
],
"css/cssom-view/mouseEvent.html": [
@@ -615688,7 +615808,7 @@
"support"
],
"css/cssom-view/resources/matchMedia.js": [
- "93f4a31505098033dfe55d8075d7315c590703bb",
+ "8013699b7dee114da3313ccfba61d57e7e860e5b",
"support"
],
"css/cssom-view/screenLeftTop.html": [
@@ -620584,7 +620704,7 @@
"support"
],
"css/support/parsing-testcommon.js": [
- "7ecd588aaf5160f121b9eb240f58d2739135c829",
+ "647bc125df9a877f8299de43ff1c83f7d7dea167",
"support"
],
"css/support/pattern-grg-rgr-grg.png": [
@@ -620711,6 +620831,10 @@
"59843ae54b64f6ce4f7e616d4be491c911ea84cf",
"support"
],
+ "css/support/width-keyword-classes.css": [
+ "b5c84a5d5f4611ffe3570c60ab2f55cf093f8ca8",
+ "support"
+ ],
"css/tools/META.yml": [
"be9be0869d95270a59e2f76a5bdc80ecbd621b83",
"support"
@@ -630656,7 +630780,7 @@
"support"
],
"docs/requirements.txt": [
- "dceaed13bc3f2a724f2ff204ea0824df80977193",
+ "a9ddeecfe573825febb48afcd16ce4bc02b696ff",
"support"
],
"docs/reviewing-tests/checklist.md": [
@@ -630680,7 +630804,7 @@
"support"
],
"docs/running-tests/android_webview.md": [
- "39b1f3b14abd8fe2183d3fb39a66c8b89ecf815a",
+ "4a86814fdf71b69e7b6b89d684a208131852cdbe",
"support"
],
"docs/running-tests/chrome.md": [
@@ -630816,11 +630940,11 @@
"support"
],
"docs/writing-tests/testharness-api.md": [
- "eda3ca60cb04c4a1a25aefafe17621e37d4b8fcd",
+ "5883308cc66957b1b7215825fd0ea6c7aa1ca74a",
"support"
],
"docs/writing-tests/testharness.md": [
- "d2ec64c834fec80f50e5b3d2cd06e05de790d9a5",
+ "7d38742a7402beeaa011da3bbc0231692c550268",
"support"
],
"docs/writing-tests/tools.md": [
@@ -631792,7 +631916,7 @@
"support"
],
"dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html": [
- "cc118d42cf4be082bc165d94d7e85cd4dbd2c6ad",
+ "c41ee2e87713bdd4e8da84f7c4a96f208ff2a0f3",
"testharness"
],
"dom/nodes/Element-getElementsByTagName.html": [
@@ -638096,11 +638220,11 @@
"testharness"
],
"fetch/metadata/iframe.tentative.https.sub.html": [
- "b8f11c66b7edeedeab85b947e0a0138e5dd0f333",
+ "60ccbba721ba3d11f78c9cf84d7e22fe02724d3f",
"testharness"
],
"fetch/metadata/iframe.tentative.sub.html": [
- "c5469f458d37bed0ce43ddbf1011085879e9f743",
+ "be57362e9f0505b36d1faf58cb91af1b237a94e4",
"testharness"
],
"fetch/metadata/img.tentative.https.sub.html": [
@@ -638116,7 +638240,7 @@
"testharness"
],
"fetch/metadata/portal.tentative.https.sub.html": [
- "ee24b5ecbb90c7f0d2892d4f5abeb3c5d1d6acf3",
+ "f9e370c67fbcbea20fc4fac2957fd50608fca13c",
"testharness"
],
"fetch/metadata/prefetch.tentative.https.sub.html": [
@@ -648407,6 +648531,22 @@
"4e798cd9f5d3f756df077a43ce9a1a6f9b41fd28",
"support"
],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html": [
+ "1666a984588c13610bc23566b67c63851af9f580",
+ "support"
+ ],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers": [
+ "4e798cd9f5d3f756df077a43ce9a1a6f9b41fd28",
+ "support"
+ ],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html": [
+ "c6896762bc48e04fcd60b6849f081caef5661101",
+ "support"
+ ],
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers": [
+ "4e798cd9f5d3f756df077a43ce9a1a6f9b41fd28",
+ "support"
+ ],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html": [
"a6dd70177584c9115c24beb281e7681110c07624",
"support"
@@ -648551,11 +648691,11 @@
"63b60e490f47f4db77d33d7a4ca2f5b9a4181de8",
"support"
],
- "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html": [
- "98145310f610f0ca88af938872e9ea2103de600c",
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html": [
+ "16a054a52e1ef9ecb42fa5d2e7ceff4a1496f3ab",
"testharness"
],
- "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers": [
+ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.headers": [
"63b60e490f47f4db77d33d7a4ca2f5b9a4181de8",
"support"
],
@@ -657148,15 +657288,15 @@
"testharness"
],
"html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js": [
- "0e70da4d3dead587531f97bf1115aea67e623996",
+ "8a529e10b136ccdf8c133165a52e1ce4c3d9b007",
"support"
],
"html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js": [
- "3f03f889398b951e451e012b0a9b1c6c42d863be",
+ "578f7f195190e84b1b02ef679fb79f201b82070a",
"support"
],
"html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js": [
- "6e16cbd28c4d2ae2f0b3145c34af65059d207273",
+ "fb88bdda2afbafa3b4074ed6140db73a7bb77268",
"support"
],
"html/semantics/scripting-1/the-script-element/resources/cocoa-module.js": [
@@ -661460,7 +661600,7 @@
"support"
],
"interfaces/media-capabilities.idl": [
- "e067fdc746dd85161fb8e0e7e8f254a3d3d0f5f9",
+ "71bc46d24109f49d616e05e804bcda01dcd45afb",
"support"
],
"interfaces/media-playback-quality.idl": [
@@ -661828,7 +661968,7 @@
"testharness"
],
"intersection-observer/isIntersecting-change-events.html": [
- "3dcc77886204c59debc89a2ea8aa1dd327d7fd22",
+ "99bc65bd60afee82f2ddd6b5380437d94811e30d",
"testharness"
],
"intersection-observer/isIntersecting-threshold.html": [
@@ -664808,7 +664948,7 @@
"support"
],
"mediacapture-streams/MediaDevices-SecureContext.html": [
- "e6e8587cdd11f6da78c3a1605dc13ddd5e80f803",
+ "bada62817691373d16cf0ab18d2d61bec2dc12f0",
"testharness"
],
"mediacapture-streams/MediaDevices-enumerateDevices-not-allowed-camera.https.html": [
@@ -667844,11 +667984,11 @@
"testharness"
],
"navigation-timing/nav2_test_document_open.html": [
- "bc06ed5840a7555d1e2a62580cf5a988ca58a718",
+ "aa1097248dd133e5e61b17c6f92f1437579b588c",
"testharness"
],
"navigation-timing/nav2_test_document_replaced.html": [
- "b910f453d12951d01cb584899766b64fe08e836c",
+ "5972f20e9bd7ffdf27d32b5b30b63913ceeeed09",
"testharness"
],
"navigation-timing/nav2_test_frame_removed.html": [
@@ -667868,11 +668008,11 @@
"testharness"
],
"navigation-timing/nav2_test_navigate_within_document.html": [
- "f39ca0576955999eca8a08331e55cc2925816f36",
+ "75e6e113b6dba3687df1c8fdbf9c983a9fae8a69",
"testharness"
],
"navigation-timing/nav2_test_navigation_type_backforward.html": [
- "c4b575810691103db69c610b9ec69425110d7635",
+ "d0045415b89c45ed9a1a889e8be0abc8123092d5",
"testharness"
],
"navigation-timing/nav2_test_navigation_type_navigate.html": [
@@ -667880,11 +668020,11 @@
"testharness"
],
"navigation-timing/nav2_test_navigation_type_reload.html": [
- "74b85c9dbb5e03266c0ba0145ad45d67a025fd0c",
+ "0f03f07c57c9c1ac3c868741a23d9f2e6ebb2b2b",
"testharness"
],
"navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html": [
- "c0dd249545a640ec0cdd759b2114ab725a609039",
+ "db499c3ed340b946c586ab873320366426928e21",
"testharness"
],
"navigation-timing/nav2_test_redirect_none.html": [
@@ -667892,11 +668032,11 @@
"testharness"
],
"navigation-timing/nav2_test_redirect_server.html": [
- "1d7f6c928ce63c94edc1491d2883c87331e38722",
+ "9ec2992bef58ec6e0304fb1528814059041f3148",
"testharness"
],
"navigation-timing/nav2_test_redirect_xserver.html": [
- "06c9b7f3b678a22751a1e8e1a57028216ab21879",
+ "d8acc8054d87a972d00596d979485847cf6cf4e5",
"testharness"
],
"navigation-timing/nav2_test_unique_nav_instances.html": [
@@ -676568,7 +676708,7 @@
"testharness"
],
"preload/download-resources.html": [
- "557c9656b1813c52e373ee70e565a44e966389bf",
+ "4da76980357037951b857cb357e024cff7ff44bf",
"testharness"
],
"preload/dynamic-adding-preload-imagesrcset.html": [
@@ -676588,7 +676728,7 @@
"testharness"
],
"preload/link-header-on-subresource.html": [
- "7047115a1caf4989ea5e80e80db35bc2dcdf2a6b",
+ "418e8a63a7989794e6774ddca7e987bb594c7396",
"testharness"
],
"preload/link-header-preload-delay-onload.html": [
@@ -676600,7 +676740,7 @@
"support"
],
"preload/link-header-preload-imagesrcset.html": [
- "3ae53fed66041957303991f082276b5c80788f83",
+ "65c8c061ada5ba94b1b6fc6a9b130a5629d72076",
"testharness"
],
"preload/link-header-preload-imagesrcset.html.headers": [
@@ -676608,7 +676748,7 @@
"support"
],
"preload/link-header-preload-nonce.html": [
- "bfac5639cdcfe68716af765eb763bdbe4e94cae5",
+ "74ea87042b4546beff6b5180aa38685ac01bd084",
"testharness"
],
"preload/link-header-preload-nonce.html.headers": [
@@ -676616,7 +676756,7 @@
"support"
],
"preload/link-header-preload.html": [
- "4dfdfc8873947a95a42d97065a3229e5d20d04e5",
+ "b5932a1b0aa174f1fe8e28402595e681f39732be",
"testharness"
],
"preload/link-header-preload.html.headers": [
@@ -676628,11 +676768,11 @@
"testharness"
],
"preload/onerror-event.html": [
- "2038e06e941cf7b146fcb744c6c5a2ded3072abc",
+ "94c8dc772deefc46be48a4545d6c45f8fd17a933",
"testharness"
],
"preload/onload-event.html": [
- "9111cd8fc8271c97b6165e684a02fe44a5b47eb8",
+ "8825ffaaa52025484be848b1a6f73d91da210a47",
"testharness"
],
"preload/preload-csp.sub.html": [
@@ -676648,7 +676788,7 @@
"testharness"
],
"preload/preload-with-type.html": [
- "980592274bf3579bebe14804b81f945d7fcee70c",
+ "eb5675f993b1e98014fd38d8674858f7c66ed7e6",
"testharness"
],
"preload/preload-xhr.html": [
@@ -676760,7 +676900,7 @@
"support"
],
"preload/single-download-late-used-preload.html": [
- "51533ba71445cc5b9edb235aaf28215671a1ca62",
+ "bf02fdb63625bdf48785a13f795018f2472d2ac5",
"testharness"
],
"preload/single-download-preload.html": [
@@ -691176,11 +691316,11 @@
"testharness"
],
"server-timing/navigation_timing_idl.https.html": [
- "d911d64e47ced02caadfca54b620218ace024f87",
+ "154bc6b0442bf159e7a8b0a682bee5b21372e450",
"testharness"
],
"server-timing/resource_timing_idl.https.html": [
- "b1d8699cc6057407f79dbe83b56a8477a38d7c96",
+ "a719a89097231cb7defe3a910ae0349a11f335c5",
"testharness"
],
"server-timing/resources/blue.png": [
@@ -692891,6 +693031,10 @@
"176fcb494b664bae43feba0c793e52845df35257",
"testharness"
],
+ "service-workers/service-worker/referer-toplevel-script-fetch.https.html": [
+ "f0dd843eef8f8549430b78ce2606d83a59e2fb42",
+ "testharness"
+ ],
"service-workers/service-worker/referer.https.html": [
"0957e4c5330168b08236ff7c431706a1d92cc1a4",
"testharness"
@@ -701136,7 +701280,7 @@
"support"
],
"tools/ci/azure/pip_install.yml": [
- "f892deb9072e0fdec20540bdb7342a76e83e3391",
+ "c8795345f6bcf4a943e07a459947e718ad6a0afc",
"support"
],
"tools/ci/azure/system_info.yml": [
@@ -701172,7 +701316,7 @@
"support"
],
"tools/ci/ci_wptrunner_infrastructure.sh": [
- "e5b485dbff8040d797af4d9ce6b0681c6b3d9574",
+ "8db08794ade26bef899f05c4890c2b88e68df292",
"support"
],
"tools/ci/commands.json": [
@@ -701184,7 +701328,7 @@
"support"
],
"tools/ci/jobs.py": [
- "b7ada2a5b621236d97d4e87a8d7e0960327bc01d",
+ "3d809efa37ccff2c258343b64791762fc507a90f",
"support"
],
"tools/ci/make_hosts_file.py": [
@@ -701200,7 +701344,7 @@
"support"
],
"tools/ci/taskcluster-run.py": [
- "ad33cb532d2e82cc28a42d75e856709dc53fa22a",
+ "8a60012d09b4d5be9845cf4ab74e5f87bf4b58ce",
"support"
],
"tools/ci/tcdownload.py": [
@@ -701924,7 +702068,7 @@
"support"
],
"tools/requirements_mypy.txt": [
- "50c3d0d92b2213c1960098900f488f09b197905d",
+ "cd4ae2b276937a9abc45db59d950d88ddb6dc626",
"support"
],
"tools/runner/css/bootstrap-theme.min.css": [
@@ -706100,11 +706244,11 @@
"support"
],
"tools/wptrunner/docs/usage.rst": [
- "5fed5fcdba4dd264e40ef0f18afd6d9596c62cf2",
+ "85fd97bf6c12a1fc3a2dbbd24ec2c32659db9114",
"support"
],
"tools/wptrunner/requirements.txt": [
- "dbed37ccdcdd132993ccda93c235125920096984",
+ "d8a6c898d24f40c2bcffae42c32e63a9e5b10005",
"support"
],
"tools/wptrunner/requirements_android_webview.txt": [
@@ -706136,7 +706280,7 @@
"support"
],
"tools/wptrunner/requirements_firefox.txt": [
- "2021f550f488860500a053463970350525c15c0c",
+ "85efd35486d8d9a3724c9cf37aa231dfcdac72ec",
"support"
],
"tools/wptrunner/requirements_ie.txt": [
@@ -706328,7 +706472,7 @@
"support"
],
"tools/wptrunner/wptrunner/browsers/firefox.py": [
- "6cf784fd01049a24ad6c8253179ad61d62073774",
+ "5e3e41eb55fc82567ba9543c283e34635bd8b112",
"support"
],
"tools/wptrunner/wptrunner/browsers/firefox_android.py": [
@@ -706512,15 +706656,15 @@
"support"
],
"tools/wptrunner/wptrunner/manifestexpected.py": [
- "6a3e02b91e406aa2d0cf2560052c66515407d563",
+ "eae85b1f6661a67dff59ef78a9ed627e3e3603d8",
"support"
],
"tools/wptrunner/wptrunner/manifestinclude.py": [
- "46618c98cf456fd718d0b81f25768d83c5a9e88f",
+ "d302831a57abbaadd75fe49e094482dc14223ea3",
"support"
],
"tools/wptrunner/wptrunner/manifestupdate.py": [
- "83a4834d7859e529cf88dd886e27b01886bc2259",
+ "af9af18d90715d43bbcd2ae47ce76275bb0e1577",
"support"
],
"tools/wptrunner/wptrunner/metadata.py": [
@@ -706652,7 +706796,7 @@
"support"
],
"tools/wptrunner/wptrunner/wptcommandline.py": [
- "3fc0f6d6b537938f76b99c7122229a6a3deb2713",
+ "923bdaa55857e793e8d6e8c587167360aed4ae94",
"support"
],
"tools/wptrunner/wptrunner/wptlogging.py": [
@@ -706716,7 +706860,7 @@
"support"
],
"tools/wptrunner/wptrunner/wptrunner.py": [
- "88b51d0fd6a970316ae382f9efa3d8b9c463ace9",
+ "7dfd86e99c905ec4271707a953db90dedac850cf",
"support"
],
"tools/wptrunner/wptrunner/wpttest.py": [
@@ -707556,7 +707700,7 @@
"support"
],
"update-built-tests.sh": [
- "1a33154898d7adfdff6194d4632b28548cc4c9f8",
+ "a45058c18f89aa25a577aad817b45f6a1bcbfa6e",
"support"
],
"upgrade-insecure-requests/META.yml": [
@@ -713268,15 +713412,15 @@
"testharness"
],
"webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html": [
- "20ee27fbc2f6fed7604e44a1957794c0b51476b1",
+ "3b9e57314d6500ca8c33455d6fe3f949a59216ce",
"testharness"
],
"webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html": [
- "70f73e29b1f6ce42d7d387e790d342acaf778ad8",
+ "43d56b8990e1c5101283f58f650bbc0efc801666",
"testharness"
],
"webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html": [
- "04fe48096459dd0bbf4b3b0fd206c90c0bcae0f0",
+ "904b14bede544ac63a08dc422df63fb59d53c048",
"testharness"
],
"webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html": [
@@ -715872,11 +716016,11 @@
"testharness"
],
"webmessaging/with-ports/020.html": [
- "4fc2c4e2dd9a81057f1978f4bafc00bd5e8baa44",
+ "426a3d270008c82b1006adcc3783cbd914d19b34",
"testharness"
],
"webmessaging/with-ports/021.html": [
- "37a0767fee0f0266e1b933b049242aaf698455c3",
+ "2801d45a44aeda6cdc7103c9cd360d3d38260bf3",
"testharness"
],
"webmessaging/with-ports/023.html": [
@@ -715984,11 +716128,11 @@
"support"
],
"webmessaging/without-ports/020.html": [
- "e35a1128a0d73100d9d652e5b8c35484dc567f47",
+ "61bfddb901fa27c9a8432517d799be46136a91db",
"testharness"
],
"webmessaging/without-ports/021.html": [
- "b240fa0cad53d828b1a3a8c86cf316372b608437",
+ "5072508d9c618921f03a36f840354cdcb3351068",
"testharness"
],
"webmessaging/without-ports/023.html": [
@@ -721932,7 +722076,7 @@
"support"
],
"workers/constructors/SharedWorker/URLMismatchError.htm": [
- "258eed05bf8ccbb21ba9f76ce91c998cec0f6b20",
+ "e1a11f4f8fe701365c89f9799794616975c39764",
"testharness"
],
"workers/constructors/SharedWorker/connect-event.html": [
@@ -722280,7 +722424,7 @@
"support"
],
"workers/interfaces/WorkerGlobalScope/close/incoming-message.html": [
- "eb8e69c2b05639ded04f9dc5ded0ffee54f2031d",
+ "0905d07661dab9f0b68d1ff1a341e7b31b4b08db",
"testharness"
],
"workers/interfaces/WorkerGlobalScope/close/incoming-message.js": [
@@ -722296,7 +722440,7 @@
"support"
],
"workers/interfaces/WorkerGlobalScope/close/setInterval.html": [
- "690f067cffcb88447bb360bef62b44a27f2de5cd",
+ "2f0ba176d49420a6b43ea71c0d2c6537408e02c5",
"testharness"
],
"workers/interfaces/WorkerGlobalScope/close/setInterval.js": [
@@ -722304,7 +722448,7 @@
"support"
],
"workers/interfaces/WorkerGlobalScope/close/setTimeout.html": [
- "777a03c013de04b981991300f608c7f140047074",
+ "2bddc0947f638d784c753e30bcb07ba88e62c503",
"testharness"
],
"workers/interfaces/WorkerGlobalScope/close/setTimeout.js": [
@@ -722984,7 +723128,7 @@
"support"
],
"workers/semantics/multiple-workers/004.html": [
- "82cf46aec4cc2b4f5ca365f3d560bac0654969f5",
+ "552cc8a63340f810fe2c445bd8fd7be1031726b2",
"testharness"
],
"workers/semantics/multiple-workers/005.html": [
@@ -723024,7 +723168,7 @@
"support"
],
"workers/semantics/navigation/001.html": [
- "95cd9aff47d2a2b2e63abd0892c51fc01128acaa",
+ "f31c2590e58e65e5440dd6254a3af11b742a87dd",
"testharness"
],
"workers/semantics/navigation/002.html": [
@@ -723156,7 +723300,7 @@
"testharness"
],
"workers/shared-worker-name-via-options.html": [
- "cf7fd46649283e82ffca99dfe31ae3c6f36b3aeb",
+ "1914d66db7489f6306c4365a4d7b7b9fb59fe00e",
"testharness"
],
"workers/support/ErrorEvent-error.js": [
diff --git a/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini
index 94a3570d26b..9f60026f6d9 100644
--- a/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini
+++ b/tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini
@@ -5,9 +5,9 @@
[[data-expected-height\] 7]
expected: FAIL
- [[data-expected-height\] 3]
+ [[data-expected-height\] 1]
expected: FAIL
- [[data-expected-height\] 4]
+ [[data-expected-height\] 2]
expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini b/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini
index 03f2f3fe9d1..c511d92d674 100644
--- a/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/animation/perspective-interpolation.html.ini
@@ -1,5 +1,4 @@
[perspective-interpolation.html]
- expected: CRASH
[ perspective interpolation]
expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini
new file mode 100644
index 00000000000..0269091c011
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini
@@ -0,0 +1,17 @@
+[MediaQueryList-addListener-handleEvent.html]
+ expected: TIMEOUT
+ [throws if handleEvent is falsy and not callable]
+ expected: NOTRUN
+
+ [looks up handleEvent method on every event dispatch]
+ expected: FAIL
+
+ [rethrows errors when getting handleEvent]
+ expected: TIMEOUT
+
+ [doesn't look up handleEvent method on callable event listeners]
+ expected: FAIL
+
+ [throws if handleEvent is thruthy and not callable]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
new file mode 100644
index 00000000000..c884dc82eab
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
@@ -0,0 +1,7 @@
+[MediaQueryList-addListener-removeListener.html]
+ [listeners are called when <iframe> is resized]
+ expected: FAIL
+
+ [listeners are called correct number of times]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia.html.ini b/tests/wpt/metadata/css/cssom-view/matchMedia.html.ini
new file mode 100644
index 00000000000..9407c57bb3b
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/matchMedia.html.ini
@@ -0,0 +1,4 @@
+[matchMedia.html]
+ [iframe.matchMedia("(min-aspect-ratio: 1/1)") matches]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia.xht.ini b/tests/wpt/metadata/css/cssom-view/matchMedia.xht.ini
deleted file mode 100644
index b245ee1cb1f..00000000000
--- a/tests/wpt/metadata/css/cssom-view/matchMedia.xht.ini
+++ /dev/null
@@ -1,18 +0,0 @@
-[matchMedia.xht]
- bug: https://github.com/servo/servo/issues/20818
- expected: TIMEOUT
- [window.matchMedia exists]
- expected: FAIL
-
- [MediaQueryList.matches for "(min-aspect-ratio: 1/1)"]
- expected: FAIL
-
- [Resize iframe from 200x100 to 200x50, then to 100x50]
- expected: NOTRUN
-
- [Listeners are called in the order which they have been added]
- expected: NOTRUN
-
- [Listener added twice is only called once.]
- expected: NOTRUN
-
diff --git a/tests/wpt/metadata/css/cssom-view/matchMediaAddListener-handleEvent.html.ini b/tests/wpt/metadata/css/cssom-view/matchMediaAddListener-handleEvent.html.ini
deleted file mode 100644
index 176c9ea4568..00000000000
--- a/tests/wpt/metadata/css/cssom-view/matchMediaAddListener-handleEvent.html.ini
+++ /dev/null
@@ -1,10 +0,0 @@
-[matchMediaAddListener-handleEvent.html]
- [throws if handleEvent is falsy and not callable]
- expected: FAIL
-
- [rethrows errors when getting handleEvent]
- expected: FAIL
-
- [throws if handleEvent is thruthy and not callable]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/cssom-view/matchMediaAddListener.html.ini b/tests/wpt/metadata/css/cssom-view/matchMediaAddListener.html.ini
deleted file mode 100644
index 88382ca83e6..00000000000
--- a/tests/wpt/metadata/css/cssom-view/matchMediaAddListener.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[matchMediaAddListener.html]
- type: testharness
- [CSS Test: CSSOM View matchMedia addListener]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini b/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini
deleted file mode 100644
index c3916f8555d..00000000000
--- a/tests/wpt/metadata/dom/nodes/Document-contentType/contentType/contenttype_txt.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[contenttype_txt.html]
- expected: CRASH
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 e2f972c78f2..c2d790b5256 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,24 +312,27 @@
[<iframe>: separate response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html */*]
- expected: FAIL
-
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" text/plain]
- expected: FAIL
-
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
+ [<iframe>: combined response Content-Type: */* text/html]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/plain */*]
+ expected: FAIL
+
+ [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
index d2df9b78483..279734168dc 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -56,3 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
+ [separate text/javascript;charset=windows-1252 text/javascript]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini
index 6bd06899fdd..a3a600c5846 100644
--- a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini
+++ b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini
@@ -1,6 +1,5 @@
[embedded-credentials.tentative.sub.html]
type: testharness
- expected: TIMEOUT
[Embedded credentials are treated as network errors.]
expected: FAIL
@@ -11,11 +10,5 @@
expected: FAIL
[Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.]
- expected: TIMEOUT
-
- [Embedded credentials matching the top-level are not treated as network errors for same-origin URLs.]
- expected: TIMEOUT
-
- [Embedded credentials matching the top-level are not treated as network errors for relative URLs.]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini
new file mode 100644
index 00000000000..e495b626d2e
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini
@@ -0,0 +1,4 @@
+[navigation-unload-same-origin-fragment.html]
+ [Tests that a fragment navigation in the unload handler will not block the initial 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/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
deleted file mode 100644
index 75d75b4cda2..00000000000
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse_the_history_2.html]
- [Multiple history traversals, last would be aborted]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini
deleted file mode 100644
index 1c16e180b86..00000000000
--- a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[window-iframe-messagechannel-success.https.html]
- [postMessaging to a same-origin iframe via MessageChannel allows them to see each others' modifications]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.ini
new file mode 100644
index 00000000000..1d4d31c40b5
--- /dev/null
+++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.ini
@@ -0,0 +1,13 @@
+[window-iframe-messagechannel.https.html]
+ [postMessaging to a same-site iframe via MessageChannel allows them to see each others' modifications]
+ expected: FAIL
+
+ [postMessaging with a MessageChannel that's been cross-site should succeed]
+ expected: FAIL
+
+ [postMessaging to a cross-site iframe via MessageChannel should fail]
+ expected: FAIL
+
+ [postMessaging to a same-origin iframe via MessageChannel allows them to see each others' modifications]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
index 5f60c78e73c..f6a7aca3306 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
@@ -1,6 +1,5 @@
[iframe_sandbox_popups_escaping-3.html]
type: testharness
- expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
index d43f38b40cd..3a32693ffa8 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
@@ -1,6 +1,5 @@
[iframe_sandbox_popups_nonescaping-2.html]
type: testharness
- expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
index e440b1e38c6..dc856a3d5a3 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
@@ -1,6 +1,5 @@
[iframe_sandbox_popups_nonescaping-3.html]
type: testharness
- expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini
index 941d0dee0c8..df89cd21511 100644
--- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini
@@ -1,5 +1,5 @@
[form-double-submit-3.html]
expected: ERROR
[<button> should have the same double-submit protection as <input type=submit>]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini
index 127392316de..702af61a3c4 100644
--- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini
+++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini
@@ -1,7 +1,11 @@
[form-submission-algorithm.html]
+ expected: TIMEOUT
[If form's firing submission events is true, then return; 'submit' event]
expected: FAIL
[If form's firing submission events is true, then return; 'invalid' event]
expected: FAIL
+ [Cannot navigate (after constructing the entry list)]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
new file mode 100644
index 00000000000..a9677391662
--- /dev/null
+++ b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
@@ -0,0 +1,4 @@
+[DOMContentLoaded-defer.html]
+ [The end: DOMContentLoaded and defer scripts]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/navigation-timing/nav2_test_document_replaced.html.ini b/tests/wpt/metadata/navigation-timing/nav2_test_document_replaced.html.ini
index ed236342863..60764541b31 100644
--- a/tests/wpt/metadata/navigation-timing/nav2_test_document_replaced.html.ini
+++ b/tests/wpt/metadata/navigation-timing/nav2_test_document_replaced.html.ini
@@ -2,5 +2,5 @@
type: testharness
expected: TIMEOUT
[Navigation Timing 2 WPT]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/metadata/resource-timing/nested-context-navigations-iframe.html.ini b/tests/wpt/metadata/resource-timing/nested-context-navigations-iframe.html.ini
index ec371a1bf72..8594361ff44 100644
--- a/tests/wpt/metadata/resource-timing/nested-context-navigations-iframe.html.ini
+++ b/tests/wpt/metadata/resource-timing/nested-context-navigations-iframe.html.ini
@@ -1,5 +1,5 @@
[nested-context-navigations-iframe.html]
- expected: TIMEOUT
+ expected: CRASH
[Test that iframe navigations are not observable by the parent, even after history navigations by the parent]
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 66bd350083b..a56bad443a2 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,4 +1,5 @@
[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/webmessaging/with-ports/018.html.ini b/tests/wpt/metadata/webmessaging/with-ports/018.html.ini
deleted file mode 100644
index 663a1f8fa30..00000000000
--- a/tests/wpt/metadata/webmessaging/with-ports/018.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[018.html]
- expected: TIMEOUT
- [origin of the script that invoked the method, javascript:]
- expected: TIMEOUT
-
diff --git a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
deleted file mode 100644
index 064cf47545b..00000000000
--- a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[017.html]
- expected: TIMEOUT
- [origin of the script that invoked the method, about:blank]
- expected: TIMEOUT
-
diff --git a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
index f584fce5df1..268949ced5c 100644
--- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
+++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
@@ -1,5 +1,4 @@
[005.html]
- expected: ERROR
[dedicated worker in shared worker in dedicated worker]
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 49f489d2a1c..d6e39444229 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,6 +1,5 @@
[003.html]
type: testharness
- expected: ERROR
[shared]
expected: FAIL
diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml
index 7d9bce28879..82d5a899193 100644
--- a/tests/wpt/web-platform-tests/.azure-pipelines.yml
+++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml
@@ -89,11 +89,11 @@ jobs:
- template: tools/ci/azure/install_safari.yml
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl - --log-tbpl-level info --channel dev chrome infrastructure/
+ - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel dev chrome infrastructure/
displayName: 'Run tests (Chrome Dev)'
- - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl - --log-tbpl-level info --channel nightly firefox infrastructure/
+ - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel nightly firefox infrastructure/
displayName: 'Run tests (Firefox Nightly)'
- - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl - --log-tbpl-level info --channel preview safari infrastructure/
+ - script: no_proxy='*' ./wpt run --yes --no-manifest-update --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel preview safari infrastructure/
displayName: 'Run tests (Safari Technology Preview)'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
@@ -227,7 +227,7 @@ jobs:
- template: tools/ci/azure/install_edge.yml
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- - script: python ./wpt run --yes --no-manifest-update --install-fonts --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl - --log-tbpl-level info --channel dev edgechromium infrastructure/
+ - script: python ./wpt run --yes --no-manifest-update --install-fonts --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-mach - --log-mach-level info --channel dev edgechromium infrastructure/
displayName: 'Run tests (Edge Dev)'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
@@ -260,7 +260,7 @@ jobs:
channel: dev
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-tbpl - --log-tbpl-level info --channel dev edgechromium
+ - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel dev edgechromium
displayName: 'Run tests (Edge Dev)'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
@@ -296,7 +296,7 @@ jobs:
channel: canary
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-tbpl - --log-tbpl-level info --channel canary edgechromium
+ - script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel canary edgechromium
displayName: 'Run tests (Edge Canary)'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
@@ -332,7 +332,7 @@ jobs:
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
# --exclude is a workaround for https://github.com/web-platform-tests/wpt/issues/18634
- - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-tbpl - --log-tbpl-level info safari --exclude /inert/inert-retargeting.tentative.html --exclude /inert/inert-retargeting-iframe.tentative.html
+ - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info safari --exclude /inert/inert-retargeting.tentative.html --exclude /inert/inert-retargeting-iframe.tentative.html
displayName: 'Run tests'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
@@ -364,7 +364,7 @@ jobs:
- template: tools/ci/azure/install_safari.yml
- template: tools/ci/azure/update_hosts.yml
- template: tools/ci/azure/update_manifest.yml
- - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-tbpl - --log-tbpl-level info --channel preview safari
+ - script: no_proxy='*' ./wpt run --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --this-chunk=$(System.JobPositionInPhase) --total-chunks=$(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-mach - --log-mach-level info --channel preview safari
displayName: 'Run tests'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
diff --git a/tests/wpt/web-platform-tests/.pyup.yml b/tests/wpt/web-platform-tests/.pyup.yml
index f31f2440630..05bee451e2f 100644
--- a/tests/wpt/web-platform-tests/.pyup.yml
+++ b/tests/wpt/web-platform-tests/.pyup.yml
@@ -7,42 +7,38 @@ search: False
# default: empty
# allowed: list
requirements:
- - tools/requirements_flake8.txt:
- update: all
- pin: True
- - tools/requirements_mypy.txt:
- update: all
- pin: True
- - tools/wpt/requirements.txt:
- update: all
- pin: True
- - tools/wptrunner/requirements.txt:
- update: all
- pin: True
- - tools/wptrunner/requirements_chrome.txt:
- update: all
- pin: True
- - tools/wptrunner/requirements_chrome_android.txt:
- update: all
- pin: True
- - tools/wptrunner/requirements_edge.txt:
- update: all
- pin: True
- - tools/wptrunner/requirements_firefox.txt:
- update: all
- pin: True
- - tools/wptrunner/requirements_ie.txt:
- update: all
- pin: True
- - tools/wptrunner/requirements_opera.txt:
- update: all
- pin: True
- - tools/wptrunner/requirements_safari.txt:
- update: all
- pin: True
- - tools/wptrunner/requirements_sauce.txt:
- update: all
- pin: True
- - tools/wptrunner/requirements_servo.txt:
- update: all
- pin: True
+ - docs/requirements.txt
+ - tools/requirements_flake8.txt
+ - tools/requirements_mypy.txt
+ - tools/wpt/requirements.txt
+ - tools/wptrunner/requirements.txt
+ - tools/wptrunner/requirements_android_webview.txt
+ - tools/wptrunner/requirements_chrome.txt
+ - tools/wptrunner/requirements_chrome_android.txt
+ - tools/wptrunner/requirements_chrome_ios.txt
+ - tools/wptrunner/requirements_edge.txt
+ - tools/wptrunner/requirements_edge_chromium.txt
+ - tools/wptrunner/requirements_epiphany.txt
+ - tools/wptrunner/requirements_firefox.txt
+ - tools/wptrunner/requirements_ie.txt
+ - tools/wptrunner/requirements_opera.txt
+ - tools/wptrunner/requirements_safari.txt
+ - tools/wptrunner/requirements_sauce.txt
+ - tools/wptrunner/requirements_servo.txt
+ - tools/wptrunner/requirements_webkit.txt
+
+ # try and avoid bogus PRs where these get updated (has happened occasionally)
+ - annotation-protocol/requirements.txt:
+ update: False
+ - css/requirements.txt:
+ update: False
+ - tools/third_party/html5lib/requirements-optional.txt:
+ update: False
+ - tools/third_party/html5lib/requirements-test.txt:
+ update: False
+ - tools/third_party/html5lib/requirements.txt:
+ update: False
+ - tools/third_party/pytest/doc/en/requirements.txt:
+ update: False
+ - tools/third_party/pytest/tasks/requirements.txt:
+ update: False
diff --git a/tests/wpt/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html b/tests/wpt/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html
index bc30d9c2580..0052b26fa62 100644
--- a/tests/wpt/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html
+++ b/tests/wpt/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html
@@ -13,6 +13,7 @@
<script>
"use strict";
+setup({ single_test: true });
document.domain = "{{host}}";
window.onload = () => {
diff --git a/tests/wpt/web-platform-tests/compat/webkit-box-removing-triggering-anonymous-merge.html b/tests/wpt/web-platform-tests/compat/webkit-box-removing-triggering-anonymous-merge.html
index 8506425548b..30c243b301f 100644
--- a/tests/wpt/web-platform-tests/compat/webkit-box-removing-triggering-anonymous-merge.html
+++ b/tests/wpt/web-platform-tests/compat/webkit-box-removing-triggering-anonymous-merge.html
@@ -7,8 +7,9 @@
text
</div>
<script>
-// Force a layout before removing.
-document.body.offsetTop;
-document.getElementById('target').remove();
-done();
+test(function() {
+ // Force a layout before removing.
+ document.body.offsetTop;
+ document.getElementById('target').remove();
+}, '-webkit-box: removal of child');
</script>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/script-src/scripthash-default-src.sub.html b/tests/wpt/web-platform-tests/content-security-policy/script-src/scripthash-default-src.sub.html
index 6025a67179f..9e035af7e8b 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/script-src/scripthash-default-src.sub.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/script-src/scripthash-default-src.sub.html
@@ -6,8 +6,9 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script nonce='abc'>
+ setup({ single_test: true });
window.addEventListener('securitypolicyviolation', function(e) {
- test(function() { assert_unreached("Should not have fired event")});
+ assert_unreached("Should not have fired event");
});
</script>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/style-src/stylehash-default-src.sub.html b/tests/wpt/web-platform-tests/content-security-policy/style-src/stylehash-default-src.sub.html
index c7604b29723..236fbdd0601 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/style-src/stylehash-default-src.sub.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/style-src/stylehash-default-src.sub.html
@@ -6,8 +6,9 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
+ setup({ single_test: true });
window.addEventListener('securitypolicyviolation', function(e) {
- test(function() { assert_unreached("securitypolicyviolat was fired")});
+ assert_unreached("securitypolicyviolat was fired");
});
</script>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1-ref.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1-ref.html
new file mode 100644
index 00000000000..2ee6b077d3c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1-ref.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Test Reference: bug 1584018</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ }
+
+ .scroll-inner {
+ overflow:scroll;
+ height:100%;
+ }
+
+</style>
+
+<div class="container">
+ <div class="scroll-inner">
+ <div>0</div>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+ <div>0</div>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1.html
new file mode 100644
index 00000000000..7631e02a226
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-child-percent-basis-resize-1.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Testcase, bug 1584018</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="help" href="https://drafts.csswg.org/css-flexbox">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1584018">
+<link rel="match" href="flex-child-percent-basis-resize-1-ref.html">
+
+<style>
+ .flex-container {
+ display: flex;
+ flex-direction: row;
+ width: 100px;
+ }
+
+ .flex-item {
+ flex: 1 0 auto;
+ }
+
+ .scroll-outer {
+ overflow:hidden;
+ /* this combination is important */
+ height: 100%;
+ max-height: 100px;
+ }
+
+ .scroll-inner {
+ overflow:scroll;
+ height:100%;
+ }
+
+</style>
+
+<div class="flex-container">
+ <div class="flex-item">
+ <div class="scroll-outer">
+ <div class="scroll-inner">
+ <div>0</div>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+ <div>0</div>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-justify-stretch.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-justify-stretch.html
index 09c34f1c125..9feeed3e0ef 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-justify-stretch.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align-justify-stretch.html
@@ -11,7 +11,7 @@
<meta name="flags" content="ahem">
<link rel="stylesheet" href="/css/support/grid.css">
<link rel="stylesheet" href="/css/support/alignment.css">
-<link rel="stylesheet" href="support/width-keyword-classes.css">
+<link rel="stylesheet" href="/css/support/width-keyword-classes.css">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
body {
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align.html b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align.html
new file mode 100644
index 00000000000..a195945d1f9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/alignment/grid-align.html
@@ -0,0 +1,222 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout test: align-self property</title>
+<link rel="author" title="Rossana Monteriso" href="mailto:rmonteriso@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
+<link rel="help" href="https://drafts.csswg.org/css-align-3/#alignment-values">
+<link rel="help" href="https://drafts.csswg.org/css-writing-modes-4/#propdef-direction">
+<meta name="assert" content="This test checks that the align-self property is applied correctly for RL and LR, vertical and horizontal writing modes.">
+<meta name="flags" content="ahem">
+<link rel="stylesheet" href="/css/support/grid.css">
+<link rel="stylesheet" href="/css/support/alignment.css">
+<link rel="stylesheet" href="/css/support/width-keyword-classes.css">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+
+<style>
+
+.grid {
+ grid-template-columns: 100px 100px;
+ grid-template-rows: 200px 200px;
+ margin-bottom: 20px;
+}
+
+.cell {
+ width: 20px;
+ height: 40px;
+}
+
+.item {
+ width: 8px;
+ height: 16px;
+ background: black;
+}
+</style>
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/check-layout-th.js"></script>
+
+<body onload="checkLayout('.grid')">
+
+<div style="position: relative">
+ <div class="grid fit-content" data-expected-width="200" data-expected-height="400">
+ <div class="alignSelfStretch firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div>
+ <div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="100" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="0" data-offset-y="280" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<div style="position: relative">
+ <div class="grid fit-content" data-expected-width="200" data-expected-height="400">
+ <div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="0" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<!-- Default alignment and initial values. -->
+<div style="position: relative">
+ <div class="grid fit-content alignItemsCenter" data-expected-width="200" data-expected-height="400">
+ <div class="cell alignSelfAuto firstRowFirstColumn" data-offset-x="0" data-offset-y="80" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell firstRowSecondColumn" data-offset-x="100" data-offset-y="80" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<div style="position: relative">
+ <div class="grid fit-content" data-expected-width="200" data-expected-height="400">
+ <div class="alignSelfAuto firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div>
+ <div class="cell firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfStart secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfEnd secondRowSecondColumn" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<!-- RTL direction (it should not affect the block-flow direction). -->
+<div style="position: relative">
+ <div class="grid fit-content directionRTL" data-expected-width="200" data-expected-height="400">
+ <div class="alignSelfStretch firstRowFirstColumn" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div>
+ <div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="80" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="80" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="180" data-offset-y="280" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<div style="position: relative">
+ <div class="grid fit-content directionRTL" data-expected-width="200" data-expected-height="400">
+ <div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="180" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="80" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="180" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="80" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<!-- RTL direction (it should not affect the block-flow) with opposite directions grid container vs grid item. -->
+<div style="position: relative">
+ <div class="grid fit-content" data-expected-width="200" data-expected-height="400">
+ <div class="alignSelfStretch firstRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="200"></div>
+ <div class="cell alignSelfStart firstRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfEnd firstRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfCenter secondRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="280" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<div style="position: relative">
+ <div class="grid fit-content" data-expected-width="200" data-expected-height="400">
+ <div class="cell alignSelfFlexEnd firstRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="160" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfFlexStart firstRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfStart secondRowFirstColumn directionRTL" data-offset-x="0" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfEnd secondRowSecondColumn directionRTL" data-offset-x="100" data-offset-y="360" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<!-- Vertical RL writing mode. -->
+<div style="position: relative">
+ <div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200">
+ <div class="alignSelfStretch firstRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="200" data-expected-height="100"></div>
+ <div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="200" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="90" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<div style="position: relative">
+ <div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200">
+ <div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<!-- Vertical LR writing mode. -->
+<div style="position: relative">
+ <div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200">
+ <div class="alignSelfStretch firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="200" data-expected-height="100"></div>
+ <div class="cell alignSelfStart firstRowSecondColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfEnd firstRowSecondColumn" data-offset-x="180" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfCenter secondRowFirstColumn" data-offset-x="290" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<div style="position: relative">
+ <div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200">
+ <div class="cell alignSelfFlexEnd firstRowFirstColumn" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfFlexStart firstRowSecondColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfStart secondRowFirstColumn" data-offset-x="200" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
+ <div class="cell alignSelfSelfEnd secondRowSecondColumn" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
+ </div>
+</div>
+
+<!-- Vertical RL writing mode with opposite block-flow directions grid container vs grid item. -->
+<div style="position: relative">
+ <div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200">
+ <div class="alignSelfStretch firstRowFirstColumn verticalLR" data-offset-x="200" data-offset-y="0" data-expected-width="200" data-expected-height="100">
+ </div>
+ <div class="cell alignSelfStart firstRowSecondColumn verticalLR" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ <div class="cell alignSelfEnd firstRowSecondColumn verticalLR" data-offset-x="200" data-offset-y="100" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ <div class="cell alignSelfCenter secondRowFirstColumn verticalLR" data-offset-x="90" data-offset-y="0" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ </div>
+</div>
+
+<div style="position: relative">
+ <div class="grid fit-content verticalRL" data-expected-width="400" data-expected-height="200">
+ <div class="cell alignSelfFlexEnd firstRowFirstColumn verticalLR" data-offset-x="200" data-offset-y="0" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ <div class="cell alignSelfFlexStart firstRowSecondColumn verticalLR" data-offset-x="380" data-offset-y="100" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ <div class="cell alignSelfSelfStart secondRowFirstColumn verticalLR" data-offset-x="0" data-offset-y="0" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ <div class="cell alignSelfSelfEnd secondRowSecondColumn verticalLR" data-offset-x="180" data-offset-y="100" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ </div>
+</div>
+
+<!-- Vertical LR writing mode with opposite block-flow directions grid container vs grid item. -->
+<div style="position: relative">
+ <div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200">
+ <div class="alignSelfStretch firstRowFirstColumn verticalRL" data-offset-x="0" data-offset-y="0" data-expected-width="200" data-expected-height="100">
+ </div>
+ <div class="cell alignSelfStart firstRowSecondColumn verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ <div class="cell alignSelfEnd firstRowSecondColumn verticalRL" data-offset-x="180" data-offset-y="100" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ <div class="cell alignSelfCenter secondRowFirstColumn verticalRL" data-offset-x="290" data-offset-y="0" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ </div>
+</div>
+
+<div style="position: relative">
+ <div class="grid fit-content verticalLR" data-expected-width="400" data-expected-height="200">
+ <div class="cell alignSelfFlexEnd firstRowFirstColumn verticalRL" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ <div class="cell alignSelfFlexStart firstRowSecondColumn verticalRL" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ <div class="cell alignSelfSelfStart secondRowFirstColumn verticalRL" data-offset-x="380" data-offset-y="0" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ <div class="cell alignSelfSelfEnd secondRowSecondColumn verticalRL" data-offset-x="200" data-offset-y="100" data-expected-width="20" data-expected-height="40">
+ <div class="item"></div>
+ </div>
+ </div>
+</div>
+
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1-ref.html b/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1-ref.html
new file mode 100644
index 00000000000..2ee6b077d3c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1-ref.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Test Reference: bug 1584018</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+
+<style>
+ .container {
+ width: 100px;
+ height: 100px;
+ }
+
+ .scroll-inner {
+ overflow:scroll;
+ height:100%;
+ }
+
+</style>
+
+<div class="container">
+ <div class="scroll-inner">
+ <div>0</div>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+ <div>0</div>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1.html b/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1.html
new file mode 100644
index 00000000000..7fb5d8e117d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/grid-child-percent-basis-resize-1.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Testcase, bug 1584018</title>
+<link rel="author" title="L. David Baron" href="https://dbaron.org/">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="help" href="https://drafts.csswg.org/css-grid">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1584018">
+<link rel="match" href="grid-child-percent-basis-resize-1-ref.html">
+
+<style>
+ .grid-container {
+ display: grid;
+ width: 100px;
+ }
+
+ .grid-item {
+ }
+
+ .scroll-outer {
+ overflow:hidden;
+ /* this combination is important */
+ height: 100%;
+ max-height: 100px;
+ }
+
+ .scroll-inner {
+ overflow:scroll;
+ height:100%;
+ }
+
+</style>
+
+<div class="grid-container">
+ <div class="grid-item">
+ <div class="scroll-outer">
+ <div class="scroll-inner">
+ <div>0</div>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+ <div>0</div>
+ <div>1</div>
+ <div>2</div>
+ <div>3</div>
+ <div>4</div>
+ <div>5</div>
+ <div>6</div>
+ <div>7</div>
+ <div>8</div>
+ <div>9</div>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-clip-scrolled-content-001.html b/tests/wpt/web-platform-tests/css/css-multicol/multicol-clip-scrolled-content-001.html
new file mode 100644
index 00000000000..868e91de345
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-clip-scrolled-content-001.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+<meta charset="utf-8">
+<title>CSS Test: Multi-column element with scrolled content clipping</title>
+<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"/>
+<link rel="help" href="http://www.w3.org/TR/css3-multicol/#columns"/>
+<link rel="match" href="reference/multicol-clip-scrolled-content-001-ref.html"/>
+<style>
+#columns {
+ column-width: 350px;
+}
+.spacer {
+ height: 200px;
+ width: 10px;
+}
+#outer {
+ border: 1px solid black;
+ overflow: scroll;
+ height: 300px;
+ width: 300px;
+}
+.inner {
+ overflow: scroll;
+}
+.clipped_target {
+ overflow: scroll;
+ background: red;
+ width: 50px;
+ height: 50px;
+}
+</style>
+
+<div class=spacer></div>
+<div id=columns>
+<div class=spacer></div>
+<div id=outer>
+ <div class=inner>
+ <pre class=clipped_target>
+ scrollable
+ content
+ goes
+ here
+ </pre>
+ </div>
+ <div class=spacer></div>
+ <div class=spacer></div>
+</div>
+</div>
+
+<script>
+window.onload = () => { outer.scrollTop = 100; };
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html b/tests/wpt/web-platform-tests/css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html
new file mode 100644
index 00000000000..d19ec1b93a1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-multicol/reference/multicol-clip-scrolled-content-001-ref.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html>
+<meta charset="utf-8">
+<title>CSS Test: Multi-column element with scrolled content clipping (reference)</title>
+<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"/>
+<link rel="help" href="http://www.w3.org/TR/css3-multicol/#columns"/>
+<style>
+#columns {
+ column-width: 350px;
+}
+.spacer {
+ height: 200px;
+ width: 10px;
+}
+#outer {
+ border: 1px solid black;
+ overflow: scroll;
+ height: 300px;
+ width: 300px;
+}
+.inner {
+ overflow: scroll;
+ visibility: hidden;
+}
+.clipped_target {
+ width: 50px;
+ height: 50px;
+}
+</style>
+
+<div class=spacer></div>
+<div id=columns>
+<div class=spacer></div>
+<div id=outer>
+ <div class=inner>
+ <pre class=clipped_target>
+ scrollable
+ content
+ goes
+ here
+ </pre>
+ </div>
+ <div class=spacer></div>
+ <div class=spacer></div>
+</div>
+</div>
+
+<script>
+window.onload = () => { outer.scrollTop = 100; };
+</script>
+</html>
+
diff --git a/tests/wpt/web-platform-tests/css/css-overflow/clip-001-ref.html b/tests/wpt/web-platform-tests/css/css-overflow/clip-001-ref.html
new file mode 100644
index 00000000000..9ccdbf93c61
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-overflow/clip-001-ref.html
@@ -0,0 +1,27 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>CSS Test Reference</title>
+<style>
+ #target {
+ width: 100px;
+ height: 100px;
+ background: red;
+ /* For this simple case, hidden and clip are equivalent */
+ overflow: hidden;
+ }
+
+ #container {
+ overflow: auto;
+ height: 300px;
+ }
+
+ #fill {
+ background: blue;
+ height: 5000px;
+ }
+</style>
+<div id="container">
+ <div id="target">
+ <div id="fill"></div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-overflow/clip-001.html b/tests/wpt/web-platform-tests/css/css-overflow/clip-001.html
new file mode 100644
index 00000000000..84bf8cdae55
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-overflow/clip-001.html
@@ -0,0 +1,31 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>overflow: clip clips its contents and doesn't cause scrollable overflow</title>
+<link rel="help" href="https://drafts.csswg.org/css-overflow/#valdef-overflow-clip">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="match" href="clip-001-ref.html">
+<style>
+ #target {
+ width: 100px;
+ height: 100px;
+ background: red;
+ overflow: -moz-hidden-unscrollable;
+ overflow: clip;
+ }
+
+ #container {
+ overflow: auto;
+ height: 300px;
+ }
+
+ #fill {
+ background: blue;
+ height: 5000px;
+ }
+</style>
+<div id="container">
+ <div id="target">
+ <div id="fill"></div>
+ </div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-overflow/dynamic-visible-to-clip-001.html b/tests/wpt/web-platform-tests/css/css-overflow/dynamic-visible-to-clip-001.html
new file mode 100644
index 00000000000..08114d73b8b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-overflow/dynamic-visible-to-clip-001.html
@@ -0,0 +1,36 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Overflow areas are updated when dynamically changed to overflow: clip</title>
+<link rel="help" href="https://drafts.csswg.org/css-overflow/#valdef-overflow-clip">
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="match" href="clip-001-ref.html">
+<style>
+ #target {
+ width: 100px;
+ height: 100px;
+ overflow: visible;
+ }
+
+ #container {
+ overflow: auto;
+ height: 300px;
+ }
+ #fill {
+ height: 5000px;
+ background: blue;
+ }
+</style>
+<div id="container">
+ <div id="target">
+ <div id="fill"></div>
+ </div>
+</div>
+<script>
+onload = function() {
+ let target = document.getElementById("target");
+ window.unused = target.getBoundingClientRect(); // Update layout
+ target.style.overflow = "-moz-hidden-unscrollable";
+ target.style.overflow = "clip";
+}
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/parsing/tree-abiding-pseudo-elements.html b/tests/wpt/web-platform-tests/css/css-pseudo/parsing/tree-abiding-pseudo-elements.html
new file mode 100644
index 00000000000..4997ae4f564
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-pseudo/parsing/tree-abiding-pseudo-elements.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: Parsing tree-abiding pseudo-elements</title>
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#treelike">
+<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
+<meta name="assert" content="This test checks that gutters adjacent to collapsed tracks don't reduce the space available for aligning adjacent grid items." />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<script>
+// Generated content pseudo-elements
+test_valid_selector("::before");
+test_valid_selector("*::before", "::before");
+test_valid_selector("foo.bar[baz]::before");
+test_invalid_selector("::before *");
+
+test_valid_selector("::after");
+test_valid_selector("*::after", "::after");
+test_valid_selector("foo.bar[baz]::after");
+test_invalid_selector("::after *");
+
+// List marker pseudo-element
+test_valid_selector("::marker");
+test_valid_selector("*::marker", "::marker");
+test_valid_selector("foo.bar[baz]::marker");
+test_invalid_selector("::marker *");
+
+// Placeholder input pseudo-element
+test_valid_selector("::placeholder");
+test_valid_selector("*::placeholder", "::placeholder");
+test_valid_selector("foo.bar[baz]::placeholder");
+test_invalid_selector("::placeholder *");
+
+// Combinations of the above
+test_invalid_selector("::before::before");
+test_invalid_selector("::after::before");
+test_invalid_selector("::marker::before");
+test_invalid_selector("::placeholder::before");
+
+test_invalid_selector("::before::after");
+test_invalid_selector("::after::after");
+test_invalid_selector("::marker::after");
+test_invalid_selector("::placeholder::after");
+
+test_valid_selector("::before::marker");
+test_valid_selector("::after::marker");
+test_invalid_selector("::marker::marker");
+test_invalid_selector("::placeholder::marker");
+
+test_invalid_selector("::before::placeholder");
+test_invalid_selector("::after::placeholder");
+test_invalid_selector("::marker::placeholder");
+test_invalid_selector("::placeholder::placeholder");
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-scoping/slotted-parsing.html b/tests/wpt/web-platform-tests/css/css-scoping/slotted-parsing.html
index 6888693bbf4..2c55a0ded09 100644
--- a/tests/wpt/web-platform-tests/css/css-scoping/slotted-parsing.html
+++ b/tests/wpt/web-platform-tests/css/css-scoping/slotted-parsing.html
@@ -5,31 +5,10 @@
<link rel="help" href="https://drafts.csswg.org/css-scoping/#slotted-pseudo">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
<style id="styleElm">
</style>
<script>
- function parse_selector(selector_text) {
- try {
- styleElm.sheet.insertRule(selector_text+"{}");
- styleElm.sheet.deleteRule(0);
- return true;
- } catch (ex) {
- return false;
- }
- }
-
- function test_valid_selector(selector_text) {
- test(function(){
- assert_true(parse_selector(selector_text));
- }, "Should be a valid selector: '" + selector_text + "'");
- }
-
- function test_invalid_selector(selector_text) {
- test(function(){
- assert_false(parse_selector(selector_text));
- }, "Should be an invalid selector: '" + selector_text + "'");
- }
-
test_invalid_selector("::slotted");
test_invalid_selector("::slotted()");
test_invalid_selector("::slotted(*).class");
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html
index 3c01c08a64c..25c465dd3a6 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-001.html
@@ -55,12 +55,17 @@
</div>
<div id="log"></div>
<script>
+ test(function() {
+ assert_true(
verifyTextPoints({
roundedRect: {x: 0, y: 10, width: 100, height: 100, rx: 50, ry: 50},
containerWidth: 200,
containerHeight: 200,
lineHeight: 10
- }, 10, 1.5);
+ }, 10, 1.5),
+ "Lines positioned properly around the shape."
+ );
+ });
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html
index ff13d25204a..3a30e678649 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-002.html
@@ -58,12 +58,17 @@
</div>
<div id="log"></div>
<script>
+ test(function() {
+ assert_true(
verifyTextPoints({
roundedRect: {x: 0, y: 10, width: 100, height: 100, rx: 50, ry: 50},
containerWidth: 200,
containerHeight: 200,
lineHeight: 10
- }, 10, 1);
+ }, 10, 1),
+ "Lines positioned properly around the shape."
+ );
+ });
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html
index 043aa82f467..2e52163bf21 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-003.html
@@ -60,12 +60,17 @@
</div>
<div id="log"></div>
<script>
+ test(function() {
+ assert_true(
verifyTextPoints({
roundedRect: {x: 0, y: 10, width: 100, height: 100, rx: 50, ry: 50},
containerWidth: 200,
containerHeight: 200,
lineHeight: 10
- }, 10, 1.5);
+ }, 10, 1.5),
+ "Lines positioned properly around the shape."
+ );
+ });
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html
index 15eb1b8ce59..5224b23caef 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-radial-gradient-004.html
@@ -59,12 +59,17 @@
</div>
<div id="log"></div>
<script>
+ test(function() {
+ assert_true(
verifyTextPoints({
roundedRect: {x: 100, y: 10, width: 100, height: 100, rx: 50, ry: 50},
containerWidth: 200,
containerHeight: 200,
lineHeight: 10
- }, 10, 1, "right");
+ }, 10, 1, "right"),
+ "Lines positioned properly around the shape."
+ );
+ });
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/test-utils.js b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/test-utils.js
index 616374d4937..906fe656088 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/test-utils.js
+++ b/tests/wpt/web-platform-tests/css/css-shapes/shape-outside/supported-shapes/support/test-utils.js
@@ -1,5 +1,5 @@
function verifyTextPoints(shape, numLines, tolerance, side) {
- var failed = false;
+ var passed = true;
if (tolerance === undefined)
tolerance = 0.5;
if (side === undefined)
@@ -19,11 +19,9 @@ function verifyTextPoints(shape, numLines, tolerance, side) {
if( Math.abs( (actual - expected[i])) > tolerance ){
line.style.setProperty('color', 'red');
console.log('diff: ' + Math.abs(actual - expected[i]));
- failed = true;
+ passed = false;
}
}
- if (window.done) {
- assert_false(failed, "Lines positioned properly around the shape.");
- done();
- }
+
+ return passed;
}
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html
index 83897e9fe6b..4f6a4f732d0 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-010.html
@@ -32,8 +32,10 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/spec-example-utils.js"></script>
<script>
+ setup({ single_test: true });
function checkFloats() {
approxShapeTest('test', 'line-', 2, [182, 199, 201, 199, 182, 0]);
+ done();
}
</script>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html
index 93bfbea9ff8..5f63c12cd96 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-011.html
@@ -32,8 +32,10 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/spec-example-utils.js"></script>
<script>
+ setup({ single_test: true });
function checkFloats() {
approxShapeTest('test', 'line-', 2, [218, 236, 238, 236, 218, 160]);
+ done();
}
</script>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html
index 71ef19ef1a6..129412f1f58 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-012.html
@@ -34,8 +34,10 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/spec-example-utils.js"></script>
<script>
+ setup({ single_test: true });
function checkFloats() {
approxShapeTest('test', 'line-', 2, [181, 199, 201, 199, 181, 0]);
+ done();
}
</script>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html
index 1b7746113b9..329f033a4a9 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-013.html
@@ -42,8 +42,10 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/spec-example-utils.js"></script>
<script>
+ setup({ single_test: true });
function checkFloats() {
approxShapeTest('test', 'line-', 2, [200, 214, 216, 214, 200, 158, 0]);
+ done();
}
</script>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html
index 3e97ae4c3ae..682ac0986e4 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-014.html
@@ -46,8 +46,10 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/spec-example-utils.js"></script>
<script>
+ setup({ single_test: true });
function checkFloats() {
approxShapeTest('test', 'line-', 3, [182, 198, 200, 198, 182, 0]);
+ done();
}
</script>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html
index d75d598bf37..23b6b4e3481 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-015.html
@@ -34,8 +34,10 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/spec-example-utils.js"></script>
<script>
+ setup({ single_test: true });
function checkFloats() {
approxShapeTest('test', 'line-', 2, [185, 199, 200, 199, 185, 0]);
+ done();
}
</script>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html
index 212b21817a9..a7c4d591bc4 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-016.html
@@ -34,8 +34,10 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/spec-example-utils.js"></script>
<script>
+ setup({ single_test: true });
function checkFloats() {
approxShapeTest('test', 'line-', 2, [185, 199, 200, 199, 185, 0]);
+ done();
}
</script>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html
index b16362153e5..2e9c193044b 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-017.html
@@ -33,8 +33,10 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/spec-example-utils.js"></script>
<script>
+ setup({ single_test: true });
function checkFloats() {
approxShapeTest('test', 'line-', 2, [185, 199, 200, 199, 185, 0]);
+ done();
}
</script>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html
index 058e5793e5c..6c285e07f9c 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-018.html
@@ -39,7 +39,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/spec-example-utils.js"></script>
<script>
- setup({explicit_done: true});
+ setup({single_test: true});
document.fonts.ready.then(()=> {
approxShapeTest('test', 'line-', 2, [48, 88, 128, 168, 180, 0]);
done();
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html
index 4f59ff331fe..22828e3984f 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/shape-outside-019.html
@@ -41,8 +41,10 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/spec-example-utils.js"></script>
<script>
+ setup({ single_test: true });
function checkFloats() {
approxShapeTest('test', 'line-', 2, [242, 256, 258, 256, 242, 204, 0]);
+ done();
}
</script>
</head>
diff --git a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/support/spec-example-utils.js b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/support/spec-example-utils.js
index c5b0411ca27..6939b753aad 100644
--- a/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/support/spec-example-utils.js
+++ b/tests/wpt/web-platform-tests/css/css-shapes/spec-examples/support/spec-example-utils.js
@@ -11,7 +11,6 @@ function approxShapeTest(testId, linePrefix, epsilon, lineOffsets) {
var line = document.getElementById(linePrefix + i);
assert_approx_equals(line.offsetLeft, lineOffsets[i] + testOffset, epsilon, 'Line ' + i + ' is positioned properly');
}
- done();
}
runTest();
}
diff --git a/tests/wpt/web-platform-tests/css/css-ui/outline-018.html b/tests/wpt/web-platform-tests/css/css-ui/outline-018.html
index ff79144da2a..c2db6f99719 100644
--- a/tests/wpt/web-platform-tests/css/css-ui/outline-018.html
+++ b/tests/wpt/web-platform-tests/css/css-ui/outline-018.html
@@ -29,7 +29,7 @@
outline: solid 1px black;
}
#test4 {
- animation: outline-anim 3s 0s paused reverse-linear;
+ animation: outline-anim 3s 0s paused reverse linear;
outline: solid 1px black;
}
</style>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-001.html b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-001.html
deleted file mode 100644
index 06c81d5de4c..00000000000
--- a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-001.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>CSSOM View Module test:MediaQueryList</title>
- <link rel="author" title="unbug" href="mailto:tidelgl@gmail.com" />
- <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface">
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
- <style type="text/css">
- </style>
-</head>
-<body>
- <p>This case tests the MediaQueryList</p>
- <div id="log"></div>
- <script>
- test(function(){
- assert_equals(window.matchMedia('(min-width: 1px)').matches, true, "Expected any device to match min-width: 1px");
- },'matchMedia');
- </script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent.html b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent.html
new file mode 100644
index 00000000000..5bdd9dfc9ce
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-handleEvent.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="flags" content="dom">
+<title>CSS Test: CSSOM View MediaQueryList::addListener with handleEvent</title>
+<link rel="help" href="https://dom.spec.whatwg.org/#callbackdef-eventlistener">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/matchMedia.js"></script>
+<div id="log"></div>
+<script>
+"use strict";
+setup({ allow_uncaught_exception: true });
+
+promise_test(async t => {
+ const mql = await createMQL(t);
+
+ let _this;
+ let _event;
+ const listener = {
+ handleEvent(event) {
+ _this = this;
+ _event = event;
+ },
+ };
+
+ mql.addListener(listener);
+ triggerMQLEvent(mql);
+ await waitForChangesReported();
+
+ assert_equals(_this, listener);
+ assert_equals(_event.media, mql.media);
+ assert_equals(_event.matches, mql.matches);
+}, "calls handleEvent method of event listener");
+
+promise_test(async t => {
+ const mql = await createMQL(t);
+
+ let calls = 0;
+ mql.addListener({
+ get handleEvent() {
+ calls++;
+ return function() {};
+ },
+ });
+ assert_equals(calls, 0);
+
+ triggerMQLEvent(mql);
+ await waitForChangesReported();
+ assert_equals(calls, 1);
+
+ triggerMQLEvent(mql);
+ await waitForChangesReported();
+ assert_equals(calls, 2);
+}, "looks up handleEvent method on every event dispatch");
+
+promise_test(async t => {
+ const mql = await createMQL(t);
+
+ let calls = 0;
+ const listener = () => {
+ calls++;
+ };
+
+ Object.defineProperty(listener, "handleEvent", {
+ get: t.unreached_func("handleEvent method should not be looked up on functions"),
+ });
+ mql.addListener(listener);
+
+ triggerMQLEvent(mql);
+ await waitForChangesReported();
+ assert_equals(calls, 1);
+}, "doesn't look up handleEvent method on callable event listeners");
+
+const uncaught_error_test = async (t, listener) => {
+ const mql = await createMQL(t);
+ mql.addListener(listener);
+
+ const eventWatcher = new EventWatcher(t, window, "error");
+ const errorPromise = eventWatcher.wait_for("error");
+ triggerMQLEvent(mql);
+
+ const event = await errorPromise;
+ throw event.error;
+};
+
+promise_test(t => {
+ const error = { name: "test" };
+ const listener = {
+ get handleEvent() {
+ throw error;
+ },
+ };
+
+ return promise_rejects_exactly(t, error, uncaught_error_test(t, listener));
+}, "rethrows errors when getting handleEvent");
+
+promise_test(t => {
+ const listener = { handleEvent: null };
+ return promise_rejects(t, new TypeError(), uncaught_error_test(t, listener));
+}, "throws if handleEvent is falsy and not callable");
+
+promise_test(t => {
+ const listener = { handleEvent: "str" };
+ return promise_rejects(t, new TypeError(), uncaught_error_test(t, listener));
+}, "throws if handleEvent is thruthy and not callable");
+</script>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener.html b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener.html
new file mode 100644
index 00000000000..5446e48e6cf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-addListener-removeListener.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="flags" content="dom">
+<title>CSS Test: CSSOM View MediaQueryList::{add,remove}Listener</title>
+<link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com">
+<link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/matchMedia.js"></script>
+<div id="log"></div>
+<script>
+"use strict";
+
+test(function() {
+ const mql = window.matchMedia("all");
+ assert_inherits(mql, "addListener");
+ assert_equals(typeof mql.addListener, "function");
+}, "MediaQueryList::addListener is a function");
+
+promise_test(async t => {
+ const iframe = await createIFrame(t, 200, 100);
+ const heightMQL = iframe.contentWindow.matchMedia("(max-height: 50px)");
+ const widthMQL = iframe.contentWindow.matchMedia("(min-width: 150px)");
+
+ let heightEvent;
+ let widthEvent;
+
+ heightMQL.addListener(event => {
+ heightEvent = event;
+ });
+ widthMQL.addListener(event => {
+ widthEvent = event;
+ });
+
+ assert_false(heightMQL.matches);
+ assert_true(widthMQL.matches);
+
+ iframe.height = "50"; // 200x100 => 200x50
+ await waitForChangesReported();
+
+ assert_equals(heightEvent.media, heightMQL.media);
+ assert_true(heightEvent.matches);
+ assert_true(heightMQL.matches);
+ assert_true(widthMQL.matches);
+
+ iframe.width = "100"; // 200x50 => 100x50
+ await waitForChangesReported();
+
+ assert_equals(widthEvent.media, widthMQL.media);
+ assert_false(widthEvent.matches);
+ assert_false(widthMQL.matches);
+ assert_true(heightMQL.matches);
+}, "listeners are called when <iframe> is resized");
+
+promise_test(async t => {
+ const mql = await createMQL(t);
+
+ let eventsCount = 0;
+ mql.addListener(() => {
+ eventsCount++;
+ });
+
+ for (let i = 1; i <= 10; i++) {
+ triggerMQLEvent(mql);
+ await waitForChangesReported();
+ assert_equals(eventsCount, i);
+ }
+}, "listeners are called correct number of times");
+
+promise_test(async t => {
+ const mql = await createMQL(t);
+ const calls = [];
+
+ mql.addListener(() => {
+ calls.push("1st");
+ });
+ mql.addListener(() => {
+ calls.push("2nd");
+ });
+
+ triggerMQLEvent(mql);
+ await waitForChangesReported();
+
+ assert_equals(calls[0], "1st");
+ assert_equals(calls[1], "2nd");
+}, "listeners are called in order they were added");
+
+promise_test(async t => {
+ const mql = await createMQL(t);
+
+ let called = 0;
+ const listener = () => {
+ called++;
+ };
+
+ mql.addListener(listener);
+ mql.addListener(listener);
+
+ triggerMQLEvent(mql);
+ await waitForChangesReported();
+
+ assert_equals(called, 1);
+}, "listener that was added twice is called only once");
+
+test(function() {
+ const mql = window.matchMedia("all");
+ assert_inherits(mql, "removeListener");
+ assert_equals(typeof mql.removeListener, "function");
+}, "MediaQueryList::removeListener is a function");
+
+promise_test(async t => {
+ const mql = await createMQL(t);
+ const listener = t.unreached_func("should not be called");
+
+ mql.addListener(listener);
+ mql.removeListener(listener);
+
+ triggerMQLEvent(mql);
+ await waitForChangesReported();
+}, "MediaQueryList::removeListener removes added listener");
+</script>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-with-empty-string.html b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-with-empty-string.html
deleted file mode 100644
index 3d5a5316566..00000000000
--- a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryList-with-empty-string.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!doctype html>
-<meta charset="utf-8">
-<title>cssom-view - MediaQueryList with empty string</title>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script>
-test(function () {
- var mql = window.matchMedia('');
- assert_equals(mql.media, '', "This should be an empty media query list");
- assert_equals(mql.matches, true, "Empty media query list should evaluate to true");
-});
-</script>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryListEvent.html b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryListEvent.html
index 6631039d248..24cce3cc097 100644
--- a/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryListEvent.html
+++ b/tests/wpt/web-platform-tests/css/cssom-view/MediaQueryListEvent.html
@@ -10,22 +10,10 @@
"use strict";
test(t => {
- assert_equals(MediaQueryListEvent.length, 1);
- assert_throws(new TypeError(), () => {
- new MediaQueryListEvent();
- });
-}, "type argument is required");
-
-test(t => {
assert_equals(new MediaQueryListEvent("test").type, "test");
}, 'type can be different from "change"');
test(t => {
- assert_equals(Object.getPrototypeOf(MediaQueryListEvent), Event);
- assert_true(new MediaQueryListEvent("change") instanceof Event);
-}, "extends Event");
-
-test(t => {
const event = new MediaQueryListEvent("change");
assert_equals(event.media, "");
@@ -47,16 +35,4 @@ test(t => {
assert_true(event.bubbles);
assert_true(event.cancelable);
}, "init dictionary overrides");
-
-test(t => {
- const event = new MediaQueryListEvent("change");
- assert_idl_attribute(event, "media");
- assert_readonly(event, "media");
-}, "MediaQueryListEvent::media is read-only IDL attribute");
-
-test(t => {
- const event = new MediaQueryListEvent("change");
- assert_idl_attribute(event, "matches");
- assert_readonly(event, "matches");
-}, "MediaQueryListEvent::matches is read-only IDL attribute");
</script>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.html b/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.html
new file mode 100644
index 00000000000..14df3d02425
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name="flags" content="dom">
+<title>CSS Test: CSSOM View matchMedia and MediaQueryList</title>
+<link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com">
+<link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-window-matchmedia">
+<link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface">
+<link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-media-queries">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/matchMedia.js"></script>
+<div id="log"></div>
+<script>
+"use strict";
+
+test(() => {
+ assert_equals(
+ typeof window.matchMedia,
+ "function",
+ "FATAL ERROR: The window.matchMedia function is not present. The rest of the testsuite will fail to run."
+ );
+}, "window.matchMedia is a function");
+
+test(() => {
+ const mql = window.matchMedia("all");
+ assert_equals(mql.media, "all");
+ assert_true(mql.matches);
+}, 'window.matchMedia("all") matches');
+
+test(() => {
+ const mql = window.matchMedia("");
+ assert_equals(mql.media, "");
+ assert_true(mql.matches);
+}, 'window.matchMedia("") matches');
+
+test(() => {
+ const mql = window.matchMedia("(min-width: 1px)");
+ assert_equals(mql.media, "(min-width: 1px)");
+ assert_true(mql.matches);
+}, 'window.matchMedia("(min-width: 1px)") matches');
+
+test(() => {
+ const mql = window.matchMedia("::");
+ assert_true(mql instanceof MediaQueryList);
+ assert_equals(mql.media, "not all");
+ assert_false(mql.matches);
+}, 'media query with syntax error is serialized as "not all"');
+
+promise_test(async t => {
+ const iframe = await createIFrame(t, 200);
+ const mql = iframe.contentWindow.matchMedia("(max-width: 199px), all and (min-width: 200px)");
+ assert_equals(mql.media, "(max-width: 199px), (min-width: 200px)");
+ assert_true(mql.matches);
+}, 'iframe.matchMedia("(max-width: 199px), all and (min-width: 200px)") is serialized w/o "all"');
+
+promise_test(async t => {
+ const iframe = await createIFrame(t);
+ const mql = iframe.contentWindow.matchMedia("(min-aspect-ratio: 1/1)");
+ assert_true(mql.matches);
+}, 'iframe.matchMedia("(min-aspect-ratio: 1/1)") matches');
+
+promise_test(async t => {
+ const iframe = await createIFrame(t, 200);
+ const mql = iframe.contentWindow.matchMedia("(width: 200px)");
+ assert_true(mql.matches);
+}, 'iframe.matchMedia("(width: 200px)") matches');
+
+promise_test(async t => {
+ const iframe = await createIFrame(t, 200, 100);
+ const mql = iframe.contentWindow.matchMedia("(max-height: 50px)");
+ assert_false(mql.matches);
+}, 'iframe.matchMedia("(max-height: 50px)") matches');
+
+promise_test(async t => {
+ const iframe = await createIFrame(t, 200, 100);
+ const mql = iframe.contentWindow.matchMedia("(min-width: 150px)");
+ assert_true(mql.matches);
+}, 'iframe.matchMedia("(min-width: 150px)") matches');
+</script>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.xht b/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.xht
deleted file mode 100644
index 202a3b738dd..00000000000
--- a/tests/wpt/web-platform-tests/css/cssom-view/matchMedia.xht
+++ /dev/null
@@ -1,188 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>CSS Test: CSSOM View matchMedia and MediaQueryList</title>
- <meta name="timeout" content="long"/>
- <link rel="author" title="Rune Lillesveen" href="mailto:rune@opera.com" />
- <link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-window-matchmedia" />
- <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" />
- <link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-media-queries" />
- <meta name="flags" content="dom" />
- <script src="/resources/testharness.js" type="text/javascript" />
- <script src="/resources/testharnessreport.js" type="text/javascript" />
- <style type="text/css"><![CDATA[
- iframe { border: none; }
- ]]></style>
- </head>
- <body>
- <noscript>Test not run - javascript required.</noscript>
- <div id="log" />
- <iframe width="200" height="100" />
- <script type="text/javascript"><![CDATA[
- function reflow(doc) {
- doc.body.offsetWidth;
- }
-
- var iframe = document.querySelector("iframe");
- var iframe_window = window.frames[0];
-
- reflow(iframe_window.document);
-
- test(function(){
- assert_inherits(window, "matchMedia");
- }, "window.matchMedia exists");
-
- test(function(){
- assert_true(window.matchMedia instanceof Function, "FATAL ERROR: The window.matchMedia function is not present. The rest of the testsuite will fail to run.");
- }, "window.matchMedia is a Function");
-
- var mql, mql1, mql2, mql3;
-
- test(function(){
- mql = window.matchMedia("all");
- assert_true(mql instanceof MediaQueryList, "matchMedia(\"all\") returned MediaQueryList object.");
- }, "window.matchMedia(\"all\")");
-
- test(function(){
- assert_idl_attribute(mql, "media", "Check that MediaQueryList.media exists.");
- }, "MediaQueryList.media exists");
-
- test(function(){
- assert_readonly(mql, "media", "Check that MediaQueryList.media is readonly.");
- }, "MediaQueryList.media is readonly");
-
- test(function(){
- assert_equals(mql.media, "all");
- }, "MediaQueryList.media for \"all\"");
-
- test(function(){
- assert_idl_attribute(mql, "matches", "Check that MediaQueryList.matches exists.");
- }, "MediaQueryList.matches exists");
-
- test(function(){
- assert_readonly(mql, "matches", "Check that MediaQueryList.matches is readonly.");
- }, "MediaQueryList.matches is readonly");
-
- test(function(){
- assert_true(mql.matches);
- }, "MediaQueryList.matches for \"all\"");
-
- test(function(){
- assert_inherits(mql, "addListener");
- }, "MediaQueryList.addListener exists");
-
- test(function(){
- assert_true(mql.addListener instanceof Function);
- }, "MediaQueryList.addListener is a Function");
-
- test(function(){
- assert_inherits(mql, "removeListener");
- }, "MediaQueryList.removeListener exists");
-
- test(function(){
- assert_true(mql.removeListener instanceof Function);
- }, "MediaQueryList.removeListener is a Function");
-
- test(function(){
- mql = window.matchMedia("::");
- assert_true(mql instanceof MediaQueryList, "window.matchMedia(\"::\") returned MediaQueryList object.");
- assert_equals(mql.media, "not all", "MediaQueryList.media serialized as \"not all\" from original string with syntax error.");
- }, "MediaQueryList.media syntax error");
-
- test(function(){
- assert_false(mql.matches);
- }, "MediaQueryList.matches for \"not all\"");
-
- test(function(){
- mql = iframe_window.matchMedia("(max-width: 199px), all and (min-width: 200px)");
- assert_equals(mql.media, "(max-width: 199px), (min-width: 200px)");
- assert_true(mql.matches);
- }, "MediaQueryList.matches for \"(max-width: 199px), all and (min-width: 200px)\"")
-
- test(function(){
- mql = iframe_window.matchMedia("(min-aspect-ratio: 1/1)");
- assert_true(mql.matches);
- }, "MediaQueryList.matches for \"(min-aspect-ratio: 1/1)\"");
-
- test(function(){
- mql = iframe_window.matchMedia("(width: 200px)");
- assert_true(mql.matches);
- }, "MediaQueryList.matches for \"(width: 200px)\"");
-
- test(function(){
- mql1 = iframe_window.matchMedia("(max-height: 50px)");
- assert_false(mql1.matches);
- }, "MediaQueryList.matches for \"(max-height: 50px)\"");
-
- test(function(){
- mql2 = iframe_window.matchMedia("(min-width: 150px)");
- assert_true(mql2.matches);
- }, "MediaQueryList.matches for \"(min-width: 150px)\"");
-
- var resizeTest = async_test("Resize iframe from 200x100 to 200x50, then to 100x50");
- var listenerOrderTest = async_test("Listeners are called in the order which they have been added");
- var duplicateListenerTest = async_test("Listener added twice is only called once.");
-
- window.onload = function(){
-
- var rmListener = function(x){
- resizeTest.step(function(){
- assert_unreached("removeListener was not successful.");
- });
- };
-
- var dupListener = function(x){
- duplicateListenerTest.step(function(){
- assert_false(mql1.dupListenerCalled, "Check that this listener has not been called before.");
- mql1.dupListenerCalled = true;
- });
- };
-
- mql1.firstListenerCalled = false;
- mql1.dupListenerCalled = false;
- // Add listener twice and remove it below. Should not be called.
- mql1.addListener(rmListener);
- mql1.addListener(rmListener);
- // Add listener twice. Should only be called once.
- mql1.addListener(dupListener);
- mql1.addListener(dupListener);
-
- mql1.addListener(function(x){
- resizeTest.step(function(){
- assert_equals(x, mql1, "Check that the MediaQueryList passed to the handler is the same that addListener was invoked on.");
- assert_true(x.matches, "(max-height: 50px) should now pass.");
- assert_true(mql2.matches, "(min-width: 150px) should still pass.");
- iframe.width = "100";
- });
-
- listenerOrderTest.step(function(){
- assert_false(mql1.firstListenerCalled, "Check that this listener is only called once.");
- mql1.firstListenerCalled = true;
- });
- });
-
- mql1.addListener(function(x){
- listenerOrderTest.step(function(){
- assert_true(mql1.firstListenerCalled, "Check that the listener added last is called last.");
- });
- listenerOrderTest.done();
- });
-
- mql1.removeListener(rmListener);
-
- mql2.addListener(function(x){
- duplicateListenerTest.done();
- resizeTest.step(function(){
- assert_equals(x, mql2, "Check that the MediaQueryList passed to the handler is the same that addListener was invoked on.");
- assert_true(mql1.matches, "(max-height: 50px) should still pass.");
- assert_false(x.matches, "(min-width: 150px) should now fail.");
- });
- resizeTest.done();
- });
-
- iframe.height = "50";
- };]]>
- </script>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener-handleEvent.html b/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener-handleEvent.html
deleted file mode 100644
index 8bc665693d8..00000000000
--- a/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener-handleEvent.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<!doctype html>
-<meta charset="utf-8">
-<title>CSS Test: CSSOM View matchMedia handleEvent via addListener</title>
-<link rel="help" href="https://dom.spec.whatwg.org/#callbackdef-eventlistener">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/matchMedia.js"></script>
-<div id="log"></div>
-<script>
-setup({ allow_uncaught_exception: true });
-
-promise_test(async t => {
- const iframe = await createIframe(t);
- const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
-
- let _this;
- let _event;
- const eventListener = {
- handleEvent(event) {
- _this = this;
- _event = event;
- },
- };
-
- mql.addListener(eventListener);
- triggerMQLEvent(iframe);
- await waitForChangesReported();
-
- assert_equals(_this, eventListener);
- assert_equals(_event.matches, mql.matches);
- assert_equals(_event.media, MEDIA_QUERY);
-}, "calls handleEvent method of event listener");
-
-promise_test(async t => {
- const iframe = await createIframe(t);
- const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
-
- let uncaughtError;
- const errorHandler = event => {
- uncaughtError = event.error;
- };
- window.addEventListener("error", errorHandler);
- t.add_cleanup(() => {
- window.removeEventListener("error", errorHandler);
- });
-
- const thrownError = { name: "test" };
- mql.addListener({
- get handleEvent() {
- throw thrownError;
- },
- });
-
- triggerMQLEvent(iframe);
- await waitForChangesReported();
- assert_equals(uncaughtError, thrownError);
-}, "rethrows errors when getting handleEvent");
-
-promise_test(async t => {
- const iframe = await createIframe(t);
- const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
-
- let calls = 0;
- mql.addListener({
- get handleEvent() {
- calls++;
- return function() {};
- },
- });
- assert_equals(calls, 0);
-
- triggerMQLEvent(iframe);
- await waitForChangesReported();
- assert_equals(calls, 1);
-
- triggerMQLEvent(iframe);
- await waitForChangesReported();
- assert_equals(calls, 2);
-}, "looks up handleEvent method on every event dispatch");
-
-promise_test(async t => {
- const iframe = await createIframe(t);
- const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
-
- let calls = 0;
- const eventListener = function() { calls++; };
- Object.defineProperty(eventListener, "handleEvent", {
- get: t.unreached_func("handleEvent method should not be looked up on functions"),
- });
- mql.addListener(eventListener);
-
- triggerMQLEvent(iframe);
- await waitForChangesReported();
- assert_equals(calls, 1);
-}, "doesn't look up handleEvent method on callable event listeners");
-
-promise_test(async t => {
- const iframe = await createIframe(t);
- const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
-
- let uncaughtError;
- const errorHandler = event => {
- uncaughtError = event.error;
- };
- window.addEventListener("error", errorHandler);
- t.add_cleanup(() => {
- window.removeEventListener("error", errorHandler);
- });
-
- mql.addListener({ handleEvent: null });
- triggerMQLEvent(iframe);
- await waitForChangesReported();
-
- assert_equals(uncaughtError.name, "TypeError");
-}, "throws if handleEvent is falsy and not callable");
-
-promise_test(async t => {
- const iframe = await createIframe(t);
- const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
-
- let uncaughtError;
- const errorHandler = event => {
- uncaughtError = event.error;
- };
- window.addEventListener("error", errorHandler);
- t.add_cleanup(() => {
- window.removeEventListener("error", errorHandler);
- });
-
- mql.addListener({ handleEvent: "str" });
- triggerMQLEvent(iframe);
- await waitForChangesReported();
-
- assert_equals(uncaughtError.name, "TypeError");
-}, "throws if handleEvent is thruthy and not callable");
-</script>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener.html b/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener.html
deleted file mode 100644
index 7236be7febc..00000000000
--- a/tests/wpt/web-platform-tests/css/cssom-view/matchMediaAddListener.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>CSS Test: CSSOM View matchMedia addListener</title>
- <link rel="author" title="Chris Wu" href="mailto:pwx.frontend@gmail.com" />
- <link rel="help" href="http://www.w3.org/TR/cssom-view/#the-mediaquerylist-interface" />
- <meta name="flags" content="dom" />
- <script src="/resources/testharness.js" type="text/javascript"></script>
- <script src="/resources/testharnessreport.js" type="text/javascript"></script>
- <style type="text/css">
- iframe { border: none; }
- </style>
- </head>
- <body>
- <div id="log"></div>
- <iframe width="200" height="100" id="iframe1"></iframe>
- <script>
- function reflow(doc) {
- doc.body.offsetWidth;
- }
-
- var iframe = document.querySelector("iframe");
- var iframe_window = window.frames[0];
- var iframe1 = document.getElementById("iframe1");
- reflow(iframe_window.document);
-
- var i = 0;
- var totalCount = 10;
- var count = 0;
- var divineCount = 10;
- var width_list = [201,199];
- var mq1 = iframe_window.matchMedia("(max-width:200px)");
- mq1.addListener(function(mql){
-
- count = count + 1;
-
- });
-
- var equalAssert = async_test("Check for the correct number of event triggers");
-
- var changeFrameWidth = function(iWidth) {
- iframe1.style.width = iWidth + "px";
- i = (i === 0) ? 1 : 0;
- totalCount = totalCount - 1;
- if(totalCount > 0)
- {
- step_timeout(function(){
- changeFrameWidth(width_list[i]);
- }, 100);
- }
- else
- {
- step_timeout(function(){
- equalAssert.step(function(){
- assert_equals(divineCount, count, "this will be 10 times of event triggers by change width");
- });
- equalAssert.done();
- }, 100);
- }
- };
-
- changeFrameWidth(width_list[0]);
- </script>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/resources/matchMedia.js b/tests/wpt/web-platform-tests/css/cssom-view/resources/matchMedia.js
index 93f4a315050..8013699b7de 100644
--- a/tests/wpt/web-platform-tests/css/cssom-view/resources/matchMedia.js
+++ b/tests/wpt/web-platform-tests/css/cssom-view/resources/matchMedia.js
@@ -1,11 +1,21 @@
-const IFRAME_BASE_WIDTH = "200";
-const MEDIA_QUERY = `(max-width: ${IFRAME_BASE_WIDTH}px)`;
+const IFRAME_DEFAULT_SIZE = "200";
+const iframes = new WeakMap();
+
+async function createMQL(t) {
+ const iframe = await createIFrame(t);
+ const mql = iframe.contentWindow.matchMedia(`(max-width: ${IFRAME_DEFAULT_SIZE}px)`);
+ assert_true(mql.matches, "MQL should match on newly created <iframe>");
+ iframes.set(mql, iframe);
+ return mql;
+}
+
+function createIFrame(t, width = IFRAME_DEFAULT_SIZE, height = width) {
+ assert_not_equals(document.body, null, "<body> element is missing");
-function createIframe(t) {
const iframe = document.createElement("iframe");
iframe.srcdoc = "";
- iframe.width = IFRAME_BASE_WIDTH;
- iframe.height = "100";
+ iframe.width = String(width);
+ iframe.height = String(height);
iframe.style.border = "none";
t.add_cleanup(() => {
@@ -14,6 +24,7 @@ function createIframe(t) {
return new Promise(resolve => {
iframe.addEventListener("load", () => {
+ iframe.contentDocument.body.offsetWidth; // reflow
resolve(iframe);
});
@@ -21,8 +32,10 @@ function createIframe(t) {
});
}
-function triggerMQLEvent(iframe) {
- iframe.width = iframe.width === IFRAME_BASE_WIDTH ? "250" : IFRAME_BASE_WIDTH;
+function triggerMQLEvent(mql) {
+ const iframe = iframes.get(mql);
+ assert_not_equals(iframe, undefined, "Passed MQL instance was not created with createMQL");
+ iframe.width = iframe.width === IFRAME_DEFAULT_SIZE ? "250" : IFRAME_DEFAULT_SIZE;
}
function waitForChangesReported() {
diff --git a/tests/wpt/web-platform-tests/css/support/parsing-testcommon.js b/tests/wpt/web-platform-tests/css/support/parsing-testcommon.js
index 7ecd588aaf5..647bc125df9 100644
--- a/tests/wpt/web-platform-tests/css/support/parsing-testcommon.js
+++ b/tests/wpt/web-platform-tests/css/support/parsing-testcommon.js
@@ -36,3 +36,62 @@ function test_invalid_value(property, value) {
assert_equals(div.style.getPropertyValue(property), "");
}, "e.style['" + property + "'] = " + stringifiedValue + " should not set the property value");
}
+
+// serializedSelector can be the expected serialization of selector,
+// or an array of permitted serializations,
+// or omitted if value should serialize as selector.
+function test_valid_selector(selector, serializedSelector) {
+ if (arguments.length < 2)
+ serializedSelector = selector;
+
+ const stringifiedSelector = JSON.stringify(selector);
+
+ test(function(){
+ document.querySelector(selector);
+ assert_true(true, stringifiedSelector + " should not throw in querySelector");
+
+ const style = document.createElement("style");
+ document.head.append(style);
+ const {sheet} = style;
+ document.head.removeChild(style);
+ const {cssRules} = sheet;
+
+ assert_equals(cssRules.length, 0, "Sheet should have no rule");
+ sheet.insertRule(selector + "{}");
+ assert_equals(cssRules.length, 1, "Sheet should have 1 rule");
+
+ const readSelector = cssRules[0].selectorText;
+ if (Array.isArray(serializedSelector))
+ assert_in_array(readSelector, serializedSelector, "serialization should be sound");
+ else
+ assert_equals(readSelector, serializedSelector, "serialization should be canonical");
+
+ sheet.deleteRule(0);
+ assert_equals(cssRules.length, 0, "Sheet should have no rule");
+ sheet.insertRule(readSelector + "{}");
+ assert_equals(cssRules.length, 1, "Sheet should have 1 rule");
+
+ assert_equals(cssRules[0].selectorText, readSelector, "serialization should round-trip");
+ }, stringifiedSelector + " should be a valid selector");
+}
+
+function test_invalid_selector(selector) {
+ const stringifiedSelector = JSON.stringify(selector);
+
+ test(function(){
+ assert_throws(
+ DOMException.SYNTAX_ERR,
+ () => document.querySelector(selector),
+ stringifiedSelector + " should throw in querySelector");
+
+ const style = document.createElement("style");
+ document.head.append(style);
+ const {sheet} = style;
+ document.head.removeChild(style);
+
+ assert_throws(
+ DOMException.SYNTAX_ERR,
+ () => sheet.insertRule(selector + "{}"),
+ stringifiedSelector + " should throw in insertRule");
+ }, stringifiedSelector + " should be an invalid selector");
+}
diff --git a/tests/wpt/web-platform-tests/css/css-grid/alignment/support/width-keyword-classes.css b/tests/wpt/web-platform-tests/css/support/width-keyword-classes.css
index b5c84a5d5f4..b5c84a5d5f4 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/alignment/support/width-keyword-classes.css
+++ b/tests/wpt/web-platform-tests/css/support/width-keyword-classes.css
diff --git a/tests/wpt/web-platform-tests/docs/requirements.txt b/tests/wpt/web-platform-tests/docs/requirements.txt
index dceaed13bc3..a9ddeecfe57 100644
--- a/tests/wpt/web-platform-tests/docs/requirements.txt
+++ b/tests/wpt/web-platform-tests/docs/requirements.txt
@@ -1,3 +1,4 @@
-recommonmark==0.5.0
-Sphinx==1.8.5
+recommonmark==0.6.0
+# pin this to the last Py2 release
+Sphinx==1.8.5 # pyup: <2.0
sphinx-argparse==0.2.5
diff --git a/tests/wpt/web-platform-tests/docs/running-tests/android_webview.md b/tests/wpt/web-platform-tests/docs/running-tests/android_webview.md
index 39b1f3b14ab..4a86814fdf7 100644
--- a/tests/wpt/web-platform-tests/docs/running-tests/android_webview.md
+++ b/tests/wpt/web-platform-tests/docs/running-tests/android_webview.md
@@ -6,11 +6,11 @@ Currently, Android WebView support is experimental.
## Prerequisites
-#### Please check [Chrome for Android](chrome_android.md) for the common instructions for Android support first.
+Please check [Chrome for Android](chrome_android.md) for the common instructions for Android support first.
-#### Ensure you have a userdebug or eng Android build installed on the device.
+Ensure you have a userdebug or eng Android build installed on the device.
-#### Install an up-to-date version of system webview shell.
+Install an up-to-date version of system webview shell:
1. Go to [chromium-browser-snapshots](https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Android/)
2. Find the subdirectory with the highest number and click it, this number can be found
in the "Commit Position" column of row "LAST_CHANGE" (at bottom of page).
@@ -21,7 +21,7 @@ Currently, Android WebView support is experimental.
* Run an emulator with
[writable system partition from command line](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/android_emulator.md/)
-#### If you have an issue with ChromeDriver version mismatch, try one of the following.
+If you have an issue with ChromeDriver version mismatch, try one of the following:
* Try removing `_venv/bin/chromedriver` such that wpt runner can install a matching version
automatically. Failing that, please check your environment path and make
sure that no other ChromeDriver is used.
@@ -30,16 +30,16 @@ Currently, Android WebView support is experimental.
./wpt run --webdriver-binary <binary path> ...
```
-#### Configure host remap rules in the [webview commandline file](https://cs.chromium.org/chromium/src/android_webview/docs/commandline-flags.md?l=57).
+Configure host remap rules in the [webview commandline file](https://cs.chromium.org/chromium/src/android_webview/docs/commandline-flags.md?l=57):
```
adb shell "echo '_ --host-resolver-rules=\"MAP nonexistent.*.test ~NOTFOUND, MAP *.test 127.0.0.1\"' > /data/local/tmp/webview-command-line"
```
-#### Ensure that `adb` can be found on your system's PATH.
+Ensure that `adb` can be found on your system's PATH.
## Running Tests
-#### Example command line:
+Example command line:
```bash
./wpt run --test-type=testharness android_webview <TESTS>
diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md b/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md
index eda3ca60cb0..5883308cc66 100644
--- a/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md
+++ b/tests/wpt/web-platform-tests/docs/writing-tests/testharness-api.md
@@ -452,7 +452,9 @@ is called, the two conditions above apply like normal.
Dedicated and shared workers don't have an event that corresponds to the `load`
event in a document. Therefore these worker tests always behave as if the
-`explicit_done` property is set to true. Service workers depend on the
+`explicit_done` property is set to true (unless they are defined using [the
+"multi-global" pattern](testharness.html#multi-global-tests)). Service workers
+depend on the
[install](https://w3c.github.io/ServiceWorker/#service-worker-global-scope-install-event)
event which is fired following the completion of [running the
worker](https://html.spec.whatwg.org/multipage/workers.html#run-a-worker).
diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md b/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md
index d2ec64c834f..7d38742a740 100644
--- a/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md
+++ b/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md
@@ -178,6 +178,11 @@ be made available by the framework:
self.GLOBAL.isWindow()
self.GLOBAL.isWorker()
+Although [the global `done` function must be explicitly invoked for most
+dedicated worker tests and shared worker
+tests](testharness-api.html#determining-when-all-tests-are-complete), it is
+automatically invoked for tests defined using the "multi-global" pattern.
+
### Specifying a test title in auto-generated boilerplate tests
Use `// META: title=This is the title of the test` at the beginning of the resource.
diff --git a/tests/wpt/web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html b/tests/wpt/web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html
index cc118d42cf4..c41ee2e8771 100644
--- a/tests/wpt/web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html
+++ b/tests/wpt/web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html
@@ -5,6 +5,7 @@
<script src=/resources/testharnessreport.js></script>
<iframe src="Element-getElementsByTagName-change-document-HTMLNess-iframe.xml"></iframe>
<script>
+ setup({ single_test: true });
onload = function() {
var parent = document.createElement("div");
var child1 = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
diff --git a/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.https.sub.html
index b8f11c66b7e..60ccbba721b 100644
--- a/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.https.sub.html
@@ -44,36 +44,36 @@
create_test("{{host}}:{{ports[https][0]}}", FORCED, {
"site": "same-origin",
"user": "",
- "mode": "nested-navigate"
+ "mode": "navigate"
});
create_test("{{hosts[][www]}}:{{ports[https][0]}}", FORCED, {
"site": "same-site",
"user": "",
- "mode": "nested-navigate"
+ "mode": "navigate"
});
create_test("{{hosts[alt][www]}}:{{ports[https][0]}}", FORCED, {
"site": "cross-site",
"user": "",
- "mode": "nested-navigate"
+ "mode": "navigate"
});
create_test("{{host}}:{{ports[https][0]}}", USER, {
"site": "same-origin",
"user": "?1",
- "mode": "nested-navigate"
+ "mode": "navigate"
});
create_test("{{hosts[][www]}}:{{ports[https][0]}}", USER, {
"site": "same-site",
"user": "?1",
- "mode": "nested-navigate"
+ "mode": "navigate"
});
create_test("{{hosts[alt][www]}}:{{ports[https][0]}}", USER, {
"site": "cross-site",
"user": "?1",
- "mode": "nested-navigate"
+ "mode": "navigate"
});
</script>
diff --git a/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.sub.html b/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.sub.html
index c5469f458d3..be57362e9f0 100644
--- a/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/metadata/iframe.tentative.sub.html
@@ -68,7 +68,7 @@
assert_header_equals(e.data, {
"site": "cross-site",
"user": "",
- "mode": "nested-navigate",
+ "mode": "navigate",
});
t.done();
}));
diff --git a/tests/wpt/web-platform-tests/fetch/metadata/portal.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/metadata/portal.tentative.https.sub.html
index ee24b5ecbb9..f9e370c67fb 100644
--- a/tests/wpt/web-platform-tests/fetch/metadata/portal.tentative.https.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/metadata/portal.tentative.https.sub.html
@@ -27,18 +27,18 @@
create_test("{{host}}:{{ports[https][0]}}", {
"site": "same-origin",
"user": "",
- "mode": "nested-navigate"
+ "mode": "navigate"
});
create_test("{{hosts[][www]}}:{{ports[https][0]}}", {
"site": "same-site",
"user": "",
- "mode": "nested-navigate"
+ "mode": "navigate"
});
create_test("{{hosts[alt][www]}}:{{ports[https][0]}}", {
"site": "cross-site",
"user": "",
- "mode": "nested-navigate"
+ "mode": "navigate"
});
</script>
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html
new file mode 100644
index 00000000000..1666a984588
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<script>
+ const channel = new MessageChannel();
+ window.parent.postMessage({ state: "port1", data: channel.port1 }, '*', [channel.port1]);
+ window.onmessage = () => window.parent.postMessage({ state: "port2", data: channel.port2 }, '*', [channel.port2]);
+</script>
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers
new file mode 100644
index 00000000000..4e798cd9f5d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-complex.html.headers
@@ -0,0 +1,2 @@
+Cross-Origin-Embedder-Policy: require-corp
+Cross-Origin-Resource-Policy: cross-origin
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html
new file mode 100644
index 00000000000..c6896762bc4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<script>
+ const channel = new MessageChannel();
+ window.parent.postMessage(channel.port2, '*', [channel.port2]);
+ channel.port1.onmessage = e => { alert(e.data); channel.port1.postMessage("message event received") };
+ channel.port1.onmessageerror = () => channel.port1.postMessage("messageerror event received");
+</script>
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers
new file mode 100644
index 00000000000..4e798cd9f5d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-messagechannel-failure.html.headers
@@ -0,0 +1,2 @@
+Cross-Origin-Embedder-Policy: require-corp
+Cross-Origin-Resource-Policy: cross-origin
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html
deleted file mode 100644
index 98145310f61..00000000000
--- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>Structured cloning of SharedArrayBuffers into windows using MessageChannel</title>
-<link rel="help" href="https://html.spec.whatwg.org/multipage/#structuredserialize">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/test-incrementer.js"></script>
-
-<div id="log"></div>
-
-<script>
-promise_test(t => {
- return new Promise(resolve => {
- const iframe = document.createElement("iframe");
- window.onmessage = t.step_func((message) => {
- // data will be a MessagePort
- resolve(testSharingViaIncrementerScript(t, message.data, "window", message.data, "iframe"));
- });
- iframe.src = "resources/incrementer-iframe-messagechannel.html";
- document.body.appendChild(iframe);
- });
-}, "postMessaging to a same-origin iframe via MessageChannel allows them to see each others' modifications");
-</script>
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html
new file mode 100644
index 00000000000..16a054a52e1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Structured cloning of SharedArrayBuffers into windows using MessageChannel</title>
+<link rel="help" href="https://html.spec.whatwg.org/multipage/#structuredserialize">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/test-incrementer.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+
+<div id="log"></div>
+
+<script>
+["same-origin", "same-site"].forEach(originOrSite => {
+ promise_test(t => {
+ return new Promise(resolve => {
+ const iframe = document.createElement("iframe");
+ window.onmessage = t.step_func((message) => {
+ // data will be a MessagePort
+ resolve(testSharingViaIncrementerScript(t, message.data, "window", message.data, "iframe"));
+ });
+ let url = "resources/incrementer-iframe-messagechannel.html";
+ if (originOrSite === "same-site") {
+ url = get_host_info().HTTPS_REMOTE_ORIGIN + new URL(url, window.location).pathname;
+ }
+ iframe.src = url;
+ document.body.appendChild(iframe);
+ });
+ }, `postMessaging to a ${originOrSite} iframe via MessageChannel allows them to see each others' modifications`);
+});
+
+promise_test(t => {
+ return new Promise(resolve => {
+ const iframe = document.createElement("iframe");
+ window.onmessage = t.step_func(message => {
+ // data will be a MessagePort
+ message.data.postMessage(new SharedArrayBuffer(10));
+ message.data.onmessage = t.step_func(message => {
+ assert_equals(message.data, "messageerror event received");
+ resolve();
+ });
+ });
+ iframe.src = get_host_info().HTTPS_NOTSAMESITE_ORIGIN + new URL("resources/iframe-messagechannel-failure.html", window.location).pathname;
+ document.body.append(iframe);
+ });
+}, "postMessaging to a cross-site iframe via MessageChannel should fail");
+
+promise_test(t => {
+ return new Promise(resolve => {
+ const iframe = document.createElement("iframe");
+ let port = null;
+ window.onmessage = t.step_func(message => {
+ if (message.data.state === "port1") {
+ port = message.data.data;
+ port.postMessage(new SharedArrayBuffer(10));
+ message.source.postMessage("send port2", "*");
+ } else if (message.data.state === "port2") {
+ // Note that onmessage calls start()
+ message.data.data.onmessage = t.step_func(message => {
+ assert_true(message.data instanceof SharedArrayBuffer);
+ assert_equals(message.data.byteLength, 10);
+ resolve();
+ });
+ message.data.data.onmessageerror = t.unreached_func();
+ }
+ });
+ iframe.src = get_host_info().HTTPS_NOTSAMESITE_ORIGIN + new URL("resources/iframe-messagechannel-complex.html", window.location).pathname;
+ document.body.append(iframe);
+ });
+}, "postMessaging with a MessageChannel that's been cross-site should succeed");
+</script>
diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.headers
index 63b60e490f4..63b60e490f4 100644
--- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers
+++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel.https.html.headers
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js
index 0e70da4d3de..8a529e10b13 100644
--- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16be.js
Binary files differ
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js
index 3f03f889398..578f7f19519 100644
--- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-16le.js
Binary files differ
diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js
index 6e16cbd28c4..fb88bdda2af 100644
--- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js
+++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/resources/bom-utf-8.js
@@ -1,2 +1,2 @@
// JavaScript file with UTF-8 BOM.
-executed_utf8_bom = '三村かな子';
+window.executed_utf8_bom = '三村かな子';
diff --git a/tests/wpt/web-platform-tests/interfaces/media-capabilities.idl b/tests/wpt/web-platform-tests/interfaces/media-capabilities.idl
index e067fdc746d..71bc46d2410 100644
--- a/tests/wpt/web-platform-tests/interfaces/media-capabilities.idl
+++ b/tests/wpt/web-platform-tests/interfaces/media-capabilities.idl
@@ -84,6 +84,11 @@ dictionary MediaCapabilitiesInfo {
dictionary MediaCapabilitiesDecodingInfo : MediaCapabilitiesInfo {
required MediaKeySystemAccess keySystemAccess;
+ MediaDecodingConfiguration configuration;
+};
+
+dictionary MediaCapabilitiesEncodingInfo : MediaCapabilitiesInfo {
+ MediaEncodingConfiguration configuration;
};
[Exposed=Window]
diff --git a/tests/wpt/web-platform-tests/intersection-observer/isIntersecting-change-events.html b/tests/wpt/web-platform-tests/intersection-observer/isIntersecting-change-events.html
index 3dcc7788620..99bc65bd60a 100644
--- a/tests/wpt/web-platform-tests/intersection-observer/isIntersecting-change-events.html
+++ b/tests/wpt/web-platform-tests/intersection-observer/isIntersecting-change-events.html
@@ -92,7 +92,7 @@ function step1() {
}
function step2() {
- assert_equals(entries.length, 4, "Has 3 total notifications because 4th element was added.");
+ assert_equals(entries.length, 4, "Has 4 total notifications because 4th element was added.");
checkRect(entries[3].boundingClientRect, [0, 100, 300, 400], "Check 4th entry rect");
assert_equals(entries[3].target.id, 'target4', "Check 4th entry target id.");
checkIsIntersecting(entries, 3, false);
diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-SecureContext.html b/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-SecureContext.html
index e6e8587cdd1..bada6281769 100644
--- a/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-SecureContext.html
+++ b/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-SecureContext.html
@@ -7,14 +7,13 @@
</head>
<body>
<script>
-
-assert_false(window.isSecureContext, "This test must be run in a non secure context");
-assert_false('MediaDevices' in window, "MediaDevices is not exposed");
-assert_false('MediaDeviceInfo' in window, "MediaDeviceInfo is not exposed");
-assert_false('getUserMedia' in navigator, "getUserMedia is not exposed");
-assert_false('mediaDevices' in navigator, "mediaDevices is not exposed");
-
-done();
+test(function() {
+ assert_false(window.isSecureContext, "This test must be run in a non secure context");
+ assert_false('MediaDevices' in window, "MediaDevices is not exposed");
+ assert_false('MediaDeviceInfo' in window, "MediaDeviceInfo is not exposed");
+ assert_false('getUserMedia' in navigator, "getUserMedia is not exposed");
+ assert_false('mediaDevices' in navigator, "mediaDevices is not exposed");
+});
</script>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_open.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_open.html
index bc06ed5840a..aa1097248dd 100644
--- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_open.html
+++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_open.html
@@ -8,6 +8,8 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
+ setup({ single_test: true });
+
var navTiming2Attributes = [
'connectEnd',
'connectStart',
diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_replaced.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_replaced.html
index b910f453d12..5972f20e9bd 100644
--- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_replaced.html
+++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_document_replaced.html
@@ -8,6 +8,8 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
+ setup({ single_test: true });
+
var navigation_frame;
var pnt1;
var step = 1;
diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html
index f39ca057695..75e6e113b6d 100644
--- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html
+++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html
@@ -13,6 +13,8 @@
<p>This test validates that all of the window.performance.getEntriesByType("navigation") attributes remain unchanged after an in document navigation (URL fragment change).</p>
<script>
+ setup({ single_test: true });
+
var navTiming2Attributes = [
'connectEnd',
'connectStart',
diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html
index c4b57581069..d0045415b89 100644
--- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html
+++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html
@@ -8,6 +8,7 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
+ setup({ single_test: true });
function onload_test()
{
diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html
index 74b85c9dbb5..0f03f07c57c 100644
--- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html
+++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html
@@ -8,6 +8,7 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
+ setup({ single_test: true });
var reload_frame;
diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html
index c0dd249545a..db499c3ed34 100644
--- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html
+++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html
@@ -9,6 +9,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<script>
+ setup({ single_test: true });
function verifyTimingEventOrder(eventOrder, timingEntry) {
for (let i = 0; i < eventOrder.length - 1; i++) {
diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_server.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_server.html
index 1d7f6c928ce..9ec2992bef5 100644
--- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_server.html
+++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_server.html
@@ -9,6 +9,7 @@
<script src="/resources/testharnessreport.js"></script>
<script>
+ setup({ single_test: true });
function verifyTimingEventOrder(eventOrder, timingEntry) {
for (let i = 0; i < eventOrder.length - 1; i++) {
diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html
index 06c9b7f3b67..d8acc8054d8 100644
--- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html
+++ b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html
@@ -9,6 +9,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<script>
+ setup({ single_test: true });
function onload_test()
{
diff --git a/tests/wpt/web-platform-tests/preload/download-resources.html b/tests/wpt/web-platform-tests/preload/download-resources.html
index 557c9656b18..4da76980357 100644
--- a/tests/wpt/web-platform-tests/preload/download-resources.html
+++ b/tests/wpt/web-platform-tests/preload/download-resources.html
@@ -15,7 +15,7 @@
<link rel=preload href="resources/dummy.xml" as="fetch">
<body>
<script>
- setup({explicit_done: true});
+ setup({single_test: true});
var iterations = 0;
diff --git a/tests/wpt/web-platform-tests/preload/link-header-on-subresource.html b/tests/wpt/web-platform-tests/preload/link-header-on-subresource.html
index 7047115a1ca..418e8a63a79 100644
--- a/tests/wpt/web-platform-tests/preload/link-header-on-subresource.html
+++ b/tests/wpt/web-platform-tests/preload/link-header-on-subresource.html
@@ -5,7 +5,7 @@
<script src="/preload/resources/preload_helper.js"></script>
<link rel=stylesheet href="resources/dummy-preloads-subresource.css?link-header-on-subresource">
<script>
- setup({explicit_done: true});
+ setup({single_test: true});
var iterations = 0;
diff --git a/tests/wpt/web-platform-tests/preload/link-header-preload-imagesrcset.html b/tests/wpt/web-platform-tests/preload/link-header-preload-imagesrcset.html
index 3ae53fed660..65c8c061ada 100644
--- a/tests/wpt/web-platform-tests/preload/link-header-preload-imagesrcset.html
+++ b/tests/wpt/web-platform-tests/preload/link-header-preload-imagesrcset.html
@@ -6,7 +6,7 @@
<script src="/preload/resources/preload_helper.js"></script>
<body>
<script>
- setup({explicit_done: true});
+ setup({single_test: true});
var iterations = 0;
var expectation = new Array(10).fill(0);
diff --git a/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html b/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html
index bfac5639cdc..74ea87042b4 100644
--- a/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html
+++ b/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html
@@ -5,7 +5,7 @@
<script nonce="abc" src="/preload/resources/preload_helper.js"></script>
<body>
<script nonce="abc">
- setup({explicit_done: true});
+ setup({single_test: true});
var iterations = 0;
diff --git a/tests/wpt/web-platform-tests/preload/link-header-preload.html b/tests/wpt/web-platform-tests/preload/link-header-preload.html
index 4dfdfc88739..b5932a1b0aa 100644
--- a/tests/wpt/web-platform-tests/preload/link-header-preload.html
+++ b/tests/wpt/web-platform-tests/preload/link-header-preload.html
@@ -5,7 +5,7 @@
<script src="/preload/resources/preload_helper.js"></script>
<body>
<script>
- setup({explicit_done: true});
+ setup({single_test: true});
var iterations = 0;
diff --git a/tests/wpt/web-platform-tests/preload/onerror-event.html b/tests/wpt/web-platform-tests/preload/onerror-event.html
index 2038e06e941..94c8dc772de 100644
--- a/tests/wpt/web-platform-tests/preload/onerror-event.html
+++ b/tests/wpt/web-platform-tests/preload/onerror-event.html
@@ -28,7 +28,7 @@
<link rel=preload href="non-existent/dummy.xml?empty" onerror="emptyFailed = true;">
<body>
<script>
- setup({explicit_done: true});
+ setup({single_test: true});
var iterations = 0;
diff --git a/tests/wpt/web-platform-tests/preload/onload-event.html b/tests/wpt/web-platform-tests/preload/onload-event.html
index 9111cd8fc82..8825ffaaa52 100644
--- a/tests/wpt/web-platform-tests/preload/onload-event.html
+++ b/tests/wpt/web-platform-tests/preload/onload-event.html
@@ -28,7 +28,7 @@
<link rel=preload href="resources/dummy.xml" onload="noTypeLoaded = true;">
<body>
<script>
- setup({explicit_done: true});
+ setup({single_test: true});
var iterations = 0;
diff --git a/tests/wpt/web-platform-tests/preload/preload-with-type.html b/tests/wpt/web-platform-tests/preload/preload-with-type.html
index 980592274bf..eb5675f993b 100644
--- a/tests/wpt/web-platform-tests/preload/preload-with-type.html
+++ b/tests/wpt/web-platform-tests/preload/preload-with-type.html
@@ -48,7 +48,7 @@
<link rel=preload href="resources/foo.vtt" as=track type="text/foobar" onload="gibberishLoaded++;">
<body>
<script>
- setup({explicit_done: true});
+ setup({single_test: true});
var iterations = 0;
diff --git a/tests/wpt/web-platform-tests/preload/single-download-late-used-preload.html b/tests/wpt/web-platform-tests/preload/single-download-late-used-preload.html
index 51533ba7144..bf02fdb6362 100644
--- a/tests/wpt/web-platform-tests/preload/single-download-late-used-preload.html
+++ b/tests/wpt/web-platform-tests/preload/single-download-late-used-preload.html
@@ -5,6 +5,7 @@
<script src="/preload/resources/preload_helper.js"></script>
<link rel=preload href="resources/square.png?pipe=trickle(d1)" as=image>
<script>
+ setup({ single_test: true });
var link = document.getElementsByTagName("link")[0]
assert_equals(link.as, "image");
link.addEventListener("load", () => {
diff --git a/tests/wpt/web-platform-tests/server-timing/navigation_timing_idl.https.html b/tests/wpt/web-platform-tests/server-timing/navigation_timing_idl.https.html
index d911d64e47c..154bc6b0442 100644
--- a/tests/wpt/web-platform-tests/server-timing/navigation_timing_idl.https.html
+++ b/tests/wpt/web-platform-tests/server-timing/navigation_timing_idl.https.html
@@ -5,7 +5,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/common/performance-timeline-utils.js"></script>
<script>
- setup({explicit_done: true})
+ setup({single_test: true})
delayedLoadListener(function(){
assert_not_equals(typeof performance.getEntriesByType('navigation')[0].serverTiming, 'undefined',
'An instance of `PerformanceNavigationTiming` should have a `serverTiming` attribute.')
diff --git a/tests/wpt/web-platform-tests/server-timing/resource_timing_idl.https.html b/tests/wpt/web-platform-tests/server-timing/resource_timing_idl.https.html
index b1d8699cc60..a719a890972 100644
--- a/tests/wpt/web-platform-tests/server-timing/resource_timing_idl.https.html
+++ b/tests/wpt/web-platform-tests/server-timing/resource_timing_idl.https.html
@@ -5,7 +5,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/common/performance-timeline-utils.js"></script>
<script>
- setup({explicit_done: true})
+ setup({single_test: true})
delayedLoadListener(function(){
assert_not_equals(typeof performance.getEntriesByType('resource')[0].serverTiming, 'undefined',
'An instance of `PerformanceResourceTiming` should have a `serverTiming` attribute.')
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/referer-toplevel-script-fetch.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/referer-toplevel-script-fetch.https.html
new file mode 100644
index 00000000000..f0dd843eef8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/referer-toplevel-script-fetch.https.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<title>Service Worker: check referer of top-level script fetch</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/test-helpers.sub.js?pipe=sub"></script>
+<script>
+async function get_toplevel_script_headers(worker) {
+ worker.postMessage("getHeaders");
+ return new Promise((resolve) => {
+ navigator.serviceWorker.onmessage = (event) => {
+ resolve(event.data);
+ };
+ });
+}
+
+promise_test(async (t) => {
+ const script = "resources/test-request-headers-worker.py";
+ const scope = "resources/blank.html";
+ const host_info = get_host_info();
+
+ const registration = await service_worker_unregister_and_register(
+ t, script, scope);
+ t.add_cleanup(() => service_worker_unregister(t, scope));
+ await wait_for_state(t, registration.installing, "activated");
+
+ const headers = await get_toplevel_script_headers(registration.active);
+ const expected_referer = host_info["HTTPS_ORIGIN"] + location.pathname;
+ assert_equals(headers["referer"], expected_referer);
+}, "Referer of the top-level script fetch should be the document URL");
+</script>
diff --git a/tests/wpt/web-platform-tests/tools/ci/azure/pip_install.yml b/tests/wpt/web-platform-tests/tools/ci/azure/pip_install.yml
index f892deb9072..c8795345f6b 100644
--- a/tests/wpt/web-platform-tests/tools/ci/azure/pip_install.yml
+++ b/tests/wpt/web-platform-tests/tools/ci/azure/pip_install.yml
@@ -3,7 +3,6 @@ parameters:
steps:
- script: |
- sudo easy_install pip
# `sudo pip install` is not used because some packages (e.g. tox) depend on
# system packages (e.g. setuptools) which cannot be upgraded due to System
# Integrity Protection, see https://stackoverflow.com/a/33004920.
diff --git a/tests/wpt/web-platform-tests/tools/ci/ci_wptrunner_infrastructure.sh b/tests/wpt/web-platform-tests/tools/ci/ci_wptrunner_infrastructure.sh
index e5b485dbff8..8db08794ade 100755
--- a/tests/wpt/web-platform-tests/tools/ci/ci_wptrunner_infrastructure.sh
+++ b/tests/wpt/web-platform-tests/tools/ci/ci_wptrunner_infrastructure.sh
@@ -16,7 +16,7 @@ test_infrastructure() {
else
ARGS=$1
fi
- ./wpt run --log-tbpl - --yes --manifest ~/meta/MANIFEST.json --metadata infrastructure/metadata/ --install-fonts $ARGS $PRODUCT infrastructure/
+ TERM=dumb ./wpt run --log-mach - --yes --manifest ~/meta/MANIFEST.json --metadata infrastructure/metadata/ --install-fonts $ARGS $PRODUCT infrastructure/
}
main() {
diff --git a/tests/wpt/web-platform-tests/tools/ci/jobs.py b/tests/wpt/web-platform-tests/tools/ci/jobs.py
index b7ada2a5b62..3d809efa37c 100644
--- a/tests/wpt/web-platform-tests/tools/ci/jobs.py
+++ b/tests/wpt/web-platform-tests/tools/ci/jobs.py
@@ -32,9 +32,14 @@ job_path_map = {
"tools_unittest": ["tools/"],
"wptrunner_unittest": ["tools/"],
"build_css": ["css/"],
- "update_built": ["2dcontext/",
+ "update_built": ["update-built-tests\\.sh",
+ "2dcontext/",
+ "infrastructure/",
"html/",
- "offscreen-canvas/"],
+ "offscreen-canvas/",
+ "mimesniff/",
+ "css/css-ui/",
+ "WebIDL"],
"wpt_integration": ["tools/"],
"wptrunner_infrastructure": ["infrastructure/", "tools/", "resources/"],
}
diff --git a/tests/wpt/web-platform-tests/tools/ci/taskcluster-run.py b/tests/wpt/web-platform-tests/tools/ci/taskcluster-run.py
index ad33cb532d2..8a60012d09b 100755
--- a/tests/wpt/web-platform-tests/tools/ci/taskcluster-run.py
+++ b/tests/wpt/web-platform-tests/tools/ci/taskcluster-run.py
@@ -56,8 +56,8 @@ def main(product, commit_range, wpt_args):
logger.info("Running all tests")
wpt_args += [
- "--log-tbpl-level=info",
- "--log-tbpl=-",
+ "--log-mach-level=info",
+ "--log-mach=-",
"-y",
"--no-pause",
"--no-restart-on-unexpected",
@@ -70,8 +70,7 @@ def main(product, commit_range, wpt_args):
command = ["python", "./wpt", "run"] + wpt_args + [product]
logger.info("Executing command: %s" % " ".join(command))
-
- retcode = subprocess.call(command)
+ retcode = subprocess.call(command, env=dict(os.environ, TERM="dumb"))
if retcode != 0:
sys.exit(retcode)
diff --git a/tests/wpt/web-platform-tests/tools/requirements_mypy.txt b/tests/wpt/web-platform-tests/tools/requirements_mypy.txt
index 50c3d0d92b2..cd4ae2b2769 100644
--- a/tests/wpt/web-platform-tests/tools/requirements_mypy.txt
+++ b/tests/wpt/web-platform-tests/tools/requirements_mypy.txt
@@ -1,3 +1,3 @@
mypy==0.730
-mypy-extensions==0.4.2
+mypy-extensions==0.4.3
typed-ast==1.4.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst b/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst
index 5fed5fcdba4..85fd97bf6c1 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/docs/usage.rst
@@ -164,20 +164,24 @@ metadata files in a subdirectory of the current directory named ``meta``.
Output
------
-wptrunner uses [the `mozlog` package](https://firefox-source-docs.mozilla.org/mozbase/mozlog.html) for output. This
-structures events such as test results or log messages as JSON objects
-that can then be fed to other tools for interpretation. More details
-about the message format are given in [the
-`mozlog` documentation](https://firefox-source-docs.mozilla.org/mozbase/mozlog.html).
+wptrunner uses `the mozlog package
+<https://firefox-source-docs.mozilla.org/mozbase/mozlog.html>`_) for
+output. This structures events such as test results or log messages as
+JSON objects that can then be fed to other tools for
+interpretation. More details about the message format are given in
+`the mozlog documentation
+<https://firefox-source-docs.mozilla.org/mozbase/mozlog.html>`_.
By default the raw JSON messages are dumped to stdout. This is
convenient for piping into other tools, but not ideal for humans
-reading the output. [`mozlog`](https://firefox-source-docs.mozilla.org/mozbase/mozlog.html) comes with several other
-formatters, which are accessible through command line options. The
-general format of these options is ``--log-name=dest``, where ``name``
-is the name of the format and ``dest`` is a path to a destination
-file, or ``-`` for stdout. The raw JSON data is written by the ``raw``
-formatter so, the default setup corresponds to ``--log-raw=-``.
+reading the output. `mozlog
+<https://firefox-source-docs.mozilla.org/mozbase/mozlog.html>`_ comes
+with several other formatters, which are accessible through command
+line options. The general format of these options is
+``--log-name=dest``, where ``name`` is the name of the format and
+``dest`` is a path to a destination file, or ``-`` for stdout. The raw
+JSON data is written by the ``raw`` formatter so, the default setup
+corresponds to ``--log-raw=-``.
A reasonable output format for humans is provided as ``mach``. So in
order to output the full raw log to a file and a human-readable
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt
index dbed37ccdcd..d8a6c898d24 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt
@@ -1,8 +1,8 @@
html5lib==1.0.1
mozinfo==1.1.0
-mozlog==4.2.0
+mozlog==5.0
mozdebug==0.1.1
-pillow==6.2.0
+pillow==6.2.1
urllib3[secure]==1.25.6
requests==2.22.0
six==1.12.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt
index 2021f550f48..85efd35486d 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt
@@ -5,7 +5,7 @@ mozinstall==2.0.0
mozleak==0.2
moznetwork==0.27
mozprocess==1.0.0
-mozprofile==2.3.0
-mozrunner==7.5.1
-mozversion==2.1.0
+mozprofile==2.4.0
+mozrunner==7.7.0
+mozversion==2.2.0
psutil==5.6.3
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py
index 6cf784fd010..5e3e41eb55f 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py
@@ -80,7 +80,6 @@ def browser_kwargs(test_type, run_info_data, config, **kwargs):
"ca_certificate_path": config.ssl_config["ca_cert_path"],
"e10s": kwargs["gecko_e10s"],
"enable_webrender": kwargs["enable_webrender"],
- "lsan_dir": kwargs["lsan_dir"],
"stackfix_dir": kwargs["stackfix_dir"],
"binary_args": kwargs["binary_args"],
"timeout_multiplier": get_timeout_multiplier(test_type,
@@ -208,7 +207,7 @@ class FirefoxBrowser(Browser):
def __init__(self, logger, binary, prefs_root, test_type, extra_prefs=None, debug_info=None,
symbols_path=None, stackwalk_binary=None, certutil_binary=None,
- ca_certificate_path=None, e10s=False, enable_webrender=False, lsan_dir=None, stackfix_dir=None,
+ ca_certificate_path=None, e10s=False, enable_webrender=False, stackfix_dir=None,
binary_args=None, timeout_multiplier=None, leak_check=False, asan=False,
stylo_threads=1, chaos_mode_flags=None, config=None, browser_channel="nightly", headless=None, **kwargs):
Browser.__init__(self, logger)
@@ -238,7 +237,6 @@ class FirefoxBrowser(Browser):
self.init_timeout = self.init_timeout * timeout_multiplier
self.asan = asan
- self.lsan_dir = lsan_dir
self.lsan_allowed = None
self.lsan_max_stack_depth = None
self.mozleak_allowed = None
@@ -279,8 +277,7 @@ class FirefoxBrowser(Browser):
env = test_environment(xrePath=os.path.dirname(self.binary),
debugger=self.debug_info is not None,
- log=self.logger,
- lsanPath=self.lsan_dir)
+ useLSan=True, log=self.logger)
env["STYLO_THREADS"] = str(self.stylo_threads)
if self.chaos_mode_flags is not None:
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py
index 6a3e02b91e4..eae85b1f666 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py
@@ -2,10 +2,10 @@ import os
from six.moves.urllib.parse import urljoin
from collections import deque
-from wptmanifest.backends import static
-from wptmanifest.backends.base import ManifestItem
+from .wptmanifest.backends import static
+from .wptmanifest.backends.base import ManifestItem
-import expected
+from . import expected
"""Manifest structure used to store expected results of a test.
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py
index 46618c98cf4..d302831a57a 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestinclude.py
@@ -8,9 +8,9 @@ import glob
import os
from six.moves.urllib.parse import urlparse, urlsplit
-from wptmanifest.node import DataNode
-from wptmanifest.backends import conditional
-from wptmanifest.backends.conditional import ManifestItem
+from .wptmanifest.node import DataNode
+from .wptmanifest.backends import conditional
+from .wptmanifest.backends.conditional import ManifestItem
class IncludeManifest(ManifestItem):
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py
index 83a4834d785..af9af18d907 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/manifestupdate.py
@@ -5,16 +5,16 @@ from collections import namedtuple, defaultdict, deque
from math import ceil
from six import iterkeys, itervalues, iteritems
-from wptmanifest import serialize
-from wptmanifest.node import (DataNode, ConditionalNode, BinaryExpressionNode,
+from .wptmanifest import serialize
+from .wptmanifest.node import (DataNode, ConditionalNode, BinaryExpressionNode,
BinaryOperatorNode, NumberNode, StringNode, VariableNode,
ValueNode, UnaryExpressionNode, UnaryOperatorNode,
ListNode)
-from wptmanifest.backends import conditional
-from wptmanifest.backends.conditional import ManifestItem
+from .wptmanifest.backends import conditional
+from .wptmanifest.backends.conditional import ManifestItem
-import expected
-import expectedtree
+from . import expected
+from . import expectedtree
"""Manifest structure used to update the expected results of a test
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
index 3fc0f6d6b53..923bdaa5585 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
@@ -263,8 +263,6 @@ scheme host and port.""")
help="Disable the WebRender compositor in Gecko.")
gecko_group.add_argument("--stackfix-dir", dest="stackfix_dir", action="store",
help="Path to directory containing assertion stack fixing scripts")
- gecko_group.add_argument("--lsan-dir", dest="lsan_dir", action="store",
- help="Path to directory containing LSAN suppressions file")
gecko_group.add_argument("--setpref", dest="extra_prefs", action='append',
default=[], metavar="PREF=VALUE",
help="Defines an extra user preference (overrides those in prefs_root)")
@@ -549,9 +547,6 @@ def check_args(kwargs):
if kwargs["reftest_internal"] is None:
kwargs["reftest_internal"] = True
- if kwargs["lsan_dir"] is None:
- kwargs["lsan_dir"] = kwargs["prefs_root"]
-
if kwargs["reftest_screenshot"] is None:
kwargs["reftest_screenshot"] = "unexpected"
@@ -580,7 +575,7 @@ def check_args_update(kwargs):
def create_parser_update(product_choices=None):
from mozlog.structured import commandline
- import products
+ from . import products
if product_choices is None:
config_data = config.load()
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py
index 88b51d0fd6a..7dfd86e99c9 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py
@@ -121,13 +121,15 @@ def list_tests(test_paths, product, **kwargs):
def get_pause_after_test(test_loader, **kwargs):
- total_tests = sum(len(item) for item in test_loader.tests.itervalues())
if kwargs["pause_after_test"] is None:
if kwargs["repeat_until_unexpected"]:
return False
if kwargs["headless"]:
return False
- if kwargs["repeat"] == 1 and kwargs["rerun"] == 1 and total_tests == 1:
+ tests = test_loader.tests
+ is_single_testharness = (sum(len(item) for item in tests.itervalues()) == 1 and
+ len(tests.get("testharness", [])) == 1)
+ if kwargs["repeat"] == 1 and kwargs["rerun"] == 1 and is_single_testharness:
return True
return False
return kwargs["pause_after_test"]
diff --git a/tests/wpt/web-platform-tests/update-built-tests.sh b/tests/wpt/web-platform-tests/update-built-tests.sh
index 1a33154898d..a45058c18f8 100755
--- a/tests/wpt/web-platform-tests/update-built-tests.sh
+++ b/tests/wpt/web-platform-tests/update-built-tests.sh
@@ -7,4 +7,4 @@ html/tools/build.sh
offscreen-canvas/tools/build.sh
python mimesniff/mime-types/resources/generated-mime-types.py
python3 css/css-ui/tools/appearance-build-webkit-reftests.py
-python3 WebIDL/generate-setlike.py
+python3 WebIDL/tools/generate-setlike.py
diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html
index 20ee27fbc2f..3b9e57314d6 100644
--- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html
+++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-minimum.html
@@ -7,7 +7,7 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
-
+ setup({ single_test: true });
var ac = new AudioContext();
var analyser = ac.createAnalyser();
var constant = ac.createConstantSource();
diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html
index 70f73e29b1f..43d56b8990e 100644
--- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html
+++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html
@@ -8,6 +8,8 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/webaudio/js/helpers.js"></script>
<script>
+setup({ single_test: true });
+
var gTest = {
length: 2048,
numberOfChannels: 1,
diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html
index 04fe4809645..904b14bede5 100644
--- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html
+++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html
@@ -6,6 +6,8 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
+ setup({ single_test: true });
+
var context = new AudioContext();
var gain = context.createGain();
diff --git a/tests/wpt/web-platform-tests/webmessaging/with-ports/020.html b/tests/wpt/web-platform-tests/webmessaging/with-ports/020.html
index 4fc2c4e2dd9..426a3d27000 100644
--- a/tests/wpt/web-platform-tests/webmessaging/with-ports/020.html
+++ b/tests/wpt/web-platform-tests/webmessaging/with-ports/020.html
@@ -5,6 +5,8 @@
<iframe src="../without-ports/020-1.html"></iframe>
<div id="log"></div>
<script>
+setup({ single_test: true });
+
var iframe = document.createElement('iframe');
var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, '');
var url = url_prefix + '/without-ports/020-1.html';
diff --git a/tests/wpt/web-platform-tests/webmessaging/with-ports/021.html b/tests/wpt/web-platform-tests/webmessaging/with-ports/021.html
index 37a0767fee0..2801d45a44a 100644
--- a/tests/wpt/web-platform-tests/webmessaging/with-ports/021.html
+++ b/tests/wpt/web-platform-tests/webmessaging/with-ports/021.html
@@ -5,6 +5,8 @@
<iframe src="../without-ports/020-1.html"></iframe>
<div id="log"></div>
<script>
+setup({ single_test: true });
+
var iframe = document.createElement('iframe');
var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, '');
var url = url_prefix + '/without-ports/020-1.html';
diff --git a/tests/wpt/web-platform-tests/webmessaging/without-ports/020.html b/tests/wpt/web-platform-tests/webmessaging/without-ports/020.html
index e35a1128a0d..61bfddb901f 100644
--- a/tests/wpt/web-platform-tests/webmessaging/without-ports/020.html
+++ b/tests/wpt/web-platform-tests/webmessaging/without-ports/020.html
@@ -5,6 +5,8 @@
<iframe src="../without-ports/020-1.html"></iframe>
<div id="log"></div>
<script>
+setup({ single_test: true });
+
var iframe = document.createElement('iframe');
var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, '');
var url = url_prefix + '/without-ports/020-1.html';
diff --git a/tests/wpt/web-platform-tests/webmessaging/without-ports/021.html b/tests/wpt/web-platform-tests/webmessaging/without-ports/021.html
index b240fa0cad5..5072508d9c6 100644
--- a/tests/wpt/web-platform-tests/webmessaging/without-ports/021.html
+++ b/tests/wpt/web-platform-tests/webmessaging/without-ports/021.html
@@ -5,6 +5,8 @@
<iframe src="../without-ports/020-1.html"></iframe>
<div id="log"></div>
<script>
+setup({ single_test: true });
+
var iframe = document.createElement('iframe');
var url_prefix = location.href.replace('://', '://www1.').replace(/\/with(out)?-ports\/[^\/]+$/, '');
var url = url_prefix + '/without-ports/020-1.html';
diff --git a/tests/wpt/web-platform-tests/workers/constructors/SharedWorker/URLMismatchError.htm b/tests/wpt/web-platform-tests/workers/constructors/SharedWorker/URLMismatchError.htm
index 258eed05bf8..e1a11f4f8fe 100644
--- a/tests/wpt/web-platform-tests/workers/constructors/SharedWorker/URLMismatchError.htm
+++ b/tests/wpt/web-platform-tests/workers/constructors/SharedWorker/URLMismatchError.htm
@@ -6,6 +6,8 @@
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
+setup({ single_test: true });
+
var counter = 0
function maybeDone() {
if(counter) {
diff --git a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html
index eb8e69c2b05..0905d07661d 100644
--- a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html
+++ b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html
@@ -4,6 +4,8 @@
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
+setup({ single_test: true });
+
var worker = new Worker('incoming-message.js');
worker.onmessage = function(e) {
assert_unreached("Got message");
diff --git a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html
index 690f067cffc..2f0ba176d49 100644
--- a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html
+++ b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html
@@ -4,6 +4,8 @@
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
+setup({ single_test: true });
+
var worker = new Worker('setInterval.js');
worker.onmessage = function(e) {
assert_unreached("Got message");
diff --git a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html
index 777a03c013d..2bddc0947f6 100644
--- a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html
+++ b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html
@@ -4,6 +4,8 @@
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<script>
+setup({ single_test: true });
+
var worker = new Worker('setTimeout.js');
worker.onmessage = function(e) {
assert_unreached("Got message");
diff --git a/tests/wpt/web-platform-tests/workers/semantics/multiple-workers/004.html b/tests/wpt/web-platform-tests/workers/semantics/multiple-workers/004.html
index 82cf46aec4c..552cc8a6334 100644
--- a/tests/wpt/web-platform-tests/workers/semantics/multiple-workers/004.html
+++ b/tests/wpt/web-platform-tests/workers/semantics/multiple-workers/004.html
@@ -5,6 +5,8 @@
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
+setup({ single_test: true });
+
var i = 0;
var load_count = 0;
diff --git a/tests/wpt/web-platform-tests/workers/semantics/navigation/001.html b/tests/wpt/web-platform-tests/workers/semantics/navigation/001.html
index 95cd9aff47d..f31c2590e58 100644
--- a/tests/wpt/web-platform-tests/workers/semantics/navigation/001.html
+++ b/tests/wpt/web-platform-tests/workers/semantics/navigation/001.html
@@ -8,6 +8,7 @@
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
+setup({ single_test: true });
var date;
var newDate;
</script>
diff --git a/tests/wpt/web-platform-tests/workers/shared-worker-name-via-options.html b/tests/wpt/web-platform-tests/workers/shared-worker-name-via-options.html
index cf7fd466492..1914d66db74 100644
--- a/tests/wpt/web-platform-tests/workers/shared-worker-name-via-options.html
+++ b/tests/wpt/web-platform-tests/workers/shared-worker-name-via-options.html
@@ -10,6 +10,7 @@
<script>
"use strict";
+setup({ single_test: true });
const name = "my name";