diff options
73 files changed, 716 insertions, 142 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini new file mode 100644 index 00000000000..f29da48a2a0 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-003.html] + [Miss float below something else] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini new file mode 100644 index 00000000000..4bfb0c2053a --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-004.html] + [Miss float below something else] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini new file mode 100644 index 00000000000..baa9f1a7541 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-005.html] + [Miss clipped float] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini new file mode 100644 index 00000000000..9206a00a170 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini @@ -0,0 +1,2 @@ +[min-height-applies-to-013.xht] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini new file mode 100644 index 00000000000..f6e7c61b425 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini @@ -0,0 +1,2 @@ +[min-height-applies-to-014.xht] + 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/elementFromPosition.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini index 23c61ede1a1..c131078eace 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini @@ -17,6 +17,3 @@ [test the top of layer] expected: FAIL - [test some point of the element: top left corner] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini deleted file mode 100644 index e181af5397f..00000000000 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[elementsFromPoint-invalid-cases.html] - [The root element is the last element returned for otherwise empty queries within the viewport] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini index dae4682b753..156f3115faf 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 @@ -321,15 +321,18 @@ [<iframe>: combined response Content-Type: */* text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html */*] + [<iframe>: combined response Content-Type: text/html;" \\" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] + [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] expected: FAIL - [<iframe>: separate response Content-Type: text/html;x=" text/plain] + [<iframe>: separate response Content-Type: text/plain */*] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html;" \\" 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..b2ffc8abf78 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,6 @@ [separate text/javascript x/x] expected: FAIL - [separate text/javascript;charset=windows-1252 error text/javascript] + [separate text/javascript error] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini index 61682d248e2..30e1b851fd4 100644 --- a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,6 +11,3 @@ [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] expected: FAIL - [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini index 75d75b4cda2..51f8272a6de 100644 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini +++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini @@ -1,4 +1,4 @@ -[traverse_the_history_2.html] +[traverse_the_history_3.html] [Multiple history traversals, last would be aborted] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini index 8e2a63e3b7f..8e2b6af33d8 100644 --- a/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini +++ b/tests/wpt/metadata-layout-2020/html/browsers/windows/embedded-opener-remove-frame.html.ini @@ -1,8 +1,8 @@ [embedded-opener-remove-frame.html] - expected: CRASH + expected: TIMEOUT [opener of discarded nested browsing context] expected: FAIL [opener of discarded auxiliary browsing context] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/media-elements/event_loadstart.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/media-elements/event_loadstart.html.ini new file mode 100644 index 00000000000..f9badfdf02a --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/media-elements/event_loadstart.html.ini @@ -0,0 +1,2 @@ +[event_loadstart.html] + expected: TIMEOUT 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 88f4ddd0e9a..42ebcc9d57e 100644 --- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,5 +1,5 @@ [iframe_sandbox_popups_escaping-1.html] - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] expected: 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/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini deleted file mode 100644 index fca4d908c89..00000000000 --- a/tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[module-static-import-delayed.html] - [document.write in an imported module] - 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 dbec6f2c2ff..450c88bd32b 100644 --- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini +++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini @@ -3,3 +3,6 @@ [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] expected: TIMEOUT + [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/webmessaging/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/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini deleted file mode 100644 index 663a1f8fa30..00000000000 --- a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[018.html] - expected: TIMEOUT - [origin of the script that invoked the method, javascript:] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 70c944c6c93..7b48dd98d38 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -678,6 +678,15 @@ ] ] }, + "scroll-animations": { + "null-scroll-source-crash.html": [ + "5ffc522d68e751995e6183a49f85d2ca7378f66d", + [ + null, + {} + ] + ] + }, "selection": { "selection-select-all-move-input-crash.html": [ "6f692dc5e7d69a30a407f107268c9e012efcd9e3", @@ -50633,7 +50642,7 @@ ] ], "c414-flt-fit-000.xht": [ - "099c67163544bff7daaddfe7b08db543620a2a4e", + "15a53e4aa02b1ec7ec69a42f1df4eeca02f98999", [ null, [ @@ -81744,6 +81753,32 @@ {} ] ], + "min-height-applies-to-013.xht": [ + "ec0137bba43dc40496ad6cd3a0f09748d410e1da", + [ + null, + [ + [ + "/css/reference/pass_if_square_96px_black.html", + "==" + ] + ], + {} + ] + ], + "min-height-applies-to-014.xht": [ + "48ccd1914fd7835bc066332149b967969853a2be", + [ + null, + [ + [ + "/css/reference/pass_if_square_96px_black.html", + "==" + ] + ], + {} + ] + ], "min-height-applies-to-015.xht": [ "158c9a29c7c924517f8e3e21bbeaac23fe70bed6", [ @@ -237521,6 +237556,19 @@ ] }, "scroll-animations": { + "animation-with-animatable-interface.html": [ + "4c3fa027fd073e5e86eafd8d10dc898ab0fb88a5", + [ + null, + [ + [ + "/scroll-animations/animation-ref.html", + "==" + ] + ], + {} + ] + ], "animation-with-display-none.html": [ "310cb5fc8b0ca7c0ab042a1aecf664528dc3b5eb", [ @@ -272566,7 +272614,7 @@ [] ], "c414-flt-fit-000-ref.xht": [ - "ae8e72079a6d60287e093aa330c08dd7062d7bcd", + "49f2b02d99895d35897daaad5e719ae5cd1421d1", [] ], "c414-flt-fit-001-ref.xht": [ @@ -330696,7 +330744,7 @@ [] ], "load-into-the-iframe.html": [ - "05a80be73745465ddcd65bc5745a674824974590", + "9e08eb587ab38283b53034128ca36c82b545d03f", [] ], "navigation-changed-iframe.html": [ @@ -333975,10 +334023,6 @@ } }, "interfaces": { - "BackgroundSync.idl": [ - "c52dcdb89843e80e9bd89591df76ba26f7172dab", - [] - ], "CSP.idl": [ "e427ae8801a7863a59d9507d384e075e34bd4731", [] @@ -334047,6 +334091,10 @@ "cf3d75125402197f7b1a52b4a38fe9acc168643f", [] ], + "background-sync.idl": [ + "c52dcdb89843e80e9bd89591df76ba26f7172dab", + [] + ], "badging.idl": [ "01481820935a08675e4bef734aada27b3151e814", [] @@ -334821,7 +334869,7 @@ ] }, "lint.ignore": [ - "078a706f079c3cfc2a88dbd8ce9b3b290d1ffcfb", + "9d057e76edc3bb6a94adcff9c897ef48e2235e3c", [] ], "loading": { @@ -334882,6 +334930,12 @@ [] ] }, + "manifest": { + "META.yml": [ + "013fc58a29fa7f83e5e6a034d3a343bc87ab629d", + [] + ] + }, "mathml": { "META.yml": [ "5aea9088d744bfa835ca91217c9a6d9f60253e3e", @@ -341603,6 +341657,10 @@ "39149915cc573b3f8a5e0e01a10729494aec59f1", [] ], + "embed-navigation-is-not-intercepted-iframe.html": [ + "5e86f67735f778c590eeb5fd29567dbb23033055", + [] + ], "embedded-content-from-server.html": [ "ff50a9c752690d6726d0cd6d9820947f1bc5d4b0", [] @@ -342175,6 +342233,10 @@ "0aeb81951ede48c62780fe723013b2ad77ffe336", [] ], + "object-navigation-is-not-intercepted-iframe.html": [ + "5c8ab79a500a93ce04e6704e5762eacd717c4f71", + [] + ], "onactivate-throw-error-from-nested-event-worker.js": [ "7c97014fd042affbd38d77fa538d8a584d7c72f7", [] @@ -344501,7 +344563,7 @@ [] ], "README.md": [ - "9342aded298bdd0e5daac12289c78163d1d5bec5", + "2203727ef96f313cd7c5e6afb766a07b70969cec", [] ], "__init__.py": [ @@ -344509,7 +344571,7 @@ [] ], "commands.json": [ - "15182cc9e6531d5a5ba3d42c9f00821946c5e8a3", + "421b0a636c2593bb3aa133b133373b54be6796ea", [] ], "documentation": { @@ -344519,7 +344581,7 @@ ] }, "frontend.py": [ - "59a1cff2ebd0efda06fadd144a84b5d35b2d81c8", + "6d35d4c3826311da2b36b9f2efe6dd7bfd0cc7a8", [] ], "retry.py": [ @@ -344891,7 +344953,7 @@ ], "quic": { "README.md": [ - "5a64b701cfb85900c219463624e6afa299a3813d", + "ef1d66e3220285f8b1eb0e0a7d188a09350c3fd8", [] ], "__init__.py": [ @@ -350113,7 +350175,7 @@ [] ], "run.py": [ - "a9fdeada1ec780a50093f221673cf406864e36c2", + "95d9369f2a888657c23315d8d97b9eb636e3db96", [] ], "testfiles.py": [ @@ -350138,7 +350200,7 @@ [] ], "test_run.py": [ - "ef58ec41b2b4cfc14955b701627d047af78f29bc", + "d533977e0c7436010ec9d81c826dd6f8453a9785", [] ], "test_testfiles.py": [ @@ -352045,7 +352107,7 @@ [] ], "keyframe-tests.js": [ - "3cf3cf22bf8666a3800dfd3cc3cd4e37c7f7598e", + "43e0d7575f2cc47294e2435f311e26c66bb52a36", [] ], "keyframe-utils.js": [ @@ -357794,7 +357856,7 @@ "testharness": { "BackgroundSync": { "idlharness.https.any.js": [ - "120477a51e61ad32f629e991a12e8bc99c4dbb7e", + "29fb87b8263e87a0d570c874a9531e64d5d76b83", [ "BackgroundSync/idlharness.https.any.html", { @@ -401818,6 +401880,13 @@ {} ] ], + "text-overflow-ellipsis-self-painting.html": [ + "2810f8dae1810f3385fe978f0066210cfc24fdf6", + [ + null, + {} + ] + ], "text-overflow-ellipsis-width-001.html": [ "2042111588254242c202527589507b40ef0c3538", [ @@ -455975,7 +456044,7 @@ ] ], "iframe_sandbox_allow_top_navigation-1.html": [ - "feb876608aca54d9bbe9113a9e5a28fa1d2e0ee2", + "b033ec44d24e106a265bf480296f09cbe3e27c32", [ null, {} @@ -455989,7 +456058,7 @@ ] ], "iframe_sandbox_allow_top_navigation-3.html": [ - "c7c56d670e5a32884b39e4034f83f5443cd76290", + "c3e5dc1fd6a0c5786dfeed57699bbf37901fa08e", [ null, {} @@ -468677,6 +468746,15 @@ ] ] }, + "manifest": { + "link-rel-manifest.html": [ + "8eb39703a082daedc921b156287b014eaf836665", + [ + null, + {} + ] + ] + }, "mathml": { "presentation-markup": { "direction": { @@ -474818,6 +474896,13 @@ {} ] ], + "parent-no-child-bad-subdomain.sub.https.html": [ + "2653dabd980b8caf65cf84b4765a2cfc0c4cb5c9", + [ + null, + {} + ] + ], "parent-no-child-yes-same.sub.https.html": [ "4239e1644638b04d330ff70f8a27e97f5af88ab0", [ @@ -474832,6 +474917,13 @@ {} ] ], + "parent-no-child-yes-with-params-subdomain.sub.https.html": [ + "164a19ff381f9f351af805cf8ff73ddac92bafb1", + [ + null, + {} + ] + ], "parent-no-child1-no-child2-yes-children-different.sub.https.html": [ "3c879391a4571398a4254a15906411d5e844c596", [ @@ -491849,7 +491941,7 @@ ] ], "embed-and-object-are-not-intercepted.https.html": [ - "34556a785aea6810243ca473fc40066d16265116", + "581dbeca9772268ab85a2b50d8f7f45cf61e781f", [ null, {} @@ -509905,7 +509997,7 @@ ] ], "animate.html": [ - "00e68b429621f65e68285bda2fa04ccb39f3f8e9", + "dad633ba9a2ca0ed10574c973b036f76b738d0db", [ null, {} @@ -535897,20 +535989,6 @@ {} ] ], - "min-height-applies-to-013.xht": [ - "13ddef79ec10b58218885d267dc47f4e5ae90ec9", - [ - null, - {} - ] - ], - "min-height-applies-to-014.xht": [ - "2abb772d9b53644c2d46d2bbbf100273cf38258a", - [ - null, - {} - ] - ], "min-width-014.xht": [ "611e40506bcc1e0ecfcce3ad84ea005efa221b9d", [ diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini new file mode 100644 index 00000000000..f29da48a2a0 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-003.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-003.html] + [Miss float below something else] + expected: FAIL + diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini new file mode 100644 index 00000000000..4bfb0c2053a --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-004.html] + [Miss float below something else] + expected: FAIL + diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini new file mode 100644 index 00000000000..baa9f1a7541 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-005.html] + [Miss clipped float] + expected: FAIL + diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini b/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini new file mode 100644 index 00000000000..9206a00a170 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-013.xht.ini @@ -0,0 +1,2 @@ +[min-height-applies-to-013.xht] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini b/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini new file mode 100644 index 00000000000..f6e7c61b425 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/normal-flow/min-height-applies-to-014.xht.ini @@ -0,0 +1,2 @@ +[min-height-applies-to-014.xht] + 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/css-ui/text-overflow-ellipsis-self-painting.html.ini b/tests/wpt/metadata/css/css-ui/text-overflow-ellipsis-self-painting.html.ini new file mode 100644 index 00000000000..86a5270bfde --- /dev/null +++ b/tests/wpt/metadata/css/css-ui/text-overflow-ellipsis-self-painting.html.ini @@ -0,0 +1,4 @@ +[text-overflow-ellipsis-self-painting.html] + [CSS Basic User Interface Test: ellipsis when there are self-painting objects] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini index 5733d536fd3..85e94926cb3 100644 --- a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini @@ -21,6 +21,3 @@ [test the top of layer] expected: FAIL - [test some point of the element: top left corner] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini deleted file mode 100644 index e181af5397f..00000000000 --- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[elementsFromPoint-invalid-cases.html] - [The root element is the last element returned for otherwise empty queries within the viewport] - expected: FAIL - diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 7a3bb3e6f0d..ed08877281b 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -321,15 +321,18 @@ [<iframe>: combined response Content-Type: */* text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html */*] + [<iframe>: combined response Content-Type: text/html;" \\" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] + [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] expected: FAIL - [<iframe>: separate response Content-Type: text/html;x=" text/plain] + [<iframe>: separate response Content-Type: text/plain */*] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html;" \\" 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..b2ffc8abf78 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,6 @@ [separate text/javascript x/x] expected: FAIL - [separate text/javascript;charset=windows-1252 error text/javascript] + [separate text/javascript error] expected: FAIL diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini index 61682d248e2..30e1b851fd4 100644 --- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,6 +11,3 @@ [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] expected: FAIL - [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini index 75d75b4cda2..51f8272a6de 100644 --- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini @@ -1,4 +1,4 @@ -[traverse_the_history_2.html] +[traverse_the_history_3.html] [Multiple history traversals, last would be aborted] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini index 2532dceabac..fd369192a02 100644 --- a/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini +++ b/tests/wpt/metadata/html/browsers/windows/embedded-opener-remove-frame.html.ini @@ -1,5 +1,5 @@ [embedded-opener-remove-frame.html] - expected: CRASH + expected: TIMEOUT [opener and "removed" embedded documents] expected: FAIL @@ -7,5 +7,5 @@ expected: FAIL [opener of discarded auxiliary browsing context] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/html/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 2a166bb97b7..fc37df7e3fa 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,6 +1,6 @@ [iframe_sandbox_popups_escaping-1.html] type: testharness - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] expected: 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/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini deleted file mode 100644 index fca4d908c89..00000000000 --- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[module-static-import-delayed.html] - [document.write in an imported module] - expected: FAIL - diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini index 0cef5158fae..01f7b72cbe7 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini @@ -4,3 +4,6 @@ [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] expected: TIMEOUT + [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] + expected: FAIL + diff --git a/tests/wpt/metadata/webmessaging/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/webmessaging/without-ports/018.html.ini b/tests/wpt/metadata/webmessaging/without-ports/018.html.ini deleted file mode 100644 index 663a1f8fa30..00000000000 --- a/tests/wpt/metadata/webmessaging/without-ports/018.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[018.html] - expected: TIMEOUT - [origin of the script that invoked the method, javascript:] - expected: TIMEOUT - diff --git a/tests/wpt/web-platform-tests/BackgroundSync/idlharness.https.any.js b/tests/wpt/web-platform-tests/BackgroundSync/idlharness.https.any.js index 120477a51e6..29fb87b8263 100644 --- a/tests/wpt/web-platform-tests/BackgroundSync/idlharness.https.any.js +++ b/tests/wpt/web-platform-tests/BackgroundSync/idlharness.https.any.js @@ -4,10 +4,10 @@ 'use strict'; -// https://wicg.github.io/BackgroundSync/spec/ +// https://wicg.github.io/background-sync/spec/ idl_test( - ['BackgroundSync'], + ['background-sync'], ['service-workers', 'html', 'dom'], idlArray => { const isServiceWorker = location.pathname.includes('.serviceworker.'); diff --git a/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000-ref.xht b/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000-ref.xht index ae8e72079a6..49f2b02d998 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000-ref.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000-ref.xht @@ -11,6 +11,7 @@ <style type="text/css"><![CDATA[ table { + font: 16px monospace; border-collapse: separate; border: blue solid medium; border-spacing: 0px; @@ -33,7 +34,6 @@ td { - color: navy; padding: 0; } ]]></style> diff --git a/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000.xht b/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000.xht index 099c6716354..15a53e4aa02 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/css1/c414-flt-fit-000.xht @@ -10,8 +10,8 @@ <link rel="match" href="c414-flt-fit-000-ref.xht" /> <style type="text/css"><![CDATA[ - div { border: solid blue; padding: 1em; width: 14em; margin: 10px; } - div p { margin: 0; width: 5em; float: left; color: navy; } + div { font: 16px monospace; border: solid blue; padding: 1em; width: 14em; margin: 10px; } + div p { margin: 0; width: 5em; float: left; } ]]></style> </head> @@ -22,7 +22,7 @@ <p> 2 </p> <p> 4 </p> 3 - 5                     + 5 <!-- the font is set to monospace so we know how wide a nbsp is --> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-013.xht b/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-013.xht index 13ddef79ec1..ec0137bba43 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-013.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-013.xht @@ -5,6 +5,7 @@ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" /> <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#propdef-min-height" /> <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#min-max-heights" /> + <link rel="match" href="../../reference/pass_if_square_96px_black.html" /> <meta name="flags" content="" /> <meta name="assert" content="The 'min-height' property applies to elements with 'display' set to 'table'." /> <style type="text/css"> @@ -36,4 +37,4 @@ </div> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-014.xht b/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-014.xht index 2abb772d9b5..48ccd1914fd 100644 --- a/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-014.xht +++ b/tests/wpt/web-platform-tests/css/CSS2/normal-flow/min-height-applies-to-014.xht @@ -5,6 +5,7 @@ <link rel="author" title="Microsoft" href="http://www.microsoft.com/" /> <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#propdef-min-height" /> <link rel="help" href="http://www.w3.org/TR/CSS21/visudet.html#min-max-heights" /> + <link rel="match" href="../../reference/pass_if_square_96px_black.html" /> <meta name="flags" content="" /> <meta name="assert" content="The 'min-height' property applies to elements with 'display' set to 'inline-table'." /> <style type="text/css"> @@ -36,4 +37,4 @@ </div> </div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-ui/text-overflow-ellipsis-self-painting.html b/tests/wpt/web-platform-tests/css/css-ui/text-overflow-ellipsis-self-painting.html new file mode 100644 index 00000000000..2810f8dae18 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-ui/text-overflow-ellipsis-self-painting.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<title>CSS Basic User Interface Test: ellipsis when there are self-painting objects</title> +<link rel="help" href="http://www.w3.org/TR/css3-ui/#text-overflow"> +<link rel="help" href="https://crbug.com/1005645"> +<link rel="author" href="mailto:kojii@chromium.org"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> +.test { + width: 5ch; + white-space: nowrap; +} +.ellipsis { + text-overflow: ellipsis; + overflow: hidden; +} +span { + display: inline-block; + width: 16px; + height: 16px; + background: red; + opacity: 0.3; +} +</style> +<body> + <div id="test" class="test ellipsis">1234567890 <span></span></div> + <div id="ref" class="test">1234567890 <span></span></div> +<script> +test(() => { + const ref_element = document.getElementById('ref'); + const test_element = document.getElementById('test'); + assert_equals(test_element.scrollWidth, ref_element.scrollWidth); +}); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html index feb876608ac..b033ec44d24 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-1.html @@ -8,7 +8,6 @@ <script src="/resources/testharnessreport.js"></script> </head> <body> - <iframe sandbox="allow-top-navigation allow-scripts"></iframe> <script> // We are the main test page. Open a popup, so that we can // can experiment navigation of the top frame. @@ -17,7 +16,8 @@ assert_equals(e.data, "can navigate"); e.source.close(); })); - window.open("support/load-into-the-iframe.html"); + let sandbox = "allow-top-navigation allow-scripts"; + window.open("support/load-into-the-iframe.html?sandbox=" + sandbox); }, "Frames with `allow-top-navigation` should be able to navigate the top frame."); </script> </body> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html index c7c56d670e5..c3e5dc1fd6a 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html @@ -9,10 +9,6 @@ <script src="/resources/testharnessreport.js"></script> </head> <body> - <!-- Specifying both allow-top-navigation and - allow-top-navigation-by-user-activation is a document conformance - error: allow-top-navigation-by-user-activation will have no effect. --> - <iframe sandbox="allow-top-navigation allow-top-navigation-by-user-activation allow-scripts"></iframe> <script> // We are the main test page. Open a popup, so that we can // can experiment navigation of the top frame. @@ -21,7 +17,11 @@ assert_equals(e.data, "can navigate"); e.source.close(); })); - window.open("support/load-into-the-iframe.html"); + // Specifying both allow-top-navigation and + // allow-top-navigation-by-user-activation is a document conformance + // error: allow-top-navigation-by-user-activation will have no effect. + let sandbox = "allow-top-navigation allow-top-navigation-by-user-activation allow-scripts"; + window.open("support/load-into-the-iframe.html?sandbox=" + sandbox); }, "Frames with `allow-top-navigation` should be able to navigate the top frame even when `allow-top-navigation-by-user-activation` is set."); </script> </body> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html index 05a80be7374..9e08eb587ab 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/load-into-the-iframe.html @@ -7,13 +7,18 @@ <body> <iframe sandbox="allow-scripts"></iframe> <script> + let frame = document.querySelector("iframe"); + let sandbox = new URL(location.href).searchParams.get("sandbox"); + if (sandbox) { + frame.sandbox = sandbox; + } // We're the popup (i.e. a top frame). Load into the iframe the page // trying to modifying the top frame and transmit the result to our // opener. onmessage = function(e) { opener.postMessage(e.data, "*") } - document.querySelector("iframe").src = "iframe-that-performs-top-navigation-on-popup.html"; + frame.src = "iframe-that-performs-top-navigation-on-popup.html"; </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/interfaces/BackgroundSync.idl b/tests/wpt/web-platform-tests/interfaces/background-sync.idl index c52dcdb8984..c52dcdb8984 100644 --- a/tests/wpt/web-platform-tests/interfaces/BackgroundSync.idl +++ b/tests/wpt/web-platform-tests/interfaces/background-sync.idl diff --git a/tests/wpt/web-platform-tests/lint.ignore b/tests/wpt/web-platform-tests/lint.ignore index 078a706f079..9d057e76edc 100644 --- a/tests/wpt/web-platform-tests/lint.ignore +++ b/tests/wpt/web-platform-tests/lint.ignore @@ -757,6 +757,7 @@ TESTHARNESS-IN-OTHER-TYPE: html/semantics/interactive-elements/the-summary-eleme TESTHARNESS-IN-OTHER-TYPE: html/semantics/text-level-semantics/the-ruby-element/rt-without-ruby-crash.html TESTHARNESS-IN-OTHER-TYPE: portals/portals-no-frame-crash.html TESTHARNESS-IN-OTHER-TYPE: quirks/table-replaced-descendant-percentage-height-crash.html +TESTHARNESS-IN-OTHER-TYPE: scroll-animations/null-scroll-source-crash.html TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-circular-filter-reference-crash.html TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-under-clip-path-crash.html TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-under-defs-crash.html diff --git a/tests/wpt/web-platform-tests/manifest/META.yml b/tests/wpt/web-platform-tests/manifest/META.yml new file mode 100644 index 00000000000..013fc58a29f --- /dev/null +++ b/tests/wpt/web-platform-tests/manifest/META.yml @@ -0,0 +1,5 @@ +spec: https://w3c.github.io/manifest/ +suggested_reviewers: + - marcoscaceres + - mgiuca + - kenchris diff --git a/tests/wpt/web-platform-tests/manifest/link-rel-manifest.html b/tests/wpt/web-platform-tests/manifest/link-rel-manifest.html new file mode 100644 index 00000000000..8eb39703a08 --- /dev/null +++ b/tests/wpt/web-platform-tests/manifest/link-rel-manifest.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<title>Test that "manifest" is a supported value for the `rel` of a `link`</title> +<link rel="help" href="https://w3c.github.io/manifest"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +test(() => { + const result = document.createElement("link").relList.supports("manifest") + assert_true(result, "Expected true if manifest is supported as a link relationship"); +}, 'link element supports a rel value of "manifest".'); +</script> diff --git a/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-bad-subdomain.sub.https.html b/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-bad-subdomain.sub.https.html new file mode 100644 index 00000000000..2653dabd980 --- /dev/null +++ b/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-bad-subdomain.sub.https.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Parent is not isolated, child attempts to isolate but uses a bad header value, child is a subdomain of the parent</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<div id="log"></div> + +<script type="module"> +import { insertIframe, sendWasmModule, setBothDocumentDomains } from "./resources/helpers.mjs"; + +for (const badValue of ["", "?0", "true", "\"?1\"", "1", "?2", "(?1)"]) { + let frameWindow; + promise_test(async () => { + frameWindow = await insertIframe("{{hosts[][www]}}", badValue); + }, `"${badValue}": frame insertion`); + + // Since the header values are bad there should be no isolation + + promise_test(async () => { + const whatHappened = await sendWasmModule(frameWindow); + + assert_equals(whatHappened, "WebAssembly.Module message received"); + }, `"${badValue}": message event must occur for`); + + promise_test(async () => { + await setBothDocumentDomains(frameWindow); + + // Must not throw + frameWindow.document; + }, `"${badValue}": setting document.domain must give sync access`); +} +</script> diff --git a/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-yes-with-params-subdomain.sub.https.html b/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-yes-with-params-subdomain.sub.https.html new file mode 100644 index 00000000000..164a19ff381 --- /dev/null +++ b/tests/wpt/web-platform-tests/origin-isolation/parent-no-child-yes-with-params-subdomain.sub.https.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>Parent is not isolated, child is isolated using parameters on its structured header, child is a subdomain of the parent</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<div id="log"></div> + +<script type="module"> +import { insertIframe, sendWasmModule, setBothDocumentDomains } from "./resources/helpers.mjs"; + +let frameWindow; +promise_setup(async () => { + frameWindow = await insertIframe("{{hosts[][www]}}", "?1;param1;param2=value2"); +}); + +// Since they're different-origin, the child's isolation request is respected, +// so the parent ends up in the site-keyed agent cluster and the child in the +// origin-keyed one. + +promise_test(async () => { + const whatHappened = await sendWasmModule(frameWindow); + + assert_equals(whatHappened, "messageerror"); +}, "messageerror event must occur"); + +promise_test(async () => { + await setBothDocumentDomains(frameWindow); + + assert_throws_dom("SecurityError", DOMException, () => { + frameWindow.document; + }); +}, "setting document.domain should no-op instead of giving sync access"); +</script> diff --git a/tests/wpt/web-platform-tests/scroll-animations/animation-with-animatable-interface.html b/tests/wpt/web-platform-tests/scroll-animations/animation-with-animatable-interface.html new file mode 100644 index 00000000000..4c3fa027fd0 --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/animation-with-animatable-interface.html @@ -0,0 +1,70 @@ +<html class="reftest-wait"> +<title>Scroll-linked animation with Animatable interface</title> +<link rel="help" href="https://drafts.csswg.org/scroll-animations/"> +<meta name="assert" content="ScrollTimeline should work with animatable +interface"> +<link rel="match" href="animation-ref.html"> + +<script src="/web-animations/testcommon.js"></script> +<script src="/common/reftest-wait.js"></script> + +<style> + #box { + width: 100px; + height: 100px; + background-color: green; + } + + #covered { + width: 100px; + height: 100px; + background-color: red; + } + + #scroller { + overflow: auto; + height: 100px; + width: 100px; + will-change: transform; + /* force compositing */ + } + + #contents { + height: 1000px; + width: 100%; + } +</style> + +<div id="box"></div> +<div id="covered"></div> +<div id="scroller"> + <div id="contents"></div> +</div> + +<script> + const scroller = document.getElementById('scroller'); + const scroll_timeline = new ScrollTimeline({ + scrollSource: scroller, + timeRange: 1000 + }); + const box = document.getElementById('box'); + const animation = box.animate( + [ + { transform: 'translateY(0)', opacity: 1 }, + { transform: 'translateY(200px)', opacity: 0 } + ], { + duration: 1000, + timeline: scroll_timeline + } + ); + + animation.ready.then(() => { + // Move the scroller to the halfway point. + const maxScroll = scroller.scrollHeight - scroller.clientHeight; + scroller.scrollTop = 0.5 * maxScroll; + + waitForAnimationFrames(2).then(_ => { + takeScreenshot(); + }); + }); +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/scroll-animations/null-scroll-source-crash.html b/tests/wpt/web-platform-tests/scroll-animations/null-scroll-source-crash.html new file mode 100644 index 00000000000..5ffc522d68e --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/null-scroll-source-crash.html @@ -0,0 +1,26 @@ +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1088319"> +<meta name="assert" content="Playing animation with null scroll source should not crash."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + html { + overflow: scroll; + } + + body { + overflow: scroll; + } +</style> +<div id="box"></div> +<script> + test(() => { + const effect = new KeyframeEffect(box, []); + const timeline = new ScrollTimeline({ + timeRange: 1000 + }); + const animation = new Animation(effect, timeline); + assert_equals(document.scrollingElement, null, + "This test relies on scrolling element being nil"); + animation.play(); + }, "Playing animation with null scroll source should not crash"); +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https.html index 34556a785ae..581dbeca977 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https.html @@ -75,4 +75,30 @@ promise_test(t => { }); }, 'requests for OBJECT elements of an image should not be intercepted by service workers'); +promise_test(t => { + let frame; + return with_iframe('resources/object-navigation-is-not-intercepted-iframe.html') + .then(f => { + frame = f; + t.add_cleanup(() => { frame.remove(); }); + return frame.contentWindow.test_promise; + }) + .then(result => { + assert_equals(result, 'request for embedded content was not intercepted'); + }); + }, 'post-load navigation of OBJECT elements should not be intercepted by service workers'); + + +promise_test(t => { + let frame; + return with_iframe('resources/embed-navigation-is-not-intercepted-iframe.html') + .then(f => { + frame = f; + t.add_cleanup(() => { frame.remove(); }); + return frame.contentWindow.test_promise; + }) + .then(result => { + assert_equals(result, 'request for embedded content was not intercepted'); + }); + }, 'post-load navigation of EMBED elements should not be intercepted by service workers'); </script> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/embed-navigation-is-not-intercepted-iframe.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/embed-navigation-is-not-intercepted-iframe.html new file mode 100644 index 00000000000..5e86f67735f --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/embed-navigation-is-not-intercepted-iframe.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>iframe for embed-and-object-are-not-intercepted test</title> +<body> +<script> +// The EMBED element will call this with the result about whether the EMBED +// request was intercepted by the service worker. +var report_result; + +// Our parent (the root frame of the test) will examine this to get the result. +var test_promise = new Promise(resolve => { + report_result = resolve; + }); + +let el = document.createElement('embed'); +el.src = "/common/blank.html"; +el.addEventListener('load', _ => { + window[0].location = "/service-workers/service-worker/resources/embedded-content-from-server.html"; +}, { once: true }); +document.body.appendChild(el); +</script> + +</body> diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/object-navigation-is-not-intercepted-iframe.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/object-navigation-is-not-intercepted-iframe.html new file mode 100644 index 00000000000..5c8ab79a500 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/object-navigation-is-not-intercepted-iframe.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>iframe for embed-and-object-are-not-intercepted test</title> +<body> +<script> +// The OBJECT element will call this with the result about whether the OBJECT +// request was intercepted by the service worker. +var report_result; + +// Our parent (the root frame of the test) will examine this to get the result. +var test_promise = new Promise(resolve => { + report_result = resolve; + }); + +let el = document.createElement('object'); +el.data = "/common/blank.html"; +el.addEventListener('load', _ => { + window[0].location = "/service-workers/service-worker/resources/embedded-content-from-server.html"; +}, { once: true }); +document.body.appendChild(el); +</script> + +</body> + diff --git a/tests/wpt/web-platform-tests/tools/docker/README.md b/tests/wpt/web-platform-tests/tools/docker/README.md index 9342aded298..2203727ef96 100644 --- a/tests/wpt/web-platform-tests/tools/docker/README.md +++ b/tests/wpt/web-platform-tests/tools/docker/README.md @@ -4,15 +4,13 @@ images must be updated as well. Doing this requires you be part of the 'webplatformtests' organization on Docker Hub; ping @Hexcles or @stephenmcgruer if you are not a member. -In this directory, run the following, where `<tag>` is of the form -`webplatformtests/wpt:{current-version + 0.01}`: +The tag for a new docker image is of the form +`webplatformtests/wpt:{current-version + 0.01}` -```sh -# --pull forces Docker to get the newest base image. -docker build --pull -t <tag> . -docker push <tag> -``` +To update the docker image: -Then update the following Taskcluster configurations to use the new image: -* `.taskcluster.yml` (the decision task) -* `tools/ci/tc/tasks/test.yml` (all the other tasks) +* Update the following Taskcluster configurations to use the new image: + - `.taskcluster.yml` (the decision task) + - `tools/ci/tc/tasks/test.yml` (all the other tasks) + +* Run `wpt docker-push` diff --git a/tests/wpt/web-platform-tests/tools/docker/commands.json b/tests/wpt/web-platform-tests/tools/docker/commands.json index 15182cc9e65..421b0a636c2 100644 --- a/tests/wpt/web-platform-tests/tools/docker/commands.json +++ b/tests/wpt/web-platform-tests/tools/docker/commands.json @@ -1,6 +1,26 @@ { - "docker-run": {"path": "frontend.py", "script": "run", "parser": "parser_run", "help": "Run wpt docker image", - "virtualenv": false}, - "docker-build": {"path": "frontend.py", "script": "build", "help": "Build wpt docker image", - "virtualenv": false} + "docker-run": { + "path": "frontend.py", + "script": "run", + "parser": "parser_run", + "help": "Run wpt docker image", + "virtualenv": false + }, + "docker-build": { + "path": "frontend.py", + "script": "build", + "help": "Build wpt docker image", + "virtualenv": false + }, + "docker-push": { + "path": "frontend.py", + "script": "push", + "parser": "parser_push", + "help": "Build and push wpt docker image", + "virtualenv": true, + "install": [ + "requests", + "pyyaml" + ] + } } diff --git a/tests/wpt/web-platform-tests/tools/docker/frontend.py b/tests/wpt/web-platform-tests/tools/docker/frontend.py index 59a1cff2ebd..6d35d4c3826 100644 --- a/tests/wpt/web-platform-tests/tools/docker/frontend.py +++ b/tests/wpt/web-platform-tests/tools/docker/frontend.py @@ -1,18 +1,111 @@ import argparse -import subprocess +import logging import os +import re +import subprocess +import sys + +from six import iteritems here = os.path.abspath(os.path.dirname(__file__)) wpt_root = os.path.abspath(os.path.join(here, os.pardir, os.pardir)) -def build(*args, **kwargs): +logger = logging.getLogger() + + +def build(tag="wpt:local", *args, **kwargs): subprocess.check_call(["docker", "build", "--pull", - "--tag", "wpt:local", + "--tag", tag, here]) +def parser_push(): + parser = argparse.ArgumentParser() + parser.add_argument("--tag", action="store", + help="Tag to use (default is taken from .taskcluster.yml)") + parser.add_argument("--force", action="store_true", + help="Ignore warnings and push anyway") + return parser + + +def walk_yaml(root, target): + rv = [] + if isinstance(root, list): + for value in root: + if isinstance(value, (dict, list)): + rv.extend(walk_yaml(value, target)) + elif isinstance(root, dict): + for key, value in iteritems(root): + if isinstance(value, (dict, list)): + rv.extend(walk_yaml(value, target)) + elif key == target: + rv.append(value) + return rv + + +def read_image_name(): + import yaml + with open(os.path.join(wpt_root, ".taskcluster.yml")) as f: + taskcluster_data = yaml.safe_load(f) + taskcluster_values = set(walk_yaml(taskcluster_data, "image")) + with open(os.path.join(wpt_root, "tools", "ci", "tc", "tasks", "test.yml")) as f: + test_data = yaml.safe_load(f) + tests_value = test_data["components"]["wpt-base"]["image"] + return taskcluster_values, tests_value + + +def lookup_tag(tag): + import requests + org, repo_version = tag.split("/", 1) + repo, version = repo_version.rsplit(":", 1) + resp = requests.get("https://hub.docker.com/v2/repositories/%s/%s/tags/%s" % + (org, repo, version)) + if resp.status_code == 200: + return True + if resp.status_code == 404: + return False + resp.raise_for_status() + + +def push(venv, tag=None, force=False, *args, **kwargs): + taskcluster_tags, tests_tag = read_image_name() + + taskcluster_tag = taskcluster_tags.pop() + + error_log = logger.warning if force else logger.error + if len(taskcluster_tags) != 0 or tests_tag != taskcluster_tag: + error_log("Image names in .taskcluster.yml and tools/ci/tc/tasks/test.yml " + "don't match.") + if not force: + sys.exit(1) + if tag is not None and tag != taskcluster_tag: + error_log("Supplied tag doesn't match .taskcluster.yml or " + "tools/ci/tc/tasks/test.yml; remember to update before pushing") + if not force: + sys.exit(1) + if tag is None: + logger.info("Using tag %s from .taskcluster.yml" % taskcluster_tag) + tag = taskcluster_tag + + tag_re = re.compile(r"webplatformtests/wpt:\d\.\d+") + if not tag_re.match(tag): + error_log("Tag doesn't match expected format webplatformtests/wpt:0.x") + if not force: + sys.exit(1) + + if lookup_tag(tag): + # No override for this case + logger.critical("Tag %s already exists" % tag) + sys.exit(1) + + build(tag) + subprocess.check_call(["docker", + "push", + tag]) + + def parser_run(): parser = argparse.ArgumentParser() parser.add_argument("--rebuild", action="store_true", help="Force rebuild of image") diff --git a/tests/wpt/web-platform-tests/tools/quic/README.md b/tests/wpt/web-platform-tests/tools/quic/README.md index 5a64b701cfb..ef1d66e3220 100644 --- a/tests/wpt/web-platform-tests/tools/quic/README.md +++ b/tests/wpt/web-platform-tests/tools/quic/README.md @@ -11,20 +11,23 @@ authors can implement custom handlers by putting python scripts in ## Custom Handlers The QuicTransportServer calls functions defined in each handler script. - - handle_client_indication is called during the client indication process. + - `handle_client_indication` is called during the client indication process. This function is called with three arguments: - - connection: aioquic.asyncio.QuicConnectionProtocol - - origin: str The origin of the initiator. - - query: Dict[str, str] The dictionary of query parameters of the URL of the - connection. + - `connection`: [`aioquic.asyncio.QuicConnectionProtocol`](protocol) + - `origin`: `str` The origin of the initiator. + - `query`: `Dict[str, str]` The dictionary of query parameters of the URL of the + connection. A handler can abort the client indication process either by raising an exception or closing the connection. - - handle_event is called when a QuicEvent arrives. - - connection: aioquic.asyncio.QuicConnectionProtocol - - event: aioquic.quic.events.QuicEvent + - `handle_event` is called when a [`QuicEvent`](event) arrives. + - `connection`: [`aioquic.asyncio.QuicConnectionProtocol`](protocol) + - `event`: [`aioquic.quic.events.QuicEvent`](event) This function is not called until the client indication process finishes successfully. + +[protocol]: https://aioquic.readthedocs.io/en/latest/asyncio.html#aioquic.asyncio.QuicConnectionProtocol +[event]: https://aioquic.readthedocs.io/en/latest/quic.html#module-aioquic.quic.events diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py index a9fdeada1ec..95d9369f2a8 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/run.py +++ b/tests/wpt/web-platform-tests/tools/wpt/run.py @@ -156,11 +156,10 @@ class BrowserSetup(object): name = None browser_cls = None - def __init__(self, venv, prompt=True, sub_product=None): + def __init__(self, venv, prompt=True): self.browser = self.browser_cls(logger) self.venv = venv self.prompt = prompt - self.sub_product = sub_product def prompt_install(self, component): if not self.prompt: @@ -588,8 +587,10 @@ class Sauce(BrowserSetup): raise NotImplementedError def setup_kwargs(self, kwargs): - kwargs.set_if_none("sauce_browser", self.sub_product[0]) - kwargs.set_if_none("sauce_version", self.sub_product[1]) + if kwargs["sauce_browser"] is None: + raise WptrunError("Missing required argument --sauce-browser") + if kwargs["sauce_version"] is None: + raise WptrunError("Missing required argument --sauce-version") kwargs["test_types"] = ["testharness", "reftest"] @@ -719,9 +720,7 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs): kwargs = utils.Kwargs(iteritems(kwargs)) - product_parts = kwargs["product"].split(":") - kwargs["product"] = product_parts[0].replace("-", "_") - sub_product = product_parts[1:] + kwargs["product"] = kwargs["product"].replace("-", "_") check_environ(kwargs["product"]) args_general(kwargs) @@ -729,7 +728,7 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs): if kwargs["product"] not in product_setup: raise WptrunError("Unsupported product %s" % kwargs["product"]) - setup_cls = product_setup[kwargs["product"]](venv, prompt, sub_product) + setup_cls = product_setup[kwargs["product"]](venv, prompt) setup_cls.install_requirements() affected_revish = kwargs.pop("affected", None) diff --git a/tests/wpt/web-platform-tests/tools/wpt/tests/test_run.py b/tests/wpt/web-platform-tests/tools/wpt/tests/test_run.py index ef58ec41b2b..d533977e0c7 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/tests/test_run.py +++ b/tests/wpt/web-platform-tests/tools/wpt/tests/test_run.py @@ -69,5 +69,6 @@ def test_setup_wptrunner(venv, logger, product): kwargs["binary"] = sys.argv[0] kwargs["webdriver_binary"] = sys.argv[0] if kwargs["product"] == "sauce": - kwargs["product"] = "sauce:firefox:63" + kwargs["sauce_browser"] = "firefox" + kwargs["sauce_version"] = "63" run.setup_wptrunner(venv, **kwargs) diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html b/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html index 00e68b42962..dad633ba9a2 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html @@ -202,6 +202,18 @@ async_test(t => { }, 'Element.animate() correctly sets the Animation\'s timeline when ' + 'triggered on an element in a different document'); +for (const subtest of gAnimationTimelineTests) { + test(t => { + const anim = createDiv(t).animate(null, { timeline: subtest.timeline }); + assert_not_equals(anim, null, + 'An animation sohuld be created'); + assert_equals(anim.timeline, subtest.expectedTimeline, + 'Animation timeline should be '+ + subtest.expectedTimelineDescription); + }, 'Element.animate() correctly sets the Animation\'s timeline ' + + subtest.description + ' in KeyframeAnimationOptions.'); +} + test(t => { const anim = createDiv(t).animate(null, 2000); assert_equals(anim.playState, 'running'); diff --git a/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js b/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js index 3cf3cf22bf8..43e0d7575f2 100644 --- a/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js +++ b/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js @@ -796,3 +796,32 @@ const gInvalidKeyframeEffectOptionTests = [ { desc: 'a variable easing', input: { easing: 'var(--x)' } }, { desc: 'a multi-value easing', input: { easing: 'ease-in-out, ease-out' } }, ]; + +// There is currently only ScrollTimeline that can be constructed and used here +// beyond document timeline. Given that ScrollTimeline is not stable as of yet +// it's tested in scroll-animations/animation-with-animatable-interface.html. +const gAnimationTimelineTests = [ + { + expectedTimeline: document.timeline, + expectedTimelineDescription: 'document.timeline', + description: 'with no timeline parameter' + }, + { + timeline: undefined, + expectedTimeline: document.timeline, + expectedTimelineDescription: 'document.timeline', + description: 'with undefined timeline' + }, + { + timeline: null, + expectedTimeline: null, + expectedTimelineDescription: 'null', + description: 'with null timeline' + }, + { + timeline: document.timeline, + expectedTimeline: document.timeline, + expectedTimelineDescription: 'document.timeline', + description: 'with DocumentTimeline' + }, +];
\ No newline at end of file |