diff options
97 files changed, 1484 insertions, 193 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-000.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-000.html.ini new file mode 100644 index 00000000000..d91ccfb5690 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-000.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-000.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-001.html.ini new file mode 100644 index 00000000000..4c9969190bb --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-001.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-001.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-002.html.ini new file mode 100644 index 00000000000..e2c2ea977c9 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-002.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-002.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-003.html.ini new file mode 100644 index 00000000000..35dfeadcc27 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-003.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-003.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-000.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-000.html.ini new file mode 100644 index 00000000000..b748a3798b7 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-000.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-balancing-000.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-001.html.ini new file mode 100644 index 00000000000..c0c1e8a7cbe --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-001.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-balancing-001.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-002.html.ini new file mode 100644 index 00000000000..2cf5b77669a --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-002.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-balancing-002.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-003.html.ini new file mode 100644 index 00000000000..f9262541fde --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-clear-multicol-balancing-003.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-balancing-003.html] + 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 new file mode 100644 index 00000000000..f64b45fea6b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-002.html] + [Hit test float] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini new file mode 100644 index 00000000000..4bfb0c2053a --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-004.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/cssom-view/MediaQueryList-addListener-handleEvent.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini index d080f72a962..a6c39d50087 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini @@ -8,6 +8,3 @@ [throws if handleEvent is thruthy and not callable] expected: FAIL - [doesn't look up handleEvent method on callable event listeners] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-float-in-table.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-float-in-table.html.ini new file mode 100644 index 00000000000..87ccfe19bb4 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-float-in-table.html.ini @@ -0,0 +1,4 @@ +[elementFromPoint-float-in-table.html] + [float-in-div] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini index 171592fc08f..6ef8bb1049f 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-iframes.html.ini @@ -2,3 +2,6 @@ [elementsFromPoint on the root document for points in iframe elements] expected: FAIL + [elementsFromPoint on inner documents] + 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 new file mode 100644 index 00000000000..e181af5397f --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini @@ -0,0 +1,4 @@ +[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/fetch/content-type/response.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini index 13bea363fb6..9dbce8f31d4 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 @@ -312,27 +312,27 @@ [Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK] expected: NOTRUN - [<iframe>: separate response Content-Type: text/plain */*] + [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL - [<iframe>: separate response Content-Type: text/html;x=" text/plain] + [<iframe>: combined response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] + [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" text/plain] + [<iframe>: separate response Content-Type: text/html */*] expected: FAIL - [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;x=" text/plain] + [<iframe>: combined response Content-Type: text/html */*] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] + [<iframe>: separate response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: combined response Content-Type: text/html */*;charset=gbk] + [<iframe>: separate response Content-Type: text/html */*;charset=gbk] 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 61682d248e2..aa6eb8f6085 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,6 +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%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] + [X-Content-Type-Options%3A%20'NosniFF'] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini new file mode 100644 index 00000000000..75d75b4cda2 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_2.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini new file mode 100644 index 00000000000..dc2e45516de --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_5.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..8e2b6af33d8 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,8 +1,8 @@ [embedded-opener-remove-frame.html] - expected: CRASH + expected: TIMEOUT [opener of discarded nested browsing context] expected: FAIL [opener of discarded auxiliary browsing context] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini index f45aaafe1c5..3538891dae8 100644 --- a/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini +++ b/tests/wpt/metadata-layout-2020/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini @@ -1,4 +1,5 @@ [supported-elements.html] + expected: TIMEOUT [Contenteditable element should support autofocus] expected: FAIL @@ -9,7 +10,7 @@ expected: FAIL [Area element should support autofocus] - expected: FAIL + expected: TIMEOUT [Host element with delegatesFocus should support autofocus] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini index c6f45be1eb2..e63fe7c263e 100644 --- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini +++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini @@ -1,5 +1,5 @@ [iframe_sandbox_popups_escaping-2.html] - expected: TIMEOUT + expected: CRASH [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] 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 0c89d5253df..d913fcbb129 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,5 @@ [iframe_sandbox_popups_nonescaping-1.html] - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index f4f994c5d6f..7a36937927c 100644 --- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,5 +1,4 @@ [iframe_sandbox_popups_nonescaping-3.html] - expected: TIMEOUT [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/forms/the-select-element/inserted-or-removed.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/forms/the-select-element/inserted-or-removed.html.ini new file mode 100644 index 00000000000..961c1cc5f66 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/semantics/forms/the-select-element/inserted-or-removed.html.ini @@ -0,0 +1,10 @@ +[inserted-or-removed.html] + [The last selected OPTION should win; Inserted by parser] + expected: FAIL + + [The last selected OPTION should win; Inserted by DOM API] + expected: FAIL + + [The last selected OPTION should win; Inserted by innerHTML] + 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/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini deleted file mode 100644 index 064cf47545b..00000000000 --- a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[017.html] - expected: TIMEOUT - [origin of the script that invoked the method, about:blank] - expected: TIMEOUT - diff --git a/tests/wpt/metadata-layout-2020/workers/semantics/run-a-worker/003.html.ini b/tests/wpt/metadata-layout-2020/workers/semantics/run-a-worker/003.html.ini index dd49aa8e457..c2c57aec558 100644 --- a/tests/wpt/metadata-layout-2020/workers/semantics/run-a-worker/003.html.ini +++ b/tests/wpt/metadata-layout-2020/workers/semantics/run-a-worker/003.html.ini @@ -1,5 +1,4 @@ [003.html] - expected: ERROR [shared] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini b/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini index 6d92f8835c6..10dda3a6659 100644 --- a/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini +++ b/tests/wpt/metadata-layout-2020/workers/shared-worker-in-data-url-context.window.js.ini @@ -1,8 +1,7 @@ [shared-worker-in-data-url-context.window.html] - expected: TIMEOUT [Create a shared worker in a data url frame] - expected: TIMEOUT + expected: FAIL [Create a data url shared worker in a data url frame] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index c6b99982361..a1ad272cab0 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -56084,6 +56084,110 @@ {} ] ], + "floats-clear-multicol-000.html": [ + "3598a2f7aba955b5ba3e6ee1739bfd468d2b28ea", + [ + null, + [ + [ + "/css/CSS2/floats-clear/floats-clear-multicol-000-ref.html", + "==" + ] + ], + {} + ] + ], + "floats-clear-multicol-001.html": [ + "dbcb3b557b918b6b63a9005cd8ff0de6f7c4f8c1", + [ + null, + [ + [ + "/css/CSS2/floats-clear/floats-clear-multicol-000-ref.html", + "==" + ] + ], + {} + ] + ], + "floats-clear-multicol-002.html": [ + "877ffed2c2f37f2bc3d7808cfdbe3ebed313d91c", + [ + null, + [ + [ + "/css/CSS2/floats-clear/floats-clear-multicol-000-ref.html", + "==" + ] + ], + {} + ] + ], + "floats-clear-multicol-003.html": [ + "3f951b67f9fcf3c6384ff29c058ee249b36a047c", + [ + null, + [ + [ + "/css/CSS2/floats-clear/floats-clear-multicol-000-ref.html", + "==" + ] + ], + {} + ] + ], + "floats-clear-multicol-balancing-000.html": [ + "a4f3379eca002adbe13b960198967425f7c13787", + [ + null, + [ + [ + "/css/CSS2/floats-clear/floats-clear-multicol-balancing-000-ref.html", + "==" + ] + ], + {} + ] + ], + "floats-clear-multicol-balancing-001.html": [ + "9c8f8148d06727ebf1c166811ef4e2c373339a32", + [ + null, + [ + [ + "/css/CSS2/floats-clear/floats-clear-multicol-balancing-000-ref.html", + "==" + ] + ], + {} + ] + ], + "floats-clear-multicol-balancing-002.html": [ + "e0343b0ce7a0f7030e2c3b1d9ae3d1056a9bebb3", + [ + null, + [ + [ + "/css/CSS2/floats-clear/floats-clear-multicol-balancing-000-ref.html", + "==" + ] + ], + {} + ] + ], + "floats-clear-multicol-balancing-003.html": [ + "8b68f3ad4ebbf98a67875f4823e8c7a348a80421", + [ + null, + [ + [ + "/css/CSS2/floats-clear/floats-clear-multicol-balancing-000-ref.html", + "==" + ] + ], + {} + ] + ], "margin-collapse-018.xht": [ "f509ad1ac4f8d7c7af8b4cc86e0089fbb001762b", [ @@ -154038,6 +154142,19 @@ ] }, "css-multicol": { + "always-balancing-before-column-span.html": [ + "a80617b96ef8c4e1061640ac0347c5a5cd96af71", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "as-column-flex-item.html": [ "21ff8d8d50cf97ecb22cd05cf1ae774d4aa81cdd", [ @@ -156989,6 +157106,19 @@ {} ] ], + "no-balancing-after-column-span.html": [ + "8c05ffdd27fd774ff5b9061af8c471bd2bcfa1bf", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "orthogonal-writing-mode-shrink-to-fit.html": [ "b087f56ac6e06d7e11d719976ae66459c97722d7", [ @@ -249023,6 +249153,10 @@ "b5d7176150d0403a87dfd2b9e59af219ddb6b9bb", [] ], + "webkit-box-fixed-position-child.html": [ + "bb61b63133b402e92d0444e7afb3f4c4b9f311c6", + [] + ], "webkit-box-horizontal-reverse-variants-ref.html": [ "72d0b2c6f6851764453f79cf71fc19be73bcb0e8", [] @@ -276021,6 +276155,14 @@ "979298deabb4297507e001085411e55e47fff23c", [] ], + "floats-clear-multicol-000-ref.html": [ + "90c2d6abcbf3d3caa8fce8e2412011037b288a12", + [] + ], + "floats-clear-multicol-balancing-000-ref.html": [ + "78b7ffaf2d1a6db9064d1968a47c65b1540e57b0", + [] + ], "margin-collapse-024-ref.xht": [ "25ad3800bebc8b82976612632456aff51192bc5f", [] @@ -321885,11 +322027,11 @@ [] ], "cors-cookie.py": [ - "c35824ff437feed72364181b57d7732c170722ab", + "9eaab9b95a0b7d44bf57431891a59006676ddb90", [] ], "cors.py": [ - "42a0a0bb5843389674453fc56d8a87c67cd48dcd", + "bc0c1089fe374958383aecd70d5da5a91a5b8037", [] ], "eventsource-onmessage-realm.htm": [ @@ -321901,7 +322043,7 @@ [] ], "last-event-id.py": [ - "2b74bf66a286ff65b386662412018002c762dee2", + "a2cb72644570d95c365e5153f3cd2126576affb6", [] ], "last-event-id2.py": [ @@ -321909,23 +322051,23 @@ [] ], "message.py": [ - "6d04b1fbe40dfbdf16faf2171ef5527a85f3b951", + "468564f4df083fca0e4835c2b95cf1fc9201760b", [] ], "message2.py": [ - "ce339d927e3133339123711e5c9cef8c4e75b353", + "cfe908406fc1c64bfee94f285d6335f80b5ec722", [] ], "reconnect-fail.py": [ - "80a247d5974bf9351318073ad017fcaed4af3e8a", + "12b07700cd0d29ac5988ba0b3bd77db276e2289f", [] ], "status-error.py": [ - "f0a1504bdd363c46259cd744c065039632ca02a8", + "ed5687b6c2b93cd1b11c07d4a5e9caf5e154890d", [] ], "status-reconnect.py": [ - "16c6502e3666365c0558cd6db9074acf3e895fa5", + "a59f751fc36846725fe7bcbcb2c3f91ea8437d3e", [] ] }, @@ -326532,7 +326674,7 @@ [] ], "canvas-tests.js": [ - "76313bc8fbac27672128b56cb3327feaf95164e4", + "0ccb475b763d1e9d7d6733ff27d93dce56828f3a", [] ], "canvas-tests.js.headers": [ @@ -336842,7 +336984,7 @@ [] ], "picture-in-picture.idl": [ - "3d3bad08219af2e422f2cb0d4cabeffa1f8a2b80", + "195977335603240eeb9f4b1391a5b2e6aa3c2441", [] ], "pointerevents.idl": [ @@ -353227,7 +353369,7 @@ [] ], "requirements.txt": [ - "3baefa50ea981974be66b6e226e050e59e034c22", + "90d0cb6cdc8795c9b39e7644fd330283653b48e4", [] ], "revlist.py": [ @@ -353329,7 +353471,7 @@ ] }, "requirements.txt": [ - "5310721bbb90fa94b90b4c10d202fc5a13c04d58", + "d1d733b86b21cc17978a08b1715d6917e3d3b747", [] ], "requirements_android_webview.txt": [ @@ -353377,7 +353519,7 @@ [] ], "requirements_sauce.txt": [ - "e9e97647796e7f940f2eef98c72b19871d323c72", + "5f70629d81b73302bf0b6ab48a172f761199807d", [] ], "requirements_servo.txt": [ @@ -356727,7 +356869,7 @@ }, "simulcast": { "simulcast.js": [ - "af804c03e865ae1be94cdc1045f359b30034590a", + "018ebf63abf7b213218561b0ae00ff8ba57b800f", [] ] }, @@ -359164,6 +359306,12 @@ [] ] }, + "window-segments": { + "post-window-segments-sub-frame.html": [ + "f4d1b405305fae75497732add6ad42063d5daaca", + [] + ] + }, "workers": { "META.yml": [ "a7297d3844728b8bb2f7c82a2c4f32d65040a919", @@ -361312,6 +361460,13 @@ {} ] ], + "url-charset.window.js": [ + "4eb103db35d27af9bef1954ce71f6c9f54c48e20", + [ + "FileAPI/url/url-charset.window.html", + {} + ] + ], "url-format.any.js": [ "33732fa61fc3ddd0f52b23fe83ea824cc6abae06", [ @@ -407734,6 +407889,13 @@ {} ] ], + "elementFromPoint-float-in-table.html": [ + "73713382eacfeba0d46a39165793f5906f15a2eb", + [ + null, + {} + ] + ], "elementFromPoint-list-001.html": [ "b31453d6c32c2c7ed8192dc1e4b5037476645bcd", [ @@ -462339,6 +462501,13 @@ {} ] ], + "inserted-or-removed.html": [ + "1b3f8631a57c1bd3babcc20d66f6fa08c6be8973", + [ + null, + {} + ] + ], "select-add.html": [ "910be348ae765df079970f4fc7f38cbbf955454d", [ @@ -481031,7 +481200,7 @@ ] ], "leave-picture-in-picture.html": [ - "22445c216ef165de88deca5df1e590b5397f6b99", + "a0fbcb23e57e1402e51f7f5cbd52da611c0ea691", [ null, { @@ -494305,6 +494474,13 @@ null, {} ] + ], + "scroll-timeline-cssom.tentative.html": [ + "36fcbf704bd9ef50e6449135abaed9b97f3e727a", + [ + null, + {} + ] ] }, "current-time-nan.html": [ @@ -518748,10 +518924,12 @@ ] ], "RTCRtpSender-replaceTrack.https.html": [ - "77b0fc9594c221d5f8f9fe68950940e992982e99", + "a370b6c059a52479cdb62a52adf1e4ab5a5f6b77", [ null, - {} + { + "timeout": "long" + } ] ], "RTCRtpSender-setParameters.html": [ @@ -518806,7 +518984,7 @@ ] ], "RTCRtpTransceiver.https.html": [ - "9767417bf376db74903448b703fb3894a82078ff", + "487774982298376b7ce27a2cbfaea7ad3c716e28", [ null, { @@ -525509,6 +525687,22 @@ ] ] }, + "window-segments": { + "getWindowSegments-iframes.tentative.sub.html": [ + "188a1180c0248a7ee236614efda91d669fd30fec", + [ + null, + {} + ] + ], + "getWindowSegments.https.tentative.html": [ + "e3821bda40d3ab10c8e7ebf00d47934abca4b168", + [ + null, + {} + ] + ] + }, "workers": { "SharedWorker-MessageEvent-source.any.js": [ "faf48cf9386bfd64030c94041f35f0823aaef79c", diff --git a/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-000.html.ini b/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-000.html.ini new file mode 100644 index 00000000000..d91ccfb5690 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-000.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-000.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-001.html.ini b/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-001.html.ini new file mode 100644 index 00000000000..4c9969190bb --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-001.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-balancing-000.html.ini b/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-balancing-000.html.ini new file mode 100644 index 00000000000..b748a3798b7 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-balancing-000.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-balancing-000.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-balancing-001.html.ini b/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-balancing-001.html.ini new file mode 100644 index 00000000000..c0c1e8a7cbe --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats-clear/floats-clear-multicol-balancing-001.html.ini @@ -0,0 +1,2 @@ +[floats-clear-multicol-balancing-001.html] + expected: FAIL 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 new file mode 100644 index 00000000000..f64b45fea6b --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-002.html] + [Hit test float] + expected: FAIL + diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini new file mode 100644 index 00000000000..4bfb0c2053a --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-004.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/css-text/white-space/trailing-other-space-separators-break-spaces-008.html.ini b/tests/wpt/metadata/css/css-text/white-space/trailing-other-space-separators-break-spaces-008.html.ini deleted file mode 100644 index f6bf6aa789e..00000000000 --- a/tests/wpt/metadata/css/css-text/white-space/trailing-other-space-separators-break-spaces-008.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[trailing-other-space-separators-break-spaces-008.html] - expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini index d080f72a962..a6c39d50087 100644 --- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini +++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini @@ -8,6 +8,3 @@ [throws if handleEvent is thruthy and not callable] expected: FAIL - [doesn't look up handleEvent method on callable event listeners] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-float-in-table.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-float-in-table.html.ini new file mode 100644 index 00000000000..87ccfe19bb4 --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-float-in-table.html.ini @@ -0,0 +1,4 @@ +[elementFromPoint-float-in-table.html] + [float-in-div] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini index 171592fc08f..6ef8bb1049f 100644 --- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini @@ -2,3 +2,6 @@ [elementsFromPoint on the root document for points in iframe elements] expected: FAIL + [elementsFromPoint on inner documents] + 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 new file mode 100644 index 00000000000..e181af5397f --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini @@ -0,0 +1,4 @@ +[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/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 46cc294317d..165c0887ea4 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,27 +312,27 @@ [fetch(): separate response Content-Type: text/plain ] expected: NOTRUN - [<iframe>: separate response Content-Type: text/plain */*] + [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL - [<iframe>: separate response Content-Type: text/html;x=" text/plain] + [<iframe>: combined response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] + [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" text/plain] + [<iframe>: separate response Content-Type: text/html */*] expected: FAIL - [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;x=" text/plain] + [<iframe>: combined response Content-Type: text/html */*] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] + [<iframe>: separate response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: combined response Content-Type: text/html */*;charset=gbk] + [<iframe>: separate response Content-Type: text/html */*;charset=gbk] 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 61682d248e2..aa6eb8f6085 100644 --- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,6 +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%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] + [X-Content-Type-Options%3A%20'NosniFF'] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini new file mode 100644 index 00000000000..75d75b4cda2 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_2.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini new file mode 100644 index 00000000000..dc2e45516de --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_5.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..fd369192a02 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,5 @@ [embedded-opener-remove-frame.html] - expected: CRASH + expected: TIMEOUT [opener and "removed" embedded documents] expected: FAIL @@ -7,5 +7,5 @@ expected: FAIL [opener of discarded auxiliary browsing context] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini index 6b68e9094e4..d1ca01ebc5f 100644 --- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini +++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini @@ -1,4 +1,5 @@ [supported-elements.html] + expected: TIMEOUT [Contenteditable element should support autofocus] expected: FAIL @@ -9,7 +10,7 @@ expected: FAIL [Area element should support autofocus] - expected: FAIL + expected: TIMEOUT [Host element with delegatesFocus should support autofocus] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini index c6f45be1eb2..e63fe7c263e 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini @@ -1,5 +1,5 @@ [iframe_sandbox_popups_escaping-2.html] - expected: TIMEOUT + expected: CRASH [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] 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 4bc0524f105..9df1ac56f2a 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,6 @@ [iframe_sandbox_popups_nonescaping-1.html] type: testharness - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index e440b1e38c6..dc856a3d5a3 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,6 +1,5 @@ [iframe_sandbox_popups_nonescaping-3.html] type: testharness - expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/forms/the-select-element/inserted-or-removed.html.ini b/tests/wpt/metadata/html/semantics/forms/the-select-element/inserted-or-removed.html.ini new file mode 100644 index 00000000000..961c1cc5f66 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/forms/the-select-element/inserted-or-removed.html.ini @@ -0,0 +1,10 @@ +[inserted-or-removed.html] + [The last selected OPTION should win; Inserted by parser] + expected: FAIL + + [The last selected OPTION should win; Inserted by DOM API] + expected: FAIL + + [The last selected OPTION should win; Inserted by innerHTML] + 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/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini deleted file mode 100644 index 064cf47545b..00000000000 --- a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[017.html] - expected: TIMEOUT - [origin of the script that invoked the method, about:blank] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini b/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini index 49f489d2a1c..d6e39444229 100644 --- a/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini +++ b/tests/wpt/metadata/workers/semantics/run-a-worker/003.html.ini @@ -1,6 +1,5 @@ [003.html] type: testharness - expected: ERROR [shared] expected: FAIL diff --git a/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini b/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini index 6d92f8835c6..10dda3a6659 100644 --- a/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini +++ b/tests/wpt/metadata/workers/shared-worker-in-data-url-context.window.js.ini @@ -1,8 +1,7 @@ [shared-worker-in-data-url-context.window.html] - expected: TIMEOUT [Create a shared worker in a data url frame] - expected: TIMEOUT + expected: FAIL [Create a data url shared worker in a data url frame] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/web-platform-tests/FileAPI/url/url-charset.window.js b/tests/wpt/web-platform-tests/FileAPI/url/url-charset.window.js new file mode 100644 index 00000000000..4eb103db35d --- /dev/null +++ b/tests/wpt/web-platform-tests/FileAPI/url/url-charset.window.js @@ -0,0 +1,27 @@ +async_test(t => { + const blob = new Blob( + [ + `aaa\u001B$@<textarea>\u001B(B<script>/* xss */<\/script></textarea>bbb` + ], + {type: 'text/html;charset=utf-8'}); + const url = URL.createObjectURL(blob); + const win = window.open(url); + t.add_cleanup(() => win.close()); + + win.onload = t.step_func_done(() => { + assert_equals(win.document.charset, 'UTF-8'); + }); +}, 'Blob charset should override any auto-detected charset.'); + +async_test(t => { + const blob = new Blob( + [`<!doctype html>\n<meta charset="ISO-8859-1">`], + {type: 'text/html;charset=utf-8'}); + const url = URL.createObjectURL(blob); + const win = window.open(url); + t.add_cleanup(() => win.close()); + + win.onload = t.step_func_done(() => { + assert_equals(win.document.charset, 'UTF-8'); + }); +}, 'Blob charset should override <meta charset>.'); diff --git a/tests/wpt/web-platform-tests/compat/webkit-box-fixed-position-child.html b/tests/wpt/web-platform-tests/compat/webkit-box-fixed-position-child.html new file mode 100644 index 00000000000..bb61b63133b --- /dev/null +++ b/tests/wpt/web-platform-tests/compat/webkit-box-fixed-position-child.html @@ -0,0 +1,17 @@ +<!doctype html> +<title>Verifies changing 'display' with a fixed position webkit-box that + has a fixed position child</title> +<body> + <div id="outer" style="position:fixed;"> + <div style="display:-webkit-box; float:left; padding-left:100%;"> + <div style="position:fixed; width:100px; height:100px;"></div> + </div> + <div style="display:inline-block; width:100px; height:20px;"></div> +</div> +<div id="elm"></div> +A +</body> +<script> + document.body.offsetTop; + elm.style.display = 'none'; +</script> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-000-ref.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-000-ref.html new file mode 100644 index 00000000000..90c2d6abcbf --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-000-ref.html @@ -0,0 +1,37 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>CSS Float Test Reference: Test the clear position after the floating elements breaking across multi-columns</title> +<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="http://www.mozilla.org/"> + +<style type="text/css"> +.multicol { + margin: 1em; + border: solid silver; + width: 300px; + column-width: 100px; + column-gap: 0; + column-fill: auto; + height: 100px; +} + +.container { + border: 15px aqua; + border-style: none solid; + height: 250px; +} +.clear { + border-bottom: solid orange; + background: red; +} +</style> + +<p>The orange line should be halfway down the third column +(immediately after the end of the aqua lines). + +<div class="multicol"> + <div class="container"> + </div> + <div class="clear"> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-000.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-000.html new file mode 100644 index 00000000000..3598a2f7aba --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-000.html @@ -0,0 +1,51 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>CSS Float Test: Test the clear position after the floating elements breaking across multi-columns</title> +<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="http://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#flow-control"> +<link rel="match" href="floats-clear-multicol-000-ref.html"> + +<style type="text/css"> +.multicol { + margin: 1em; + border: solid silver; + width: 300px; + column-width: 100px; + column-gap: 0; + column-fill: auto; + height: 100px; +} + +.float { + float: right; + width: 15px; + background: aqua; + height: 250px; +} +.L { + float: left; +} + +.container { + width: 100%; + background: red; +} + +.clear { + border-bottom: solid orange; +} +</style> + +<p>The orange line should be halfway down the third column +(immediately after the end of the aqua lines). + +<div class="multicol"> + <div class="container"> + <div class="float L"></div> + <div class="float R"></div> + </div> + <div class="clear"> + <br clear="all"> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-001.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-001.html new file mode 100644 index 00000000000..dbcb3b557b9 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-001.html @@ -0,0 +1,51 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>CSS Float Test: Test the clear position after the floating elements breaking across multi-columns</title> +<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="http://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#flow-control"> +<link rel="match" href="floats-clear-multicol-000-ref.html"> + +<style type="text/css"> +.multicol { + margin: 1em; + border: solid silver; + width: 300px; + column-width: 100px; + column-gap: 0; + column-fill: auto; + height: 100px; +} + +.float { + float: right; + width: 15px; + background: aqua; + height: 250px; +} +.L { + float: left; +} + +.container { + width: 100%; +} + +.clear { + border-bottom: solid orange; + background: red; +} +</style> + +<p>The orange line should be halfway down the third column +(immediately after the end of the aqua lines). + +<div class="multicol"> + <div class="container"> + <div class="float L"></div> + <div class="float R"></div> + <br clear="all"> + </div> + <div class="clear"> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-002.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-002.html new file mode 100644 index 00000000000..877ffed2c2f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-002.html @@ -0,0 +1,51 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>CSS Float Test: Test the clear position after the floating elements breaking across multi-columns</title> +<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="http://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#flow-control"> +<link rel="match" href="floats-clear-multicol-000-ref.html"> + +<style type="text/css"> +.multicol { + margin: 1em; + border: solid silver; + width: 300px; + column-width: 100px; + column-gap: 0; + column-fill: auto; + height: 100px; +} + +.float { + float: right; + width: 15px; + background: aqua; + height: 250px; +} +.L { + float: left; +} + +.container { + width: 100%; + background: red; +} + +.clear { + clear: left; + border-bottom: solid orange; + background: red; +} +</style> + +<p>The orange line should be halfway down the third column +(immediately after the end of the aqua lines). + +<div class="multicol"> + <div class="container"> + <div class="float L"></div> + <div class="float R"></div> + </div> + <div class="clear"></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-003.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-003.html new file mode 100644 index 00000000000..3f951b67f9f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-003.html @@ -0,0 +1,60 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>CSS Float Test: Test the clear position after the floating elements breaking across multi-columns</title> +<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="http://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#flow-control"> +<link rel="match" href="floats-clear-multicol-000-ref.html"> + +<style type="text/css"> +.multicol { + margin: 1em; + border: solid silver; + width: 300px; + column-width: 100px; + column-gap: 0; + column-fill: auto; + height: 100px; +} + +.step { + height: 10px; + border: 15px aqua; + border-style: none solid; +} +.float { + float: right; + width: 15px; + background: aqua; + height: 240px; +} +.L { + float: left; +} + +.container { + width: 100%; + background: red; +} + +.clear { + clear: left; + height: 0; + background: red; +} +.bar { + border-bottom: orange solid; +} +</style> + +<p>The orange line should be halfway down the third column +(immediately after the end of the aqua lines). + +<div class="multicol"> + <div class="step"></div> + <div class="container"> + <div class="float L"></div> + <div class="float R"></div> + </div> + <div class="clear"><div class="bar"></div></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-000-ref.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-000-ref.html new file mode 100644 index 00000000000..78b7ffaf2d1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-000-ref.html @@ -0,0 +1,36 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>CSS Float Test Reference: Test the clear position after the floating elements breaking across multi-columns</title> +<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="http://www.mozilla.org/"> + +<style type="text/css"> +.multicol { + margin: 1em; + border: solid silver; + width: 300px; + column-width: 100px; + column-gap: 0; + height: 100px; +} + +.container { + border: 15px aqua; + border-style: none solid; + height: 250px; +} +.clear { + border-bottom: solid orange; + background: red; +} +</style> + +<p>The orange line should be in the third column +(immediately after the end of the aqua lines). + +<div class="multicol"> + <div class="container"> + </div> + <div class="clear"> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-000.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-000.html new file mode 100644 index 00000000000..a4f3379eca0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-000.html @@ -0,0 +1,50 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>CSS Float Test: Test the clear position after the floating elements breaking across multi-columns</title> +<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="http://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#flow-control"> +<link rel="match" href="floats-clear-multicol-balancing-000-ref.html"> + +<style type="text/css"> +.multicol { + margin: 1em; + border: solid silver; + width: 300px; + column-width: 100px; + column-gap: 0; + height: 100px; +} + +.float { + float: right; + width: 15px; + background: aqua; + height: 250px; +} +.L { + float: left; +} + +.container { + width: 100%; + background: red; +} + +.clear { + border-bottom: solid orange; +} +</style> + +<p>The orange line should be in the third column +(immediately after the end of the aqua lines). + +<div class="multicol"> + <div class="container"> + <div class="float L"></div> + <div class="float R"></div> + </div> + <div class="clear"> + <br clear="all"> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-001.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-001.html new file mode 100644 index 00000000000..9c8f8148d06 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-001.html @@ -0,0 +1,50 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>CSS Float Test: Test the clear position after the floating elements breaking across multi-columns</title> +<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="http://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#flow-control"> +<link rel="match" href="floats-clear-multicol-balancing-000-ref.html"> + +<style type="text/css"> +.multicol { + margin: 1em; + border: solid silver; + width: 300px; + column-width: 100px; + column-gap: 0; + height: 100px; +} + +.float { + float: right; + width: 15px; + background: aqua; + height: 250px; +} +.L { + float: left; +} + +.container { + width: 100%; +} + +.clear { + border-bottom: solid orange; + background: red; +} +</style> + +<p>The orange line should be in the third column +(immediately after the end of the aqua lines). + +<div class="multicol"> + <div class="container"> + <div class="float L"></div> + <div class="float R"></div> + <br clear="all"> + </div> + <div class="clear"> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-002.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-002.html new file mode 100644 index 00000000000..e0343b0ce7a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-002.html @@ -0,0 +1,50 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>CSS Float Test: Test the clear position after the floating elements breaking across multi-columns</title> +<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="http://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#flow-control"> +<link rel="match" href="floats-clear-multicol-balancing-000-ref.html"> + +<style type="text/css"> +.multicol { + margin: 1em; + border: solid silver; + width: 300px; + column-width: 100px; + column-gap: 0; + height: 100px; +} + +.float { + float: right; + width: 15px; + background: aqua; + height: 250px; +} +.L { + float: left; +} + +.container { + width: 100%; + background: red; +} + +.clear { + clear: left; + border-bottom: solid orange; + background: red; +} +</style> + +<p>The orange line should be in the third column +(immediately after the end of the aqua lines). + +<div class="multicol"> + <div class="container"> + <div class="float L"></div> + <div class="float R"></div> + </div> + <div class="clear"></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-003.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-003.html new file mode 100644 index 00000000000..8b68f3ad4eb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/floats-clear-multicol-balancing-003.html @@ -0,0 +1,59 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<title>CSS Float Test: Test the clear position after the floating elements breaking across multi-columns</title> +<link rel="author" title="Elika J. Etemad" href="http://fantasai.inkedblade.net/contact"/> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="http://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#flow-control"> +<link rel="match" href="floats-clear-multicol-balancing-000-ref.html"> + +<style type="text/css"> +.multicol { + margin: 1em; + border: solid silver; + width: 300px; + column-width: 100px; + column-gap: 0; + height: 100px; +} + +.step { + height: 10px; + border: 15px aqua; + border-style: none solid; +} +.float { + float: right; + width: 15px; + background: aqua; + height: 240px; +} +.L { + float: left; +} + +.container { + width: 100%; + background: red; +} + +.clear { + clear: left; + height: 0; + background: red; +} +.bar { + border-bottom: orange solid; +} +</style> + +<p>The orange line should be in the third column +(immediately after the end of the aqua lines). + +<div class="multicol"> + <div class="step"></div> + <div class="container"> + <div class="float L"></div> + <div class="float R"></div> + </div> + <div class="clear"><div class="bar"></div></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-multicol/always-balancing-before-column-span.html b/tests/wpt/web-platform-tests/css/css-multicol/always-balancing-before-column-span.html new file mode 100644 index 00000000000..a80617b96ef --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/always-balancing-before-column-span.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> + <meta charset="utf-8"> + <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> + <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> + <link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-span"> + <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/4689"> + <link rel="match" href="../reference/ref-filled-green-100px-square.xht"> + <meta name="assert" content="This test verifies columns are always balancing before column-spanning element in an unconstrained height and column-fill:auto column container."> + + <style> + .columns { + column-fill: auto; + column-count: 2; + column-gap: 0; + width: 100px; + background: red; + } + .colspan { + column-span: all; + } + .content { + height: 200px; + background: green; + } + </style> + + <p>Test passes if there is a filled green square and <strong>no red</strong>.</p> + <div class="columns"> + <div class="content"></div> + <div class="colspan"></div> + </div> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-multicol/no-balancing-after-column-span.html b/tests/wpt/web-platform-tests/css/css-multicol/no-balancing-after-column-span.html new file mode 100644 index 00000000000..8c05ffdd27f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/no-balancing-after-column-span.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> + <meta charset="utf-8"> + <link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> + <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> + <link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-span"> + <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/4689"> + <link rel="match" href="../reference/ref-filled-green-100px-square.xht"> + <meta name="assert" content="This test verifies columns are not balancing after a column-spanning element in a fixed height and column-fill:auto column container."> + + <style> + .columns { + column-fill: auto; + column-count: 2; + column-gap: 0; + width: 200px; + height: 100px; + } + .colspan { + column-span: all; + } + .content { + height: 100px; + background: green; + } + </style> + + <p>Test passes if there is a filled green square and <strong>no red</strong>.</p> + <div class="columns"> + <div class="colspan"></div> + <div class="content"></div> + </div> +</html> diff --git a/tests/wpt/web-platform-tests/css/cssom-view/elementFromPoint-float-in-table.html b/tests/wpt/web-platform-tests/css/cssom-view/elementFromPoint-float-in-table.html new file mode 100644 index 00000000000..73713382eac --- /dev/null +++ b/tests/wpt/web-platform-tests/css/cssom-view/elementFromPoint-float-in-table.html @@ -0,0 +1,60 @@ +<!DOCTYPE html> +<link rel="help" href="http://www.w3.org/TR/CSS21/visuren.html#floats" /> +<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-document-elementfrompoint" /> +<link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.org"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> +.outer { + width: 100px; + height: 100px; + background: green; +} +.inner { + float: left; + width: 50px; + height: 50px; + background: blue; +} +</style> +<body> +<div id="log"></div> + +<div class="outer" onclick="clicked('outer')"> + <div id="float-in-div" class="inner" onclick="clicked('inner')"> + </div> +</div> + +<table> + <tr> + <td> + <div class="outer" onclick="clicked('outer')"> + <div id='float-in-table' class="inner" onclick="clicked('inner')"> + </div> + </div> + </td> + </tr> +</table> + +<pre id="output"></pre> +<script> +function clicked(p) { + output.textContent += 'clicked ' + p + '\n'; +} + +function testElementFromPoint(element) { + let bounds = element.getBoundingClientRect(); + let result = document.elementFromPoint(bounds.x + 1, bounds.y + 1); + assert_equals(result, element); +} + +let targets = [ + 'float-in-div', + 'float-in-table', +]; +for (let target of targets) { + let element = document.getElementById(target); + test(() => { testElementFromPoint(element); }, target); +} +</script> +</body> diff --git a/tests/wpt/web-platform-tests/eventsource/resources/cors-cookie.py b/tests/wpt/web-platform-tests/eventsource/resources/cors-cookie.py index c35824ff437..9eaab9b95a0 100644 --- a/tests/wpt/web-platform-tests/eventsource/resources/cors-cookie.py +++ b/tests/wpt/web-platform-tests/eventsource/resources/cors-cookie.py @@ -1,32 +1,31 @@ from datetime import datetime -from six import ensure_str def main(request, response): - last_event_id = ensure_str(request.headers.get("Last-Event-Id", "")) - ident = request.GET.first('ident', "test") - cookie = "COOKIE" if ident in request.cookies else "NO_COOKIE" - origin = request.GET.first('origin', request.headers["origin"]) - credentials = request.GET.first('credentials', 'true') + last_event_id = request.headers.get(b"Last-Event-Id", b"") + ident = request.GET.first(b'ident', b"test") + cookie = b"COOKIE" if ident in request.cookies else b"NO_COOKIE" + origin = request.GET.first(b'origin', request.headers[b"origin"]) + credentials = request.GET.first(b'credentials', b'true') headers = [] - if origin != 'none': - headers.append(("Access-Control-Allow-Origin", origin)); + if origin != b'none': + headers.append((b"Access-Control-Allow-Origin", origin)); - if credentials != 'none': - headers.append(("Access-Control-Allow-Credentials", credentials)); + if credentials != b'none': + headers.append((b"Access-Control-Allow-Credentials", credentials)); - if last_event_id == '': - headers.append(("Content-Type", "text/event-stream")) - response.set_cookie(ident, "COOKIE") - data = "id: 1\nretry: 200\ndata: first %s\n\n" % cookie - elif last_event_id == '1': - headers.append(("Content-Type", "text/event-stream")) + if last_event_id == b'': + headers.append((b"Content-Type", b"text/event-stream")) + response.set_cookie(ident, b"COOKIE") + data = b"id: 1\nretry: 200\ndata: first %s\n\n" % cookie + elif last_event_id == b'1': + headers.append((b"Content-Type", b"text/event-stream")) long_long_time_ago = datetime.now().replace(year=2001, month=7, day=27) - response.set_cookie(ident, "COOKIE", expires=long_long_time_ago) - data = "id: 2\ndata: second %s\n\n" % cookie + response.set_cookie(ident, b"COOKIE", expires=long_long_time_ago) + data = b"id: 2\ndata: second %s\n\n" % cookie else: - headers.append(("Content-Type", "stop")) - data = "data: " + last_event_id + cookie + "\n\n"; + headers.append((b"Content-Type", b"stop")) + data = b"data: " + last_event_id + cookie + b"\n\n"; return headers, data diff --git a/tests/wpt/web-platform-tests/eventsource/resources/cors.py b/tests/wpt/web-platform-tests/eventsource/resources/cors.py index 42a0a0bb584..bc0c1089fe3 100644 --- a/tests/wpt/web-platform-tests/eventsource/resources/cors.py +++ b/tests/wpt/web-platform-tests/eventsource/resources/cors.py @@ -1,34 +1,36 @@ import os from wptserve import pipes +from wptserve.utils import isomorphic_decode + def run_other(request, response, path): #This is a terrible hack - environ = {"__file__": path} - exec(compile(open(path, "r").read(), path, 'exec'), environ, environ) - rv = environ["main"](request, response) + environ = {u"__file__": path} + exec(compile(open(path, u"r").read(), path, u'exec'), environ, environ) + rv = environ[u"main"](request, response) return rv def main(request, response): - origin = request.GET.first("origin", request.headers["origin"]) - credentials = request.GET.first("credentials", "true") + origin = request.GET.first(b"origin", request.headers[b"origin"]) + credentials = request.GET.first(b"credentials", b"true") - response.headers.update([("Access-Control-Allow-Origin", origin), - ("Access-Control-Allow-Credentials", credentials)]) + response.headers.update([(b"Access-Control-Allow-Origin", origin), + (b"Access-Control-Allow-Credentials", credentials)]) - handler = request.GET.first('run') - if handler in ["status-reconnect", - "message", - "redirect", - "cache-control"]: - if handler == "cache-control": - response.headers.set("Content-Type", "text/event-stream") - rv = open(os.path.join(request.doc_root, "eventsource", "resources", "cache-control.event_stream"), "r").read() + handler = request.GET.first(b'run') + if handler in [b"status-reconnect", + b"message", + b"redirect", + b"cache-control"]: + if handler == b"cache-control": + response.headers.set(b"Content-Type", b"text/event-stream") + rv = open(os.path.join(request.doc_root, u"eventsource", u"resources", u"cache-control.event_stream"), u"r").read() response.content = rv pipes.sub(request, response) return - elif handler == "redirect": - return run_other(request, response, os.path.join(request.doc_root, "common", "redirect.py")) + elif handler == b"redirect": + return run_other(request, response, os.path.join(request.doc_root, u"common", u"redirect.py")) else: - return run_other(request, response, os.path.join(os.path.split(__file__)[0], handler + ".py")) + return run_other(request, response, os.path.join(os.path.split(isomorphic_decode(__file__))[0], isomorphic_decode(handler) + u".py")) else: return diff --git a/tests/wpt/web-platform-tests/eventsource/resources/last-event-id.py b/tests/wpt/web-platform-tests/eventsource/resources/last-event-id.py index 2b74bf66a28..a2cb7264457 100644 --- a/tests/wpt/web-platform-tests/eventsource/resources/last-event-id.py +++ b/tests/wpt/web-platform-tests/eventsource/resources/last-event-id.py @@ -1,11 +1,9 @@ -from six import ensure_str - def main(request, response): - response.headers.set("Content-Type", "text/event-stream") + response.headers.set(b"Content-Type", b"text/event-stream") - last_event_id = ensure_str(request.headers.get("Last-Event-ID", "")) + last_event_id = request.headers.get(b"Last-Event-ID", b"") if last_event_id: - return "data: " + last_event_id + "\n\n" + return b"data: " + last_event_id + b"\n\n" else: - idvalue = request.GET.first("idvalue", u"\u2026") - return "id: " + idvalue + "\nretry: 200\ndata: hello\n\n" + idvalue = request.GET.first(b"idvalue", u"\u2026".encode("utf-8")) + return b"id: " + idvalue + b"\nretry: 200\ndata: hello\n\n" diff --git a/tests/wpt/web-platform-tests/eventsource/resources/message.py b/tests/wpt/web-platform-tests/eventsource/resources/message.py index 6d04b1fbe40..468564f4df0 100644 --- a/tests/wpt/web-platform-tests/eventsource/resources/message.py +++ b/tests/wpt/web-platform-tests/eventsource/resources/message.py @@ -1,13 +1,13 @@ import time def main(request, response): - mime = request.GET.first("mime", "text/event-stream") - message = request.GET.first("message", "data: data"); - newline = "" if request.GET.first("newline", None) == "none" else "\n\n"; - sleep = int(request.GET.first("sleep", "0")) + mime = request.GET.first(b"mime", b"text/event-stream") + message = request.GET.first(b"message", b"data: data"); + newline = b"" if request.GET.first(b"newline", None) == b"none" else b"\n\n"; + sleep = int(request.GET.first(b"sleep", b"0")) - headers = [("Content-Type", mime)] - body = message + newline + "\n" + headers = [(b"Content-Type", mime)] + body = message + newline + b"\n" if sleep != 0: time.sleep(sleep/1000) diff --git a/tests/wpt/web-platform-tests/eventsource/resources/message2.py b/tests/wpt/web-platform-tests/eventsource/resources/message2.py index ce339d927e3..cfe908406fc 100644 --- a/tests/wpt/web-platform-tests/eventsource/resources/message2.py +++ b/tests/wpt/web-platform-tests/eventsource/resources/message2.py @@ -1,35 +1,35 @@ import time def main(request, response): - response.headers.set('Content-Type', 'text/event-stream') - response.headers.set('Cache-Control', 'no-cache') + response.headers.set(b'Content-Type', b'text/event-stream') + response.headers.set(b'Cache-Control', b'no-cache') response.explicit_flush = True response.write_status_headers() while True: - response.writer.write("data:msg") - response.writer.write("\n") - response.writer.write("data: msg") - response.writer.write("\n\n") + response.writer.write(u"data:msg") + response.writer.write(u"\n") + response.writer.write(u"data: msg") + response.writer.write(u"\n\n") - response.writer.write(":") - response.writer.write("\n") + response.writer.write(u":") + response.writer.write(u"\n") - response.writer.write("falsefield:msg") - response.writer.write("\n\n") + response.writer.write(u"falsefield:msg") + response.writer.write(u"\n\n") - response.writer.write("falsefield:msg") - response.writer.write("\n") + response.writer.write(u"falsefield:msg") + response.writer.write(u"\n") - response.writer.write("Data:data") - response.writer.write("\n\n") + response.writer.write(u"Data:data") + response.writer.write(u"\n\n") - response.writer.write("data") - response.writer.write("\n\n") + response.writer.write(u"data") + response.writer.write(u"\n\n") - response.writer.write("data:end") - response.writer.write("\n\n") + response.writer.write(u"data:end") + response.writer.write(u"\n\n") response.writer.flush() time.sleep(2) diff --git a/tests/wpt/web-platform-tests/eventsource/resources/reconnect-fail.py b/tests/wpt/web-platform-tests/eventsource/resources/reconnect-fail.py index 80a247d5974..12b07700cd0 100644 --- a/tests/wpt/web-platform-tests/eventsource/resources/reconnect-fail.py +++ b/tests/wpt/web-platform-tests/eventsource/resources/reconnect-fail.py @@ -1,24 +1,24 @@ def main(request, response): - name = "recon_fail_" + request.GET.first("id") + name = b"recon_fail_" + request.GET.first(b"id") - headers = [("Content-Type", "text/event-stream")] + headers = [(b"Content-Type", b"text/event-stream")] cookie = request.cookies.first(name, None) state = cookie.value if cookie is not None else None - if state == 'opened': - status = (200, "RECONNECT") - response.set_cookie(name, "reconnected"); - body = "data: reconnected\n\n"; + if state == b'opened': + status = (200, b"RECONNECT") + response.set_cookie(name, b"reconnected"); + body = b"data: reconnected\n\n"; - elif state == 'reconnected': - status = (204, "NO CONTENT (CLOSE)") + elif state == b'reconnected': + status = (204, b"NO CONTENT (CLOSE)") response.delete_cookie(name); - body = "data: closed\n\n" # Will never get through + body = b"data: closed\n\n" # Will never get through else: - status = (200, "OPEN"); - response.set_cookie(name, "opened"); - body = "retry: 2\ndata: opened\n\n"; + status = (200, b"OPEN"); + response.set_cookie(name, b"opened"); + body = b"retry: 2\ndata: opened\n\n"; return status, headers, body diff --git a/tests/wpt/web-platform-tests/eventsource/resources/status-error.py b/tests/wpt/web-platform-tests/eventsource/resources/status-error.py index f0a1504bdd3..ed5687b6c2b 100644 --- a/tests/wpt/web-platform-tests/eventsource/resources/status-error.py +++ b/tests/wpt/web-platform-tests/eventsource/resources/status-error.py @@ -1,15 +1,15 @@ def main(request, response): - status = (request.GET.first("status", "404"), "HAHAHAHA") - headers = [("Content-Type", "text/event-stream")] + status = (request.GET.first(b"status", b"404"), b"HAHAHAHA") + headers = [(b"Content-Type", b"text/event-stream")] # According to RFC7231, HTTP responses bearing status code 204 or 205 must # not specify a body. The expected browser behavior for this condition is not # currently defined--see the following for further discussion: # # https://github.com/web-platform-tests/wpt/pull/5227 - if status[0] in ["204", "205"]: - body = "" + if status[0] in [b"204", b"205"]: + body = b"" else: - body = "data: data\n\n" + body = b"data: data\n\n" return status, headers, body diff --git a/tests/wpt/web-platform-tests/eventsource/resources/status-reconnect.py b/tests/wpt/web-platform-tests/eventsource/resources/status-reconnect.py index 16c6502e366..a59f751fc36 100644 --- a/tests/wpt/web-platform-tests/eventsource/resources/status-reconnect.py +++ b/tests/wpt/web-platform-tests/eventsource/resources/status-reconnect.py @@ -1,21 +1,21 @@ def main(request, response): - status_code = request.GET.first("status", "204") - name = request.GET.first("id", status_code) + status_code = request.GET.first(b"status", b"204") + name = request.GET.first(b"id", status_code) - headers = [("Content-Type", "text/event-stream")] + headers = [(b"Content-Type", b"text/event-stream")] - cookie_name = "request" + name + cookie_name = b"request" + name - if request.cookies.first(cookie_name, "") == status_code: + if request.cookies.first(cookie_name, b"") == status_code: status = 200 response.delete_cookie(cookie_name) - body = "data: data\n\n" + body = b"data: data\n\n" else: response.set_cookie(cookie_name, status_code); - status = (int(status_code), "TEST") - body = "retry: 2\n" - if "ok_first" in request.GET: - body += "data: ok\n\n" + status = (int(status_code), b"TEST") + body = b"retry: 2\n" + if b"ok_first" in request.GET: + body += b"data: ok\n\n" return status, headers, body diff --git a/tests/wpt/web-platform-tests/html/canvas/resources/canvas-tests.js b/tests/wpt/web-platform-tests/html/canvas/resources/canvas-tests.js index 76313bc8fba..0ccb475b763 100644 --- a/tests/wpt/web-platform-tests/html/canvas/resources/canvas-tests.js +++ b/tests/wpt/web-platform-tests/html/canvas/resources/canvas-tests.js @@ -144,6 +144,7 @@ function forEachCanvasSource(crossOriginUrl, sameOriginUrl, callback) { return new Promise((resolve, reject) => { const video = document.createElement("video"); video.oncanplaythrough = () => resolve(video); + video.preload = "auto"; video.onerror = reject; video.src = getVideoURI(crossOriginUrl + "/media/movie_300"); }); @@ -156,6 +157,7 @@ function forEachCanvasSource(crossOriginUrl, sameOriginUrl, callback) { return new Promise((resolve, reject) => { const video = document.createElement("video"); video.oncanplaythrough = () => resolve(video); + video.preload = "auto"; video.onerror = reject; video.src = "/common/redirect.py?location=" + getVideoURI(crossOriginUrl + "/media/movie_300"); }); @@ -168,6 +170,7 @@ function forEachCanvasSource(crossOriginUrl, sameOriginUrl, callback) { return new Promise((resolve, reject) => { const video = document.createElement("video"); video.oncanplaythrough = () => resolve(video); + video.preload = "auto"; video.onerror = reject; video.src = crossOriginUrl + "/common/redirect.py?location=" + getVideoURI(sameOriginUrl + "/media/movie_300"); }); diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/inserted-or-removed.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/inserted-or-removed.html new file mode 100644 index 00000000000..1b3f8631a57 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-select-element/inserted-or-removed.html @@ -0,0 +1,71 @@ +<!DOCTYPE html> +<link rel="help" href="https://html.spec.whatwg.org/C/#the-select-element:nodes-are-inserted"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> + +<select id="by-parser"> +<option selected>First</option> +<option selected>Second</option> +</select> + +<select id="by-parser-optgroup"> +<optgroup> +<option selected>First</option> +<option selected>Second</option> +</optgroup> +</select> + +<select id="by-dom"></select> + +<select id="by-innerHTML"></select> + +<script> +test(() => { + const target = document.querySelector("#by-parser"); + assert_equals(target.selectedOptions[0].textContent, 'Second'); + + const target2 = document.querySelector("#by-parser-optgroup"); + assert_equals(target2.selectedOptions[0].textContent, 'Second'); +}, 'The last selected OPTION should win; Inserted by parser'); + +test(() => { + const target = document.querySelector("#by-dom"); + const option1 = document.createElement('option'); + option1.defaultSelected = true; + option1.textContent = 'First'; + const option2 = document.createElement('option'); + option2.defaultSelected = true; + option2.textContent = 'Second'; + target.appendChild(option1); + target.appendChild(option2); + assert_equals(target.selectedOptions[0].textContent, 'Second'); + + target.innerHTML = ''; + const optgroup = document.createElement('optgroup'); + const option3 = document.createElement('option'); + option3.defaultSelected = true; + option3.textContent = 'First'; + const option4 = document.createElement('option'); + option4.defaultSelected = true; + option4.textContent = 'Second'; + optgroup.appendChild(option3); + optgroup.appendChild(option4); + target.appendChild(optgroup); + assert_equals(target.selectedOptions[0].textContent, 'Second'); +}, 'The last selected OPTION should win; Inserted by DOM API'); + +test(() => { + const target = document.querySelector("#by-innerHTML"); + target.innerHTML = '<option selected>First</option>' + + '<option selected>Second</option>'; + assert_equals(target.selectedOptions[0].textContent, 'Second'); + + target.innerHTML = '<option selected>First</option>' + + '<optgroup><option selected>Second</option>' + + '<option selected>Third</option></optgroup>' + + '<option selected>Fourth</option>'; + assert_equals(target.selectedOptions[0].textContent, 'Fourth'); +}, 'The last selected OPTION should win; Inserted by innerHTML'); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl b/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl index 3d3bad08219..19597733560 100644 --- a/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl +++ b/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl @@ -32,11 +32,11 @@ interface PictureInPictureWindow : EventTarget { }; [Exposed=Window] -interface EnterPictureInPictureEvent : Event { - constructor(DOMString type, EnterPictureInPictureEventInit eventInitDict); +interface PictureInPictureEvent : Event { + constructor(DOMString type, PictureInPictureEventInit eventInitDict); [SameObject] readonly attribute PictureInPictureWindow pictureInPictureWindow; }; -dictionary EnterPictureInPictureEventInit : EventInit { +dictionary PictureInPictureEventInit : EventInit { required PictureInPictureWindow pictureInPictureWindow; }; diff --git a/tests/wpt/web-platform-tests/picture-in-picture/leave-picture-in-picture.html b/tests/wpt/web-platform-tests/picture-in-picture/leave-picture-in-picture.html index 22445c216ef..a0fbcb23e57 100644 --- a/tests/wpt/web-platform-tests/picture-in-picture/leave-picture-in-picture.html +++ b/tests/wpt/web-platform-tests/picture-in-picture/leave-picture-in-picture.html @@ -10,9 +10,16 @@ <body></body> <script> promise_test(async t => { + let pictureInPictureWindow; const video = await loadVideo(); + video.addEventListener('enterpictureinpicture', t.step_func_done(event => { + pictureInPictureWindow = event.pictureInPictureWindow; + })); + video.addEventListener('leavepictureinpicture', t.step_func_done(event => { + assert_equals(pictureInPictureWindow, event.pictureInPictureWindow); + assert_equals(event.target, video); assert_equals(event.bubbles, true); assert_equals(event.cancelable, false); @@ -25,9 +32,15 @@ promise_test(async t => { }, 'leavepictureinpicture event is fired if document.exitPictureInPicture'); promise_test(async t => { + let pictureInPictureWindow; const video = await loadVideo(); + video.addEventListener('enterpictureinpicture', t.step_func_done(event => { + pictureInPictureWindow = event.pictureInPictureWindow; + })); + video.addEventListener('leavepictureinpicture', t.step_func_done(event => { + assert_equals(pictureInPictureWindow, event.pictureInPictureWindow); assert_equals(event.target, video); assert_equals(event.bubbles, true); assert_equals(event.cancelable, false); diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-cssom.tentative.html b/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-cssom.tentative.html new file mode 100644 index 00000000000..36fcbf704bd --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-cssom.tentative.html @@ -0,0 +1,184 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +<div id="target"></div> +<script> + +// Runs a function while a stylesheet is temporarily inserted into the +// document. +function with_stylesheet(text, func) { + let s = document.createElement('style'); + try { + s.textContent = text; + document.documentElement.append(s); + func(s.sheet.rules); + } finally { + s.remove(); + } +} + +// Runs a test while a stylesheet is temporarily inserted into the +// document. +function test_stylesheet(text, func, description) { + test(() => { + with_stylesheet(text, func); + }, description); +} + +function test_valid_rule(text, description) { + test_stylesheet(text, (rules) => { + assert_equals(rules.length, 1); + assert_equals(rules[0].constructor.name, 'CSSScrollTimelineRule'); + }, description); +} + +function test_invalid_rule(text, description) { + test_stylesheet(text, (rules) => { + assert_equals(rules.length, 0); + }, description); +} + +// Verify that for the _specifed_ value for a given _descriptor_, the _expected_ +// string can be observed via the equivalent attribute on CSSScrollTimelineRule. +function test_descriptor(descriptor, specified, expected) { + if (typeof(expected) == 'undefined') + expected = specified; + let attribute = descriptor.replaceAll(/\-./g, x => x[1].toUpperCase()); + test_stylesheet(`@scroll-timeline test { ${descriptor}:${specified}; }`, (rules) => { + assert_equals(rules.length, 1); + assert_equals(rules[0].constructor.name, 'CSSScrollTimelineRule'); + assert_equals(rules[0][attribute], expected); + }, `CSSScrollTimelineRule.${attribute} ${specified}`); +} + +test_valid_rule('@scroll-timeline foo {}', 'Empty block'); +test_valid_rule('@scroll-timeline foo {', 'EOF ends block'); +test_valid_rule('@scroll-timeline "foo" {}', 'Timeline name can be a <string>'); + +test_invalid_rule('@scroll-timeline', 'Missing prelude'); +test_invalid_rule('@scroll-timeline foo', 'Missing block'); +test_invalid_rule('@scroll-timeline {}', 'Missing timeline name'); +test_invalid_rule('@scroll-timeline 123 {}', 'Timeline name must be an identifier'); +test_invalid_rule('@scroll-timeline none {}', 'Timeline name must match <custom-ident>'); +test_invalid_rule('@scroll-timeline NONE {}', 'Timeline name must match <custom-ident> (caps)'); +test_invalid_rule('@scroll-timeline NoNe {}', 'Timeline name must match <custom-ident> (mixed)'); +test_invalid_rule('@scroll-timeline initial {}', 'Timeline name may not be initial'); +test_invalid_rule('@scroll-timeline inherit {}', 'Timeline name may not be inherit'); +test_invalid_rule('@scroll-timeline unset {}', 'Timeline name may not be unset'); +test_invalid_rule('@scroll-timeline revert {}', 'Timeline name may not be revert'); +test_invalid_rule('@scroll-timeline default {}', 'Timeline name may not be default'); +test_invalid_rule('@scroll-timeline foo bar {}', 'Extra timeline name'); + +// CSSRule.type + +test(() => { + with_stylesheet(`@scroll-timeline valid { }`, (rules) => { + assert_equals(rules.length, 1); + let rule = rules[0]; + assert_equals(rule.constructor.name, 'CSSScrollTimelineRule'); + assert_equals(rule.type, 0); + }); +}, 'CSSRule.type returns 0'); + +// CSSScrollTimelineRule.name + +function test_name(specified, expected) { + if (typeof(expected) == 'undefined') + expected = specified; + test_stylesheet(`@scroll-timeline ${specified} { }`, (rules) => { + assert_equals(rules.length, 1); + assert_equals(rules[0].constructor.name, 'CSSScrollTimelineRule'); + assert_equals(rules[0].name, expected); + }, `CSSScrollTimelineRule.name ${specified}`); +} + +test_name('foo'); +test_name('Foo'); +test_name('f___123'); +test_name('a\\9 b', 'a\tb'); // U+0009 CHARACTER TABULATION +test_name('"foo"', 'foo'); +test_name('"none"', 'none'); + +// CSSScrollTimelineRule.source + +function test_source(specified, expected) { + test_descriptor('source', specified, expected); +} + +test_source('selector(#foo)'); +test_source('selector( #foo )', 'selector(#foo)'); +test_source(' selector(#foo) ', 'selector(#foo)'); +test_source('none'); +test_source(' none ', 'none'); +test_source('selector(#a\\9 b)'); + +test_source('#foo', 'none'); +test_source('', 'none'); +test_source('element(#foo)', 'none'); +test_source('selector(#foo more)', 'none'); +test_source('selector(html)', 'none'); +test_source('selector(foo)', 'none'); +test_source('selector(:before)', 'none'); +test_source('selector(*)', 'none'); +test_source('selector(.a)', 'none'); +test_source('selector(.a, .b)', 'none'); + +// CSSScrollTimelineRule.orientation + +function test_orientation(specified, expected) { + test_descriptor('orientation', specified, expected); +} + +test_orientation('auto'); +test_orientation('block'); +test_orientation('inline'); +test_orientation('horizontal'); +test_orientation('vertical'); +test_orientation(' vertical ', 'vertical'); + +test_orientation('', 'auto'); +test_orientation('foo', 'auto'); +test_orientation('10px', 'auto'); +test_orientation('red', 'auto'); + +// CSSScrollTimelineRule.start +// CSSScrollTimelineRule.end + +function test_offsets(specified, expected) { + test_descriptor('start', specified, expected); + test_descriptor('end', specified, expected); +} + +test_offsets('auto'); +test_offsets(' auto ', 'auto'); +test_offsets('10px',); +test_offsets(' 10px ', '10px'); +test_offsets('10em'); +test_offsets('10%'); +test_offsets('calc(1px + 1%)'); + +test_offsets('', 'auto'); +test_offsets('red', 'auto'); +test_offsets('#fff', 'auto'); +test_offsets('unset', 'auto'); +test_offsets('selector(#foo)', 'auto'); + +// CSSScrollTimelineRule.timeRange + +function test_scroll_time_range(specified, expected) { + test_descriptor('time-range', specified, expected); +} + +test_scroll_time_range('auto'); +test_scroll_time_range(' auto ', 'auto'); +test_scroll_time_range('1s'); +test_scroll_time_range(' 1s ', '1s'); +test_scroll_time_range('1000ms'); + +test_scroll_time_range('', 'auto'); +test_scroll_time_range('red', 'auto'); +test_scroll_time_range('#fff', 'auto'); +test_scroll_time_range('unset', 'auto'); + +</script> diff --git a/tests/wpt/web-platform-tests/tools/wpt/requirements.txt b/tests/wpt/web-platform-tests/tools/wpt/requirements.txt index 3baefa50ea9..90d0cb6cdc8 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/requirements.txt +++ b/tests/wpt/web-platform-tests/tools/wpt/requirements.txt @@ -1,2 +1,2 @@ -requests==2.23.0 +requests==2.24.0 mozinfo==1.2.1 # https://bugzilla.mozilla.org/show_bug.cgi?id=1621226 diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt index 5310721bbb9..d1d733b86b2 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt +++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt @@ -5,5 +5,5 @@ mozdebug==0.2 # Pillow 7 requires Python 3 pillow==6.2.2 # pyup: <7.0 urllib3[secure]==1.25.9 -requests==2.23.0 +requests==2.24.0 six==1.15.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 e9e97647796..5f70629d81b 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 selenium==3.141.0 -requests==2.23.0 +requests==2.24.0 diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpSender-replaceTrack.https.html b/tests/wpt/web-platform-tests/webrtc/RTCRtpSender-replaceTrack.https.html index 77b0fc9594c..a370b6c059a 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCRtpSender-replaceTrack.https.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpSender-replaceTrack.https.html @@ -1,5 +1,6 @@ <!doctype html> <meta charset=utf-8> +<meta name="timeout" content="long"> <title>RTCRtpSender.prototype.replaceTrack</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpTransceiver.https.html b/tests/wpt/web-platform-tests/webrtc/RTCRtpTransceiver.https.html index 9767417bf37..48777498229 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCRtpTransceiver.https.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpTransceiver.https.html @@ -400,8 +400,9 @@ const offer = await pc1.createOffer(); await pc1.setLocalDescription(offer); // Remove track-id from msid - offer.sdp = offer.sdp.replace(/(a=msid:[^ \t]+).*\r\n/g, "$1\r\n"); - assert_true(offer.sdp.includes(`a=msid:${stream.id}\r\n`)); + // Fixate stream-id so that error message is consistent. + offer.sdp = offer.sdp.replace(/(a=msid:[^ \t]+).*\r\n/g, + "a=msid:fake-stream-id\r\n"); await pc2.setRemoteDescription(offer); const answer = await pc2.createAnswer(); await pc1.setRemoteDescription(answer); @@ -1146,10 +1147,16 @@ let gotUnmuteAudio2 = gotUnmuteEvent(pc2.getTransceivers()[0].receiver.track); let gotUnmuteVideo2 = gotUnmuteEvent(pc2.getTransceivers()[1].receiver.track); + // Jump out before waiting if a track is unmuted before RTP starts flowing. + assert_true(pc1.getTransceivers()[0].receiver.track.muted); + assert_true(pc1.getTransceivers()[1].receiver.track.muted); + assert_true(pc2.getTransceivers()[0].receiver.track.muted); + assert_true(pc2.getTransceivers()[1].receiver.track.muted); await iceConnected(pc1); await iceConnected(pc2); + // Check that receive tracks are unmuted when RTP starts flowing await gotUnmuteAudio1; await gotUnmuteVideo1; diff --git a/tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js b/tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js index af804c03e86..018ebf63abf 100644 --- a/tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js +++ b/tests/wpt/web-platform-tests/webrtc/simulcast/simulcast.js @@ -98,7 +98,7 @@ async function negotiateSimulcastAndWaitForVideo(t, rids, pc1, pc2, codec) { t.add_cleanup(() => stream.getTracks().forEach(track => track.stop())); const transceiver = pc1.addTransceiver(stream.getVideoTracks()[0], { streams: [stream], - sendEncodings: rids.map(rid => {rid}), + sendEncodings: rids.map(rid => ({rid})), }); if (codec) { preferCodec(transceiver, codec.mimeType, codec.sdpFmtpLine); diff --git a/tests/wpt/web-platform-tests/window-segments/getWindowSegments-iframes.tentative.sub.html b/tests/wpt/web-platform-tests/window-segments/getWindowSegments-iframes.tentative.sub.html new file mode 100644 index 00000000000..188a1180c02 --- /dev/null +++ b/tests/wpt/web-platform-tests/window-segments/getWindowSegments-iframes.tentative.sub.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Window Segments: getWindowSegments() tentative</title> +<!-- TODO: update link to W3C whenever specifications are ready --> +<link rel="help" href="https://github.com/webscreens/window-segments/"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> +iframe { zoom: 2; } +</style> +<script> +"use strict"; + +async_test((t) => { + let segments = window.getWindowSegments(); + let responses = 0; + window.addEventListener("message", t.step_func((evt) => { + let desc = "Window segments of child frame for: " + evt.data.domain; + assert_equals(evt.data.length, segments.length, + desc + " must match in length."); + assert_equals(evt.data.x, segments[0].x, desc + " must match for x."); + assert_equals(evt.data.y, segments[0].y, desc + " must match for x."); + assert_equals(evt.data.width, segments[0].width, + desc + " must match for x."); + assert_equals(evt.data.height, segments[0].height, + desc + " must match for x."); + + responses++; + if (responses == 2) { + t.done(); + } + })); +}, "Window segments of child frames (same or different domain) must match those of the main frame."); +</script> + + +<iframe src="http://{{domains[www1]}}:{{ports[http][0]}}/window-segments/post-window-segments-sub-frame.html"></iframe> +<iframe src="post-window-segments-sub-frame.html"></iframe> + diff --git a/tests/wpt/web-platform-tests/window-segments/getWindowSegments.https.tentative.html b/tests/wpt/web-platform-tests/window-segments/getWindowSegments.https.tentative.html new file mode 100644 index 00000000000..e3821bda40d --- /dev/null +++ b/tests/wpt/web-platform-tests/window-segments/getWindowSegments.https.tentative.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Window Segments: getWindowSegments() tentative</title> +<!-- TODO: update link to W3C whenever specifications are ready --> +<link rel="help" href="https://github.com/webscreens/window-segments/"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +"use strict"; + +test(() => { + let segments = window.getWindowSegments(); + assert_equals(segments.length, 1, "For a viewport not segmented, there must be a single window segment"); + let segment = segments[0]; + assert_equals(segment.x, 0, "A viewport with a single segment must have 0, 0 origin"); + assert_equals(segment.y, 0, "A viewport with a single segment must have 0, 0 origin"); + assert_equals(segment.width, window.innerWidth, "A viewport with a single segment must have a width in CSS pixels, matching window.innerWidth"); + assert_equals(segment.height, window.innerHeight, "A viewport with a single segment must have a height in CSS pixels, matching window.innerHeight"); +}, "getWindowSegments() returns a single segment, equal to the layout viewport dimesions"); +</script> + diff --git a/tests/wpt/web-platform-tests/window-segments/post-window-segments-sub-frame.html b/tests/wpt/web-platform-tests/window-segments/post-window-segments-sub-frame.html new file mode 100644 index 00000000000..f4d1b405305 --- /dev/null +++ b/tests/wpt/web-platform-tests/window-segments/post-window-segments-sub-frame.html @@ -0,0 +1,12 @@ +<script> +let segments = getWindowSegments(); + +parent.postMessage({ + length: segments.length, + x: segments[0].x, + y: segments[0].y, + width: segments[0].width, + height: segments[0].height, + domain: document.domain, + }, "*"); +</script> |