diff options
author | bors-servo <servo-ops@mozilla.com> | 2020-07-31 19:49:51 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-31 19:49:51 -0400 |
commit | 6aeadcec77a66ef7416e50483a59f6ee711bbae5 (patch) | |
tree | 183abe554d3e98f75e6a00a477d30d7357327d59 | |
parent | 346bf9c031b47f6e54202d974550cf6a13ad2fed (diff) | |
parent | b7430030f26c8dda0a3784248b7db7d19c031602 (diff) | |
download | servo-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
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 b[]| c", expectedText: ["a []", " c"] }, { initialText: "a b|[] c", expectedText: ["a []", " c"] }, { initialText: "a |b[] c", expectedText: ["a []", " c"] }, + { initialText: "a []|b c", expectedText: ["a []", "b c"] }, { initialText: "a | b[] c", expectedText: ["a ", " [] c"] }, { initialText: "a | |[] c", expectedText: ["a []", " 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 []b| c", expectedText: ["a []", " c"] }, { initialText: "a []|b c", expectedText: ["a []", " c"] }, { initialText: "a |[]b c", expectedText: ["a []", " c"] }, + { initialText: "a [] |b c", expectedText: ["a []", "b c"] }, { initialText: "a | []b c", expectedText: ["a ", " [] c"] }, { initialText: "a | |[] c", expectedText: ["a ", " []", " 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> |