diff options
author | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2020-12-05 08:22:48 +0000 |
---|---|---|
committer | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2020-12-05 11:00:15 +0000 |
commit | b5059916956f689cd810eba1736883ed01ced12f (patch) | |
tree | 663bec3252890259c13c38d70cdab77dfaba594c | |
parent | 93c31df551a595b96a5b231ae43f140b2f2904be (diff) | |
download | servo-b5059916956f689cd810eba1736883ed01ced12f.tar.gz servo-b5059916956f689cd810eba1736883ed01ced12f.zip |
Update web-platform-tests to revision b464d69274950c7707855c0b29729d58b9a8d492
92 files changed, 1748 insertions, 117 deletions
diff --git a/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini index 76b44d9e9cf..3605e8f3fc9 100644 --- a/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -4,7 +4,7 @@ expected: TIMEOUT [Opening a blob URL in a new window immediately before revoking it works.] - expected: FAIL + expected: TIMEOUT [Fetching a blob URL immediately before revoking it works in an iframe.] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini deleted file mode 100644 index 4bfb0c2053a..00000000000 --- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-004.html] - [Miss float below something else] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini index 4a1e8110f6f..f8e7e539aae 100644 --- a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-scale-hittest.html.ini @@ -2,3 +2,6 @@ [Hit test intersecting scaled box] expected: FAIL + [Hit test within unscaled box] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini deleted file mode 100644 index e38782d8c85..00000000000 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[elementFromPoint-001.html] - [CSSOM View - 5 - extensions to the Document interface] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-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/css/selectors/selectors-dir-selector-auto.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-auto.html.ini new file mode 100644 index 00000000000..f533b7df909 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-auto.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-auto.html] + expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-001.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-001.html.ini new file mode 100644 index 00000000000..50e0e6623b2 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-001.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-change-001.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-002.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-002.html.ini new file mode 100644 index 00000000000..25232bb1f27 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-002.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-change-002.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-003.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-003.html.ini new file mode 100644 index 00000000000..e6a4e5e8af7 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-003.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-change-003.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-004.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-004.html.ini new file mode 100644 index 00000000000..c72af09bf92 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-change-004.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-change-004.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-querySelector.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-querySelector.html.ini new file mode 100644 index 00000000000..1b47c19cf14 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-querySelector.html.ini @@ -0,0 +1,10 @@ +[selectors-dir-selector-querySelector.html] + [:dir() works in compound selectors] + expected: FAIL + + [:dir() works in complex selectors] + expected: FAIL + + [:dir() allows any ident value but strings other than ltr/rtl don't match] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-white-space-001.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-white-space-001.html.ini new file mode 100644 index 00000000000..566cd31c34f --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/selectors/selectors-dir-selector-white-space-001.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-white-space-001.html] + 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 30d40e8adee..f0c92506849 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 @@ -309,21 +309,18 @@ [Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK] expected: NOTRUN - [<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] expected: FAIL - [<iframe>: combined response Content-Type: */* text/html] + [<iframe>: separate response Content-Type: text/html */*;charset=gbk] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + [<iframe>: separate response Content-Type: text/html;x=" text/plain] expected: FAIL - [<iframe>: combined response Content-Type: text/html;x=" text/plain] + [<iframe>: separate response Content-Type: text/html;" \\" text/plain] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini index 5c001592859..d2df9b78483 100644 --- a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini @@ -56,6 +56,3 @@ [separate text/javascript x/x] expected: FAIL - [separate text/javascript;charset=windows-1252 error text/javascript] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini index 30e1b851fd4..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,3 +11,6 @@ [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] expected: FAIL + [X-Content-Type-Options%3A%20'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 deleted file mode 100644 index 87b07c3e670..00000000000 --- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[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_5.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini deleted file mode 100644 index dc2e45516de..00000000000 --- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_5.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html.ini new file mode 100644 index 00000000000..735a9a75a2a --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html.ini @@ -0,0 +1,2 @@ +[cross-origin-objects-on-new-window.html] + expected: TIMEOUT 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 9a85a905394..8e2a63e3b7f 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,4 +1,5 @@ [embedded-opener-remove-frame.html] + expected: CRASH [opener of discarded nested browsing context] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index 42ebcc9d57e..88f4ddd0e9a 100644 --- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,5 +1,5 @@ [iframe_sandbox_popups_escaping-1.html] - expected: 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 3080be9afc0..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: 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 7a36937927c..f4f994c5d6f 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,4 +1,5 @@ [iframe_sandbox_popups_nonescaping-3.html] + 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/forms/form-submission-0/form-double-submit-2.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/form-double-submit-2.html.ini deleted file mode 100644 index 633a99517d3..00000000000 --- a/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/form-double-submit-2.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[form-double-submit-2.html] - [preventDefault should allow onclick submit() to succeed] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini new file mode 100644 index 00000000000..9f416703229 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini @@ -0,0 +1,4 @@ +[form-double-submit-3.html] + [<button> should have the same double-submit protection as <input type=submit>] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/form-double-submit.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/form-double-submit.html.ini deleted file mode 100644 index b193c33c2b6..00000000000 --- a/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/form-double-submit.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[form-double-submit.html] - [default submit action should supersede onclick submit()] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/newline-normalization.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/newline-normalization.html.ini index ff5e9edab6a..e3f768f1c8e 100644 --- a/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/newline-normalization.html.ini +++ b/tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/newline-normalization.html.ini @@ -11,3 +11,15 @@ [Form newline normalization: \\r in the name becomes \\r\\n] expected: FAIL + [Form newline normalization: \\r\\n in the filename stays unchanged] + expected: FAIL + + [Form newline normalization: \\n in the filename stays unchanged] + expected: FAIL + + [Form newline normalization: \\r in the filename stays unchanged] + expected: FAIL + + [Form newline normalization: \\n\\r in the filename stays unchanged] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini deleted file mode 100644 index 6cf9d13975c..00000000000 --- a/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[iframe_005.html] - [document.write external script into iframe write back into parent] - expected: FAIL - 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 450c88bd32b..dbec6f2c2ff 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,6 +3,3 @@ [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/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index ea08eda3f8e..6fc6a274b98 100644 --- a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -359,3 +359,9 @@ [X SNR (-47.5135609418513 dB) is not greater than or equal to 65.737. Got -47.5135609418513.] expected: FAIL + [X SNR (-47.70129108083442 dB) is not greater than or equal to 65.737. Got -47.70129108083442.] + expected: FAIL + + [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t3.6039609375000000e+4\t9.3139332532882690e-1\t3.6038677981674671e+4\t3.8693296378252737e+4\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 3.6038677981674671e+4 at index of 28696.\n\tMax RelError of 3.8693296378252737e+4 at index of 28696.\n] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini new file mode 100644 index 00000000000..064cf47545b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini @@ -0,0 +1,5 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT + diff --git a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini new file mode 100644 index 00000000000..064cf47545b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini @@ -0,0 +1,5 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT + diff --git a/tests/wpt/metadata-layout-2020/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata-layout-2020/workers/constructors/Worker/Worker-constructor.html.ini deleted file mode 100644 index 80f9a4f15b8..00000000000 --- a/tests/wpt/metadata-layout-2020/workers/constructors/Worker/Worker-constructor.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[Worker-constructor.html] - expected: ERROR diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini index d4f62ed7113..faa00f45ecf 100644 --- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -7,7 +7,7 @@ expected: FAIL [Opening a blob URL in a new window immediately before revoking it works.] - expected: FAIL + expected: TIMEOUT [Opening a blob URL in a noopener about:blank window immediately before revoking it works.] expected: TIMEOUT diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 9962c4f4452..97e92e8de46 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -153416,6 +153416,19 @@ {} ] ], + "abs-pos-004.html": [ + "b66143c36c135e2dc535cdf7efee3bbed8952f17", + [ + null, + [ + [ + "/css/css-grid/subgrid/abs-pos-004-ref.html", + "==" + ] + ], + {} + ] + ], "auto-track-sizing-001.html": [ "0fdb9b0b7e2ed8855b02dcfb9baceeb61b7d05d3", [ @@ -225183,6 +225196,58 @@ {} ] ], + "selectors-dir-selector-change-001.html": [ + "f952389643834f4a67062bf722d5ce4422253094", + [ + null, + [ + [ + "/css/selectors/selectors-dir-selector-change-001-ref.html", + "==" + ] + ], + {} + ] + ], + "selectors-dir-selector-change-002.html": [ + "bc032b59541335d49f7ffe56919cfad9b7cd2fee", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "selectors-dir-selector-change-003.html": [ + "f4000155a8d5004b401ce5964f535979cc4ec256", + [ + null, + [ + [ + "/css/selectors/selectors-dir-selector-change-003-ref.html", + "==" + ] + ], + {} + ] + ], + "selectors-dir-selector-change-004.html": [ + "4c76b291bad7ffde21d624a3abc03c7b3cc99ac9", + [ + null, + [ + [ + "/css/selectors/selectors-dir-selector-change-004-ref.html", + "==" + ] + ], + {} + ] + ], "selectors-dir-selector-ltr-001.html": [ "9b90832a218debcf98a8a23bed7b0e679bd472ac", [ @@ -225196,6 +225261,32 @@ {} ] ], + "selectors-dir-selector-ltr-002.html": [ + "bbb3f26a780b13d434d99ca858b44f7db635047b", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "selectors-dir-selector-ltr-003.html": [ + "821a33616fca6940618d3e27c07963eba4c0f748", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "selectors-dir-selector-rtl-001.html": [ "9b7bfd090a3c6736c3a30329912558c3c31f32fc", [ @@ -225209,6 +225300,19 @@ {} ] ], + "selectors-dir-selector-white-space-001.html": [ + "d3128a03734dc9806e3136ef6657b6087d9d76fa", + [ + null, + [ + [ + "/css/selectors/selectors-dir-selector-white-space-001-ref.html", + "==" + ] + ], + {} + ] + ], "selectors-empty-001.xml": [ "3b882debcc717c3e85de8695476eca3fd5238e8a", [ @@ -260813,6 +260917,12 @@ "19a0bfaed3f0aa1b498c275ac43100dbcb23010b", [] ], + "resources": { + "concatenate-stream.js": [ + "a35bb1416e754893e331c0089d97720ae3b5af8e", + [] + ] + }, "third_party": { "pako": { "LICENSE": [ @@ -312587,6 +312697,10 @@ "19180106e548c8a183ba903b7b9c6f3e443d79a9", [] ], + "abs-pos-004-ref.html": [ + "ac47309df22993903294406748b4152b27ff0a33", + [] + ], "auto-track-sizing-001-ref.html": [ "800f87e5d00a767f1cb5e5816ffd46110fbd4e80", [] @@ -328592,6 +328706,22 @@ "3b768b36a50cd46c3fae0de91c63f8231fde7811", [] ], + "selectors-dir-selector-change-001-ref.html": [ + "8c79c8328f0b2bf88b320956efdd689a97130550", + [] + ], + "selectors-dir-selector-change-003-ref.html": [ + "8c79c8328f0b2bf88b320956efdd689a97130550", + [] + ], + "selectors-dir-selector-change-004-ref.html": [ + "9a130cb2e5c71b9948e68022ad6ef89cc0ecda05", + [] + ], + "selectors-dir-selector-white-space-001-ref.html": [ + "955a2dd603d625975934e1ed6a42b4ea077093b7", + [] + ], "selectors-empty-001-ref.xml": [ "3f1b3f42a89399fec3ca03c4f69aa1e75527a0a3", [] @@ -369193,7 +369323,7 @@ ] }, "setup.py": [ - "759cb48d1f65f52f6500ed2b871c7ef430518ab6", + "a9cc95f4c1a532b5682de4db367899ad9c5de284", [] ], "tests": { @@ -393845,6 +393975,69 @@ } ] ], + "compression-with-detach.tentative.any.js": [ + "786bba21c800ca9f067a6d033f0345a52bfbb218", + [ + "compression/compression-with-detach.tentative.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/concatenate-stream.js" + ] + ] + } + ], + [ + "compression/compression-with-detach.tentative.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/concatenate-stream.js" + ] + ] + } + ], + [ + "compression/compression-with-detach.tentative.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/concatenate-stream.js" + ] + ] + } + ], + [ + "compression/compression-with-detach.tentative.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/concatenate-stream.js" + ] + ] + } + ] + ], "decompression-bad-chunks.tentative.any.js": [ "ba609a5625b959362222f85371628827f44d8768", [ @@ -394205,6 +394398,69 @@ } ] ], + "decompression-with-detach.tentative.any.js": [ + "a2f8bda09148f0d323022b1f93be78d83c4aa654", + [ + "compression/decompression-with-detach.tentative.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/concatenate-stream.js" + ] + ] + } + ], + [ + "compression/decompression-with-detach.tentative.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/concatenate-stream.js" + ] + ] + } + ], + [ + "compression/decompression-with-detach.tentative.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/concatenate-stream.js" + ] + ] + } + ], + [ + "compression/decompression-with-detach.tentative.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "script", + "resources/concatenate-stream.js" + ] + ] + } + ] + ], "idlharness.https.any.js": [ "8d96cf523c495389ec5bfdea921a65d4dd0cd1e3", [ @@ -415507,7 +415763,7 @@ ] ], "column-widths.html": [ - "52cb5b6fb0502cd63e2404168cfd413d86d60b6e", + "b151c2263bb625c0ec4bd2e2159b7bf15602fc63", [ null, {} @@ -426621,6 +426877,20 @@ {} ] ], + "selectors-dir-selector-auto.html": [ + "d53e989f69e172ea8cb0eb0a11863c767f4f5bf2", + [ + null, + {} + ] + ], + "selectors-dir-selector-querySelector.html": [ + "a05e3fea78f378e37c1b73f7f9e2e3559db12f16", + [ + null, + {} + ] + ], "user-invalid.html": [ "05cf2b679039c61732054217cf562bfeb7c3d23a", [ @@ -485253,7 +485523,7 @@ ] ], "newline-normalization.html": [ - "d3de7699662da75fc37fba31cf994f02a13de191", + "b49468e19991e9309282e3068efff859d1c66751", [ null, {} @@ -499961,6 +500231,15 @@ } ] ], + "MediaStreamTrack-clone.https.html": [ + "c2b3e2bf8ab1b8c32cdc207181240c695e202656", + [ + null, + { + "testdriver": true + } + ] + ], "MediaStreamTrack-getCapabilities-fast.html": [ "55272d1499517a6fda0b7e06068928b4e1127b27", [ @@ -503092,7 +503371,7 @@ ] ], "showPicker-errors.https.window.js": [ - "e8f0d3f540485120cd15d642b1b0d33110797098", + "d1dabf37da8305094bf7e0bd0fea4e0200d8dd2e", [ "native-file-system/showPicker-errors.https.window.html", { @@ -530263,7 +530542,7 @@ ], "readable-byte-streams": { "bad-buffers-and-views.any.js": [ - "0777208da44b29b822bf9345dbe20e33bb5708b9", + "d4ad483d9c39566b8bc5b4d09676d05eac8879e5", [ null, { @@ -545686,7 +545965,7 @@ ] ], "ctor-audiobuffer.html": [ - "9845d5eaba384cced3c63ddbf4df1400b31f4994", + "fbe6e42e3178f84d108bfd1c62518a4d13eb2dff", [ null, {} 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 deleted file mode 100644 index 4bfb0c2053a..00000000000 --- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[hit-test-floats-004.html] - [Miss float below something else] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini index 4a1e8110f6f..f8e7e539aae 100644 --- a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini +++ b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini @@ -2,3 +2,6 @@ [Hit test intersecting scaled box] expected: FAIL + [Hit test within unscaled box] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini deleted file mode 100644 index e38782d8c85..00000000000 --- a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[elementFromPoint-001.html] - [CSSOM View - 5 - extensions to the Document interface] - 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/css/selectors/selectors-dir-selector-auto.html.ini b/tests/wpt/metadata/css/selectors/selectors-dir-selector-auto.html.ini new file mode 100644 index 00000000000..f533b7df909 --- /dev/null +++ b/tests/wpt/metadata/css/selectors/selectors-dir-selector-auto.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-auto.html] + expected: ERROR diff --git a/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-001.html.ini b/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-001.html.ini new file mode 100644 index 00000000000..50e0e6623b2 --- /dev/null +++ b/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-001.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-change-001.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-002.html.ini b/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-002.html.ini new file mode 100644 index 00000000000..25232bb1f27 --- /dev/null +++ b/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-002.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-change-002.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-003.html.ini b/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-003.html.ini new file mode 100644 index 00000000000..e6a4e5e8af7 --- /dev/null +++ b/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-003.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-change-003.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-004.html.ini b/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-004.html.ini new file mode 100644 index 00000000000..c72af09bf92 --- /dev/null +++ b/tests/wpt/metadata/css/selectors/selectors-dir-selector-change-004.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-change-004.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/selectors/selectors-dir-selector-querySelector.html.ini b/tests/wpt/metadata/css/selectors/selectors-dir-selector-querySelector.html.ini new file mode 100644 index 00000000000..1b47c19cf14 --- /dev/null +++ b/tests/wpt/metadata/css/selectors/selectors-dir-selector-querySelector.html.ini @@ -0,0 +1,10 @@ +[selectors-dir-selector-querySelector.html] + [:dir() works in compound selectors] + expected: FAIL + + [:dir() works in complex selectors] + expected: FAIL + + [:dir() allows any ident value but strings other than ltr/rtl don't match] + expected: FAIL + diff --git a/tests/wpt/metadata/css/selectors/selectors-dir-selector-white-space-001.html.ini b/tests/wpt/metadata/css/selectors/selectors-dir-selector-white-space-001.html.ini new file mode 100644 index 00000000000..566cd31c34f --- /dev/null +++ b/tests/wpt/metadata/css/selectors/selectors-dir-selector-white-space-001.html.ini @@ -0,0 +1,2 @@ +[selectors-dir-selector-white-space-001.html] + 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 83022fa66bc..3a7bd78fb30 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -309,21 +309,18 @@ [fetch(): separate response Content-Type: text/plain ] expected: NOTRUN - [<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] expected: FAIL - [<iframe>: combined response Content-Type: */* text/html] + [<iframe>: separate response Content-Type: text/html */*;charset=gbk] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + [<iframe>: separate response Content-Type: text/html;x=" text/plain] expected: FAIL - [<iframe>: combined response Content-Type: text/html;x=" text/plain] + [<iframe>: separate response Content-Type: text/html;" \\" text/plain] expected: FAIL diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini index 5c001592859..d2df9b78483 100644 --- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini @@ -56,6 +56,3 @@ [separate text/javascript x/x] expected: FAIL - [separate text/javascript;charset=windows-1252 error text/javascript] - expected: FAIL - diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini index 30e1b851fd4..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,3 +11,6 @@ [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] expected: FAIL + [X-Content-Type-Options%3A%20'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 deleted file mode 100644 index 87b07c3e670..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[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_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini deleted file mode 100644 index dc2e45516de..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_5.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html.ini b/tests/wpt/metadata/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html.ini new file mode 100644 index 00000000000..735a9a75a2a --- /dev/null +++ b/tests/wpt/metadata/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html.ini @@ -0,0 +1,2 @@ +[cross-origin-objects-on-new-window.html] + expected: TIMEOUT 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 442db3cb549..2532dceabac 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,4 +1,5 @@ [embedded-opener-remove-frame.html] + expected: CRASH [opener and "removed" embedded documents] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index fc37df7e3fa..2a166bb97b7 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,6 +1,6 @@ [iframe_sandbox_popups_escaping-1.html] type: testharness - expected: 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 963d4cd20ef..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: 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 7a36937927c..f4f994c5d6f 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,4 +1,5 @@ [iframe_sandbox_popups_nonescaping-3.html] + 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/forms/form-submission-0/form-double-submit-2.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-2.html.ini deleted file mode 100644 index 633a99517d3..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-2.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[form-double-submit-2.html] - [preventDefault should allow onclick submit() to succeed] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini new file mode 100644 index 00000000000..9f416703229 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini @@ -0,0 +1,4 @@ +[form-double-submit-3.html] + [<button> should have the same double-submit protection as <input type=submit>] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini deleted file mode 100644 index b193c33c2b6..00000000000 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[form-double-submit.html] - [default submit action should supersede onclick submit()] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/newline-normalization.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/newline-normalization.html.ini index ff5e9edab6a..e3f768f1c8e 100644 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/newline-normalization.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/newline-normalization.html.ini @@ -11,3 +11,15 @@ [Form newline normalization: \\r in the name becomes \\r\\n] expected: FAIL + [Form newline normalization: \\r\\n in the filename stays unchanged] + expected: FAIL + + [Form newline normalization: \\n in the filename stays unchanged] + expected: FAIL + + [Form newline normalization: \\r in the filename stays unchanged] + expected: FAIL + + [Form newline normalization: \\n\\r in the filename stays unchanged] + expected: FAIL + diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini deleted file mode 100644 index 6cf9d13975c..00000000000 --- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[iframe_005.html] - [document.write external script into iframe write back into parent] - 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 01f7b72cbe7..0cef5158fae 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,6 +4,3 @@ [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/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index 901bbf74c6b..3197832cf98 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -587,3 +587,9 @@ [X SNR (-47.5135609418513 dB) is not greater than or equal to 65.737. Got -47.5135609418513.] expected: FAIL + [X SNR (-47.70129108083442 dB) is not greater than or equal to 65.737. Got -47.70129108083442.] + expected: FAIL + + [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t3.6039609375000000e+4\t9.3139332532882690e-1\t3.6038677981674671e+4\t3.8693296378252737e+4\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 3.6038677981674671e+4 at index of 28696.\n\tMax RelError of 3.8693296378252737e+4 at index of 28696.\n] + expected: FAIL + diff --git a/tests/wpt/metadata/webmessaging/with-ports/017.html.ini b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini new file mode 100644 index 00000000000..064cf47545b --- /dev/null +++ b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini @@ -0,0 +1,5 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini new file mode 100644 index 00000000000..064cf47545b --- /dev/null +++ b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini @@ -0,0 +1,5 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini deleted file mode 100644 index 80f9a4f15b8..00000000000 --- a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[Worker-constructor.html] - expected: ERROR diff --git a/tests/wpt/web-platform-tests/compression/compression-with-detach.tentative.any.js b/tests/wpt/web-platform-tests/compression/compression-with-detach.tentative.any.js new file mode 100644 index 00000000000..786bba21c80 --- /dev/null +++ b/tests/wpt/web-platform-tests/compression/compression-with-detach.tentative.any.js @@ -0,0 +1,55 @@ +// META: global=window,worker +// META: script=resources/concatenate-stream.js + +'use strict'; + +const kInputLength = 500000; + +function createLargeRandomInput() { + const buffer = new ArrayBuffer(kInputLength); + // The getRandomValues API will only let us get 65536 bytes at a time, so call + // it multiple times. + const kChunkSize = 65536; + for (let offset = 0; offset < kInputLength; offset += kChunkSize) { + const length = + offset + kChunkSize > kInputLength ? kInputLength - offset : kChunkSize; + const view = new Uint8Array(buffer, offset, length); + crypto.getRandomValues(view); + } + return new Uint8Array(buffer); +} + +function decompress(view) { + const ds = new DecompressionStream('deflate'); + const writer = ds.writable.getWriter(); + writer.write(view); + writer.close(); + return concatenateStream(ds.readable); +} + +promise_test(async () => { + const input = createLargeRandomInput(); + const inputCopy = input.slice(0, input.byteLength); + const cs = new CompressionStream('deflate'); + const writer = cs.writable.getWriter(); + writer.write(input); + writer.close(); + // Object.prototype.then will be looked up synchronously when the promise + // returned by read() is resolved. + Object.defineProperty(Object.prototype, 'then', { + get() { + // Cause input to become detached and unreferenced. + try { + postMessage(undefined, 'nowhere', [input.buffer]); + } catch (e) { + // It's already detached. + } + } + }); + const output = await concatenateStream(cs.readable); + // Perform the comparison as strings since this is reasonably fast even when + // JITted JavaScript is running under an emulator. + assert_equals( + inputCopy.toString(), (await decompress(output)).toString(), + 'decompressing the output should return the input'); +}, 'data should be correctly compressed even if input is detached partway'); diff --git a/tests/wpt/web-platform-tests/compression/decompression-with-detach.tentative.any.js b/tests/wpt/web-platform-tests/compression/decompression-with-detach.tentative.any.js new file mode 100644 index 00000000000..a2f8bda0914 --- /dev/null +++ b/tests/wpt/web-platform-tests/compression/decompression-with-detach.tentative.any.js @@ -0,0 +1,41 @@ +// META: global=window,worker +// META: script=resources/concatenate-stream.js + +'use strict'; + +const kInputLength = 1000000; + +async function createLargeCompressedInput() { + const cs = new CompressionStream('deflate'); + // The input has to be large enough that it won't fit in a single chunk when + // decompressed. + const writer = cs.writable.getWriter(); + writer.write(new Uint8Array(kInputLength)); + writer.close(); + return concatenateStream(cs.readable); +} + +promise_test(async () => { + const input = await createLargeCompressedInput(); + const ds = new DecompressionStream('deflate'); + const writer = ds.writable.getWriter(); + writer.write(input); + writer.close(); + // Object.prototype.then will be looked up synchronously when the promise + // returned by read() is resolved. + Object.defineProperty(Object.prototype, 'then', { + get() { + // Cause input to become detached and unreferenced. + try { + postMessage(undefined, 'nowhere', [input.buffer]); + } catch (e) { + // It's already detached. + } + } + }); + const output = await concatenateStream(ds.readable); + // If output successfully decompressed and gave the right length, we can be + // reasonably confident that no data corruption happened. + assert_equals( + output.byteLength, kInputLength, 'output should be the right length'); +}, 'data should be correctly decompressed even if input is detached partway'); diff --git a/tests/wpt/web-platform-tests/compression/resources/concatenate-stream.js b/tests/wpt/web-platform-tests/compression/resources/concatenate-stream.js new file mode 100644 index 00000000000..a35bb1416e7 --- /dev/null +++ b/tests/wpt/web-platform-tests/compression/resources/concatenate-stream.js @@ -0,0 +1,25 @@ +'use strict'; + +// Read all the chunks from a stream that returns BufferSource objects and +// concatenate them into a single Uint8Array. +async function concatenateStream(readableStream) { + const reader = readableStream.getReader(); + let totalSize = 0; + const buffers = []; + while (true) { + const { value, done } = await reader.read(); + if (done) { + break; + } + buffers.push(value); + totalSize += value.byteLength; + } + reader.releaseLock(); + const concatenated = new Uint8Array(totalSize); + let offset = 0; + for (const buffer of buffers) { + concatenated.set(buffer, offset); + offset += buffer.byteLength; + } + return concatenated; +} diff --git a/tests/wpt/web-platform-tests/css/css-grid/subgrid/abs-pos-004-ref.html b/tests/wpt/web-platform-tests/css/css-grid/subgrid/abs-pos-004-ref.html new file mode 100644 index 00000000000..ac47309df22 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/subgrid/abs-pos-004-ref.html @@ -0,0 +1,198 @@ +<!DOCTYPE HTML> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <title>Reference: abs.pos. subgrid edge cases</title> + <link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com"> +<style> +html,body { + color:black; background-color:white; font:15px/1 monospace; +} + +body > div { + display: inline-block; + height: 20px; + border: 1px solid; + margin: 1px; + vertical-align: top; +} +body > div > div { height: 20px; background: lightgrey; } +body > div > div > div { height: 20px; } +</style> +</head> +<body> + +<script> +let results = [ + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "10px", "0", "10px", "0", "10px", "lime" ], + [ "50px", "0", "50px", "0", "10px", "lime" ], + [ "50px", "0", "50px", "0", "10px", "lime" ], + [ "50px", "0", "50px", "0", "50px", "lime" ], + [ "50px", "0", "50px", "0", "10px", "lime" ], + [ "50px", "0", "50px", "0", "10px", "lime" ], + [ "50px", "0", "50px", "0", "50px", "lime" ], + [ "50px", "0", "40px", "0", "40px", "lime" ], + [ "50px", "0", "40px", "0", "40px", "lime" ], + [ "50px", "0", "40px", "0", "40px", "lime" ], + [ "50px", "0", "40px", "0", "40px", "lime" ], + [ "50px", "0", "40px", "0", "40px", "lime" ], + [ "50px", "0", "40px", "0", "40px", "lime" ], + + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "10px", "0", "10px", "0", "10px", "blue" ], + [ "50px", "0", "50px", "0", "10px", "blue" ], + [ "50px", "0", "50px", "0", "10px", "blue" ], + [ "50px", "0", "50px", "0", "50px", "blue" ], + [ "50px", "0", "50px", "0", "10px", "blue" ], + [ "50px", "0", "50px", "0", "10px", "blue" ], + [ "50px", "0", "50px", "0", "50px", "blue" ], + [ "50px", "0", "40px", "0", "40px", "blue" ], + [ "50px", "0", "40px", "0", "40px", "blue" ], + [ "50px", "0", "40px", "0", "40px", "blue" ], + [ "50px", "0", "40px", "0", "40px", "blue" ], + [ "50px", "0", "40px", "0", "40px", "blue" ], + [ "50px", "0", "40px", "0", "40px", "blue" ], + + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "20px", "0", "20px", "0", "20px", "lime" ], + [ "50px", "0", "0", "20px", "30px", "lime" ], + [ "50px", "0", "0", "20px", "30px", "lime" ], + [ "50px", "0", "0", "20px", "30px", "lime" ], + [ "50px", "0", "0", "20px", "30px", "lime" ], + [ "50px", "0", "0", "20px", "30px", "lime" ], + [ "50px", "0", "0", "20px", "30px", "lime" ], + [ "50px", "0", "0", "0", "30px", "lime" ], + [ "50px", "0", "0", "0", "30px", "lime" ], + [ "50px", "0", "0", "0", "30px", "lime" ], + [ "50px", "0", "0", "0", "30px", "lime" ], + [ "50px", "0", "0", "0", "30px", "lime" ], + [ "50px", "0", "0", "0", "30px", "lime" ], + + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "20px", "0", "20px", "0", "20px", "blue" ], + [ "50px", "0", "0", "20px", "30px", "blue" ], + [ "50px", "0", "0", "20px", "30px", "blue" ], + [ "50px", "0", "0", "20px", "30px", "blue" ], + [ "50px", "0", "0", "20px", "30px", "blue" ], + [ "50px", "0", "0", "20px", "30px", "blue" ], + [ "50px", "0", "0", "20px", "30px", "blue" ], + [ "50px", "0", "0", "0", "30px", "blue" ], + [ "50px", "0", "0", "0", "30px", "blue" ], + [ "50px", "0", "0", "0", "30px", "blue" ], + [ "50px", "0", "0", "0", "30px", "blue" ], + [ "50px", "0", "0", "0", "30px", "blue" ], + [ "50px", "0", "0", "0", "30px", "blue" ], + + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "30px", "0", "30px", "0", "30px", "lime" ], + [ "50px", "20px", "30px", "0", "10px", "lime" ], + [ "50px", "20px", "30px", "0", "10px", "lime" ], + [ "50px", "0", "0", "20px", "30px", "lime" ], + [ "50px", "20px", "30px", "0", "10px", "lime" ], + [ "50px", "20px", "30px", "0", "10px", "lime" ], + [ "50px", "0", "0", "20px", "30px", "lime" ], + [ "50px", "0", "0", "0", "20px", "lime" ], + [ "50px", "0", "0", "0", "20px", "lime" ], + [ "50px", "0", "0", "0", "20px", "lime" ], + [ "50px", "0", "0", "0", "20px", "lime" ], + [ "50px", "0", "0", "0", "20px", "lime" ], + [ "50px", "0", "0", "0", "20px", "lime" ], + + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "30px", "0", "30px", "0", "30px", "blue" ], + [ "50px", "20px", "30px", "0", "10px", "blue" ], + [ "50px", "20px", "30px", "0", "10px", "blue" ], + [ "50px", "0", "0", "20px", "30px", "blue" ], + [ "50px", "20px", "30px", "0", "10px", "blue" ], + [ "50px", "20px", "30px", "0", "10px", "blue" ], + [ "50px", "0", "0", "20px", "30px", "blue" ], + [ "50px", "0", "0", "0", "20px", "blue" ], + [ "50px", "0", "0", "0", "20px", "blue" ], + [ "50px", "0", "0", "0", "20px", "blue" ], + [ "50px", "0", "0", "0", "20px", "blue" ], + [ "50px", "0", "0", "0", "20px", "blue" ], + [ "50px", "0", "0", "0", "20px", "blue" ], +]; +results.forEach(function(arr) { + let grid_width, subgrid_width, subgrid_pos, item_pos, item_width, item_bg; + [grid_width, subgrid_pos, subgrid_width, item_pos, item_width, item_bg] = arr; + let grid = document.createElement('div'); + grid.style.width = grid_width; + let subgrid = document.createElement('div'); + subgrid.style.width = subgrid_width; + subgrid.style.marginLeft = subgrid_pos; + let subgridItem = document.createElement('div'); + subgridItem.style.width = item_width; + subgridItem.style.marginLeft = item_pos; + subgridItem.style.backgroundColor = item_bg; + subgrid.appendChild(subgridItem); + grid.appendChild(subgrid); + document.body.appendChild(grid); +}); +</script> + +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-grid/subgrid/abs-pos-004.html b/tests/wpt/web-platform-tests/css/css-grid/subgrid/abs-pos-004.html new file mode 100644 index 00000000000..b66143c36c1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/subgrid/abs-pos-004.html @@ -0,0 +1,104 @@ +<!DOCTYPE HTML> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <title>CSS Grid Test: abs.pos. subgrid edge cases</title> + <link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com"> + <link rel="help" href="https://drafts.csswg.org/css-grid-2"> + <link rel="match" href="abs-pos-004-ref.html"> +<style> +html,body { + color:black; background-color:white; font:15px/1 monospace; +} + +.grid { + position: relative; + display: inline-grid; + grid-auto-columns: 10px; + grid-auto-rows: 20px; + grid-auto-flow: column; + border: 1px solid; + margin: 1px; + vertical-align: top; +} + +.subgrid { + position: absolute; + inset: 0; + display: grid; + background: lightgrey; +} +.t1 { grid: subgrid / subgrid; } +.t2 { grid: none / subgrid; } +.t3 { grid: subgrid / none; } + +x { + background: lime; + grid-area: 1/1/-1/-1; +} +fail { + background: red; +} + +.a { + position: absolute; + grid-area: 1/1/-1/-1; + inset: 0; + background: blue; +} + +.o { overflow: hidden; } + +.start .subgrid { + grid-column-start: 3; +} +.end .subgrid { + grid-column-end: 1; +} +.start, .end { + width: 50px; +} +.end { + justify-content: end; +} +.start > fail, .end > fail { + background: initial; +} +</style> +</head> +<body> + +<script> +function make_grids(items, abspos) { + ["", "o", "start", "end"].forEach(function(grid1) { + ["", "o"].forEach(function(subgrid1) { + ["t1", "t2", "t3"].forEach(function(subgrid2) { + let grid = document.createElement('div'); + for (let i = 0; i < items; ++i) { + grid.appendChild(document.createElement('fail')); + } + grid.className = "grid " + grid1; + document.body.appendChild(grid); + document.body.offsetHeight; + let subgrid = document.createElement('div'); + subgrid.className = "subgrid " + subgrid1 + " " + subgrid2; + let subgridItem = document.createElement('x'); + if (abspos) { + subgridItem.className = "a"; + } + subgrid.appendChild(subgridItem); + grid.appendChild(subgrid); + }) + }) + }); +} +for (let i = 1; i <= 3; ++i) { + make_grids(i, false); + make_grids(i, true); +} +</script> + +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-tables/tentative/column-widths.html b/tests/wpt/web-platform-tests/css/css-tables/tentative/column-widths.html index 52cb5b6fb05..b151c2263bb 100644 --- a/tests/wpt/web-platform-tests/css/css-tables/tentative/column-widths.html +++ b/tests/wpt/web-platform-tests/css/css-tables/tentative/column-widths.html @@ -276,7 +276,23 @@ column.max = max(td.max, col.max)</p> <table style="width:1px" data-expected-width=234> <col style="width:50%"> <td style="width:100px" data-expected-width=10><div style="width:10px">10</div></td> - <td><div style="width:200px">200</div> + <td><div style="width:200px">200</div></td> +</table> + +<p class="testdesc">col fixed td fixed inside table-layout:fixed +constrained columns take precedence in fixed layout. +<table style="width:324px;table-layout:fixed" data-expected-width=324> + <col style="width:100px"> + <td style="width:200px" data-expected-width=100>100</td> + <td data-expected-width=200><div style="width:400px" >200</div></td> +</table> + +<p class="testdesc">col percent td fixed inside table-layout:fixed +constrained columns take precedence in fixed layout. +<table style="width:324px;table-layout:fixed" data-expected-width=324> + <col style="width:50%"> + <td style="width:200px" data-expected-width=150>150</td> + <td><div style="width:400px">150</div></td> </table> </main> <script> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-auto.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-auto.html new file mode 100644 index 00000000000..d53e989f69e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-auto.html @@ -0,0 +1,93 @@ +<!doctype html> +<html> +<head> + <link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <style> + #div4_1 { + direction: rtl; + } + </style> +</head> + +<!-- ת is the Hebrew letter tav, i.e. RTL --> +<body> + <div id=testDivs> + <div id=div1 dir=auto> + <div id=div1_1>a</div> + </div> + <div id=div2 dir=auto> + <div id=div2_1>ת</div> + </div> + <div id=div3 dir=auto> + <div id=div3_1 dir=rtl>ת</div> + <div id=div3_2>a</div> + </div> + <div id=div4 dir=auto> + <div id=div4_1> + <div id=div4_1_1>a</div> + </div> + </div> + </div> +</body> + +<script> +function test_directionality(message, element, expected) { + test(() => { + var isLTR = document.querySelector("#" + element.id + ":dir(ltr)") == element; + var isRTL = document.querySelector("#" + element.id + ":dir(rtl)") == element; + if (expected == "ltr") { + assert_true(isLTR); + assert_false(isRTL); + } else { + assert_false(isLTR); + assert_true(isRTL); + } + }, message + " directionality of element " + element.id + " is " + expected); +} + +test_directionality("Initial ", div1, "ltr"); +test_directionality("Initial ", div1_1, "ltr"); +test_directionality("Initial ", div2, "rtl"); +test_directionality("Initial ", div2_1, "rtl"); +test_directionality("Initial ", div3, "ltr"); +test_directionality("Initial ", div3_1, "rtl"); +test_directionality("Initial ", div3_2, "ltr"); +test_directionality("Initial ", div4, "ltr"); +test_directionality("Initial ", div4_1, "ltr"); +test_directionality("Initial ", div4_1_1, "ltr"); + +div1_1.innerText = "\u05EA"; +div1_1.offsetTop; +test_directionality("Updated ", div1, "rtl"); +test_directionality("Updated ", div1_1, "rtl"); + +div1_1.dir = "ltr"; +div1_1.offsetTop; +test_directionality("Updated ", div1, "ltr"); +test_directionality("Updated ", div1_1, "ltr"); + +div1_1.innerText = "a"; +div1_1.offsetTop; +test_directionality("Reupdated ", div1, "ltr"); +test_directionality("Reupdated ", div1_1, "ltr"); + +div2_1.remove(); +div2.offsetTop; +test_directionality("Updated ", div2, "ltr"); + +div3_1.dir = ""; +div3_1.offsetTop; +test_directionality("Updated ", div3, "rtl"); +div3.appendChild(div3_1); +div3.offsetTop; +test_directionality("Updated ", div3, "ltr"); + +div4_1_1.innerText = "\u05EA"; +div4_1_1.offsetTop; +test_directionality("Updated ", div4, "rtl"); +test_directionality("Updated ", div4_1, "rtl"); +test_directionality("Updated ", div4_1_1, "rtl"); +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-001-ref.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-001-ref.html new file mode 100644 index 00000000000..8c79c8328f0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-001-ref.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> +<head> + <style type="text/css"> + span { background-color: lime } + </style> +</head> +<body> + <div> + <div> + <div></div> + <span>The background color should be lime</span> + </div> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-001.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-001.html new file mode 100644 index 00000000000..f9523896438 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-001.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Selectors Level 4 Test: Check for correctly updating :dir matching on dir attribute change from default(ltr) to rtl</title> + <link rel="author" title="Miyoung Shin" href="mailto:myid.shin@igalia.com"> + <link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo"> + <link rel="match" href="selectors-dir-selector-change-001-ref.html"> + <style type="text/css"> + #x:dir(rtl) + span { background-color: lime } + #outer { direction:ltr } + </style> +</head> +<body> + <div id="outer" style="-webkit-locale: 'en'"> + <div> + <div id="x"></div> + <span>The background color should be lime</span> + </div> + </div> + <script> + outer.offsetTop; + outer.setAttribute("dir", "rtl"); + </script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-002.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-002.html new file mode 100644 index 00000000000..bc032b59541 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-002.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Selectors Level 4 Test: Check for correctly updating :dir matching on dir attribute change from default(ltr) to rtl</title> + <link rel="author" title="Miyoung Shin" href="mailto:myid.shin@igalia.com"> + <link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo"> + <link rel="match" href="../reference/ref-filled-green-100px-square.xht"> + <style type="text/css"> + div { + width: 100px; + height: 100px; + background-color: red; + } + + div:dir(rtl) { + background-color: green; + } + </style> +</head> +<body> + <p>Test passes if there is a filled green square and <strong>no red</strong>.</p> + <div id="inner"></div> + <script> + inner.offsetTop; + inner.setAttribute("dir", "rtl"); + </script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-003-ref.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-003-ref.html new file mode 100644 index 00000000000..8c79c8328f0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-003-ref.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> +<head> + <style type="text/css"> + span { background-color: lime } + </style> +</head> +<body> + <div> + <div> + <div></div> + <span>The background color should be lime</span> + </div> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-003.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-003.html new file mode 100644 index 00000000000..f4000155a8d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-003.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Selectors Level 4 Test: Check for correctly updating :dir matching on dir attribute change from rtl to auto</title> + <link rel="author" title="Miyoung Shin" href="mailto:myid.shin@igalia.com"> + <link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo"> + <link rel="match" href="selectors-dir-selector-change-003-ref.html"> + <style type="text/css"> + #x:dir(ltr) + span { background-color: lime } + </style> +</head> +<body> + <div id="outer" dir="rtl"> + <div> + <div id="x"></div> + <span>The background color should be lime</span> + </div> + </div> + <script> + outer.offsetTop; + outer.setAttribute("dir", "auto"); + </script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-004-ref.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-004-ref.html new file mode 100644 index 00000000000..9a130cb2e5c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-004-ref.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<html> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <style type="text/css"> + span { background-color: lime } + </style> +</head> +<body> + <div> + <div dir="rtl"> + <div></div> + <span>מקור השם עברית</span> + </div> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-004.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-004.html new file mode 100644 index 00000000000..4c76b291bad --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-change-004.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Selectors Level 4 Test: Check for correctly updating :dir matching on directionality change from ltr to rtl</title> + <link rel="author" title="Miyoung Shin" href="mailto:myid.shin@igalia.com"> + <link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo"> + <link rel="match" href="selectors-dir-selector-change-004-ref.html"> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <style type="text/css"> + #x:dir(rtl) + span { background-color: lime } + </style> +</head> +<body> + <div dir="auto"> + <div> + <div id="x"></div> + <span id="inner">The background color should be lime</span> + </div> + </div> + <script> + inner.offsetTop; + inner.innerHTML = "מקור השם עברית"; + </script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-ltr-002.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-ltr-002.html new file mode 100644 index 00000000000..bbb3f26a780 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-ltr-002.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Selectors Level 4 Test: exception handling for an invalid identifier of dir()</title> + <link rel="author" title="Miyoung Shin" href="mailto:myid.shin@igalia.com"> + <link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo"> + <link rel="match" href="../reference/ref-filled-green-100px-square.xht"> + <meta name="flags" content=""> + <meta name="assert" content="The invalid identifier of :dir(ltrr) pseudo-class doesn't match an element that has a directionality of (ltr). Even if the div element has dir=ltr, the selector should not match."> + <style type="text/css"> + div { + width: 100px; + height: 100px; + background-color: green; + } + + div:dir(ltrr) { + background-color: red; + } + </style> +</head> +<body> + <p>Test passes if there is a filled green square and <strong>no red</strong>.</p> + <div dir="ltr"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-ltr-003.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-ltr-003.html new file mode 100644 index 00000000000..821a33616fc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-ltr-003.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Selectors Level 4 Test: exception handling for multiple identifiers of dir() </title> + <link rel="author" title="Miyoung Shin" href="mailto:myid.shin@igalia.com"> + <link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo"> + <link rel="match" href="../reference/ref-filled-green-100px-square.xht"> + <meta name="flags" content=""> + <meta name="assert" content="The multiple identifiers of :dir(ltr, rtl) pseudo-class don't match an element that has a directionality of (ltr). Even if the div element has dir=ltr, the selector should not match."> + <style type="text/css"> + div { + width: 100px; + height: 100px; + background-color: green; + } + + div:dir(ltr, rtl) { + background-color: red; + } + </style> +</head> +<body> + <p>Test passes if there is a filled green square and <strong>no red</strong>.</p> + <div dir="ltr"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-querySelector.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-querySelector.html new file mode 100644 index 00000000000..a05e3fea78f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-querySelector.html @@ -0,0 +1,71 @@ +<!doctype html> +<html> +<head> + <link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> +</head> + +<body> + <div id=outer> + <div id=div1></div> + <div id=div2 dir=ltr> + <div id=div2_1></div> + <div id=div2_2 dir=ltr></div> + <div id=div2_3 dir=rtl></div> + </div> + <div id=div3 dir=rtl> + <div id=div3_1> + <div id=div3_1_1></div> + </div> + <div id=div3_2 dir=ltr></div> + <div id=div3_3 dir=rtl></div> + </div> + <div id=div4 dir=lol></div> + <div id=div5 dir=auto></div> + </div> +</body> + +<script> +test(() => { + assert_equals(document.querySelector(":dir(lol)"), null); + assert_equals(document.querySelector(":dir(lol )"), null); + assert_equals(document.querySelector(":dir( auto)"), null); + assert_equals(document.querySelector(":dir(\nauto\t)"), null); +}, ":dir() allows any ident value but strings other than ltr/rtl don't match"); + +test(() => { + assert_throws_dom("SYNTAX_ERR", () => { document.querySelector(":dir()"); }); + assert_throws_dom("SYNTAX_ERR", () => { document.querySelector(":dir(ltr, rtl)"); }); + assert_throws_dom("SYNTAX_ERR", () => { document.querySelector(":dir('ltr')"); }); +}, ":dir() requires exactly an ident argument"); + +test(() => { + assert_equals(document.querySelector(":dir(rtl)"), div2_3); + assert_equals(document.querySelector("*:dir(rtl)"), div2_3); + assert_equals(document.querySelector("div:dir(ltr)"), outer); + assert_equals(document.querySelector("div:dir(ltr):dir(ltr)"), outer); + assert_equals(document.querySelector(":dir(rtl)#div3_3"), div3_3); + assert_equals(document.querySelector(":nth-child(2):dir(rtl)"), null); + assert_equals(document.querySelector(":nth-child(3):dir(rtl)"), div2_3); + assert_equals(document.querySelector(":nth-child(4):dir(ltr)"), div4); + assert_equals(document.querySelector(":nth-last-child(3):dir(rtl)"), div3); +}, ":dir() works in compound selectors"); + +test(() => { + assert_equals(document.querySelector("#div2 :dir(ltr)"), div2_1); + assert_equals(document.querySelector(":dir(rtl) div"), div3_1); + assert_equals(document.querySelector("div + :dir(ltr)"), div2); + assert_equals(document.querySelector(":dir(ltr) + :dir(rtl)"), div2_3); + assert_equals(document.querySelector(":dir(rtl) :dir(rtl)"), div3_1); + assert_equals(document.querySelector(":dir(rtl) + :dir(ltr)"), div3_2); + assert_equals(document.querySelector(":dir(rtl) ~ :dir(rtl)"), div3_3); + assert_equals(document.querySelector(":dir(rtl) :dir(ltr)"), div3_2); + assert_equals(document.querySelector("* :dir(rtl) *"), div3_1); + assert_equals(document.querySelector("div :dir(rtl) div"), div3_1); + assert_equals(document.querySelector(":dir(ltr) :dir(rtl) + :dir(ltr)"), div3_2); + assert_equals(document.querySelector(":dir(ltr) + :dir(rtl) + * + *"), div5); + assert_equals(document.querySelector(":dir(rtl) > * > :dir(rtl)"), div3_1_1); +}, ":dir() works in complex selectors"); +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-white-space-001-ref.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-white-space-001-ref.html new file mode 100644 index 00000000000..955a2dd603d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-white-space-001-ref.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<html> +<head> + <style type="text/css"> + div { + width: 100px; + height: 100px; + background-color: green; + } + </style> +</head> +<body> + <p>Test passes if there is a filled green square and <strong>no red</strong>.</p> + <div></div> + <div></div> + <div></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-white-space-001.html b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-white-space-001.html new file mode 100644 index 00000000000..d3128a03734 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/selectors-dir-selector-white-space-001.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<html> +<head> + <title>CSS Selectors Level 4 Test: Verify for an identifier with leading and tailing whitespace of dir() </title> + <link rel="author" title="Miyoung Shin" href="mailto:myid.shin@igalia.com"> + <link rel="help" href="http://www.w3.org/TR/selectors4/#dir-pseudo"> + <link rel="match" href="selectors-dir-selector-white-space-001-ref.html"> + <meta name="assert" content="The :dir(ltr) pseudo-class matches an element that has a directionality of (ltr). Since the div element has dir=ltr, the selector matches."> + <style type="text/css"> + div { + width: 100px; + height: 100px; + background-color: red; + } + + #a:dir( ltr) { background-color: green; } + #b:dir(ltr ) { background-color: green; } + #c:dir( ltr ) { background-color: green; } + </style> +</head> +<body> + <p>Test passes if there is a filled green square and <strong>no red</strong>.</p> + <div id="a" dir="ltr"></div> + <div id="b" dir="ltr"></div> + <div id="c" dir="ltr"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/newline-normalization.html b/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/newline-normalization.html index d3de7699662..b49468e1999 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/newline-normalization.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/newline-normalization.html @@ -22,6 +22,22 @@ return form; } + function createFormWithFile(testCase, name, filename) { + const form = document.createElement("form"); + const input = document.createElement("input"); + input.type = "file"; + input.name = name; + const dataTransfer = new DataTransfer(); + dataTransfer.items.add(new File([], filename, { type: "text/plain" })); + input.files = dataTransfer.files; + form.appendChild(input); + document.body.appendChild(form); + testCase.add_cleanup(() => { + document.body.removeChild(form); + }); + return form; + } + test((testCase) => { const formData = new FormData(createForm(testCase, "a", "b\nc")); assert_equals(formData.get("a"), "b\r\nc"); @@ -61,6 +77,34 @@ const formData = new FormData(createForm(testCase, "a\n\rb", "c")); assert_equals([...formData][0][0], "a\r\n\r\nb"); }, document.title + ": \\n\\r in the name becomes \\r\\n\\r\\n"); + + test((testCase) => { + const formData = new FormData( + createFormWithFile(testCase, "a", "b\nc") + ); + assert_equals(formData.get("a").name, "b\nc"); + }, document.title + ": \\n in the filename stays unchanged"); + + test((testCase) => { + const formData = new FormData( + createFormWithFile(testCase, "a", "b\rc") + ); + assert_equals(formData.get("a").name, "b\rc"); + }, document.title + ": \\r in the filename stays unchanged"); + + test((testCase) => { + const formData = new FormData( + createFormWithFile(testCase, "a", "b\r\nc") + ); + assert_equals(formData.get("a").name, "b\r\nc"); + }, document.title + ": \\r\\n in the filename stays unchanged"); + + test((testCase) => { + const formData = new FormData( + createFormWithFile(testCase, "a", "b\n\rc") + ); + assert_equals(formData.get("a").name, "b\n\rc"); + }, document.title + ": \\n\\r in the filename stays unchanged"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-clone.https.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-clone.https.html new file mode 100644 index 00000000000..c2b3e2bf8ab --- /dev/null +++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-clone.https.html @@ -0,0 +1,362 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="/mediacapture-image/resources/imagecapture-helpers.js"></script> +<script> + +// This test verifies that we can set some nondefault constraints, then clone a +// MediaStreamTrack and check that the cloned constraints are the same as the +// original, with a mock Mojo service implementation. +image_capture_test(async (t, imageCaptureTest) => { + await test_driver.set_permission({name: 'camera', panTiltZoom: true}, + 'granted', false); + + const constraints = { advanced : [{ whiteBalanceMode : 'single-shot', + exposureMode : 'manual', + focusMode : 'single-shot', + + pointsOfInterest : [{x : 0.1, y : 0.2}, + {x : 0.3, y : 0.4}], + + exposureCompensation : 133.77, + exposureTime : 10000, + colorTemperature : 6000, + iso : 120.0, + + brightness : 3, + contrast : 4, + saturation : 5, + sharpness : 6, + focusDistance : 7, + + pan : 8, + tilt : 9, + zoom : 3.141592, + + torch : true + }]}; + + let stream = await navigator.mediaDevices.getUserMedia({video: true}); + let originalVideoTrack = stream.getVideoTracks()[0]; + + await originalVideoTrack.applyConstraints(constraints); + + let appliedConstraints = originalVideoTrack.getConstraints(); + + let clonedVideoTrack = originalVideoTrack.clone(); + let appliedClonedConstraints = clonedVideoTrack.getConstraints(); + assert_true('advanced' in appliedClonedConstraints); + assert_equals(appliedClonedConstraints.advanced.length, 1); + const appliedClonedAdvancedConstraints = appliedClonedConstraints.advanced[0]; + + // Check that |appliedClonedAdvancedConstraints| and |appliedAdvancedConstraints| are equal. + const appliedAdvancedConstraints = appliedConstraints.advanced[0]; + assert_equals(appliedAdvancedConstraints.length, appliedClonedAdvancedConstraints.length); + Object.keys(appliedClonedAdvancedConstraints).forEach((key, value) => { + assert_not_equals(appliedAdvancedConstraints[key], undefined, 'key ' + key); + if (key != 'pointsOfInterest') { + assert_equals(appliedAdvancedConstraints[key], appliedClonedAdvancedConstraints[key], key); + } else { + assert_point2d_array_approx_equals(appliedAdvancedConstraints[key], + appliedClonedAdvancedConstraints[key], 0.01); + } + }); + + assert_equals(appliedAdvancedConstraints.whiteBalanceMode, + appliedClonedAdvancedConstraints.whiteBalanceMode, + 'whiteBalanceMode'); + assert_equals(appliedAdvancedConstraints.exposureMode, + appliedClonedAdvancedConstraints.exposureMode, + 'exposureMode'); + assert_equals(appliedAdvancedConstraints.focusMode, + appliedClonedAdvancedConstraints.focusMode, + 'focusMode'); + + assert_point2d_array_approx_equals( + appliedAdvancedConstraints.pointsOfInterest, + appliedClonedAdvancedConstraints.pointsOfInterest, + 0.01); + + assert_equals(appliedAdvancedConstraints.exposureCompensation, + appliedClonedAdvancedConstraints.exposureCompensation, + 'exposureCompensation'); + assert_equals(appliedAdvancedConstraints.exposureTime, + appliedClonedAdvancedConstraints.exposureTime, + 'exposureTime'); + assert_equals(appliedAdvancedConstraints.colorTemperature, + appliedClonedAdvancedConstraints.colorTemperature, + 'colorTemperature'); + assert_equals(appliedAdvancedConstraints.iso, + appliedClonedAdvancedConstraints.iso, + 'iso'); + assert_equals(appliedAdvancedConstraints.brightness, + appliedClonedAdvancedConstraints.brightness, + 'brightness'); + assert_equals(appliedAdvancedConstraints.contrast, + appliedClonedAdvancedConstraints.contrast, + 'constrast'); + assert_equals(appliedAdvancedConstraints.saturation, + appliedClonedAdvancedConstraints.saturation, + 'saturation'); + assert_equals(appliedAdvancedConstraints.sharpness, + appliedClonedAdvancedConstraints.sharpness, + 'sharpness'); + assert_equals(appliedAdvancedConstraints.focusDistance, + appliedClonedAdvancedConstraints.focusDistance, + 'focusDistance'); + + assert_equals(appliedAdvancedConstraints.pan, + appliedClonedAdvancedConstraints.pan, + 'pan'); + assert_equals(appliedAdvancedConstraints.tilt, + appliedClonedAdvancedConstraints.tilt, + 'tilt'); + assert_equals(appliedAdvancedConstraints.zoom, + appliedClonedAdvancedConstraints.zoom, + 'zoom'); + + assert_equals(appliedAdvancedConstraints.torch, + appliedClonedAdvancedConstraints.torch, + 'torch'); +}, 'checks MediaStreamTrack.clone() gets same applied constraints'); + +// This test verifies that MediaStreamTrack ImageCapture settings are copied +// when cloning a MediaStreamTrack. +image_capture_test(async (t, imageCaptureTest) => { + await test_driver.set_permission({name: 'camera', panTiltZoom: true}, + 'granted', false); + + let stream = await navigator.mediaDevices.getUserMedia({video: true}); + let originalVideoTrack = stream.getVideoTracks()[0]; + let clonedVideoTrack = originalVideoTrack.clone(); + + let settings = originalVideoTrack.getSettings(); + let clonedSettings = clonedVideoTrack.getSettings(); + + assert_equals(settings.whiteBalanceMode, + clonedSettings.whiteBalanceMode, + 'whiteBalanceMode'); + assert_equals(settings.exposureMode, + clonedSettings.exposureMode, + 'exposureMode;'); + assert_equals(settings.focusMode, + clonedSettings.focusMode, + 'focusMode'); + + assert_point2d_array_approx_equals( + settings.pointsOfInterest, + clonedSettings.pointsOfInterest, + 0.01); + + assert_equals(settings.exposureCompensation, + clonedSettings.exposureCompensation, + 'exposureCompensation'); + assert_equals(settings.exposureTime, + clonedSettings.exposureTime, + 'exposureTime'); + assert_equals(settings.colorTemperature, + clonedSettings.colorTemperature, + 'colorTemperature'); + assert_equals(settings.iso, + clonedSettings.iso, + 'iso'); + + assert_equals(settings.brightness, + clonedSettings.brightness, + 'brightness'); + assert_equals(settings.contrast, + clonedSettings.contrast, + 'contrast'); + assert_equals(settings.saturation, + clonedSettings.saturation, + 'saturation'); + assert_equals(settings.sharpness, + clonedSettings.sharpness, + 'sharpness'); + + assert_equals(settings.focusDistance, + clonedSettings.focusDistance, + 'focusDistance'); + + assert_equals(settings.pan, + clonedSettings.pan, + 'pan'); + assert_equals(settings.tilt, + clonedSettings.tilt, + 'tilt'); + assert_equals(settings.zoom, + clonedSettings.zoom, + 'zoom'); + + assert_equals(settings.torch, + clonedSettings.torch, + 'torch'); +}, 'checks MediaStreamTrack.clone() gets same settings'); + +// This test verifies that MediaStreamTrack ImageCapture capabilities are copied +// when cloning a MediaStreamTrack. +image_capture_test(async (t, imageCaptureTest) => { + await test_driver.set_permission({name: 'camera', panTiltZoom: true}, + 'granted', false); + + let stream = await navigator.mediaDevices.getUserMedia({video: true}); + let originalVideoTrack = stream.getVideoTracks()[0]; + let clonedVideoTrack = originalVideoTrack.clone(); + + let capabilities = originalVideoTrack.getCapabilities(); + let clonedCapabilities = clonedVideoTrack.getCapabilities(); + + assert_equals(capabilities.whiteBalanceMode.length, + clonedCapabilities.whiteBalanceMode.length, + 'whiteBalanceMode length'); + for (i = 0; i < capabilities.whiteBalanceMode.length; ++i) { + assert_equals(capabilities.whiteBalanceMode[i], + clonedCapabilities.whiteBalanceMode[i], + 'whiteBalanceMode'); + } + + assert_equals(capabilities.exposureMode.length, + clonedCapabilities.exposureMode.length, + 'exposureMode length'); + for (i = 0; i < capabilities.exposureMode.length; ++i) { + assert_equals(capabilities.exposureMode[i], + clonedCapabilities.exposureMode[i], + 'exposureMode'); + } + + assert_equals(capabilities.focusMode.length, + clonedCapabilities.focusMode.length, + 'focusMode length'); + for (i = 0; i < capabilities.focusMode.length; ++i) { + assert_equals(capabilities.focusMode[i], + clonedCapabilities.focusMode[i], + 'focusMode'); + } + + assert_equals(capabilities.exposureCompensation.max, + clonedCapabilities.exposureCompensation.max, + 'exposureCompensation max'); + assert_equals(capabilities.exposureCompensation.min, + clonedCapabilities.exposureCompensation.min, + 'exposureCompensation min'); + assert_equals(capabilities.exposureCompensation.step, + clonedCapabilities.exposureCompensation.step, + 'exposureCompensation step'); + + assert_equals(capabilities.exposureTime.max, + clonedCapabilities.exposureTime.max, + 'exposureTime max'); + assert_equals(capabilities.exposureTime.min, + clonedCapabilities.exposureTime.min, + 'exposureTime min'); + assert_equals(capabilities.exposureTime.step, + clonedCapabilities.exposureTime.step, + 'exposureTime step'); + + assert_equals(capabilities.colorTemperature.max, + clonedCapabilities.colorTemperature.max, + 'colorTemperature max'); + assert_equals(capabilities.colorTemperature.min, + clonedCapabilities.colorTemperature.min, + 'colorTemperature min'); + assert_equals(capabilities.colorTemperature.step, + clonedCapabilities.colorTemperature.step, + 'colorTemperature step'); + + assert_equals(capabilities.iso.max, + clonedCapabilities.iso.max, + 'iso max'); + assert_equals(capabilities.iso.min, + clonedCapabilities.iso.min, + 'iso min'); + assert_equals(capabilities.iso.step, + clonedCapabilities.iso.step, + 'iso step'); + + assert_equals(capabilities.brightness.max, + clonedCapabilities.brightness.max, + 'brightness max'); + assert_equals(capabilities.brightness.min, + clonedCapabilities.brightness.min, + 'brightness min'); + assert_equals(capabilities.brightness.step, + clonedCapabilities.brightness.step, + 'brightness step'); + + assert_equals(capabilities.contrast.max, + clonedCapabilities.contrast.max, + 'contrast max'); + assert_equals(capabilities.contrast.min, + clonedCapabilities.contrast.min, + 'contrast min'); + assert_equals(capabilities.contrast.step, + clonedCapabilities.contrast.step, + 'contrast step'); + + assert_equals(capabilities.saturation.max, + clonedCapabilities.saturation.max, + 'saturation max'); + assert_equals(capabilities.saturation.min, + clonedCapabilities.saturation.min, + 'saturation min'); + assert_equals(capabilities.saturation.step, + clonedCapabilities.saturation.step, + 'saturation step'); + + assert_equals(capabilities.sharpness.max, + clonedCapabilities.sharpness.max, + 'sharpness max'); + assert_equals(capabilities.sharpness.min, + clonedCapabilities.sharpness.min, + 'sharpness min'); + assert_equals(capabilities.sharpness.step, + clonedCapabilities.sharpness.step, + 'sharpness step'); + + assert_equals(capabilities.focusDistance.max, + clonedCapabilities.focusDistance.max, + 'focusDistance max'); + assert_equals(capabilities.focusDistance.min, + clonedCapabilities.focusDistance.min, + 'focusDistance min'); + assert_equals(capabilities.focusDistance.step, + clonedCapabilities.focusDistance.step, + 'focusDistance step'); + + assert_equals(capabilities.pan.max, + clonedCapabilities.pan.max, + 'pan max'); + assert_equals(capabilities.pan.min, + clonedCapabilities.pan.min, + 'pan min'); + assert_equals(capabilities.pan.step, + clonedCapabilities.pan.step, + 'pan step'); + + assert_equals(capabilities.tilt.max, + clonedCapabilities.tilt.max, + 'tilt max'); + assert_equals(capabilities.tilt.min, + clonedCapabilities.tilt.min, + 'tilt min'); + assert_equals(capabilities.tilt.step, + clonedCapabilities.tilt.step, + 'tilt step'); + + assert_equals(capabilities.zoom.max, + clonedCapabilities.zoom.max, + 'zoom max'); + assert_equals(capabilities.zoom.min, + clonedCapabilities.zoom.min, + 'zoom min'); + assert_equals(capabilities.zoom.step, + clonedCapabilities.zoom.step, + 'zoom step'); + + assert_equals(capabilities.torch, + clonedCapabilities.torch, + 'torch'); +}, 'checks MediaStreamTrack.clone() gets same capabilities'); +</script> diff --git a/tests/wpt/web-platform-tests/native-file-system/showPicker-errors.https.window.js b/tests/wpt/web-platform-tests/native-file-system/showPicker-errors.https.window.js index e8f0d3f5404..d1dabf37da8 100644 --- a/tests/wpt/web-platform-tests/native-file-system/showPicker-errors.https.window.js +++ b/tests/wpt/web-platform-tests/native-file-system/showPicker-errors.https.window.js @@ -80,9 +80,39 @@ function define_file_picker_error_tests(showPickerMethod) { showPickerMethod + ': MIME type can\'t have invalid characters in subtype.'); - promise_test(async t => { - await promise_rejects_js(t, TypeError, self[showPickerMethod]({ - types: [{accept: {'text/plain': ['.txt', 'txt']}}] - })); - }, showPickerMethod + ': extension has to start with ".".'); + const invalid_extensions = { + '.extensiontoolong': 'extension length more than 16.', + '.txt.': 'extenstion ends with "."', + 'txt': 'extenstion does not start with "."', + '.$txt' : 'illegal character "$"', + '.t<xt': 'illegal character "<"', + '.t/xt': 'illegal character "\"', + '.\txt': 'illegal character "/"', + '.txt\\': 'illegal characters "\\"', + '.txt?': 'illegal character "?"', + '.txt*': 'illegal character "*"', + '.{txt': 'illegal character "{"', + '.}txt': 'illegal character "}"', + ' .txt': 'illegal whitespace at front of extension', + '. txt': 'illegal whitespace in extension', + '.txt ': 'illegal whitespace at end of extension', + '.\u202etxt\u202e' : 'illegal RTL character', + '.t\u00E6xt': 'non-ASCII character "æ"', + '.קום': 'non-ASCII character "קום"', + '.txt🙂': 'non-ASCII character "🙂"', + '.{txt}': 'illegal characters "{" and "}"', + } + + for (const [extension, description] of Object.entries(invalid_extensions)) { + define_file_picker_extension_error_test(showPickerMethod, extension, description) + } } + +function define_file_picker_extension_error_test(showPickerMethod, extension, description) { + promise_test(async t => { + await promise_rejects_js( + t, TypeError, + self[showPickerMethod]( + { types: [{ accept: { 'text/plain': ['.txt', extension] } }] })); + }, showPickerMethod + ': invalid extension "' + extension + '". ' + description + "."); +}
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/streams/readable-byte-streams/bad-buffers-and-views.any.js b/tests/wpt/web-platform-tests/streams/readable-byte-streams/bad-buffers-and-views.any.js index 0777208da44..d4ad483d9c3 100644 --- a/tests/wpt/web-platform-tests/streams/readable-byte-streams/bad-buffers-and-views.any.js +++ b/tests/wpt/web-platform-tests/streams/readable-byte-streams/bad-buffers-and-views.any.js @@ -212,8 +212,7 @@ async_test(t => { c.close(); - const zeroLengthView = new Uint8Array(view.buffer, 0, 0); - assert_throws_js(TypeError, () => c.byobRequest.respondWithNewView(zeroLengthView)); + assert_throws_js(TypeError, () => c.byobRequest.respondWithNewView(view)); }), type: 'bytes' }); diff --git a/tests/wpt/web-platform-tests/tools/wptserve/setup.py b/tests/wpt/web-platform-tests/tools/wptserve/setup.py index 759cb48d1f6..a9cc95f4c1a 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/setup.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/setup.py @@ -1,7 +1,7 @@ from setuptools import setup PACKAGE_VERSION = '3.0' -deps = ["six>=1.8", "h2==3.0.1"] +deps = ["six>=1.13.0", "h2==3.0.1"] setup(name='wptserve', version=PACKAGE_VERSION, diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.html index 9845d5eaba3..fbe6e42e317 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/ctor-audiobuffer.html @@ -211,17 +211,19 @@ Promise .all([ c1.startRendering().then(function(resultBuffer) { - return should(resultBuffer.getChannelData(0), 'c1 result') - .beEqualToArray(data); + return resultBuffer; }), c2.startRendering().then(function(resultBuffer) { - return should(resultBuffer.getChannelData(0), 'c2 result') - .beEqualToArray(data); + return resultBuffer; }), ]) - .then(returnValues => { + .then(resultBuffers => { + let c1ResultValue = should(resultBuffers[0].getChannelData(0), 'c1 result') + .beEqualToArray(data); + let c2ResultValue = should(resultBuffers[1].getChannelData(0), 'c2 result') + .beEqualToArray(data); should( - returnValues[0] && returnValues[1], + c1ResultValue && c2ResultValue, 'AudioBuffer shared between two different contexts') .message('correctly', 'incorrectly'); task.done(); |