aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <servo-ops@mozilla.com>2020-07-31 19:49:51 -0400
committerGitHub <noreply@github.com>2020-07-31 19:49:51 -0400
commit6aeadcec77a66ef7416e50483a59f6ee711bbae5 (patch)
tree183abe554d3e98f75e6a00a477d30d7357327d59
parent346bf9c031b47f6e54202d974550cf6a13ad2fed (diff)
parentb7430030f26c8dda0a3784248b7db7d19c031602 (diff)
downloadservo-6aeadcec77a66ef7416e50483a59f6ee711bbae5.tar.gz
servo-6aeadcec77a66ef7416e50483a59f6ee711bbae5.zip
Auto merge of #27464 - servo-wpt-sync:wpt_update_31-07-2020, r=servo-wpt-sync
Sync WPT with upstream (31-07-2020) Automated downstream sync of changes from upstream as of 31-07-2020. [no-wpt-sync] r? @servo-wpt-sync
-rw-r--r--tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/matchMedia-display-none-iframe.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom/idlharness.html.ini6
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini12
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini6
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini1
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini1
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/syntax/parsing/DOMContentLoaded-defer.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/load-event-after-location-set-during-write.window.js.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/workers/constructors/Worker/Worker-constructor.html.ini2
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini2
-rw-r--r--tests/wpt/metadata/MANIFEST.json143
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/linebox/inline-negative-margin-001.html.ini5
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini2
-rw-r--r--tests/wpt/metadata/css/cssom/idlharness.html.ini6
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini12
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini6
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini1
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini4
-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-1.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini1
-rw-r--r--tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini3
-rw-r--r--tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini2
-rw-r--r--tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini4
-rw-r--r--tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/load-event-after-location-set-during-write.window.js.ini4
-rw-r--r--tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini2
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini3
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini5
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini3
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/017.html.ini5
-rw-r--r--tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/audio-output/setSinkId.https.html2
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/unsafe-eval/eval-in-iframe.html40
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/unsafe-eval/support/echo-eval-with-policy.py14
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/multicol-overflow-clip-auto-sized-ref.html5
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/multicol-overflow-clip-auto-sized.html9
-rw-r--r--tests/wpt/web-platform-tests/css/css-position/position-relative-006.html8
-rw-r--r--tests/wpt/web-platform-tests/css/css-position/position-relative-007.html8
-rw-r--r--tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-delete.tentative.html1
-rw-r--r--tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-forwarddelete.tentative.html1
-rw-r--r--tests/wpt/web-platform-tests/fetch/api/resources/stash-put.py5
-rw-r--r--tests/wpt/web-platform-tests/intersection-observer/intersection-ratio-ib-split.html31
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-getUserMedia.https.html4
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-streams/idlharness.https.window.js2
-rw-r--r--tests/wpt/web-platform-tests/page-visibility/prerender_call.html22
-rw-r--r--tests/wpt/web-platform-tests/page-visibility/resources/prerender_target.html13
-rw-r--r--tests/wpt/web-platform-tests/resources/chromium/webxr-test.js102
-rw-r--r--tests/wpt/web-platform-tests/resources/idlharness.js52
-rw-r--r--tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_attribute.html46
-rw-r--r--tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_operation.html155
-rw-r--r--tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/lint/lint.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_android_webview.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_ios.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_edge.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_edge_chromium.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_epiphany.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_ie.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_opera.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_safari.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_servo.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_webkit.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/edge.py6
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py2
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-SLD-SRD-timing.https.html24
98 files changed, 698 insertions, 251 deletions
diff --git a/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini
index 76b44d9e9cf..3605e8f3fc9 100644
--- a/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini
@@ -4,7 +4,7 @@
expected: TIMEOUT
[Opening a blob URL in a new window immediately before revoking it works.]
- expected: FAIL
+ expected: TIMEOUT
[Fetching a blob URL immediately before revoking it works in an iframe.]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
deleted file mode 100644
index f64b45fea6b..00000000000
--- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-002.html]
- [Hit test float]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini
deleted file mode 100644
index f29da48a2a0..00000000000
--- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-003.html]
- [Miss float below something else]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
deleted file mode 100644
index baa9f1a7541..00000000000
--- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-005.html]
- [Miss clipped float]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini
index 5e4d523cef9..c53734dcdd7 100644
--- a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini
@@ -11,9 +11,6 @@
[[data-expected-height\] 2]
expected: FAIL
- [[data-expected-height\] 1]
- expected: FAIL
-
- [[data-expected-height\] 2]
+ [[data-expected-height\] 4]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini
new file mode 100644
index 00000000000..e38782d8c85
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini
@@ -0,0 +1,4 @@
+[elementFromPoint-001.html]
+ [CSSOM View - 5 - extensions to the Document interface]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
deleted file mode 100644
index e181af5397f..00000000000
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[elementsFromPoint-invalid-cases.html]
- [The root element is the last element returned for otherwise empty queries within the viewport]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/matchMedia-display-none-iframe.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/matchMedia-display-none-iframe.html.ini
new file mode 100644
index 00000000000..e6e1f29e274
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/matchMedia-display-none-iframe.html.ini
@@ -0,0 +1,2 @@
+[matchMedia-display-none-iframe.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata-layout-2020/css/cssom/idlharness.html.ini b/tests/wpt/metadata-layout-2020/css/cssom/idlharness.html.ini
index ed54b6f92d8..8497d18de33 100644
--- a/tests/wpt/metadata-layout-2020/css/cssom/idlharness.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/cssom/idlharness.html.ini
@@ -488,3 +488,9 @@
[CSSStyleDeclaration interface: sheet.cssRules[2\].cssRules[0\].style must inherit property "item(unsigned long)" with the proper type]
expected: FAIL
+ [CSS namespace: [[Prototype\]\] is Object.prototype]
+ expected: FAIL
+
+ [CSS namespace: typeof is "object"]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
index 2dc2f97299e..fa8d181f334 100644
--- a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
@@ -315,21 +315,21 @@
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
+ [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
+ [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" text/plain]
+ [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
+ [<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
index 646a46c0cbb..d2df9b78483 100644
--- a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
@@ -56,9 +56,3 @@
[separate text/javascript x/x]
expected: FAIL
- [separate text/javascript;charset=windows-1252 error text/javascript]
- expected: FAIL
-
- [separate text/javascript error]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
index 30e1b851fd4..7277f622b20 100644
--- a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,3 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
+ [X-Content-Type-Options%3A%20%2Cnosniff]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
new file mode 100644
index 00000000000..51f8272a6de
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_3.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini
index 8e2a63e3b7f..9a85a905394 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini
@@ -1,5 +1,4 @@
[embedded-opener-remove-frame.html]
- expected: CRASH
[opener of discarded nested browsing context]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html.ini
index 5c3ac06f42a..09ae27d7480 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html.ini
@@ -171,3 +171,6 @@
[XHTML img usemap="#hash-id"]
expected: FAIL
+ [HTML (standards) IMG usemap="no-hash-name"]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
index 3d627c10223..42ebcc9d57e 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
@@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-1.html]
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
index 338d283eb0e..295031c1812 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
@@ -1,4 +1,5 @@
[iframe_sandbox_popups_escaping-3.html]
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
index 3080be9afc0..1b74d6e073d 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
@@ -1,5 +1,4 @@
[iframe_sandbox_popups_nonescaping-1.html]
- expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: NOTRUN
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
index 0218bc9ba9d..c792a071c3b 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
@@ -1,4 +1,5 @@
[iframe_sandbox_popups_nonescaping-2.html]
+ expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
index ed872bb35ff..b1aa0f1f1c4 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
@@ -8,3 +8,6 @@
[Check that rel=noopener with target=_parent does a normal load]
expected: FAIL
+ [Check that rel=noopener with target=_self does a normal load]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
deleted file mode 100644
index 178680e5d14..00000000000
--- a/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[script-onerror-insertion-point-2.html]
- expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata-layout-2020/html/syntax/parsing/DOMContentLoaded-defer.html.ini
deleted file mode 100644
index a9677391662..00000000000
--- a/tests/wpt/metadata-layout-2020/html/syntax/parsing/DOMContentLoaded-defer.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[DOMContentLoaded-defer.html]
- [The end: DOMContentLoaded and defer scripts]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/load-event-after-location-set-during-write.window.js.ini b/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/load-event-after-location-set-during-write.window.js.ini
new file mode 100644
index 00000000000..a817ad54be7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/load-event-after-location-set-during-write.window.js.ini
@@ -0,0 +1,4 @@
+[load-event-after-location-set-during-write.window.html]
+ [Setting location from document.write() call should not trigger load event until that load completes]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini b/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
index 58c9d7f8c0c..57744023f73 100644
--- a/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
@@ -1,5 +1,5 @@
[ignore-opens-during-unload.window.html]
- expected: TIMEOUT
+ expected: CRASH
[document.open should bail out when ignore-opens-during-unload is greater than 0 during visibilitychange event (open(parent) while unloading parent and child)]
expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
index dbec6f2c2ff..450c88bd32b 100644
--- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
@@ -3,3 +3,6 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
+ [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
index 5ddb9bfeff6..a1effd5f801 100644
--- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
@@ -1,10 +1,9 @@
[promise-job-entry.html]
- expected: TIMEOUT
[Fulfillment handler on fulfilled promise]
expected: FAIL
[Rejection handler on pending-then-rejected promise]
- expected: TIMEOUT
+ expected: FAIL
[Sanity check: this all works as expected with no promises involved]
expected: FAIL
@@ -16,5 +15,5 @@
expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
index 16614b18649..d65177c2a5b 100644
--- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
@@ -1,6 +1,7 @@
[promise-rejection-events.html]
+ expected: TIMEOUT
[delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire]
- expected: FAIL
+ expected: TIMEOUT
[unhandledrejection: from createImageBitmap which is UA triggered]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini
new file mode 100644
index 00000000000..064cf47545b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini
@@ -0,0 +1,5 @@
+[017.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, about:blank]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata-layout-2020/workers/constructors/Worker/Worker-constructor.html.ini
new file mode 100644
index 00000000000..80f9a4f15b8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/workers/constructors/Worker/Worker-constructor.html.ini
@@ -0,0 +1,2 @@
+[Worker-constructor.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini
index d4f62ed7113..faa00f45ecf 100644
--- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini
+++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini
@@ -7,7 +7,7 @@
expected: FAIL
[Opening a blob URL in a new window immediately before revoking it works.]
- expected: FAIL
+ expected: TIMEOUT
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: TIMEOUT
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index a1fa8abf237..cf8a5fb0c53 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -156618,6 +156618,19 @@
{}
]
],
+ "multicol-overflow-clip-auto-sized.html": [
+ "70a4723637ffa83a85e27028de7b8b758a5f1d5b",
+ [
+ null,
+ [
+ [
+ "/css/css-multicol/multicol-overflow-clip-auto-sized-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"multicol-overflow-clip-positioned.html": [
"184bfc7f18dadbade32192b777c6b21f345882af",
[
@@ -161269,6 +161282,32 @@
{}
]
],
+ "position-relative-006.html": [
+ "545edc990b9ff89ddcb5bbf09dc0b8c8d8238888",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "position-relative-007.html": [
+ "2425514f308afebd3ce32ae6e04c57077428c05e",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"position-relative-table-tbody-left-absolute-child.html": [
"98e759a8c0a83817b3d691503e807ed5ed549936",
[
@@ -271026,6 +271065,14 @@
[]
]
},
+ "unsafe-eval": {
+ "support": {
+ "echo-eval-with-policy.py": [
+ "087d3549a94ccd3546bcde5316a2c80965705414",
+ []
+ ]
+ }
+ },
"unsafe-hashes": {
"support": {
"child_window_location_navigate.sub.html": [
@@ -304649,6 +304696,10 @@
"29aa736cfdbba4437c9c7d33fe532309cff2eba8",
[]
],
+ "multicol-overflow-clip-auto-sized-ref.html": [
+ "8b68172a8f2450e763ec52c4d5b5e67036858c02",
+ []
+ ],
"multicol-overflow-clip-positioned-ref.html": [
"58f1d57bc39beed37d14eea0dc9c1cbc47c33717",
[]
@@ -325607,7 +325658,7 @@
[]
],
"stash-put.py": [
- "3af7d9199ace9fd0a4c4f840e14fbb70d7bc79f8",
+ "dbc7ceebb882ebb77a0202b3c9a828e2c70dc3bc",
[]
],
"stash-take.py": [
@@ -342757,10 +342808,6 @@
"bfc4deb9f62c7d7d420f36878cd7a227881806cc",
[]
],
- "prerender_target.html": [
- "73108e8ab9f20f68da3eda3214a2e00d3ca1c2db",
- []
- ],
"unload-bubbles.html": [
"44f0c0cef319f279435bb38f670ed96d00ebcd17",
[]
@@ -345532,7 +345579,7 @@
[]
],
"webxr-test.js": [
- "3ecb18e5556710cd7f9d4bc6a92a41949de725c1",
+ "51b2b132276465645031de151f7f569b4dd6d63f",
[]
],
"webxr-test.js.headers": [
@@ -345541,7 +345588,7 @@
]
},
"idlharness.js": [
- "9a23e3a1da203309150e80ac820aa3df294ae3c3",
+ "994a0d82ef444bf4566dc27a81487e70d9e284ea",
[]
],
"idlharness.js.headers": [
@@ -345678,11 +345725,11 @@
},
"IdlNamespace": {
"test_attribute.html": [
- "8c1f517216544e78229392cc6f33eb06c77960b3",
+ "ca5edf4723d5b5c2055c2f024d951e98124c8cd9",
[]
],
"test_operation.html": [
- "1b995529d239ca09e2896d653226243b581acb2e",
+ "60d7d47c9eea64a81d539afa6fd3acd72581c00b",
[]
],
"test_partial_namespace.html": [
@@ -350382,7 +350429,7 @@
[]
],
"test_valid.py": [
- "204465a8297b4c564f2f30500c6c7af51e56a5ec",
+ "88ffdb2951133474884c89c2dfa0a2e029c9ca19",
[]
]
}
@@ -350484,7 +350531,7 @@
[]
],
"lint.py": [
- "85c8bf341795fd8fd58e094fef8733f807b52729",
+ "8a1149c7f054c897163c9310f335ec2183259afc",
[]
],
"rules.py": [
@@ -356868,63 +356915,63 @@
]
},
"requirements.txt": [
- "d10396d0d2b261cabfbdd1051a9b50ecb62a62e8",
+ "1eba114a31c21f3e48aafae5e9466cefbe741288",
[]
],
"requirements_android_webview.txt": [
- "470aaf9a93996d0231e13e05cc35557a36d25de9",
+ "e7e7161b14264a29cc5d9cf4a275abeb7fcbace6",
[]
],
"requirements_chrome.txt": [
- "470aaf9a93996d0231e13e05cc35557a36d25de9",
+ "e7e7161b14264a29cc5d9cf4a275abeb7fcbace6",
[]
],
"requirements_chrome_android.txt": [
- "470aaf9a93996d0231e13e05cc35557a36d25de9",
+ "e7e7161b14264a29cc5d9cf4a275abeb7fcbace6",
[]
],
"requirements_chrome_ios.txt": [
- "470aaf9a93996d0231e13e05cc35557a36d25de9",
+ "e7e7161b14264a29cc5d9cf4a275abeb7fcbace6",
[]
],
"requirements_edge.txt": [
- "1bf6ef32ad473a716cc969d06f147e5e827ade35",
+ "0a61208d77c1279ac2b1b301702867f2d5d0fc67",
[]
],
"requirements_edge_chromium.txt": [
- "70c12443243e6655d9772cde3fdaa20ab6023bf7",
+ "3f1ee1f6b20ac5a30d160d9c321358d93c681cef",
[]
],
"requirements_epiphany.txt": [
- "470aaf9a93996d0231e13e05cc35557a36d25de9",
+ "e7e7161b14264a29cc5d9cf4a275abeb7fcbace6",
[]
],
"requirements_firefox.txt": [
- "a053971000bb0ef8d4b57631f1127e2240740729",
+ "8b45703a5596ed0d1f4ae577af31b8afd2f0bc8f",
[]
],
"requirements_ie.txt": [
- "1bf6ef32ad473a716cc969d06f147e5e827ade35",
+ "0a61208d77c1279ac2b1b301702867f2d5d0fc67",
[]
],
"requirements_opera.txt": [
- "1bf6ef32ad473a716cc969d06f147e5e827ade35",
+ "0a61208d77c1279ac2b1b301702867f2d5d0fc67",
[]
],
"requirements_safari.txt": [
- "470aaf9a93996d0231e13e05cc35557a36d25de9",
+ "e7e7161b14264a29cc5d9cf4a275abeb7fcbace6",
[]
],
"requirements_sauce.txt": [
- "5f70629d81b73302bf0b6ab48a172f761199807d",
+ "34c66ee238b67f9be30cf2330df8d943f374e247",
[]
],
"requirements_servo.txt": [
- "470aaf9a93996d0231e13e05cc35557a36d25de9",
+ "e7e7161b14264a29cc5d9cf4a275abeb7fcbace6",
[]
],
"requirements_webkit.txt": [
- "470aaf9a93996d0231e13e05cc35557a36d25de9",
+ "e7e7161b14264a29cc5d9cf4a275abeb7fcbace6",
[]
],
"setup.py": [
@@ -357104,7 +357151,7 @@
[]
],
"edge.py": [
- "18a1ed781189cca23df2a4e1b5b5dca830bd0ea4",
+ "bdb37b3f84c2cdc4010a7a289a53564822a3a34c",
[]
],
"edge_webdriver.py": [
@@ -357220,7 +357267,7 @@
[]
],
"executorselenium.py": [
- "ec7b8fcf189c9486e202b66007476e5dbd621f5c",
+ "1fa9953b36e14c3373a4ce1257ee7e19482ce1d4",
[]
],
"executorservo.py": [
@@ -376481,7 +376528,7 @@
]
],
"setSinkId.https.html": [
- "80e2832e970c0696e132e14d7fd1d8ae2d456d03",
+ "b1f703a9350bf557f0d38911a09c09a9d02eaa3a",
[
null,
{}
@@ -385878,6 +385925,13 @@
{}
]
],
+ "eval-in-iframe.html": [
+ "aa29702c0117741e5911fb408c79d4cfb72db00c",
+ [
+ null,
+ {}
+ ]
+ ],
"eval-scripts-setInterval-allowed.sub.html": [
"ee888eaa4957d9e0df7443cc59ff7039489f2853",
[
@@ -418385,14 +418439,14 @@
]
],
"white-spaces-after-execCommand-delete.tentative.html": [
- "3592b2dc0cc15973a3d9eb8a2ce25f0cc668f2c9",
+ "6aafdddcef01b9fb77a3bfd7f9343170a653913b",
[
null,
{}
]
],
"white-spaces-after-execCommand-forwarddelete.tentative.html": [
- "4a94c6bcddf37f4cf81324c5373e0c1038baaefb",
+ "af5c052c563ae19300ef268de5097ee438daa152",
[
null,
{}
@@ -476037,6 +476091,13 @@
{}
]
],
+ "intersection-ratio-ib-split.html": [
+ "905ea436fd6a85fff228f5676742b89ab001a3b7",
+ [
+ null,
+ {}
+ ]
+ ],
"isIntersecting-change-events.html": [
"99bc65bd60afee82f2ddd6b5380437d94811e30d",
[
@@ -479610,7 +479671,7 @@
]
],
"MediaDevices-getUserMedia.https.html": [
- "f410b262cf5b419d8e056a805a46c518ea45c493",
+ "693f3bd11cfaa6be7ca21bae110467c265be5a07",
[
null,
{}
@@ -479766,7 +479827,7 @@
]
],
"idlharness.https.window.js": [
- "ee5fb483c120ca273e61cefb7bc7d8be906c3355",
+ "b10e8dbb046d656e4b06c3572fb4ee069c9e0897",
[
"mediacapture-streams/idlharness.https.window.html",
{
@@ -484914,13 +484975,6 @@
{}
]
],
- "prerender_call.html": [
- "ed9e54a1dd8ea734ce5410fffc3f66add70c64c6",
- [
- null,
- {}
- ]
- ],
"test_attributes_exist.html": [
"748161fdf8fb68319158b717871877c1db745e34",
[
@@ -524361,6 +524415,15 @@
{}
]
],
+ "RTCPeerConnection-SLD-SRD-timing.https.html": [
+ "36bde06c9634269b17cd565b20bc80b411d1d925",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
"RTCPeerConnection-add-track-no-deadlock.https.html": [
"81e3b736432d2c80d617ca2c05ef072e901d0283",
[
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
deleted file mode 100644
index f64b45fea6b..00000000000
--- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-002.html]
- [Hit test float]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini
deleted file mode 100644
index f29da48a2a0..00000000000
--- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-003.html]
- [Miss float below something else]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini
deleted file mode 100644
index baa9f1a7541..00000000000
--- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-005.html]
- [Miss clipped float]
- expected: FAIL
-
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 076c791cd3d..94a3570d26b 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
@@ -8,9 +8,6 @@
[[data-expected-height\] 3]
expected: FAIL
- [[data-expected-height\] 1]
- expected: FAIL
-
- [[data-expected-height\] 2]
+ [[data-expected-height\] 4]
expected: FAIL
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
new file mode 100644
index 00000000000..e38782d8c85
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
@@ -0,0 +1,4 @@
+[elementFromPoint-001.html]
+ [CSSOM View - 5 - extensions to the Document interface]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
deleted file mode 100644
index e181af5397f..00000000000
--- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[elementsFromPoint-invalid-cases.html]
- [The root element is the last element returned for otherwise empty queries within the viewport]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini
new file mode 100644
index 00000000000..e6e1f29e274
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini
@@ -0,0 +1,2 @@
+[matchMedia-display-none-iframe.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata/css/cssom/idlharness.html.ini b/tests/wpt/metadata/css/cssom/idlharness.html.ini
index 4e86fdd41bf..fbde0d27287 100644
--- a/tests/wpt/metadata/css/cssom/idlharness.html.ini
+++ b/tests/wpt/metadata/css/cssom/idlharness.html.ini
@@ -533,3 +533,9 @@
[CSSStyleDeclaration interface: calling setProperty(CSSOMString, CSSOMString, optional CSSOMString) on svg_element.style with too few arguments must throw TypeError]
expected: FAIL
+ [CSS namespace: [[Prototype\]\] is Object.prototype]
+ expected: FAIL
+
+ [CSS namespace: typeof is "object"]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
index 6e9bc97130e..1507f21112a 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -315,21 +315,21 @@
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
+ [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
+ [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" text/plain]
+ [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
+ [<iframe>: combined response Content-Type: text/html;x=" 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 646a46c0cbb..d2df9b78483 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -56,9 +56,3 @@
[separate text/javascript x/x]
expected: FAIL
- [separate text/javascript;charset=windows-1252 error text/javascript]
- expected: FAIL
-
- [separate text/javascript error]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
index 30e1b851fd4..7277f622b20 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,3 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
+ [X-Content-Type-Options%3A%20%2Cnosniff]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
new file mode 100644
index 00000000000..51f8272a6de
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_3.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini
index 2532dceabac..442db3cb549 100644
--- a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini
+++ b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini
@@ -1,5 +1,4 @@
[embedded-opener-remove-frame.html]
- expected: CRASH
[opener and "removed" embedded documents]
expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html.ini
index 1de3f8d68b2..98163335e40 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/image-maps/image-map-processing-model/hash-name-reference.html.ini
@@ -172,3 +172,6 @@
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
expected: FAIL
+ [HTML (standards) IMG usemap="no-hash-name"]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
index 86fee8a454a..fc37df7e3fa 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
@@ -1,6 +1,6 @@
[iframe_sandbox_popups_escaping-1.html]
type: testharness
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
- expected: FAIL
+ expected: TIMEOUT
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 f6a7aca3306..5f60c78e73c 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,5 +1,6 @@
[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: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
index 963d4cd20ef..3f7e3e9544f 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini
@@ -1,6 +1,5 @@
[iframe_sandbox_popups_nonescaping-1.html]
type: testharness
- expected: CRASH
[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-2.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
index 3a32693ffa8..06bbed1fcac 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,5 +1,6 @@
[iframe_sandbox_popups_nonescaping-2.html]
type: testharness
+ expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini b/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
index d6bb751ddc2..a057142bbc5 100644
--- a/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
+++ b/tests/wpt/metadata/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini
@@ -12,3 +12,6 @@
[Check that rel=noopener with target=_parent does a normal load]
expected: FAIL
+ [Check that rel=noopener with target=_self does a normal load]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
deleted file mode 100644
index 178680e5d14..00000000000
--- a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[script-onerror-insertion-point-2.html]
- expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
deleted file mode 100644
index a9677391662..00000000000
--- a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[DOMContentLoaded-defer.html]
- [The end: DOMContentLoaded and defer scripts]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/load-event-after-location-set-during-write.window.js.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/load-event-after-location-set-during-write.window.js.ini
new file mode 100644
index 00000000000..a817ad54be7
--- /dev/null
+++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/load-event-after-location-set-during-write.window.js.ini
@@ -0,0 +1,4 @@
+[load-event-after-location-set-during-write.window.html]
+ [Setting location from document.write() call should not trigger load event until that load completes]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
index 69bd952d756..910c88d3e81 100644
--- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
+++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
@@ -1,5 +1,5 @@
[ignore-opens-during-unload.window.html]
- expected: TIMEOUT
+ expected: CRASH
[ignore-opens-during-unload]
expected: FAIL
diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
index 0cef5158fae..01f7b72cbe7 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
@@ -4,3 +4,6 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
+ [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
index 5ddb9bfeff6..a1effd5f801 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
@@ -1,10 +1,9 @@
[promise-job-entry.html]
- expected: TIMEOUT
[Fulfillment handler on fulfilled promise]
expected: FAIL
[Rejection handler on pending-then-rejected promise]
- expected: TIMEOUT
+ expected: FAIL
[Sanity check: this all works as expected with no promises involved]
expected: FAIL
@@ -16,5 +15,5 @@
expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
index 16614b18649..d65177c2a5b 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini
@@ -1,6 +1,7 @@
[promise-rejection-events.html]
+ expected: TIMEOUT
[delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire]
- expected: FAIL
+ expected: TIMEOUT
[unhandledrejection: from createImageBitmap which is UA triggered]
expected: FAIL
diff --git a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
new file mode 100644
index 00000000000..064cf47545b
--- /dev/null
+++ b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
@@ -0,0 +1,5 @@
+[017.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, about:blank]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini
new file mode 100644
index 00000000000..80f9a4f15b8
--- /dev/null
+++ b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini
@@ -0,0 +1,2 @@
+[Worker-constructor.html]
+ expected: ERROR
diff --git a/tests/wpt/web-platform-tests/audio-output/setSinkId.https.html b/tests/wpt/web-platform-tests/audio-output/setSinkId.https.html
index 80e2832e970..b1f703a9350 100644
--- a/tests/wpt/web-platform-tests/audio-output/setSinkId.https.html
+++ b/tests/wpt/web-platform-tests/audio-output/setSinkId.https.html
@@ -17,8 +17,6 @@ promise_test(t => promise_rejects_dom(t, "NotFoundError", audio.setSinkId("nonex
"setSinkId fails with NotFoundError on made up deviceid");
promise_test(async t => {
- const stream = await navigator.mediaDevices.getUserMedia({audio:true});
- stream.getAudioTracks()[0].stop();
const list = await navigator.mediaDevices.enumerateDevices();
const outputDevicesList = list.filter(({kind}) => kind == "audiooutput");
assert_not_equals(outputDevicesList.length, 0,
diff --git a/tests/wpt/web-platform-tests/content-security-policy/unsafe-eval/eval-in-iframe.html b/tests/wpt/web-platform-tests/content-security-policy/unsafe-eval/eval-in-iframe.html
new file mode 100644
index 00000000000..aa29702c011
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/unsafe-eval/eval-in-iframe.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+ <title>eval-in-iframe</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+
+<body>
+ <p>This test checks that iframes correctly block the eval function.</p>
+ <script>
+ var tests = [
+ { "name": "script-src blocks eval unless 'unsafe-eval' is specified.",
+ "csp": "script-src 'unsafe-inline'" },
+ { "name": "default-src blocks eval unless 'unsafe-eval' is specified.",
+ "csp": "default-src 'unsafe-inline'" },
+ ];
+
+ tests.forEach(test => {
+ async_test(t => {
+ var child = document.createElement('iframe');
+ child.src = '/content-security-policy/unsafe-eval/support/echo-eval-with-policy.py?policy=' + encodeURIComponent(test.csp);
+ window.addEventListener('message', t.step_func(e => {
+ if (e.source != child.contentWindow)
+ return;
+ if (e.data === "eval blocked") {
+ t.done();
+ }
+ else if (e.data === "eval allowed") {
+ assert_unreached("Eval code was executed in iframe");
+ }
+ }));
+ document.body.appendChild(child);
+ }, test.name);
+ });
+ </script>
+</body>
+
+</html>
diff --git a/tests/wpt/web-platform-tests/content-security-policy/unsafe-eval/support/echo-eval-with-policy.py b/tests/wpt/web-platform-tests/content-security-policy/unsafe-eval/support/echo-eval-with-policy.py
new file mode 100644
index 00000000000..087d3549a94
--- /dev/null
+++ b/tests/wpt/web-platform-tests/content-security-policy/unsafe-eval/support/echo-eval-with-policy.py
@@ -0,0 +1,14 @@
+def main(request, response):
+ policy = request.GET.first(b"policy")
+ return [(b"Content-Type", b"text/html"), (b"Content-Security-Policy", policy)], b"""
+<!DOCTYPE html>
+<html>
+<script>
+var id = 0;
+try {
+ id = eval("id + 1");
+} catch (e) {}
+window.parent.postMessage(id === 1 ? "eval allowed" : "eval blocked");
+</script>
+</html>
+"""
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-overflow-clip-auto-sized-ref.html b/tests/wpt/web-platform-tests/css/css-multicol/multicol-overflow-clip-auto-sized-ref.html
new file mode 100644
index 00000000000..8b68172a8f2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-overflow-clip-auto-sized-ref.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<div style="columns: 2">
+ <div>Column1</div>
+ <div style="padding: 2px">Column2<br>Column2 line2</div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-overflow-clip-auto-sized.html b/tests/wpt/web-platform-tests/css/css-multicol/multicol-overflow-clip-auto-sized.html
new file mode 100644
index 00000000000..70a4723637f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-overflow-clip-auto-sized.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<title>CSS Multi-column Layout Test: multicol with overflow-clipped content</title>
+<link rel="help" href="https://www.w3.org/TR/css-multicol-1/">
+<link rel="match" href="multicol-overflow-clip-auto-sized-ref.html">
+<meta name="assert" content="Overflow clip sized to content should not clip even under multicol.">
+<div style="columns: 2">
+ <div>Column1</div>
+ <div style="overflow: hidden; padding: 2px">Column2<br>Column2 line2</div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-position/position-relative-006.html b/tests/wpt/web-platform-tests/css/css-position/position-relative-006.html
new file mode 100644
index 00000000000..545edc990b9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-position/position-relative-006.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<meta name="assert" content="This ensures that a relative-positioned element inset doesn't resolve against an indefinite size.">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#relpos-insets">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="width: 100px; min-height: 100px; background: red;">
+ <div style="width: 100px; height: 100px; background: green; top: -10000%; position: relative;"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-position/position-relative-007.html b/tests/wpt/web-platform-tests/css/css-position/position-relative-007.html
new file mode 100644
index 00000000000..2425514f308
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-position/position-relative-007.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<meta name="assert" content="This ensures that a relative-positioned element inset doesn't resolve against an indefinite size.">
+<link rel="help" href="https://drafts.csswg.org/css-position-3/#relpos-insets">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div style="width: 100px; min-height: 100px; background: red;">
+ <div style="width: 100px; height: 100px; background: green; top: calc(10px + 10%); position: relative;"></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-delete.tentative.html b/tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-delete.tentative.html
index 3592b2dc0cc..6aafdddcef0 100644
--- a/tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-delete.tentative.html
+++ b/tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-delete.tentative.html
@@ -184,6 +184,7 @@ function runTests() {
{ initialText: "a&nbsp;&nbsp;&nbsp;b[]|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;&nbsp;[]", "&nbsp; &nbsp; &nbsp;c"] },
{ initialText: "a&nbsp;&nbsp;&nbsp;b|[]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;&nbsp;[]", "&nbsp; &nbsp; &nbsp;c"] },
{ initialText: "a&nbsp;&nbsp;&nbsp;|b[]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;&nbsp;[]", "&nbsp; &nbsp; &nbsp;c"] },
+ { initialText: "a&nbsp;&nbsp;&nbsp;[]|b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;[]", "b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c"] },
{ initialText: "a&nbsp;&nbsp;&nbsp;|&nbsp;b[]&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;&nbsp;", "&nbsp;[] &nbsp; &nbsp;c"] },
{ initialText: "a&nbsp;&nbsp;&nbsp;|&nbsp;|[]&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;&nbsp;[]", "&nbsp; &nbsp; c"] },
diff --git a/tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-forwarddelete.tentative.html b/tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-forwarddelete.tentative.html
index 4a94c6bcddf..af5c052c563 100644
--- a/tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-forwarddelete.tentative.html
+++ b/tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-forwarddelete.tentative.html
@@ -182,6 +182,7 @@ function runTests() {
{ initialText: "a&nbsp;&nbsp;&nbsp;[]b|&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;&nbsp;[]", "&nbsp; &nbsp; c"] },
{ initialText: "a&nbsp;&nbsp;&nbsp;[]|b&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;&nbsp;[]", "&nbsp; &nbsp; c"] },
{ initialText: "a&nbsp;&nbsp;&nbsp;|[]b&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;&nbsp;[]", "&nbsp; &nbsp; c"] },
+ { initialText: "a&nbsp;&nbsp;[]&nbsp;|b&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;[]", "b&nbsp;&nbsp;&nbsp;&nbsp;c"] },
{ initialText: "a&nbsp;&nbsp;&nbsp;|&nbsp;[]b&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;&nbsp;", "&nbsp;[] &nbsp; c"] },
{ initialText: "a&nbsp;&nbsp;&nbsp;|&nbsp;|[]&nbsp;&nbsp;&nbsp;&nbsp;c", expectedText: ["a&nbsp;&nbsp;&nbsp;", "&nbsp;[]", "&nbsp; &nbsp;c"] },
diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/stash-put.py b/tests/wpt/web-platform-tests/fetch/api/resources/stash-put.py
index 3af7d9199ac..dbc7ceebb88 100644
--- a/tests/wpt/web-platform-tests/fetch/api/resources/stash-put.py
+++ b/tests/wpt/web-platform-tests/fetch/api/resources/stash-put.py
@@ -1,3 +1,5 @@
+from wptserve.utils import isomorphic_decode
+
def main(request, response):
if request.method == u'OPTIONS':
# CORS preflight
@@ -9,6 +11,7 @@ def main(request, response):
url_dir = u'/'.join(request.url_parts.path.split(u'/')[:-1]) + u'/'
key = request.GET.first(b"key")
value = request.GET.first(b"value")
- request.server.stash.put(key, value, url_dir)
+ # value here must be a text string. It will be json.dump()'ed in stash-take.py.
+ request.server.stash.put(key, isomorphic_decode(value), url_dir)
response.headers.set(b'Access-Control-Allow-Origin', b'*')
return "done"
diff --git a/tests/wpt/web-platform-tests/intersection-observer/intersection-ratio-ib-split.html b/tests/wpt/web-platform-tests/intersection-observer/intersection-ratio-ib-split.html
new file mode 100644
index 00000000000..905ea436fd6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/intersection-observer/intersection-ratio-ib-split.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<link rel="help" href="https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-intersectionratio">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1581876">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ block {
+ display: block;
+ width: 50vw;
+ height: 50vh;
+ background: green;
+ }
+</style>
+<inline>
+ <block></block>
+</inline>
+<script>
+promise_test(async function() {
+ for (let element of document.querySelectorAll("inline, block")) {
+ let entries = await new Promise(resolve => {
+ new IntersectionObserver(resolve).observe(element);
+ });
+ assert_equals(entries.length, 1, element.nodeName + ": Should get an entry");
+ assert_true(entries[0].isIntersecting, element.nodeName + ": Should be intersecting");
+ assert_equals(entries[0].intersectionRatio, 1, element.nodeName + ": Should be fully intersecting");
+ }
+}, "IntersectionObserver on an IB split gets the right intersection ratio");
+</script>
diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-getUserMedia.https.html b/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-getUserMedia.https.html
index f410b262cf5..693f3bd11cf 100644
--- a/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-getUserMedia.https.html
+++ b/tests/wpt/web-platform-tests/mediacapture-streams/MediaDevices-getUserMedia.https.html
@@ -40,8 +40,6 @@ test(function () {
promise_test(async t => {
assert_true(navigator.mediaDevices.getSupportedConstraints()["groupId"],
"groupId should be supported");
- const stream = await navigator.mediaDevices.getUserMedia({video:true});
- stream.getVideoTracks()[0].stop();
const devices = await navigator.mediaDevices.enumerateDevices();
for (const device of devices) {
await navigator.mediaDevices.getUserMedia(
@@ -65,8 +63,6 @@ promise_test(async t => {
promise_test(async t => {
assert_true(navigator.mediaDevices.getSupportedConstraints()["groupId"],
"groupId should be supported");
- const stream = await navigator.mediaDevices.getUserMedia({audio:true});
- stream.getAudioTracks()[0].stop();
const devices = await navigator.mediaDevices.enumerateDevices();
for (const device of devices) {
await navigator.mediaDevices.getUserMedia(
diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/idlharness.https.window.js b/tests/wpt/web-platform-tests/mediacapture-streams/idlharness.https.window.js
index ee5fb483c12..b10e8dbb046 100644
--- a/tests/wpt/web-platform-tests/mediacapture-streams/idlharness.https.window.js
+++ b/tests/wpt/web-platform-tests/mediacapture-streams/idlharness.https.window.js
@@ -13,8 +13,6 @@ idl_test(
const inputDevices = [];
const outputDevices = [];
try {
- const stream = await navigator.mediaDevices.getUserMedia({audio:true, video:true});
- stream.getTracks().forEach(track => track.stop());
const list = await navigator.mediaDevices.enumerateDevices();
for (const device of list) {
if (device.kind in self) {
diff --git a/tests/wpt/web-platform-tests/page-visibility/prerender_call.html b/tests/wpt/web-platform-tests/page-visibility/prerender_call.html
deleted file mode 100644
index ed9e54a1dd8..00000000000
--- a/tests/wpt/web-platform-tests/page-visibility/prerender_call.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!doctype html>
-<head>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<title>Prerender test for Page Visibility API</title>
-<link rel="prerender" href="resources/prerender_target.html">
-<script>
-var t = async_test('VisibilityState of the target page was set to "prerender" when it has been prerendered');
-window.onload = t.step_func(function() {
- t.step_timeout(function() {
- assert_equals(localStorage.getItem("visibilityState:prerender"), "hit", "visibilityState of the target page was set to 'prerender'");
- t.done();
- localStorage.clear();
- }, 1000);
-});
-</script>
-</head>
-<body>
- <h1>Description</h1>
- <p>This document validate that visibilityState of a target page was set to "prerender" when it has been prerendered.</p>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/page-visibility/resources/prerender_target.html b/tests/wpt/web-platform-tests/page-visibility/resources/prerender_target.html
deleted file mode 100644
index 73108e8ab9f..00000000000
--- a/tests/wpt/web-platform-tests/page-visibility/resources/prerender_target.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <title>Document has been prerendered</title>
-</head>
-<body>
- <script type="text/javascript">
- if(document.visibilityState) {
- window.localStorage.setItem("visibilityState:" + document.visibilityState, "hit");
- }
-</script>
-</body>
-</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js b/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js
index 3ecb18e5556..51b2b132276 100644
--- a/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js
+++ b/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js
@@ -279,6 +279,23 @@ class FakeXRAnchorController {
}
}
+// Internal only for now, needs to be moved into WebXR Test API.
+class FakeXRHitTestSourceController {
+ constructor(id) {
+ this.id_ = id;
+ this.deleted_ = false;
+ }
+
+ get deleted() {
+ return this.deleted_;
+ }
+
+ // Internal setter:
+ set deleted(value) {
+ this.deleted_ = value;
+ }
+}
+
// Implements XRFrameDataProvider and XRPresentationProvider. Maintains a mock
// for XRPresentationProvider. Implements FakeXRDevice test API.
class MockRuntime {
@@ -535,6 +552,10 @@ class MockRuntime {
this.anchor_creation_callback_ = callback;
}
+ setHitTestSourceCreationCallback(callback) {
+ this.hit_test_source_creation_callback_ = callback;
+ }
+
// Helper methods
getNonImmersiveDisplayInfo() {
const displayInfo = this.getImmersiveDisplayInfo();
@@ -772,14 +793,29 @@ class MockRuntime {
});
}
- // Store the subscription information as-is:
+ // Reserve the id for hit test source:
const id = this.next_hit_test_id_++;
- this.hitTestSubscriptions_.set(id, { nativeOriginInformation, entityTypes, ray });
+ const hitTestParameters = { isTransient: false, profileName: null };
+ const controller = new FakeXRHitTestSourceController(id);
- return Promise.resolve({
- result : device.mojom.SubscribeToHitTestResult.SUCCESS,
- subscriptionId : id
- });
+
+ return this._shouldHitTestSourceCreationSucceed(hitTestParameters, controller)
+ .then((succeeded) => {
+ if(succeeded) {
+ // Store the subscription information as-is (including controller):
+ this.hitTestSubscriptions_.set(id, { nativeOriginInformation, entityTypes, ray, controller });
+
+ return Promise.resolve({
+ result : device.mojom.SubscribeToHitTestResult.SUCCESS,
+ subscriptionId : id
+ });
+ } else {
+ return Promise.resolve({
+ result : device.mojom.SubscribeToHitTestResult.FAILURE_GENERIC,
+ subscriptionId : 0
+ });
+ }
+ });
}
subscribeToHitTestForTransientInput(profileName, entityTypes, ray){
@@ -791,14 +827,45 @@ class MockRuntime {
});
}
- // Store the subscription information as-is:
const id = this.next_hit_test_id_++;
- this.transientHitTestSubscriptions_.set(id, { profileName, entityTypes, ray });
+ const hitTestParameters = { isTransient: true, profileName: profileName };
+ const controller = new FakeXRHitTestSourceController(id);
+
+ // Check if we have hit test source creation callback.
+ // If yes, ask it if the hit test source creation should succeed.
+ // If no, for back-compat, assume the hit test source creation succeeded.
+ return this._shouldHitTestSourceCreationSucceed(hitTestParameters, controller)
+ .then((succeeded) => {
+ if(succeeded) {
+ // Store the subscription information as-is (including controller):
+ this.transientHitTestSubscriptions_.set(id, { profileName, entityTypes, ray, controller });
+
+ return Promise.resolve({
+ result : device.mojom.SubscribeToHitTestResult.SUCCESS,
+ subscriptionId : id
+ });
+ } else {
+ return Promise.resolve({
+ result : device.mojom.SubscribeToHitTestResult.FAILURE_GENERIC,
+ subscriptionId : 0
+ });
+ }
+ });
+ }
- return Promise.resolve({
- result : device.mojom.SubscribeToHitTestResult.SUCCESS,
- subscriptionId : id
- });
+ unsubscribeFromHitTest(subscriptionId) {
+ let controller = null;
+ if(this.transientHitTestSubscriptions_.has(subscriptionId)){
+ controller = this.transientHitTestSubscriptions_.get(subscriptionId).controller;
+ this.transientHitTestSubscriptions_.delete(subscriptionId);
+ } else if(this.hitTestSubscriptions_.has(subscriptionId)){
+ controller = this.hitTestSubscriptions_.get(subscriptionId).controller;
+ this.hitTestSubscriptions_.delete(subscriptionId);
+ }
+
+ if(controller) {
+ controller.deleted = true;
+ }
}
createAnchor(nativeOriginInformation, nativeOriginFromAnchor) {
@@ -997,6 +1064,17 @@ class MockRuntime {
// Private functions - hit test implementation:
+ // Returns a Promise<bool> that signifies whether hit test source creation should succeed.
+ // If we have a hit test source creation callback installed, invoke it and return its result.
+ // If it's not installed, for back-compat just return a promise that resolves to true.
+ _shouldHitTestSourceCreationSucceed(hitTestParameters, controller) {
+ if(this.hit_test_source_creation_callback_) {
+ return this.hit_test_source_creation_callback_(hitTestParameters, controller);
+ } else {
+ return Promise.resolve(true);
+ }
+ }
+
// Modifies passed in frameData to add hit test results.
_calculateHitTestResults(frameData) {
if (!this.supportedModes_.includes(device.mojom.XRSessionMode.kImmersiveAr)) {
diff --git a/tests/wpt/web-platform-tests/resources/idlharness.js b/tests/wpt/web-platform-tests/resources/idlharness.js
index 9a23e3a1da2..994a0d82ef4 100644
--- a/tests/wpt/web-platform-tests/resources/idlharness.js
+++ b/tests/wpt/web-platform-tests/resources/idlharness.js
@@ -3437,16 +3437,60 @@ IdlNamespace.prototype.test_member_attribute = function (member)
}.bind(this));
};
-IdlNamespace.prototype.test = function ()
+IdlNamespace.prototype.test_self = function ()
{
/**
* TODO(lukebjerring): Assert:
* - "Note that unlike interfaces or dictionaries, namespaces do not create types."
- * - "Of the extended attributes defined in this specification, only the
- * [Exposed] and [SecureContext] extended attributes are applicable to namespaces."
- * - "Namespaces must be annotated with the [Exposed] extended attribute."
*/
+ subsetTestByKey(this.name, test, () => {
+ assert_true(this.extAttrs.every(o => o.name === "Exposed" || o.name === "SecureContext"),
+ "Only the [Exposed] and [SecureContext] extended attributes are applicable to namespaces");
+ assert_true(this.has_extended_attribute("Exposed"),
+ "Namespaces must be annotated with the [Exposed] extended attribute");
+ }, `${this.name} namespace: extended attributes`);
+
+ const namespaceObject = self[this.name];
+
+ subsetTestByKey(this.name, test, () => {
+ const desc = Object.getOwnPropertyDescriptor(self, this.name);
+ assert_equals(desc.value, namespaceObject, `wrong value for ${this.name} namespace object`);
+ assert_true(desc.writable, "namespace object should be writable");
+ assert_false(desc.enumerable, "namespace object should not be enumerable");
+ assert_true(desc.configurable, "namespace object should be configurable");
+ assert_false("get" in desc, "namespace object should not have a getter");
+ assert_false("set" in desc, "namespace object should not have a setter");
+ }, `${this.name} namespace: property descriptor`);
+
+ subsetTestByKey(this.name, test, () => {
+ assert_true(Object.isExtensible(namespaceObject));
+ }, `${this.name} namespace: [[Extensible]] is true`);
+
+ subsetTestByKey(this.name, test, () => {
+ assert_true(namespaceObject instanceof Object);
+
+ if (this.name === "console") {
+ // https://console.spec.whatwg.org/#console-namespace
+ const namespacePrototype = Object.getPrototypeOf(namespaceObject);
+ assert_equals(Reflect.ownKeys(namespacePrototype).length, 0);
+ assert_equals(Object.getPrototypeOf(namespacePrototype), Object.prototype);
+ } else {
+ assert_equals(Object.getPrototypeOf(namespaceObject), Object.prototype);
+ }
+ }, `${this.name} namespace: [[Prototype]] is Object.prototype`);
+
+ subsetTestByKey(this.name, test, () => {
+ assert_equals(typeof namespaceObject, "object");
+ }, `${this.name} namespace: typeof is "object"`);
+};
+
+IdlNamespace.prototype.test = function ()
+{
+ if (!this.untested) {
+ this.test_self();
+ }
+
for (const v of Object.values(this.members)) {
switch (v.type) {
diff --git a/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_attribute.html b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_attribute.html
index 8c1f5172165..ca5edf4723d 100644
--- a/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_attribute.html
+++ b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_attribute.html
@@ -16,13 +16,19 @@
<script>
"use strict";
-self.foo = {
- truth: true
-};
+Object.defineProperty(self, "foo", {
+ value: {
+ truth: true,
+ },
+ writable: true,
+ enumerable: false,
+ configurable: true,
+});
var idlArray = new IdlArray();
-idlArray.add_idls(
-`namespace foo {
+idlArray.add_idls(`
+[Exposed=Window]
+namespace foo {
readonly attribute bool truth;
readonly attribute bool lies;
};`);
@@ -36,6 +42,36 @@ idlArray.test();
},
"summarized_tests": [
{
+ "name": "foo namespace: extended attributes",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "foo namespace: property descriptor",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "foo namespace: [[Extensible]] is true",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "foo namespace: [[Prototype]] is Object.prototype",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "foo namespace: typeof is \"object\"",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
"name": "foo namespace: attribute truth",
"status_string": "PASS",
"properties": {},
diff --git a/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_operation.html b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_operation.html
index 1b995529d23..60d7d47c9ee 100644
--- a/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_operation.html
+++ b/tests/wpt/web-platform-tests/resources/test/tests/functional/idlharness/IdlNamespace/test_operation.html
@@ -16,38 +16,57 @@
<script>
"use strict";
-self.foo = {
- Truth: function() {},
-};
-Object.defineProperty(self.foo, "Truth", { writable: true });
+Object.defineProperty(self, "foo", {
+ value: Object.defineProperty({}, "Truth", {
+ value: function() {},
+ writable: true,
+ enumerable: true,
+ configurable: true,
+ }),
+ writable: true,
+ enumerable: false,
+ configurable: true,
+});
-self.bar = {
- Truth: function() {},
-}
-Object.defineProperty(self.bar, "Truth", {
- writable: false,
- configurable: false,
+Object.defineProperty(self, "bar", {
+ value: Object.defineProperty({}, "Truth", {
+ value: function() {},
+ writable: false,
+ enumerable: true,
+ configurable: false,
+ }),
+ writable: true,
+ enumerable: false,
+ configurable: true,
});
-self.baz = {
- LongStory: function(hero, ...details) {
- return `${hero} went and ${details.join(', then')}`
- },
- ShortStory: function(...details) {
- return `${details.join('. ')}`;
+Object.defineProperty(self, "baz", {
+ value: {
+ LongStory: function(hero, ...details) {
+ return `${hero} went and ${details.join(', then')}`
+ },
+ ShortStory: function(...details) {
+ return `${details.join('. ')}`;
+ },
},
-};
+ writable: true,
+ enumerable: false,
+ configurable: true,
+});
var idlArray = new IdlArray();
-idlArray.add_idls(
-`namespace foo {
+idlArray.add_idls(`
+[Exposed=Window]
+namespace foo {
void Truth();
void Lies();
};
+[Exposed=Window]
namespace bar {
[LegacyUnforgeable]
void Truth();
};
+[Exposed=Window]
namespace baz {
DOMString LongStory(any hero, DOMString... details);
DOMString ShortStory(DOMString... details);
@@ -62,19 +81,31 @@ idlArray.test();
},
"summarized_tests": [
{
- "name": "bar namespace: operation Truth()",
+ "name": "foo namespace: extended attributes",
"status_string": "PASS",
"properties": {},
"message": null
},
{
- "name": "baz namespace: operation LongStory(any, DOMString...)",
+ "name": "foo namespace: property descriptor",
"status_string": "PASS",
"properties": {},
"message": null
},
{
- "name": "baz namespace: operation ShortStory(DOMString...)",
+ "name": "foo namespace: [[Extensible]] is true",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "foo namespace: [[Prototype]] is Object.prototype",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "foo namespace: typeof is \"object\"",
"status_string": "PASS",
"properties": {},
"message": null
@@ -90,6 +121,86 @@ idlArray.test();
"status_string": "FAIL",
"properties": {},
"message": "assert_own_property: namespace object missing operation \"Lies\" expected property \"Lies\" missing"
+ },
+
+ {
+ "name": "bar namespace: extended attributes",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "bar namespace: property descriptor",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "bar namespace: [[Extensible]] is true",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "bar namespace: [[Prototype]] is Object.prototype",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "bar namespace: typeof is \"object\"",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "bar namespace: operation Truth()",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+
+ {
+ "name": "baz namespace: extended attributes",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "baz namespace: property descriptor",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "baz namespace: [[Extensible]] is true",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "baz namespace: [[Prototype]] is Object.prototype",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "baz namespace: typeof is \"object\"",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "baz namespace: operation LongStory(any, DOMString...)",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
+ },
+ {
+ "name": "baz namespace: operation ShortStory(DOMString...)",
+ "status_string": "PASS",
+ "properties": {},
+ "message": null
}
],
"type": "complete"
diff --git a/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py b/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py
index 204465a8297..88ffdb29511 100644
--- a/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py
+++ b/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py
@@ -1,6 +1,5 @@
import json
import os
-import sys
from io import open
import jsone
@@ -9,7 +8,6 @@ import pytest
import requests
import yaml
from jsonschema import validate
-from six import PY3
from tools.ci.tc import decision
@@ -21,8 +19,6 @@ def data_path(filename):
return os.path.join(here, "..", "testdata", filename)
-@pytest.mark.xfail(sys.platform == "win32" and PY3,
- reason="https://github.com/web-platform-tests/wpt/issues/24561")
def test_verify_taskcluster_yml():
"""Verify that the json-e in the .taskcluster.yml is valid"""
with open(os.path.join(root, ".taskcluster.yml"), encoding="utf8") as f:
diff --git a/tests/wpt/web-platform-tests/tools/lint/lint.py b/tests/wpt/web-platform-tests/tools/lint/lint.py
index 85c8bf34179..8a1149c7f05 100644
--- a/tests/wpt/web-platform-tests/tools/lint/lint.py
+++ b/tests/wpt/web-platform-tests/tools/lint/lint.py
@@ -898,7 +898,9 @@ def create_parser():
help="The WPT directory. Use this "
"option if the lint script exists outside the repository")
parser.add_argument("--ignore-glob", type=ensure_text, action="append",
- help="Additional file glob to ignore (repeat to add more)")
+ help="Additional file glob to ignore (repeat to add more). "
+ "Globs are matched against paths relative to REPO_ROOT "
+ "using fnmatch, except that path separators are normalized.")
parser.add_argument("--all", action="store_true", help="If no paths are passed, try to lint the whole "
"working directory, not just files that changed")
return parser
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt
index d10396d0d2b..1eba114a31c 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt
@@ -1,6 +1,6 @@
html5lib==1.1
mozinfo==1.2.1 # https://bugzilla.mozilla.org/show_bug.cgi?id=1621226
-mozlog==6.0
+mozlog==6.1
mozdebug==0.2
# Pillow 7 requires Python 3
pillow==6.2.2 # pyup: <7.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_android_webview.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_android_webview.txt
index 470aaf9a939..e7e7161b142 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_android_webview.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_android_webview.txt
@@ -1 +1 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome.txt
index 470aaf9a939..e7e7161b142 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome.txt
@@ -1 +1 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt
index 470aaf9a939..e7e7161b142 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_android.txt
@@ -1 +1 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_ios.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_ios.txt
index 470aaf9a939..e7e7161b142 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_ios.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_chrome_ios.txt
@@ -1 +1 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_edge.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_edge.txt
index 1bf6ef32ad4..0a61208d77c 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_edge.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_edge.txt
@@ -1,2 +1,2 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
selenium==3.141.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_edge_chromium.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_edge_chromium.txt
index 70c12443243..3f1ee1f6b20 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_edge_chromium.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_edge_chromium.txt
@@ -1 +1 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_epiphany.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_epiphany.txt
index 470aaf9a939..e7e7161b142 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_epiphany.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_epiphany.txt
@@ -1 +1 @@
-mozprocess==1.0.0
+mozprocess==1.2.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 a053971000b..8b45703a559 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt
@@ -3,7 +3,7 @@ mozcrash==2.0.0
mozinstall==2.0.0
mozleak==0.2
moznetwork==1.1.0
-mozprocess==1.0.0
+mozprocess==1.2.0
mozprofile==2.5.0
mozrunner==8.0.0
mozversion==2.3.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_ie.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_ie.txt
index 1bf6ef32ad4..0a61208d77c 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_ie.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_ie.txt
@@ -1,2 +1,2 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
selenium==3.141.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_opera.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_opera.txt
index 1bf6ef32ad4..0a61208d77c 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_opera.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_opera.txt
@@ -1,2 +1,2 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
selenium==3.141.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_safari.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_safari.txt
index 470aaf9a939..e7e7161b142 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_safari.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_safari.txt
@@ -1 +1 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt
index 5f70629d81b..34c66ee238b 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt
@@ -1,3 +1,3 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
selenium==3.141.0
requests==2.24.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_servo.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_servo.txt
index 470aaf9a939..e7e7161b142 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_servo.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_servo.txt
@@ -1 +1 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_webkit.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_webkit.txt
index 470aaf9a939..e7e7161b142 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_webkit.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_webkit.txt
@@ -1 +1 @@
-mozprocess==1.0.0
+mozprocess==1.2.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/edge.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/edge.py
index 18a1ed78118..bdb37b3f84c 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/edge.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/edge.py
@@ -89,15 +89,15 @@ class EdgeBrowser(Browser):
edge_proc_name = 'MicrosoftEdge.exe'
for i in range(0,5):
procs = subprocess.check_output(['tasklist', '/fi', 'ImageName eq ' + edge_proc_name])
- if 'MicrosoftWebDriver.exe' not in procs:
+ if b'MicrosoftWebDriver.exe' not in procs:
# Edge driver process already exited, don't wait for browser process to exit
break
- elif edge_proc_name in procs:
+ elif edge_proc_name.encode() in procs:
time.sleep(0.5)
else:
break
- if edge_proc_name in procs:
+ if edge_proc_name.encode() in procs:
# close Edge process if it is still running
subprocess.call(['taskkill.exe', '/f', '/im', 'microsoftedge*'])
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
index ec7b8fcf189..1fa9953b36e 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
@@ -155,7 +155,7 @@ class SeleniumTestharnessProtocolPart(TestharnessProtocolPart):
"""
while True:
try:
- self.webdriver.execute_script(self.window_loaded_script, asynchronous=True)
+ self.webdriver.execute_async_script(self.window_loaded_script)
break
except exceptions.JavascriptException:
pass
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-SLD-SRD-timing.https.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-SLD-SRD-timing.https.html
new file mode 100644
index 00000000000..36bde06c963
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-SLD-SRD-timing.https.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<meta charset=utf-8>
+<meta name="timeout" content="long">
+<title></title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+'use strict';
+
+promise_test(async t => {
+ const pc = new RTCPeerConnection();
+ t.add_cleanup(() => pc.close());
+ const signalingStates = [];
+ pc.onsignalingstatechange = ev => signalingStates.push(pc.signalingState);
+ pc.addTransceiver('audio', {direction:'recvonly'});
+ const offer = await pc.createOffer();
+ const sldPromise = pc.setLocalDescription(offer);
+ const srdPromise = pc.setRemoteDescription(offer);
+ await Promise.all([sldPromise, srdPromise]);
+ assert_array_equals(signalingStates,
+ ['have-local-offer','stable','have-remote-offer']);
+}, 'setLocalDescription and setRemoteDescription are not racy');
+
+</script>