diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini index 947e223fb28..3a3d15b8406 100644 --- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini @@ -14,6 +14,9 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL + [Revoke blob URL after calling fetch, fetch should succeed] + expected: FAIL + [url-with-fetch.any.html] [Untitled] @@ -34,3 +37,6 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL + [Revoke blob URL after calling fetch, fetch should succeed] + expected: FAIL + diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index fcefdf9f231..b39f044c13a 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -19377,30 +19377,6 @@ {} ] ], - "animation-worklet/worklet-animation-pause-immediately.https.html": [ - [ - "/animation-worklet/worklet-animation-pause-immediately.https.html", - [ - [ - "/animation-worklet/references/translated-box-ref.html", - "==" - ] - ], - {} - ] - ], - "animation-worklet/worklet-animation-pause-resume.https.html": [ - [ - "/animation-worklet/worklet-animation-pause-resume.https.html", - [ - [ - "/animation-worklet/references/translated-box-ref.html", - "==" - ] - ], - {} - ] - ], "apng/animated-png-timeout.html": [ [ "/apng/animated-png-timeout.html", @@ -202124,11 +202100,6 @@ {} ] ], - "animation-worklet/references/translated-box-ref.html": [ - [ - {} - ] - ], "animation-worklet/resources/animator-iframe.html": [ [ {} @@ -289134,6 +289105,21 @@ {} ] ], + "fetch/stale-while-revalidate/stale-css.py": [ + [ + {} + ] + ], + "fetch/stale-while-revalidate/stale-image.py": [ + [ + {} + ] + ], + "fetch/stale-while-revalidate/stale-script.py": [ + [ + {} + ] + ], "fonts/AD.woff": [ [ {} @@ -289879,6 +289865,11 @@ {} ] ], + "fonts/noto/NotoNaskhArabic-regular.woff2": [ + [ + {} + ] + ], "fonts/noto/NotoSansAdlam-hinted/LICENSE_OFL.txt": [ [ {} @@ -307759,6 +307750,16 @@ {} ] ], + "resource-timing/resources/fake_responses_https.sub.html": [ + [ + {} + ] + ], + "resource-timing/resources/fake_responses_https_redirect.sub.html": [ + [ + {} + ] + ], "resource-timing/resources/green_frame.htm": [ [ {} @@ -311604,6 +311605,11 @@ {} ] ], + "service-workers/service-worker/resources/get-resultingClientId-worker.js": [ + [ + {} + ] + ], "service-workers/service-worker/resources/http-to-https-redirect-and-register-iframe.html": [ [ {} @@ -321044,16 +321050,6 @@ {} ] ], - "trusted-types/WorkerGlobalScope-importScripts.https.js": [ - [ - {} - ] - ], - "trusted-types/WorkerGlobalScope-importScripts.https.js.headers": [ - [ - {} - ] - ], "trusted-types/support/helper.sub.js": [ [ {} @@ -335489,12 +335485,6 @@ {} ] ], - "animation-worklet/worklet-animation-pause.https.html": [ - [ - "/animation-worklet/worklet-animation-pause.https.html", - {} - ] - ], "animation-worklet/worklet-animation-with-fill-mode.https.html": [ [ "/animation-worklet/worklet-animation-with-fill-mode.https.html", @@ -347547,6 +347537,18 @@ {} ] ], + "css/css-syntax/anb-parsing.html": [ + [ + "/css/css-syntax/anb-parsing.html", + {} + ] + ], + "css/css-syntax/anb-serialization.html": [ + [ + "/css/css-syntax/anb-serialization.html", + {} + ] + ], "css/css-syntax/charset-is-not-a-rule.html": [ [ "/css/css-syntax/charset-is-not-a-rule.html", @@ -347679,12 +347681,36 @@ {} ] ], + "css/css-syntax/inclusive-ranges.html": [ + [ + "/css/css-syntax/inclusive-ranges.html", + {} + ] + ], + "css/css-syntax/input-preprocessing.html": [ + [ + "/css/css-syntax/input-preprocessing.html", + {} + ] + ], + "css/css-syntax/unclosed-constructs.html": [ + [ + "/css/css-syntax/unclosed-constructs.html", + {} + ] + ], "css/css-syntax/unicode-range-selector.html": [ [ "/css/css-syntax/unicode-range-selector.html", {} ] ], + "css/css-syntax/whitespace.html": [ + [ + "/css/css-syntax/whitespace.html", + {} + ] + ], "css/css-tables/bounding-box-computation-1.html": [ [ "/css/css-tables/bounding-box-computation-1.html", @@ -369319,6 +369345,30 @@ {} ] ], + "fetch/stale-while-revalidate/fetch.tentative.html": [ + [ + "/fetch/stale-while-revalidate/fetch.tentative.html", + {} + ] + ], + "fetch/stale-while-revalidate/stale-css.tentative.html": [ + [ + "/fetch/stale-while-revalidate/stale-css.tentative.html", + {} + ] + ], + "fetch/stale-while-revalidate/stale-image.tentative.html": [ + [ + "/fetch/stale-while-revalidate/stale-image.tentative.html", + {} + ] + ], + "fetch/stale-while-revalidate/stale-script.tentative.html": [ + [ + "/fetch/stale-while-revalidate/stale-script.tentative.html", + {} + ] + ], "fullscreen/api/document-exit-fullscreen-active-document.html": [ [ "/fullscreen/api/document-exit-fullscreen-active-document.html", @@ -409345,6 +409395,18 @@ {} ] ], + "resource-timing/resource_connection_reuse_mixed_content.html": [ + [ + "/resource-timing/resource_connection_reuse_mixed_content.html", + {} + ] + ], + "resource-timing/resource_connection_reuse_mixed_content_redirect.html": [ + [ + "/resource-timing/resource_connection_reuse_mixed_content_redirect.html", + {} + ] + ], "resource-timing/resource_dedicated_worker.html": [ [ "/resource-timing/resource_dedicated_worker.html", @@ -410397,6 +410459,12 @@ {} ] ], + "service-workers/service-worker/clients-get-resultingClientId.https.html": [ + [ + "/service-workers/service-worker/clients-get-resultingClientId.https.html", + {} + ] + ], "service-workers/service-worker/clients-get.https.html": [ [ "/service-workers/service-worker/clients-get.https.html", @@ -415199,12 +415267,6 @@ {} ] ], - "trusted-types/WorkerGlobalScope-importScripts.https.html": [ - [ - "/trusted-types/WorkerGlobalScope-importScripts.https.html", - {} - ] - ], "trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html": [ [ "/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html", @@ -422263,6 +422325,12 @@ } ] ], + "webstorage/defineProperty.window.js": [ + [ + "/webstorage/defineProperty.window.html", + {} + ] + ], "webstorage/document-domain.html": [ [ "/webstorage/document-domain.html", @@ -422403,6 +422471,12 @@ {} ] ], + "webstorage/set.window.js": [ + [ + "/webstorage/set.window.html", + {} + ] + ], "webstorage/storage_builtins.html": [ [ "/webstorage/storage_builtins.html", @@ -423205,18 +423279,6 @@ {} ] ], - "webxr/navigator_xr_requestDevice.https.html": [ - [ - "/webxr/navigator_xr_requestDevice.https.html", - {} - ] - ], - "webxr/navigator_xr_requestDevice_no_device.https.html": [ - [ - "/webxr/navigator_xr_requestDevice_no_device.https.html", - {} - ] - ], "webxr/webGLCanvasContext_create_xrcompatible.https.html": [ [ "/webxr/webGLCanvasContext_create_xrcompatible.https.html", @@ -423295,6 +423357,12 @@ {} ] ], + "webxr/xrSession_mode.https.html": [ + [ + "/webxr/xrSession_mode.https.html", + {} + ] + ], "webxr/xrSession_prevent_multiple_exclusive.https.html": [ [ "/webxr/xrSession_prevent_multiple_exclusive.https.html", @@ -455239,7 +455307,7 @@ "testharness" ], "animation-worklet/common.js": [ - "15dff829774a49a1c17eacefebc7e5e34a422f9d", + "eb114f24687289fcdd0515ead7dbbc074c7ccbba", "support" ], "animation-worklet/current-time.https.html": [ @@ -455250,10 +455318,6 @@ "e821a2fee8a3ace54e8e7092ab17c490a0ded914", "testharness" ], - "animation-worklet/references/translated-box-ref.html": [ - "c73f5a177bf70f3a71d981bc9f04b38c5afe9f1c", - "support" - ], "animation-worklet/resources/animator-iframe.html": [ "e30cc281fcdefd8d029e7bf0ea92a1a9cd7af7e7", "support" @@ -455262,18 +455326,6 @@ "5b20f03bfadb5790c79ddd51e1f3d89a9f948852", "testharness" ], - "animation-worklet/worklet-animation-pause-immediately.https.html": [ - "f9dcf30bc908adb4e6b260dd00263e434a9b9ae4", - "reftest" - ], - "animation-worklet/worklet-animation-pause-resume.https.html": [ - "f26a93468c07de8e59a3826cb39c6bdf2618706f", - "reftest" - ], - "animation-worklet/worklet-animation-pause.https.html": [ - "4b7a9a0251da7c8179f68249578dc851b145c850", - "testharness" - ], "animation-worklet/worklet-animation-with-fill-mode.https.html": [ "49fead8bd39c56c6335c0748b01be0181767bbec", "testharness" @@ -547163,7 +547215,7 @@ "reftest" ], "css/css-conditional/idlharness.html": [ - "410466b25230b246c09cd12d1d13b8ef58786abf", + "63cf750933737d3a221ccb48d2a667c110dd0bf9", "testharness" ], "css/css-conditional/js/001.html": [ @@ -554635,7 +554687,7 @@ "testharness" ], "css/css-fonts/idlharness.html": [ - "9209144c3e5132a284f79df13145b174af265e59", + "ecc601bcf6a97a1722e3901d731f9f424d0a79e1", "testharness" ], "css/css-fonts/language-specific-01.html": [ @@ -568059,7 +568111,7 @@ "reftest" ], "css/css-paint-api/idlharness.html": [ - "bb4c9357f243d7572134834e5678b4cd4d1076b6", + "c9675ab0412bb955d7a8653e7d28884a6953800b", "testharness" ], "css/css-paint-api/invalid-image-constructor-error-ref.html": [ @@ -568987,7 +569039,7 @@ "support" ], "css/css-properties-values-api/idlharness.html": [ - "e57f0f00ca26cb6a9342b1b6f84259e2bb908790", + "6f053757c3cef099f0cea41716a942dfa7e66100", "testharness" ], "css/css-properties-values-api/property-cascade.html": [ @@ -573674,6 +573726,14 @@ "17489e1bc2132f4c2acbc4ec901eccb8f7e4d365", "support" ], + "css/css-syntax/anb-parsing.html": [ + "7fcc06e2c7e8e1908badf6117a7b8c3f1576cf76", + "testharness" + ], + "css/css-syntax/anb-serialization.html": [ + "787700cebf39e5cc4fa0d5a2934a7e52bec6da32", + "testharness" + ], "css/css-syntax/charset-is-not-a-rule.html": [ "81b2a04dc5a0dd2f3434150f7bfb6a6d3f1cfef3", "testharness" @@ -573846,10 +573906,26 @@ "36faef9357746f4492d00a3fbb1e33ffd2021bb4", "testharness" ], + "css/css-syntax/inclusive-ranges.html": [ + "ac486bde569842417910cf75f33607f1d2e5de52", + "testharness" + ], + "css/css-syntax/input-preprocessing.html": [ + "9ef9a730820d85a015b51cb230aa09f397a78400", + "testharness" + ], + "css/css-syntax/unclosed-constructs.html": [ + "3d7940387c810572159bd55fcc79fc10626221dc", + "testharness" + ], "css/css-syntax/unicode-range-selector.html": [ "db09540bb08c47f62b4255be6ba72b289987d64c", "testharness" ], + "css/css-syntax/whitespace.html": [ + "bc7aa7ebda518a42a32a154c3ed13f00be86429a", + "testharness" + ], "css/css-tables/META.yml": [ "b5372064ac2721687998bb23a9a9b95226d74afd", "support" @@ -590355,15 +590431,15 @@ "support" ], "css/css-values/vh_not_refreshing_on_chrome.html": [ - "52a45a114c85bf96a175ca583d8a2b6f54b9ab6c", + "1749986b62c75b3deca3d40f008cade9c105e697", "reftest" ], "css/css-values/viewport-relative-lengths-scaled-viewport.html": [ - "a901000394d35eed94237b3ce5acc74b1b0e7bc9", + "dba2af8fa07b07d2ab7c6ca9f657b6e170cd9a41", "testharness" ], "css/css-values/viewport-units-css2-001.html": [ - "f0feb6d993537833569bd739e4d903b8e510881b", + "c51237dd8a07546d31eef6f6f9b3c84b6ac2b65b", "testharness" ], "css/css-variables/META.yml": [ @@ -617079,7 +617155,7 @@ "support" ], "feature-policy/reporting/xr-report-only.https.html": [ - "b52bdbfaa47071b89702cfb51166f08b405a95de", + "6844226f2bd2189e44c2e74396ba449ce1a49c10", "testharness" ], "feature-policy/reporting/xr-report-only.https.html.headers": [ @@ -617087,7 +617163,7 @@ "support" ], "feature-policy/reporting/xr-reporting.https.html": [ - "b737bb9a6047e79d0b35c6eedec39b6888b09eb0", + "1982ea544c53bad508c422befe589e9e15dabcb6", "testharness" ], "feature-policy/reporting/xr-reporting.https.html.headers": [ @@ -618614,6 +618690,34 @@ "20d307e9188405dcec011042487aa2c7354930bf", "support" ], + "fetch/stale-while-revalidate/fetch.tentative.html": [ + "01a991ebfb1cb42288a01da37c76b09fa53f407c", + "testharness" + ], + "fetch/stale-while-revalidate/stale-css.py": [ + "6f3014db5246994383354b139e7900306297dd57", + "support" + ], + "fetch/stale-while-revalidate/stale-css.tentative.html": [ + "df03bd96243138cbaee076dc9b0a6cc3d15d9a16", + "testharness" + ], + "fetch/stale-while-revalidate/stale-image.py": [ + "42d0764eb91e7145cfe1638d90421ca7492379db", + "support" + ], + "fetch/stale-while-revalidate/stale-image.tentative.html": [ + "d8383acb319c2e0398bd83632377ac8cb219da49", + "testharness" + ], + "fetch/stale-while-revalidate/stale-script.py": [ + "c17528d8e6314e60407085ca778ba2ff70666985", + "support" + ], + "fetch/stale-while-revalidate/stale-script.tentative.html": [ + "2e04e3905780add84f3da805a238946256ebda87", + "testharness" + ], "fonts/AD.woff": [ "3df8ea8efdabd11bc45fdcc6d4f3fec771be6650", "support" @@ -619210,6 +619314,10 @@ "42cfff628b4680024908635e353bfe9bbf10d952", "support" ], + "fonts/noto/NotoNaskhArabic-regular.woff2": [ + "e24020d46a4c4a4f355941b23e8bad3b9b5003cb", + "support" + ], "fonts/noto/NotoSansAdlam-hinted/LICENSE_OFL.txt": [ "d952d62c065f3f35fb83a173496e90b21525aef3", "support" @@ -639391,7 +639499,7 @@ "support" ], "interfaces/ambient-light.idl": [ - "e861cc561823f75d8bfc6526c7766e8716aac179", + "4e44c082b0709989870e7ed52e14cc77bfb5d6f2", "support" ], "interfaces/animation-worklet.idl": [ @@ -639475,7 +639583,7 @@ "support" ], "interfaces/css-layout-api.idl": [ - "5dc6db455e41f1ed5f3b01ab1d8f4f6b9554d469", + "9440684a26ccdbddee0ba9b0f587a482fba42be5", "support" ], "interfaces/css-masking.idl": [ @@ -639563,7 +639671,7 @@ "support" ], "interfaces/generic-sensor.idl": [ - "fd794cb15f3bb067fb9663e12eac5cc8d6946acc", + "2e7aacbec176dbd7dfd0707de9d0cc5efb00123f", "support" ], "interfaces/geolocation-API.idl": [ @@ -639591,7 +639699,7 @@ "support" ], "interfaces/html.idl": [ - "d46d1452eadbd3a1a7bb5aadd3a346818492daf1", + "46d0b852f095a65c0019a9f6dd518963b26a9ac6", "support" ], "interfaces/image-capture.idl": [ @@ -639691,7 +639799,7 @@ "support" ], "interfaces/payment-request.idl": [ - "63a9ccccad4d57356760a65cadbdd3faec47bce4", + "53922d315cfd3de149f88d18baeccc852bb3dca1", "support" ], "interfaces/performance-timeline.idl": [ @@ -639703,7 +639811,7 @@ "support" ], "interfaces/picture-in-picture.idl": [ - "2e89cfd89791f5f1009f27115f2d40d12a655893", + "164ec02a9cf208e3c56da82a9629b3bb674f27f0", "support" ], "interfaces/pointerevents-extension.idl": [ @@ -639779,7 +639887,7 @@ "support" ], "interfaces/shape-detection-api.idl": [ - "66c58896c300c47206462171b3063baedfff87db", + "72fce2001cad5a465440ef996150e38ddee609cf", "support" ], "interfaces/speech-api.idl": [ @@ -639823,7 +639931,7 @@ "support" ], "interfaces/wasm-js-api.idl": [ - "6de14fb8f0895a72b69f37b9dd8b72e2ab1604e0", + "2bd2ecba828df359fc61b18cde10ff9f7e80c4de", "support" ], "interfaces/wasm-web-api.idl": [ @@ -639875,7 +639983,7 @@ "support" ], "interfaces/webrtc-stats.idl": [ - "cf07738b8b45c808a80895356699a5e04967e25e", + "c86097b697b56f105abedfcd700d496f9687a153", "support" ], "interfaces/webrtc.idl": [ @@ -652907,19 +653015,19 @@ "support" ], "preload/link-header-preload-nonce.html": [ - "2db6eef569f1576a3d405c7f86f6eed8be10c9e2", + "51b2224864d5a47c9642ded613efcfc702eb0f9d", "testharness" ], "preload/link-header-preload-nonce.html.headers": [ - "a3c41d2386ac10576497e3080ff1e6d97dccf6b8", + "a54b69378e9cc785ee02ec4a37694f90c366403b", "support" ], "preload/link-header-preload-srcset.tentative.html": [ - "70d34e525c1feb541fefd277f1ae06a6a5888a08", + "9eb8ac4e00d20b9eb48ffd3a981b33b7604246f8", "testharness" ], "preload/link-header-preload-srcset.tentative.html.headers": [ - "1e4e9b85cac9a70ef01c994631402a5d452cad98", + "906de0c95aeb58e24d1b7e779f1ed99de40d7af1", "support" ], "preload/link-header-preload.html": [ @@ -662647,11 +662755,19 @@ "testharness" ], "resource-timing/resource_connection_reuse.html": [ - "7a31a7e1ab31d4d1a83fb5e2911b8ed95f0f2d92", + "f347a0b23e15e9134ba2bf37fdafa4cab5e8d809", "testharness" ], "resource-timing/resource_connection_reuse.https.html": [ - "bc79a8519b20659085b6cda9e98685a0aaf33785", + "86864090a2eea7e62f7f204ec7baf4eccc9f6771", + "testharness" + ], + "resource-timing/resource_connection_reuse_mixed_content.html": [ + "51c04ee604c963cb248ca6cb6b536ef9bf21ee12", + "testharness" + ], + "resource-timing/resource_connection_reuse_mixed_content_redirect.html": [ + "a46d14c9f159ad2839546ed4f595d7e8d7cf4ffa", "testharness" ], "resource-timing/resource_dedicated_worker.html": [ @@ -662767,7 +662883,15 @@ "support" ], "resource-timing/resources/fake_responses.py": [ - "f71693818cb726573e4d1f282b8d61fe8a87df6b", + "289c179317671ba4e87c06bb89e815c8c449fd19", + "support" + ], + "resource-timing/resources/fake_responses_https.sub.html": [ + "cf49fb914bebe0c18d8af19a1a1362ae64217eb5", + "support" + ], + "resource-timing/resources/fake_responses_https_redirect.sub.html": [ + "c55e037d1dc15c1247c1a0ad2396c1416b577800", "support" ], "resource-timing/resources/green_frame.htm": [ @@ -665782,6 +665906,10 @@ "1e4acfb286c6bcf2375fc762f9d60ea2d9f1cdc4", "testharness" ], + "service-workers/service-worker/clients-get-resultingClientId.https.html": [ + "3419cf14b523db41af70c7896d4aaa497441fb9b", + "testharness" + ], "service-workers/service-worker/clients-get.https.html": [ "4cfbf595cadeeea5fc8a5089127c5687ec174f53", "testharness" @@ -666938,6 +667066,10 @@ "7fc35f18914c1345e0f5ccab93305938180fe9eb", "support" ], + "service-workers/service-worker/resources/get-resultingClientId-worker.js": [ + "f0e6c7becab6126496fefa3f40a5e788dc64775b", + "support" + ], "service-workers/service-worker/resources/http-to-https-redirect-and-register-iframe.html": [ "bcab35364dff6f4494d73adfa150d800efc6bf70", "support" @@ -668551,7 +668683,7 @@ "support" ], "signed-exchange/resources/sxg-util.js": [ - "7d592ea21431802655ce3134d50718ef37394a42", + "67439c8a6e4f111d0095519a77dc0e6ffd380e2c", "support" ], "signed-exchange/resources/sxg-version1b2.sxg": [ @@ -677955,7 +678087,7 @@ "support" ], "tools/tox.ini": [ - "3b0c6d172bc02e8df5fed5a08cd354416eff50dd", + "975056ea2c272bd70e117231f0d57928727f6bd1", "support" ], "tools/webdriver/.gitignore": [ @@ -678023,7 +678155,7 @@ "support" ], "tools/wpt/run.py": [ - "633d6b254db289f50b77e4c7f589b888caa2b566", + "df34e591568617616211e0f549872fe94c7568d8", "support" ], "tools/wpt/testfiles.py": [ @@ -678039,11 +678171,11 @@ "support" ], "tools/wpt/tests/test_run.py": [ - "aaff0fa5331498f898dc36fcf36186cebe989927", + "cd70fef5e8bf48d73a0e3cc36f11d28088140139", "support" ], "tools/wpt/tests/test_wpt.py": [ - "1ddac67a39a368e44b94150a502caa0e32f8044f", + "75cedf75ee016d975e2896268571f8217e8e1859", "support" ], "tools/wpt/tox.ini": [ @@ -678059,11 +678191,11 @@ "support" ], "tools/wpt/virtualenv.py": [ - "0ce7054ae2227a6dbc46e6215274d776e80494c7", + "b27529da7a7e0c9a2e9dc92faac7200405a8a508", "support" ], "tools/wpt/wpt.py": [ - "55802461553abe63655a359393cfac2fbf174df1", + "909d435b6485f7e78c996ef02960160b53a0851c", "support" ], "tools/wptrunner/.gitignore": [ @@ -679182,18 +679314,6 @@ "172d566e57fc635b551b5d355661db690869b220", "testharness" ], - "trusted-types/WorkerGlobalScope-importScripts.https.html": [ - "30dea82077c59d8bd9b95985dd1383ea47733534", - "testharness" - ], - "trusted-types/WorkerGlobalScope-importScripts.https.js": [ - "4e491b9fe601b2dba1f1acafbbec9f502f2e6671", - "support" - ], - "trusted-types/WorkerGlobalScope-importScripts.https.js.headers": [ - "1bc33add09b4b34ce2cba21f488f8ed53345a27a", - "support" - ], "trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html": [ "4446a58836695355efd0fbf3f9f5a0bd6c60c8a3", "testharness" @@ -684059,7 +684179,7 @@ "support" ], "webdriver/tests/perform_actions/support/keys.py": [ - "487381d5b29b7003b84b313e098d6045b04aa1b3", + "68e37b34e0303c89d64654ddc9cf8bba5fc92f67", "support" ], "webdriver/tests/perform_actions/support/mouse.py": [ @@ -684935,7 +685055,7 @@ "testharness" ], "webrtc/RTCIceCandidate-constructor.html": [ - "9842593a83c5330e0ed19bedac9f6c9908362c41", + "cad0464a3c045a000270127ce50f89798f9eca0b", "testharness" ], "webrtc/RTCIceTransport-extension-helper.js": [ @@ -684943,7 +685063,7 @@ "support" ], "webrtc/RTCIceTransport-extension.https.html": [ - "7803bde9b3aa61f6ac500d62c8a3aed79b1a1412", + "e9e70379a483e1456259b521fc8094689aa15373", "testharness" ], "webrtc/RTCIceTransport.html": [ @@ -686298,6 +686418,10 @@ "6b70aa5ac9d3d6a9d4a42013455d3992fbb5b9e9", "support" ], + "webstorage/defineProperty.window.js": [ + "d8ab163df68332af6236c25335bb41e5c04fe33c", + "testharness" + ], "webstorage/document-domain.html": [ "3232b0d508121222a6ff523b1aebd3540aad8f89", "testharness" @@ -686458,6 +686582,10 @@ "bc134af32b1e5b5063add18db0c044ed85f37be4", "support" ], + "webstorage/set.window.js": [ + "479ad588910b907e6e9fe41d5080b744a22a54fe", + "testharness" + ], "webstorage/storage_builtins.html": [ "2ae06d55b007cf35777665356fcd95ec48047420", "testharness" @@ -689662,20 +689790,12 @@ "3e54e367787cb95dada398790fe23b10174df29f", "testharness" ], - "webxr/navigator_xr_requestDevice.https.html": [ - "c51dd8db165a14514dcf364c760b8da6a81af0b0", - "testharness" - ], - "webxr/navigator_xr_requestDevice_no_device.https.html": [ - "3cd149bb0ce0df4b7006f4d99a83d2de09e0f282", - "testharness" - ], "webxr/resources/webxr_check.html": [ "2d8e5b387dc88588921ccfa49dd14db58009900c", "support" ], "webxr/resources/webxr_util.js": [ - "10bdc12810c3b34d140e6f04b0068c28c9dc1873", + "7344fa05f655cded22a3ba9b099a8726a0c4beb3", "support" ], "webxr/webGLCanvasContext_create_xrcompatible.https.html": [ @@ -689691,63 +689811,67 @@ "testharness" ], "webxr/xrDevice_requestSession_immersive.https.html": [ - "e9e7b9bc131b12d68fa8a2886967a7395a5b0f99", + "c5956e7f3d12745638092558abb0b41749fb16d6", "testharness" ], "webxr/xrDevice_requestSession_immersive_no_gesture.https.html": [ - "9f0f5f3d8ae0c4b7cb8794ad41cd1015cd942374", + "c1b3286709d3a7d4dc45029253e3bbffb579e237", "testharness" ], "webxr/xrDevice_requestSession_immersive_unsupported.https.html": [ - "e0d2688e997be1c765e3e146ff1eb0db212b976e", + "60e9e6cc6e1c0fa990af396e42418bb16984a5e8", "testharness" ], "webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html": [ - "1634dfe9cba3a6798652613c407ec21b5e3c4d8e", + "6cf50f521c4836dede6f763b6e7f3e263e30f68e", "testharness" ], "webxr/xrDevice_supportsSession_immersive.https.html": [ - "3ca5eb11c53baa319c5188f74c6a0651801e0183", + "c0b47013f9d11ad292fdef2e51968c3a28c35f55", "testharness" ], "webxr/xrDevice_supportsSession_immersive_unsupported.https.html": [ - "0c1dd25869fcad3a442cde8e849365f0f326b3c9", + "2b17b96b1bc11693c87b931a5debc0e4f1c2336c", "testharness" ], "webxr/xrDevice_supportsSession_non_immersive.https.html": [ - "535b0bcbbc282ee5aaa7500cbd3a35ba21fed3d4", + "69a35c2510983550993f630ea6f0a165c2e89369", "testharness" ], "webxr/xrSession_cancelAnimationFrame.https.html": [ - "26c0e95605468634c9bc65bf959260e594998a2d", + "9b08f93eead693c1c9aa6d7e2458988aa7dae442", "testharness" ], "webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html": [ - "4f4b8dfe5ff47b4433f0de0d244b12dd434eaa0d", + "bc9b625fb9ed2e9001da1ddaf0a01230631b084e", "testharness" ], "webxr/xrSession_end.https.html": [ - "69bbda85fda9f732a0d682cf57be53115eb73854", + "2719bdd7dd1b4a73e8b2004f477beecf03d131bb", + "testharness" + ], + "webxr/xrSession_mode.https.html": [ + "4b54d9480211b3641997f78a61dfdc7058592ecd", "testharness" ], "webxr/xrSession_prevent_multiple_exclusive.https.html": [ - "ff3eaef81dd19d945a8c7128c7b5e677ea450689", + "c2e7f3bf444d38506f6a54c2cf9904c2927b2ad5", "testharness" ], "webxr/xrSession_requestAnimationFrame_callback_calls.https.html": [ - "48dc88779abcdd37a3778f860473569f7c55c6de", + "268efcd596e03125e3f7b90fa7f08eba2ae716a8", "testharness" ], "webxr/xrSession_requestAnimationFrame_data_valid.https.html": [ - "b5f4f180c1a911e7260310da34b32891443001c8", + "f873a11588045d612cb16f2487a6efa14b555679", "testharness" ], "webxr/xrSession_requestAnimationFrame_getViewerPose.https.html": [ - "17b5307f019dc7ec4696dbceef5eb3d5cd21d361", + "ca6a71758c691e16aad512e68c83e2fd42a8efbb", "testharness" ], "webxr/xrSession_requestReferenceSpace.https.html": [ - "d97852c917bc8f42f4999e5b0d1c13a7fef364ab", + "1eb49e0b875b1c686c9f5474c007af8c9d4790d0", "testharness" ], "workers/META.yml": [ @@ -690943,7 +691067,7 @@ "testharness" ], "workers/semantics/run-a-worker/003.html": [ - "8c2f07ee7305a7a6d83e3c2cd8aaf4367fac35ab", + "e96c176f20ab6aa6f01dc25184778abe9e861fd1", "testharness" ], "workers/semantics/structured-clone/dedicated.html": [ diff --git a/tests/wpt/metadata/css/css-fonts/idlharness.html.ini b/tests/wpt/metadata/css/css-fonts/idlharness.html.ini index 855d8c4002e..e81cba11107 100644 --- a/tests/wpt/metadata/css/css-fonts/idlharness.html.ini +++ b/tests/wpt/metadata/css/css-fonts/idlharness.html.ini @@ -4,68 +4,115 @@ [CSSFontFaceRule interface: attribute style] expected: FAIL + [CSSFontFeatureValuesRule interface: existence and properties of interface object] expected: FAIL + [CSSFontFeatureValuesRule interface object length] expected: FAIL + [CSSFontFeatureValuesRule interface object name] expected: FAIL + [CSSFontFeatureValuesRule interface: existence and properties of interface prototype object] expected: FAIL + [CSSFontFeatureValuesRule interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL + [CSSFontFeatureValuesRule interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [CSSFontFeatureValuesRule interface: attribute fontFamily] expected: FAIL + [CSSFontFeatureValuesRule interface: attribute annotation] expected: FAIL + [CSSFontFeatureValuesRule interface: attribute ornaments] expected: FAIL + [CSSFontFeatureValuesRule interface: attribute stylistic] expected: FAIL + [CSSFontFeatureValuesRule interface: attribute swash] expected: FAIL + [CSSFontFeatureValuesRule interface: attribute characterVariant] expected: FAIL + [CSSFontFeatureValuesRule interface: attribute styleset] expected: FAIL + [CSSFontFeatureValuesMap interface: existence and properties of interface object] expected: FAIL + [CSSFontFeatureValuesMap interface object length] expected: FAIL + [CSSFontFeatureValuesMap interface object name] expected: FAIL + [CSSFontFeatureValuesMap interface: existence and properties of interface prototype object] expected: FAIL + [CSSFontFeatureValuesMap interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL + [CSSFontFeatureValuesMap interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - [CSSFontFeatureValuesMap interface: operation set(CSSOMString, \[object Object\],\[object Object\])] + + [CSSFontFeatureValuesMap interface: operation set(CSSOMString, [object Object\],[object Object\])] expected: FAIL + [CSSFontPaletteValuesRule interface: existence and properties of interface object] expected: FAIL + [CSSFontPaletteValuesRule interface object length] expected: FAIL + [CSSFontPaletteValuesRule interface object name] expected: FAIL + [CSSFontPaletteValuesRule interface: existence and properties of interface prototype object] expected: FAIL + [CSSFontPaletteValuesRule interface: existence and properties of interface prototype object's "constructor" property] expected: FAIL + [CSSFontPaletteValuesRule interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL + [CSSFontPaletteValuesRule interface: attribute fontFamily] expected: FAIL + [CSSFontPaletteValuesRule interface: attribute basePalette] expected: FAIL + [CSSRule interface: constant FONT_FEATURE_VALUES_RULE on interface object] expected: FAIL + [CSSRule interface: constant FONT_FEATURE_VALUES_RULE on interface prototype object] expected: FAIL + [CSSRule interface: constant FONT_PALETTE_VALUES_RULE on interface object] expected: FAIL + [CSSRule interface: constant FONT_PALETTE_VALUES_RULE on interface prototype object] expected: FAIL - + + [CSSFontFaceRule interface: cssFontFaceRule must inherit property "style" with the proper type] + expected: FAIL + + [CSSRule interface: cssRule must inherit property "FONT_PALETTE_VALUES_RULE" with the proper type] + expected: FAIL + + [CSSRule interface: cssFontFaceRule must inherit property "FONT_PALETTE_VALUES_RULE" with the proper type] + expected: FAIL + + [CSSRule interface: cssFontFaceRule must inherit property "FONT_FEATURE_VALUES_RULE" with the proper type] + expected: FAIL + + [CSSRule interface: cssRule must inherit property "FONT_FEATURE_VALUES_RULE" with the proper type] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini index 442aa176ed7..130c0181e43 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini @@ -1079,9 +1079,3 @@ [text-indent percentage(%) / values] expected: FAIL - [padding-left length(px) / values] - expected: FAIL - - [padding-bottom length(ex) / values] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini index bcd187f508c..8e2ceeddfbe 100644 --- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini +++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini @@ -6,3 +6,6 @@ [Instant scrolling while doing history navigation.] expected: FAIL + [Smooth scrolling while doing history navigation.] + expected: FAIL + diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini index 1ba6fdcec47..d3d593de47f 100644 --- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini +++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini @@ -32,7 +32,7 @@ [single-byte-decoder.html?XMLHttpRequest] - expected: CRASH + expected: TIMEOUT [ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)] expected: FAIL @@ -55,7 +55,7 @@ expected: FAIL [windows-1252: iso_8859-1:1987 (XMLHttpRequest)] - expected: FAIL + expected: TIMEOUT [windows-1254: iso_8859-9:1989 (XMLHttpRequest)] expected: TIMEOUT @@ -126,5 +126,41 @@ [x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)] expected: TIMEOUT + [windows-1253: x-cp1253 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: iso_8859-1 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: latin1 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1255: x-cp1255 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1253: windows-1253 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: x-cp1252 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1255: cp1255 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: l1 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1255: windows-1255 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: windows-1252 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: us-ascii (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1256: windows-1256 (XMLHttpRequest)] + expected: TIMEOUT + [single-byte-decoder.html?TextDecoder] 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 18f786d4963..bbdc2d4a2a5 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,3 +312,6 @@ [ + + diff --git a/tests/wpt/web-platform-tests/fetch/stale-while-revalidate/stale-script.py b/tests/wpt/web-platform-tests/fetch/stale-while-revalidate/stale-script.py new file mode 100644 index 00000000000..c17528d8e63 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/stale-while-revalidate/stale-script.py @@ -0,0 +1,25 @@ +import random, string, datetime + +def token(): + letters = string.ascii_lowercase + return ''.join(random.choice(letters) for i in range(20)) + +def main(request, response): + cookie = request.cookies.first("Count", None) + count = 0 + if cookie != None: + count = int(cookie.value) + if request.GET.first("query", None) != None: + headers = [("Count", count)] + content = "" + return 200, headers, content + else: + count = count + 1 + + unique_id = token() + headers = [("Content-Type", "text/javascript"), + ("Cache-Control", "private, max-age=0, stale-while-revalidate=10"), + ("Set-Cookie", "Count={}".format(count)), + ("Token", unique_id)] + content = "report('{}')".format(unique_id) + return 200, headers, content diff --git a/tests/wpt/web-platform-tests/fetch/stale-while-revalidate/stale-script.tentative.html b/tests/wpt/web-platform-tests/fetch/stale-while-revalidate/stale-script.tentative.html new file mode 100644 index 00000000000..2e04e390578 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/stale-while-revalidate/stale-script.tentative.html @@ -0,0 +1,55 @@ + + + +Tests Stale While Revalidate works for scripts + + + + + diff --git a/tests/wpt/web-platform-tests/fonts/noto/NotoNaskhArabic-regular.woff2 b/tests/wpt/web-platform-tests/fonts/noto/NotoNaskhArabic-regular.woff2 new file mode 100644 index 00000000000..e24020d46a4 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/noto/NotoNaskhArabic-regular.woff2 differ diff --git a/tests/wpt/web-platform-tests/interfaces/ambient-light.idl b/tests/wpt/web-platform-tests/interfaces/ambient-light.idl index e861cc56182..4e44c082b07 100644 --- a/tests/wpt/web-platform-tests/interfaces/ambient-light.idl +++ b/tests/wpt/web-platform-tests/interfaces/ambient-light.idl @@ -7,3 +7,7 @@ interface AmbientLightSensor : Sensor { readonly attribute double? illuminance; }; + +dictionary AmbientLightReadingValues { + required double? illuminance; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/css-layout-api.idl b/tests/wpt/web-platform-tests/interfaces/css-layout-api.idl index 5dc6db455e4..9440684a26c 100644 --- a/tests/wpt/web-platform-tests/interfaces/css-layout-api.idl +++ b/tests/wpt/web-platform-tests/interfaces/css-layout-api.idl @@ -20,22 +20,22 @@ dictionary LayoutOptions { [Exposed=LayoutWorklet] enum ChildDisplayType { - "block", + "block", // default - "blockifies" the child boxes. "normal", }; [Exposed=LayoutWorklet] enum LayoutSizingMode { - "block-like", - "manual", + "block-like", // default - Sizing behaves like block containers. + "manual", // Sizing is specified by the web developer. }; [Exposed=LayoutWorklet] interface LayoutChild { readonly attribute StylePropertyMapReadOnly styleMap; - IntrinsicSizesRequest intrinsicSizes(); - LayoutFragmentRequest layoutNextFragment(LayoutConstraints constraints, ChildBreakToken breakToken); + Promise intrinsicSizes(); + Promise layoutNextFragment(LayoutConstraintsOptions constraints, ChildBreakToken breakToken); }; [Exposed=LayoutWorklet] @@ -57,7 +57,7 @@ interface IntrinsicSizes { readonly attribute double maxContentSize; }; -[Constructor(optional LayoutConstraintsOptions options),Exposed=LayoutWorklet] +[Exposed=LayoutWorklet] interface LayoutConstraints { readonly attribute double availableInlineSize; readonly attribute double availableBlockSize; @@ -74,9 +74,11 @@ interface LayoutConstraints { readonly attribute any data; }; +enum BlockFragmentationType { "none", "page", "column", "region" }; + dictionary LayoutConstraintsOptions { - double availableInlineSize = 0; - double availableBlockSize = 0; + double availableInlineSize; + double availableBlockSize; double fixedInlineSize; double fixedBlockSize; @@ -90,8 +92,6 @@ dictionary LayoutConstraintsOptions { any data; }; -enum BlockFragmentationType { "none", "page", "column", "region" }; - [Exposed=LayoutWorklet] interface ChildBreakToken { readonly attribute BreakType breakType; @@ -112,7 +112,7 @@ dictionary BreakTokenOptions { enum BreakType { "none", "line", "column", "page", "region" }; [Exposed=LayoutWorklet] -interface LayoutEdgeSizes { +interface LayoutEdges { readonly attribute double inlineStart; readonly attribute double inlineEnd; @@ -124,26 +124,6 @@ interface LayoutEdgeSizes { readonly attribute double block; }; -[Exposed=LayoutWorklet] -interface LayoutEdges { - readonly attribute LayoutEdgeSizes border; - readonly attribute LayoutEdgeSizes scrollbar; - readonly attribute LayoutEdgeSizes padding; - - readonly attribute LayoutEdgeSizes all; -}; - -[Exposed=LayoutWorklet] -interface IntrinsicSizesRequest { -}; - -[Exposed=LayoutWorklet] -interface LayoutFragmentRequest { -}; - -typedef (IntrinsicSizesRequest or LayoutFragmentRequest) - LayoutFragmentRequestOrIntrinsicSizesRequest; - // This is the final return value from the author defined layout() method. dictionary FragmentResultOptions { double inlineSize = 0; @@ -154,6 +134,12 @@ dictionary FragmentResultOptions { BreakTokenOptions breakToken = null; }; +[Constructor(FragmentResultOptions)] +interface FragmentResult { + readonly attribute double inlineSize; + readonly attribute double blockSize; +}; + dictionary IntrinsicSizesResultOptions { double maxContentSize; double minContentSize; diff --git a/tests/wpt/web-platform-tests/interfaces/generic-sensor.idl b/tests/wpt/web-platform-tests/interfaces/generic-sensor.idl index fd794cb15f3..2e7aacbec17 100644 --- a/tests/wpt/web-platform-tests/interfaces/generic-sensor.idl +++ b/tests/wpt/web-platform-tests/interfaces/generic-sensor.idl @@ -28,3 +28,93 @@ interface SensorErrorEvent : Event { dictionary SensorErrorEventInit : EventInit { required DOMException error; }; + +dictionary MockSensorConfiguration { + required MockSensorType mockSensorType; + boolean connected = true; + double? maxSamplingFrequency; + double? minSamplingFrequency; +}; + +dictionary MockSensor { + double maxSamplingFrequency; + double minSamplingFrequency; + double requestedSamplingFrequency; +}; + +enum MockSensorType { + "ambient-light", + "accelerometer", + "linear-acceleration", + "gravity", + "gyroscope", + "magnetometer", + "uncalibrated-magnetometer", + "absolute-orientation", + "relative-orientation", + "geolocation", + "proximity", +}; + +dictionary MockSensorReadingValues { +}; + +dictionary AmbientLightReadingValues { + required double? illuminance; +}; + +dictionary AccelerometerReadingValues { + required double? x; + required double? y; + required double? z; +}; + +dictionary LinearAccelerationReadingValues : AccelerometerReadingValues { +}; + +dictionary GravityReadingValues : AccelerometerReadingValues { +}; + +dictionary GyroscopeReadingValues { + required double? x; + required double? y; + required double? z; +}; + +dictionary MagnetometerReadingValues { + required double? x; + required double? y; + required double? z; +}; + +dictionary UncalibratedMagnetometerReadingValues { + required double? x; + required double? y; + required double? z; + required double? xBias; + required double? yBias; + required double? zBias; +}; + +dictionary AbsoluteOrientationReadingValues { + required FrozenArray? quaternion; +}; + +dictionary RelativeOrientationReadingValues : AbsoluteOrientationReadingValues { +}; + +dictionary GeolocationReadingValues { + required double? latitude; + required double? longitude; + required double? altitude; + required double? accuracy; + required double? altitudeAccuracy; + required double? heading; + required double? speed; +}; + +dictionary ProximityReadingValues { + required double? distance; + required double? max; + required boolean? near; +}; diff --git a/tests/wpt/web-platform-tests/interfaces/html.idl b/tests/wpt/web-platform-tests/interfaces/html.idl index d46d1452ead..46d0b852f09 100644 --- a/tests/wpt/web-platform-tests/interfaces/html.idl +++ b/tests/wpt/web-platform-tests/interfaces/html.idl @@ -3,8 +3,6 @@ // (https://github.com/tidoust/reffy-reports) // Source: HTML Standard (https://html.spec.whatwg.org/) -// Example interface manually removed here, see https://github.com/tidoust/reffy/issues/129. - [Exposed=Window, LegacyUnenumerableNamedProperties] interface HTMLAllCollection { @@ -1524,6 +1522,7 @@ interface Window : EventTarget { void postMessage(any message, optional WindowPostMessageOptions options); }; Window includes GlobalEventHandlers; +Window includes WindowEventHandlers; dictionary WindowPostMessageOptions : PostMessageOptions { USVString targetOrigin = "/"; @@ -1817,7 +1816,7 @@ interface mixin NavigatorID { [Exposed=Window] readonly attribute DOMString vendorSub; // constant "" }; -partial interface NavigatorID { +partial interface mixin NavigatorID { [Exposed=Window] boolean taintEnabled(); // constant false [Exposed=Window] readonly attribute DOMString oscpu; }; @@ -2450,8 +2449,7 @@ partial interface Window { [Replaceable, SameObject] readonly attribute External external; }; -[Exposed=Window, - NoInterfaceObject] +[Exposed=Window] interface External { void AddSearchProvider(); void IsSearchProviderInstalled(); diff --git a/tests/wpt/web-platform-tests/interfaces/payment-request.idl b/tests/wpt/web-platform-tests/interfaces/payment-request.idl index 63a9ccccad4..53922d315cf 100644 --- a/tests/wpt/web-platform-tests/interfaces/payment-request.idl +++ b/tests/wpt/web-platform-tests/interfaces/payment-request.idl @@ -92,7 +92,6 @@ interface PaymentAddress { readonly attribute DOMString postalCode; readonly attribute DOMString recipient; readonly attribute DOMString region; - readonly attribute DOMString regionCode; readonly attribute DOMString sortingCode; readonly attribute FrozenArray addressLine; }; @@ -101,7 +100,6 @@ dictionary AddressInit { DOMString country; sequence addressLine; DOMString region; - DOMString regionCode; DOMString city; DOMString dependentLocality; DOMString postalCode; @@ -121,7 +119,6 @@ dictionary AddressErrors { DOMString postalCode; DOMString recipient; DOMString region; - DOMString regionCode; DOMString sortingCode; }; diff --git a/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl b/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl index 2e89cfd8979..164ec02a9cf 100644 --- a/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl +++ b/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl @@ -9,6 +9,7 @@ partial interface HTMLVideoElement { attribute EventHandler onenterpictureinpicture; attribute EventHandler onleavepictureinpicture; + [CEReactions] attribute boolean autoPictureInPicture; [CEReactions] attribute boolean disablePictureInPicture; }; diff --git a/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl b/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl index 66c58896c30..72fce2001ca 100644 --- a/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl +++ b/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl @@ -34,7 +34,7 @@ enum LandmarkType { [Exposed=(Window,Worker), Constructor(optional BarcodeDetectorOptions barcodeDetectorOptions)] interface BarcodeDetector { - readonly attribute FrozenArray supportedFormats; + static Promise> getSupportedFormats(); Promise> detect(ImageBitmapSource image); }; diff --git a/tests/wpt/web-platform-tests/interfaces/wasm-js-api.idl b/tests/wpt/web-platform-tests/interfaces/wasm-js-api.idl index 6de14fb8f08..2bd2ecba828 100644 --- a/tests/wpt/web-platform-tests/interfaces/wasm-js-api.idl +++ b/tests/wpt/web-platform-tests/interfaces/wasm-js-api.idl @@ -43,7 +43,7 @@ dictionary ModuleImportDescriptor { interface Module { static sequence exports(Module moduleObject); static sequence imports(Module moduleObject); - static sequence customSections(Module moduleObject, USVString sectionName); + static sequence customSections(Module moduleObject, DOMString sectionName); }; [LegacyNamespace=WebAssembly, Constructor(Module module, optional object importObject), Exposed=(Window,Worker,Worklet)] diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl index cf07738b8b4..c86097b697b 100644 --- a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl +++ b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl @@ -3,12 +3,6 @@ // (https://github.com/tidoust/reffy-reports) // Source: Identifiers for WebRTC's Statistics API (https://w3c.github.io/webrtc-stats/) -dictionary RTCStats { -DOMHighResTimeStamp timestamp; -RTCStatsType type; -DOMString id; - }; - enum RTCStatsType { "codec", "inbound-rtp", @@ -314,7 +308,7 @@ partial dictionary RTCIceCandidatePairStats { unsigned long long priority; }; -partial dictionary RTCRTPStreamStats { +partial dictionary RTCRtpStreamStats { DOMString mediaType; double averageRTCPInterval; }; diff --git a/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html b/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html index 2db6eef569f..51b2224864d 100644 --- a/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html +++ b/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html @@ -9,8 +9,8 @@ diff --git a/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html.headers b/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html.headers index a3c41d2386a..a54b69378e9 100644 --- a/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html.headers +++ b/tests/wpt/web-platform-tests/preload/link-header-preload-nonce.html.headers @@ -1,3 +1,3 @@ Content-Security-Policy: script-src 'nonce-abc' -Link: ;rel=preload;as=script -Link: ;rel=preload;as=script;nonce=abc +Link: ;rel=preload;as=script +Link: ;rel=preload;as=script;nonce=abc diff --git a/tests/wpt/web-platform-tests/preload/link-header-preload-srcset.tentative.html b/tests/wpt/web-platform-tests/preload/link-header-preload-srcset.tentative.html index 70d34e525c1..9eb8ac4e00d 100644 --- a/tests/wpt/web-platform-tests/preload/link-header-preload-srcset.tentative.html +++ b/tests/wpt/web-platform-tests/preload/link-header-preload-srcset.tentative.html @@ -11,16 +11,16 @@ diff --git a/tests/wpt/web-platform-tests/preload/link-header-preload-srcset.tentative.html.headers b/tests/wpt/web-platform-tests/preload/link-header-preload-srcset.tentative.html.headers index 1e4e9b85cac..906de0c95ae 100644 --- a/tests/wpt/web-platform-tests/preload/link-header-preload-srcset.tentative.html.headers +++ b/tests/wpt/web-platform-tests/preload/link-header-preload-srcset.tentative.html.headers @@ -1,3 +1,3 @@ -Link: ; rel=preload; as=image; imagesrcset="resources/square.png?2x 2x, resources/square.png?3x 3x" -Link: ; rel=preload; as=image; imagesrcset="resources/square.png?200 200w, resources/square.png?400 400w, resources/square.png?800 800w"; imagesizes=400px -Link: ; rel=preload; as=image; imagesrcset="resources/square.png?150 150w, resources/square.png?300 300w, resources/square.png?600 600w"; imagesizes="(min-width: 300px) 300px, 150px" +Link: ; rel=preload; as=image; imagesrcset="resources/square.png?from-header&2x 2x, resources/square.png?from-header&3x 3x" +Link: ; rel=preload; as=image; imagesrcset="resources/square.png?from-header&200 200w, resources/square.png?from-header&400 400w, resources/square.png?from-header&800 800w"; imagesizes=400px +Link: ; rel=preload; as=image; imagesrcset="resources/square.png?from-header&150 150w, resources/square.png?from-header&300 300w, resources/square.png?from-header&600 600w"; imagesizes="(min-width: 300px) 300px, 150px" diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html index 7a31a7e1ab3..f347a0b23e1 100644 --- a/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html +++ b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.html @@ -41,7 +41,7 @@ function onload_test() { test_equals(entry.fetchStart, entry.connectStart, 'connectStart and fetchStart should be the same'); test_equals(entry.fetchStart, entry.connectEnd, 'connectEnd and fetchStart should be the same'); if(!window.isSecureConnection) { - test_equals(entry.secureConnectionStart, 0, 'secureConnectStart should be zero'); + test_equals(entry.secureConnectionStart, 0, 'secureConnectionStart should be zero'); } test_equals(entry.fetchStart, entry.domainLookupStart, 'domainLookupStart and fetchStart should be the same') test_equals(entry.fetchStart, entry.domainLookupEnd, 'domainLookupEnd and fetchStart should be the same') diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.https.html b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.https.html index bc79a8519b2..86864090a2e 100644 --- a/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.https.html +++ b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse.https.html @@ -40,7 +40,7 @@ function onload_test() { const entry = entries[1]; test_equals(entry.fetchStart, entry.connectStart, 'connectStart and fetchStart should be the same'); test_equals(entry.fetchStart, entry.connectEnd, 'connectEnd and fetchStart should be the same'); - test_equals(entry.fetchStart, entry.secureConnectionStart, 'secureConnectStart and fetchStart should be the same'); + test_equals(entry.fetchStart, entry.secureConnectionStart, 'secureConnectionStart and fetchStart should be the same'); test_equals(entry.fetchStart, entry.domainLookupStart, 'domainLookupStart and fetchStart should be the same') test_equals(entry.fetchStart, entry.domainLookupEnd, 'domainLookupEnd and fetchStart should be the same') } diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse_mixed_content.html b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse_mixed_content.html new file mode 100644 index 00000000000..51c04ee604c --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse_mixed_content.html @@ -0,0 +1,55 @@ + + + + +Resource Timing connection reuse + + + + + + + + +

Description

+

This test validates that connectStart and connectEnd are the same when a connection is reused (e.g. when a persistent connection is used).

+
+ + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse_mixed_content_redirect.html b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse_mixed_content_redirect.html new file mode 100644 index 00000000000..a46d14c9f15 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resource_connection_reuse_mixed_content_redirect.html @@ -0,0 +1,55 @@ + + + + +Resource Timing connection reuse + + + + + + + + +

Description

+

This test validates that connectStart and connectEnd are the same when a connection is reused (e.g. when a persistent connection is used).

+
+ + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/fake_responses.py b/tests/wpt/web-platform-tests/resource-timing/resources/fake_responses.py index f71693818cb..289c1793176 100644 --- a/tests/wpt/web-platform-tests/resource-timing/resources/fake_responses.py +++ b/tests/wpt/web-platform-tests/resource-timing/resources/fake_responses.py @@ -2,13 +2,20 @@ def main(request, response): tag = request.GET.first("tag", None) + redirect = request.GET.first("redirect", None) match = request.headers.get("If-None-Match", None) date = request.GET.first("date", "") modified = request.headers.get("If-Modified-Since", None) + response.headers.set("Access-Control-Allow-Origin", "*"); + response.headers.set("Timing-Allow-Origin", "*"); if tag: response.headers.set("ETag", '"%s"' % tag) elif date: response.headers.set("Last-Modified", date) + if redirect: + response.headers.set("Location", redirect) + response.status = (302, "Moved") + return "" if ((match is not None and match == tag) or (modified is not None and modified == date)): @@ -16,4 +23,4 @@ def main(request, response): return "" else: response.headers.set("Content-Type", "text/plain") - return "MAYBE NOT" \ No newline at end of file + return "MAYBE NOT" diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/fake_responses_https.sub.html b/tests/wpt/web-platform-tests/resource-timing/resources/fake_responses_https.sub.html new file mode 100644 index 00000000000..cf49fb914be --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resources/fake_responses_https.sub.html @@ -0,0 +1,18 @@ + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/fake_responses_https_redirect.sub.html b/tests/wpt/web-platform-tests/resource-timing/resources/fake_responses_https_redirect.sub.html new file mode 100644 index 00000000000..c55e037d1dc --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resources/fake_responses_https_redirect.sub.html @@ -0,0 +1,20 @@ + + + diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https.html new file mode 100644 index 00000000000..3419cf14b52 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https.html @@ -0,0 +1,177 @@ + + +Test clients.get(resultingClientId) + + + + + diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/get-resultingClientId-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/get-resultingClientId-worker.js new file mode 100644 index 00000000000..f0e6c7becab --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/get-resultingClientId-worker.js @@ -0,0 +1,107 @@ +// This worker expects a fetch event for a navigation and messages back the +// result of clients.get(event.resultingClientId). + +// Resolves when the test finishes. +let testFinishPromise; +let resolveTestFinishPromise; +let rejectTestFinishPromise; + +// Resolves to clients.get(event.resultingClientId) from the fetch event. +let getPromise; +let resolveGetPromise; +let rejectGetPromise; + +let resultingClientId; + +function startTest() { + testFinishPromise = new Promise((resolve, reject) => { + resolveTestFinishPromise = resolve; + rejectTestFinishPromise = reject; + }); + + getPromise = new Promise((resolve, reject) => { + resolveGetPromise = resolve; + rejectGetPromise = reject; + }); +} + +async function describeGetPromiseResult(promise) { + const result = {}; + + await promise.then( + (client) => { + result.promiseState = 'fulfilled'; + if (client === undefined) { + result.promiseValue = 'undefinedValue'; + } else if (client instanceof Client) { + result.promiseValue = 'client'; + result.client = { + id: client.id, + url: client.url + }; + } else { + result.promiseValue = 'unknown'; + } + }, + (error) => { + result.promiseState = 'rejected'; + }); + + return result; +} + +async function handleGetResultingClient(event) { + // Note that this message can arrive before |resultingClientId| is populated. + const result = await describeGetPromiseResult(getPromise); + // |resultingClientId| must be populated by now. + result.queriedId = resultingClientId; + event.source.postMessage(result); +}; + +async function handleGetClient(event) { + const id = event.data.id; + const result = await describeGetPromiseResult(self.clients.get(id)); + result.queriedId = id; + event.source.postMessage(result); +}; + +self.addEventListener('message', (event) => { + if (event.data.command == 'startTest') { + startTest(); + event.waitUntil(testFinishPromise); + event.source.postMessage('ok'); + return; + } + + if (event.data.command == 'finishTest') { + resolveTestFinishPromise(); + event.source.postMessage('ok'); + return; + } + + if (event.data.command == 'getResultingClient') { + event.waitUntil(handleGetResultingClient(event)); + return; + } + + if (event.data.command == 'getClient') { + event.waitUntil(handleGetClient(event)); + return; + } +}); + +async function handleFetch(event) { + try { + resultingClientId = event.resultingClientId; + const client = await self.clients.get(resultingClientId); + resolveGetPromise(client); + } catch (error) { + rejectGetPromise(error); + } +} + +self.addEventListener('fetch', (event) => { + if (event.request.mode != 'navigate') + return; + event.waitUntil(handleFetch(event)); +}); diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js index 7d592ea2143..67439c8a6e4 100644 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg-util.js @@ -1,10 +1,10 @@ // Opens |url| in an iframe, establish a message channel with it, and waits for // a message from the frame content. Returns a promise that resolves with the -// data of the message, or rejects on 2000ms timeout. +// data of the message, or rejects on 3000ms timeout. function openSXGInIframeAndWaitForMessage(test_object, url, referrerPolicy) { return new Promise(async (resolve, reject) => { // We can't catch the network error on iframe. So we use the timer. - test_object.step_timeout(() => reject('timeout'), 2000); + test_object.step_timeout(() => reject('timeout'), 3000); const frame = await withIframe(url, 'sxg_iframe', referrerPolicy); const channel = new MessageChannel(); diff --git a/tests/wpt/web-platform-tests/tools/tox.ini b/tests/wpt/web-platform-tests/tools/tox.ini index 3b0c6d172bc..975056ea2c2 100644 --- a/tests/wpt/web-platform-tests/tools/tox.ini +++ b/tests/wpt/web-platform-tests/tools/tox.ini @@ -15,9 +15,9 @@ passenv = HYPOTHESIS_PROFILE [testenv:py27-flake8] -deps = -r requirements_flake8.txt -commands = flake8 --append-config=py27-flake8.ini {posargs} +deps = -rrequirements_flake8.txt +commands = flake8 --append-config={toxinidir}/py27-flake8.ini {posargs} [testenv:py36-flake8] -deps = -r requirements_flake8.txt -commands = flake8 --append-config=py36-flake8.ini {posargs} +deps = -rrequirements_flake8.txt +commands = flake8 --append-config={toxinidir}/py36-flake8.ini {posargs} diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py index 633d6b254db..df34e591568 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/run.py +++ b/tests/wpt/web-platform-tests/tools/wpt/run.py @@ -171,7 +171,8 @@ class BrowserSetup(object): return self.browser.install(venv.path, channel) def install_requirements(self): - self.venv.install_requirements(os.path.join(wpt_root, "tools", "wptrunner", self.browser.requirements)) + if not self.venv.skip_virtualenv_setup: + self.venv.install_requirements(os.path.join(wpt_root, "tools", "wptrunner", self.browser.requirements)) def setup(self, kwargs): self.setup_kwargs(kwargs) @@ -563,7 +564,8 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs): wptrunner_path = os.path.join(wpt_root, "tools", "wptrunner") - venv.install_requirements(os.path.join(wptrunner_path, "requirements.txt")) + if not venv.skip_virtualenv_setup: + venv.install_requirements(os.path.join(wptrunner_path, "requirements.txt")) kwargs['browser_version'] = setup_cls.browser.version(binary=kwargs.get("binary"), webdriver_binary=kwargs.get("webdriver_binary")) 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 aaff0fa5331..cd70fef5e8b 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 @@ -17,6 +17,7 @@ def venv(): class Virtualenv(virtualenv.Virtualenv): def __init__(self): self.path = tempfile.mkdtemp() + self.skip_virtualenv_setup = False def create(self): return diff --git a/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py b/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py index 1ddac67a39a..75cedf75ee0 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py +++ b/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py @@ -357,7 +357,7 @@ def test_tests_affected_idlharness(capsys, manifest_dir): wpt.main(argv=["tests-affected", "--metadata", manifest_dir, "%s~..%s" % (commit, commit)]) assert excinfo.value.code == 0 out, err = capsys.readouterr() - assert "webrtc/idlharness.https.window.js\n" == out + assert "webrtc-stats/idlharness.window.js\nwebrtc/idlharness.https.window.js\n" == out @pytest.mark.slow # this updates the manifest diff --git a/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py b/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py index 0ce7054ae22..b27529da7a7 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py +++ b/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py @@ -9,11 +9,13 @@ from tools.wpt.utils import call logger = logging.getLogger(__name__) class Virtualenv(object): - def __init__(self, path): + def __init__(self, path, skip_virtualenv_setup): self.path = path - self.virtualenv = find_executable("virtualenv") - if not self.virtualenv: - raise ValueError("virtualenv must be installed and on the PATH") + self.skip_virtualenv_setup = skip_virtualenv_setup + if not skip_virtualenv_setup: + self.virtualenv = find_executable("virtualenv") + if not self.virtualenv: + raise ValueError("virtualenv must be installed and on the PATH") @property def exists(self): diff --git a/tests/wpt/web-platform-tests/tools/wpt/wpt.py b/tests/wpt/web-platform-tests/tools/wpt/wpt.py index 55802461553..909d435b648 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/wpt.py +++ b/tests/wpt/web-platform-tests/tools/wpt/wpt.py @@ -43,6 +43,9 @@ def load_commands(): def parse_args(argv, commands): parser = argparse.ArgumentParser() parser.add_argument("--venv", action="store", help="Path to an existing virtualenv to use") + parser.add_argument("--skip-venv-setup", action="store_true", + dest="skip_venv_setup", + help="Whether to use the virtualenv as-is. Must set --venv as well") parser.add_argument("--debug", action="store_true", help="Run the debugger in case of an exception") subparsers = parser.add_subparsers(dest="command") for command, props in iteritems(commands): @@ -77,15 +80,19 @@ def import_command(prog, command, props): return script, parser -def setup_virtualenv(path, props): +def setup_virtualenv(path, skip_venv_setup, props): + if skip_venv_setup and path is None: + raise ValueError("Must set --venv when --skip-venv-setup is used") + should_skip_setup = path is not None and skip_venv_setup if path is None: path = os.path.join(wpt_root, "_venv") - venv = virtualenv.Virtualenv(path) - venv.start() - for name in props["install"]: - venv.install(name) - for path in props["requirements"]: - venv.install_requirements(path) + venv = virtualenv.Virtualenv(path, should_skip_setup) + if not should_skip_setup: + venv.start() + for name in props["install"]: + venv.install(name) + for path in props["requirements"]: + venv.install_requirements(path) return venv @@ -105,7 +112,7 @@ def main(prog=None, argv=None): props = commands[command] venv = None if props["virtualenv"]: - venv = setup_virtualenv(main_args.venv, props) + venv = setup_virtualenv(main_args.venv, main_args.skip_venv_setup, props) script, parser = import_command(prog, command, props) if parser: if props["parse_known"]: diff --git a/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html b/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html deleted file mode 100644 index 30dea82077c..00000000000 --- a/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - -
- - - diff --git a/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.js b/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.js deleted file mode 100644 index 4e491b9fe60..00000000000 --- a/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.js +++ /dev/null @@ -1,70 +0,0 @@ - -let test_setup_policy = TrustedTypes.createPolicy("hurrayanythinggoes", { - createScriptURL: x => new URL(x, location.href) -}); -importScripts(test_setup_policy.createScriptURL("/resources/testharness.js")); - - -// Determine worker type (for better logging) -let worker_type = "unknown"; -if (this.DedicatedWorkerGlobalScope !== undefined) { - worker_type = "dedicated worker"; -} else if (this.SharedWorkerGlobalScope !== undefined) { - worker_type = "shared worker"; -} else if (this.ServiceWorkerGlobalScope !== undefined) { - worker_type = "service worker"; -} - -const test_policy = TrustedTypes.createPolicy('xxx', { - createScriptURL: url => new URL(url.replace("play", "work"), this.location.href) }); - -test(t => { - self.result = "Fail"; - let trusted_url = test_policy.createScriptURL(new URL("support/player.js", location.href)); - assert_true(TrustedTypes.isScriptURL(trusted_url)); - importScripts(trusted_url); // support/worker.js modifies self.result. - assert_equals(self.result, "Pass"); -}, "importScripts with TrustedScriptURL works in " + worker_type); - -test(t => { - let untrusted_url = "support/player.js"; - assert_throws(new TypeError(), - function() { importScripts(untrusted_url) }, - "importScripts(untrusted_url)"); -}, "importScripts with untrusted URLs throws in " + worker_type); - -test(t => { - assert_throws(new TypeError(), - function() { importScripts(null) }, - "importScripts(null)"); -}, "null is not a trusted script URL throws in " + worker_type); - -test(t => { - self.result = "Fail"; - let trusted_url = test_policy.createScriptURL( - new URL("support/player.js?variant1", location.href)); - let trusted_url2 = test_policy.createScriptURL( - new URL("support/player.js?variant2", location.href)); - importScripts(trusted_url, trusted_url2); - assert_equals(self.result, "Pass"); -}, "importScripts with two URLs, both trusted, in " + worker_type); - -test(t => { - let untrusted_url = "support/player.js?variant1"; - let untrusted_url2 = "support/player.js?variant2"; - assert_throws(new TypeError(), - function() { importScripts(untrusted_url, untrusted_url2) }, - "importScripts(untrusted_url, untrusted_url2)"); -}, "importScripts with two URLs, both strings, in " + worker_type); - -test(t => { - let untrusted_url = "support/player.js"; - let trusted_url = test_policy.createScriptURL( - new URL(untrusted_url, location.href)); - assert_throws(new TypeError(), - function() { importScripts(untrusted_url, trusted_url) }, - "importScripts(untrusted_url, trusted_url)"); -}, "importScripts with two URLs, one trusted, in " + worker_type); - -done(); - diff --git a/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.js.headers b/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.js.headers deleted file mode 100644 index 1bc33add09b..00000000000 --- a/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.js.headers +++ /dev/null @@ -1 +0,0 @@ -Content-Security-Policy: trusted-types * diff --git a/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/support/keys.py b/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/support/keys.py index 487381d5b29..68e37b34e03 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/support/keys.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/perform_actions/support/keys.py @@ -109,7 +109,7 @@ ALL_KEYS = getmembers(Keys, lambda x: type(x) == unicode) ALL_EVENTS = { "ADD": { - "code": "", + "code": "NumpadAdd", "ctrl": False, "key": "+", "location": 3, @@ -496,7 +496,7 @@ ALL_EVENTS = { "value": u"\ue023", }, "PAGE_DOWN": { - "code": "", + "code": "PageDown", "ctrl": False, "key": "PageDown", "location": 0, @@ -505,7 +505,7 @@ ALL_EVENTS = { "value": u"\ue00f", }, "PAGE_UP": { - "code": "", + "code": "PageUp", "ctrl": False, "key": "PageUp", "location": 0, @@ -676,7 +676,7 @@ ALL_EVENTS = { "value": u"\ue018", }, "SEPARATOR": { - "code": "NumpadSubtract", + "code": "NumpadComma", "ctrl": False, "key": ",", "location": 3, @@ -703,7 +703,7 @@ ALL_EVENTS = { "value": u"\ue00d", }, "SUBTRACT": { - "code": "", + "code": "NumpadSubtract", "ctrl": False, "key": "-", "location": 3, diff --git a/tests/wpt/web-platform-tests/webrtc/RTCIceCandidate-constructor.html b/tests/wpt/web-platform-tests/webrtc/RTCIceCandidate-constructor.html index 9842593a83c..cad0464a3c0 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCIceCandidate-constructor.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCIceCandidate-constructor.html @@ -74,19 +74,19 @@ test(t => { const candidate = new RTCIceCandidate({ sdpMid: 'audio' }); - assert_equals(candidate.candidate, ''); - assert_equals(candidate.sdpMid, 'audio'); - assert_equals(candidate.sdpMLineIndex, null); - assert_equals(candidate.usernameFragment, null); + assert_equals(candidate.candidate, '', 'candidate'); + assert_equals(candidate.sdpMid, 'audio', 'sdpMid'); + assert_equals(candidate.sdpMLineIndex, null, 'sdpMLineIndex'); + assert_equals(candidate.usernameFragment, null, 'usernameFragment'); }, `new RTCIceCandidate({ sdpMid: 'audio' })`); test(t => { const candidate = new RTCIceCandidate({ sdpMLineIndex: 0 }); - assert_equals(candidate.candidate, ''); - assert_equals(candidate.sdpMid, null); - assert_equals(candidate.sdpMLineIndex, 0); - assert_equals(candidate.usernameFragment, null); + assert_equals(candidate.candidate, '', 'candidate'); + assert_equals(candidate.sdpMid, null, 'sdpMid'); + assert_equals(candidate.sdpMLineIndex, 0, 'sdpMLineIndex'); + assert_equals(candidate.usernameFragment, null, 'usernameFragment'); }, 'new RTCIceCandidate({ sdpMLineIndex: 0 })'); test(t => { @@ -95,10 +95,10 @@ sdpMLineIndex: 0 }); - assert_equals(candidate.candidate, ''); - assert_equals(candidate.sdpMid, 'audio'); - assert_equals(candidate.sdpMLineIndex, 0); - assert_equals(candidate.usernameFragment, null); + assert_equals(candidate.candidate, '', 'candidate'); + assert_equals(candidate.sdpMid, 'audio', 'sdpMid'); + assert_equals(candidate.sdpMLineIndex, 0, 'sdpMLineIndex'); + assert_equals(candidate.usernameFragment, null, 'usernameFragment'); }, `new RTCIceCandidate({ sdpMid: 'audio', sdpMLineIndex: 0 })`); test(t => { @@ -107,10 +107,10 @@ sdpMid: 'audio' }); - assert_equals(candidate.candidate, ''); - assert_equals(candidate.sdpMid, 'audio'); - assert_equals(candidate.sdpMLineIndex, null); - assert_equals(candidate.usernameFragment, null); + assert_equals(candidate.candidate, '', 'candidate'); + assert_equals(candidate.sdpMid, 'audio', 'sdpMid'); + assert_equals(candidate.sdpMLineIndex, null, 'sdpMLineIndex'); + assert_equals(candidate.usernameFragment, null, 'usernameFragment'); }, `new RTCIceCandidate({ candidate: '', sdpMid: 'audio' }`); test(t => { @@ -119,10 +119,10 @@ sdpMLineIndex: 0 }); - assert_equals(candidate.candidate, ''); - assert_equals(candidate.sdpMid, null); - assert_equals(candidate.sdpMLineIndex, 0); - assert_equals(candidate.usernameFragment, null); + assert_equals(candidate.candidate, '', 'candidate'); + assert_equals(candidate.sdpMid, null, 'sdpMid', 'sdpMid'); + assert_equals(candidate.sdpMLineIndex, 0, 'sdpMLineIndex'); + assert_equals(candidate.usernameFragment, null, 'usernameFragment'); }, `new RTCIceCandidate({ candidate: '', sdpMLineIndex: 0 }`); test(t => { @@ -131,10 +131,10 @@ sdpMid: 'audio' }); - assert_equals(candidate.candidate, candidateString); - assert_equals(candidate.sdpMid, 'audio'); - assert_equals(candidate.sdpMLineIndex, null); - assert_equals(candidate.usernameFragment, null); + assert_equals(candidate.candidate, candidateString, 'candidate'); + assert_equals(candidate.sdpMid, 'audio', 'sdpMid'); + assert_equals(candidate.sdpMLineIndex, null, 'sdpMLineIndex'); + assert_equals(candidate.usernameFragment, null, 'usernameFragment'); }, 'new RTCIceCandidate({ ... }) with valid candidate string and sdpMid'); test(t =>{ @@ -144,10 +144,10 @@ sdpMid: 'audio' }); - assert_equals(candidate.candidate, arbitraryString); - assert_equals(candidate.sdpMid, 'audio'); - assert_equals(candidate.sdpMLineIndex, null); - assert_equals(candidate.usernameFragment, null); + assert_equals(candidate.candidate, arbitraryString, 'candidate'); + assert_equals(candidate.sdpMid, 'audio', 'sdpMid'); + assert_equals(candidate.sdpMLineIndex, null, 'sdpMLineIndex'); + assert_equals(candidate.usernameFragment, null, 'usernameFragment'); }, 'new RTCIceCandidate({ ... }) with invalid candidate string and sdpMid'); test(t => { @@ -158,10 +158,10 @@ usernameFragment: 'test' }); - assert_equals(candidate.candidate, candidateString); - assert_equals(candidate.sdpMid, 'video'); - assert_equals(candidate.sdpMLineIndex, 1); - assert_equals(candidate.usernameFragment, 'test'); + assert_equals(candidate.candidate, candidateString, 'candidate'); + assert_equals(candidate.sdpMid, 'video', 'sdpMid'); + assert_equals(candidate.sdpMLineIndex, 1, 'sdpMLineIndex'); + assert_equals(candidate.usernameFragment, 'test', 'usernameFragment'); }, 'new RTCIceCandidate({ ... }) with non default value for all fields'); @@ -171,10 +171,10 @@ sdpMid: arbitraryString }); - assert_equals(candidate.candidate, ''); - assert_equals(candidate.sdpMid, arbitraryString); - assert_equals(candidate.sdpMLineIndex, null); - assert_equals(candidate.usernameFragment, null); + assert_equals(candidate.candidate, '', 'candidate'); + assert_equals(candidate.sdpMid, arbitraryString, 'sdpMid'); + assert_equals(candidate.sdpMLineIndex, null, 'sdpMLineIndex'); + assert_equals(candidate.usernameFragment, null, 'usernameFragment'); }, 'new RTCIceCandidate({ ... }) with invalid sdpMid'); @@ -187,10 +187,10 @@ sdpMLineIndex: 65535 }); - assert_equals(candidate.candidate, ''); - assert_equals(candidate.sdpMid, null); - assert_equals(candidate.sdpMLineIndex, 65535); - assert_equals(candidate.usernameFragment, null); + assert_equals(candidate.candidate, '', 'candidate'); + assert_equals(candidate.sdpMid, null, 'sdpMid'); + assert_equals(candidate.sdpMLineIndex, 65535, 'sdpMLineIndex'); + assert_equals(candidate.usernameFragment, null, 'usernameFragment'); }, 'new RTCIceCandidate({ ... }) with invalid sdpMLineIndex'); diff --git a/tests/wpt/web-platform-tests/webrtc/RTCIceTransport-extension.https.html b/tests/wpt/web-platform-tests/webrtc/RTCIceTransport-extension.https.html index 7803bde9b3a..e9e70379a48 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCIceTransport-extension.https.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCIceTransport-extension.https.html @@ -177,6 +177,7 @@ test(t => { const candidate1 = new RTCIceCandidate({ candidate: 'candidate:1 1 udp 2113929471 203.0.113.100 10100 typ host', + sdpMid: '', }); test(() => { @@ -191,7 +192,7 @@ test(() => { const iceTransport = new RTCIceTransport(); assert_throws('OperationError', () => iceTransport.addRemoteCandidate( - new RTCIceCandidate({ candidate: 'invalid' }))); + new RTCIceCandidate({ candidate: 'invalid', sdpMid: '' }))); assert_array_equals(iceTransport.getRemoteCandidates(), []); }, 'addRemoteCandidate() throws on invalid candidate'); diff --git a/tests/wpt/web-platform-tests/webstorage/defineProperty.window.js b/tests/wpt/web-platform-tests/webstorage/defineProperty.window.js new file mode 100644 index 00000000000..d8ab163df68 --- /dev/null +++ b/tests/wpt/web-platform-tests/webstorage/defineProperty.window.js @@ -0,0 +1,57 @@ +["localStorage", "sessionStorage"].forEach(function(name) { + [9, "x"].forEach(function(key) { + test(function() { + var desc = { + value: "value", + }; + + var storage = window[name]; + storage.clear(); + + assert_equals(storage[key], undefined); + assert_equals(storage.getItem(key), null); + assert_equals(Object.defineProperty(storage, key, desc), storage); + assert_equals(storage[key], "value"); + assert_equals(storage.getItem(key), "value"); + }, "Defining data property for key " + key + " on " + name); + + test(function() { + var desc1 = { + value: "value", + }; + var desc2 = { + value: "new value", + }; + + var storage = window[name]; + storage.clear(); + + assert_equals(storage[key], undefined); + assert_equals(storage.getItem(key), null); + assert_equals(Object.defineProperty(storage, key, desc1), storage); + assert_equals(storage[key], "value"); + assert_equals(storage.getItem(key), "value"); + + assert_equals(Object.defineProperty(storage, key, desc2), storage); + assert_equals(storage[key], "new value"); + assert_equals(storage.getItem(key), "new value"); + }, "Defining data property for key " + key + " on " + name + " twice"); + + test(function() { + var desc = { + value: { + toString: function() { return "value"; } + }, + }; + + var storage = window[name]; + storage.clear(); + + assert_equals(storage[key], undefined); + assert_equals(storage.getItem(key), null); + assert_equals(Object.defineProperty(storage, key, desc), storage); + assert_equals(storage[key], "value"); + assert_equals(storage.getItem(key), "value"); + }, "Defining data property with toString for key " + key + " on " + name); + }); +}); diff --git a/tests/wpt/web-platform-tests/webstorage/set.window.js b/tests/wpt/web-platform-tests/webstorage/set.window.js new file mode 100644 index 00000000000..479ad588910 --- /dev/null +++ b/tests/wpt/web-platform-tests/webstorage/set.window.js @@ -0,0 +1,102 @@ +["localStorage", "sessionStorage"].forEach(function(name) { + [9, "x"].forEach(function(key) { + test(function() { + var value = "value"; + + var storage = window[name]; + storage.clear(); + + assert_equals(storage[key], undefined); + assert_equals(storage.getItem(key), null); + assert_equals(storage[key] = value, value); + assert_equals(storage[key], "value"); + assert_equals(storage.getItem(key), "value"); + }, "Setting property for key " + key + " on " + name); + + test(function() { + var value = { + toString: function() { return "value"; } + }; + + var storage = window[name]; + storage.clear(); + + assert_equals(storage[key], undefined); + assert_equals(storage.getItem(key), null); + assert_equals(storage[key] = value, value); + assert_equals(storage[key], "value"); + assert_equals(storage.getItem(key), "value"); + }, "Setting property with toString for key " + key + " on " + name); + + test(function() { + Storage.prototype[key] = "proto"; + this.add_cleanup(function() { delete Storage.prototype[key]; }); + + var value = "value"; + + var storage = window[name]; + storage.clear(); + + assert_equals(storage[key], "proto"); + assert_equals(storage.getItem(key), null); + assert_equals(storage[key] = value, value); + // Hidden because no [OverrideBuiltins]. + assert_equals(storage[key], "proto"); + assert_equals(Object.getOwnPropertyDescriptor(storage, key), undefined); + assert_equals(storage.getItem(key), "value"); + }, "Setting property for key " + key + " on " + name + " with data property on prototype"); + + test(function() { + Storage.prototype[key] = "proto"; + this.add_cleanup(function() { delete Storage.prototype[key]; }); + + var value = "value"; + + var storage = window[name]; + storage.clear(); + + storage.setItem(key, "existing"); + + // Hidden because no [OverrideBuiltins]. + assert_equals(storage[key], "proto"); + assert_equals(Object.getOwnPropertyDescriptor(storage, key), undefined); + assert_equals(storage.getItem(key), "existing"); + assert_equals(storage[key] = value, value); + assert_equals(storage[key], "proto"); + assert_equals(Object.getOwnPropertyDescriptor(storage, key), undefined); + assert_equals(storage.getItem(key), "value"); + }, "Setting property for key " + key + " on " + name + " with data property on prototype and existing item"); + + test(function() { + var calledSetter = []; + Object.defineProperty(Storage.prototype, key, { + "get": function() { return "proto getter"; }, + "set": function(v) { calledSetter.push(v); }, + configurable: true, + }); + this.add_cleanup(function() { delete Storage.prototype[key]; }); + + var value = "value"; + + var storage = window[name]; + storage.clear(); + + assert_equals(storage[key], "proto getter"); + assert_equals(storage.getItem(key), null); + assert_equals(storage[key] = value, value); + // Property is hidden because no [OverrideBuiltins]. + if (typeof key === "number") { + // P is an array index: call through to OrdinarySetWithOwnDescriptor() + assert_array_equals(calledSetter, [value]); + assert_equals(storage[key], "proto getter"); + assert_equals(storage.getItem(key), null); + } else { + // P is not an array index: early return in [[Set]] step 2. + // https://github.com/heycam/webidl/issues/630 + assert_equals(storage[key], "proto getter"); + assert_equals(Object.getOwnPropertyDescriptor(storage, key), undefined); + assert_equals(storage.getItem(key), "value"); + } + }, "Setting property for key " + key + " on " + name + " with accessor property on prototype"); + }); +}); diff --git a/tests/wpt/web-platform-tests/webxr/navigator_xr_requestDevice.https.html b/tests/wpt/web-platform-tests/webxr/navigator_xr_requestDevice.https.html deleted file mode 100644 index c51dd8db165..00000000000 --- a/tests/wpt/web-platform-tests/webxr/navigator_xr_requestDevice.https.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/tests/wpt/web-platform-tests/webxr/navigator_xr_requestDevice_no_device.https.html b/tests/wpt/web-platform-tests/webxr/navigator_xr_requestDevice_no_device.https.html deleted file mode 100644 index 3cd149bb0ce..00000000000 --- a/tests/wpt/web-platform-tests/webxr/navigator_xr_requestDevice_no_device.https.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js b/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js index 10bdc12810c..7344fa05f65 100644 --- a/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js +++ b/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js @@ -26,7 +26,6 @@ function xr_promise_test(name, func, properties) { // Requires a webglCanvas on the page. function xr_session_promise_test( name, func, fakeDeviceInit, sessionOptions, properties) { - let testDevice; let testDeviceController; let testSession; @@ -44,16 +43,12 @@ function xr_session_promise_test( XRTest.simulateDeviceConnection(fakeDeviceInit) .then((controller) => { testDeviceController = controller; - return navigator.xr.requestDevice(); - }) - .then((device) => { - testDevice = device; return gl.makeXRCompatible(); }) .then(() => new Promise((resolve, reject) => { // Perform the session request in a user gesture. XRTest.simulateUserActivation(() => { - testDevice.requestSession(sessionOptions) + navigator.xr.requestSession(sessionOptions) .then((session) => { testSession = session; // Session must have a baseLayer or frame requests @@ -74,7 +69,7 @@ function xr_session_promise_test( .then(() => { // Cleanup system state. testSession.end().catch(() => {}); - XRTest.simulateDeviceDisconnection(testDevice); + XRTest.simulateDeviceDisconnection(); }), properties); } @@ -97,7 +92,6 @@ function getOutputContext() { // that API object. function forEachWebxrObject(callback) { callback(window.navigator.xr, 'navigator.xr'); - callback(window.XRDevice, 'XRDevice'); callback(window.XRSession, 'XRSession'); callback(window.XRSessionCreationOptions, 'XRSessionCreationOptions'); callback(window.XRFrameRequestCallback, 'XRFrameRequestCallback'); diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html index e9e7b9bc131..c5956e7f3d1 100644 --- a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive.https.html @@ -9,6 +9,6 @@ "Tests requestSession resolves when supported", (session) => { assert_not_equals(session, null); - }, { supportsImmersive:true }, { immersive: true }); + }, { supportsImmersive:true }, { mode: 'immersive-vr' }); \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive_no_gesture.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive_no_gesture.https.html index 9f0f5f3d8ae..c1b3286709d 100644 --- a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive_no_gesture.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive_no_gesture.https.html @@ -8,9 +8,8 @@ "Requesting immersive session outside of a user gesture rejects", (t) => { return XRTest.simulateDeviceConnection({ supportsImmersive:true }) - .then( (controller) => { return navigator.xr.requestDevice() }) - .then( (device) => promise_rejects( - t, 'SecurityError', device.requestSession({ immersive: true }))); + .then( (controller) => promise_rejects( + t, 'SecurityError', navigator.xr.requestSession({ mode: 'immersive-vr' }))); }); diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive_unsupported.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive_unsupported.https.html index e0d2688e997..60e9e6cc6e1 100644 --- a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive_unsupported.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_immersive_unsupported.https.html @@ -8,13 +8,12 @@ "Requesting an immersive session when unsupported rejects", (t) => { return XRTest.simulateDeviceConnection({ supportsImmersive:false }) - .then( (controller) => { return navigator.xr.requestDevice() }) - .then( (magicWindowOnlyDevice) => new Promise((resolve) => { + .then( (controller) => new Promise((resolve) => { XRTest.simulateUserActivation( () => { resolve(promise_rejects( t, "NotSupportedError", - magicWindowOnlyDevice.requestSession({ immersive: true }) + navigator.xr.requestSession({ mode: 'immersive-vr' }) )) }); })); diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html index 1634dfe9cba..6cf50f521c4 100644 --- a/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html @@ -8,9 +8,8 @@ "Requesting non-immersive session outside of a user gesture succeeds", (t) => { return XRTest.simulateDeviceConnection({ supportsImmersive:false }) - .then( (controller) => { return navigator.xr.requestDevice(); }) - .then( (device) => device.requestSession({ - immersive: false, + .then( (controller) => navigator.xr.requestSession({ + mode: 'inline', outputContext: getOutputContext() })) .then( (session) => { assert_not_equals(session, null); }); diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_supportsSession_immersive.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_supportsSession_immersive.https.html index 3ca5eb11c53..c0b47013f9d 100644 --- a/tests/wpt/web-platform-tests/webxr/xrDevice_supportsSession_immersive.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrDevice_supportsSession_immersive.https.html @@ -5,11 +5,10 @@ diff --git a/tests/wpt/web-platform-tests/webxr/xrDevice_supportsSession_immersive_unsupported.https.html b/tests/wpt/web-platform-tests/webxr/xrDevice_supportsSession_immersive_unsupported.https.html index 0c1dd25869f..2b17b96b1bc 100644 --- a/tests/wpt/web-platform-tests/webxr/xrDevice_supportsSession_immersive_unsupported.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrDevice_supportsSession_immersive_unsupported.https.html @@ -5,15 +5,14 @@ diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_cancelAnimationFrame.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_cancelAnimationFrame.https.html index 26c0e956054..9b08f93eead 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_cancelAnimationFrame.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_cancelAnimationFrame.https.html @@ -13,7 +13,7 @@ let fakeDeviceInitParams = { supportsImmersive:true }; - let immersiveSessionOptions = { immersive: true }; + let immersiveSessionOptions = { mode: 'immersive-vr' }; let nonImmersiveSessionOptions = { outputContext: getOutputContext() }; let testFunction = (session) => new Promise((resolve, reject) => { diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html index 4f4b8dfe5ff..bc9b625fb9e 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html @@ -12,7 +12,7 @@ let fakeDeviceInitParams = { supportsImmersive:true }; - let immersiveSessionOptions = { immersive: true }; + let immersiveSessionOptions = { mode: 'immersive-vr' }; let nonImmersiveSessionOptions = { outputContext: getOutputContext() }; let testFunction = (testSession) => new Promise((resolve) => { diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html index 69bbda85fda..2719bdd7dd1 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_end.https.html @@ -11,7 +11,7 @@ let watcherDone = new Event("watcherdone"); const fakeDeviceInitParams = { supportsImmersive:true }; - const immersiveSessionOptions = { immersive: true }; + const immersiveSessionOptions = { mode: 'immersive-vr' }; const nonImmersiveSessionOptions = { outputContext: getOutputContext() }; let testFunction = function(session, testDeviceController, t) { diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_mode.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_mode.https.html new file mode 100644 index 00000000000..4b54d948021 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/xrSession_mode.https.html @@ -0,0 +1,22 @@ + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_prevent_multiple_exclusive.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_prevent_multiple_exclusive.https.html index ff3eaef81dd..c2e7f3bf444 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_prevent_multiple_exclusive.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_prevent_multiple_exclusive.https.html @@ -10,26 +10,25 @@ "Test prevention of multiple simultaneous immersive sessions", (t) => { return XRTest.simulateDeviceConnection({ supportsImmersive:true }) - .then( (controller) => { return navigator.xr.requestDevice() }) - .then( (device) => new Promise((resolve) => { + .then( (controller) => new Promise((resolve) => { XRTest.simulateUserActivation( () => { - resolve(device.requestSession({ immersive: true }) + resolve(navigator.xr.requestSession({ mode: 'immersive-vr' }) .then( (session) => new Promise((resolve) => { XRTest.simulateUserActivation( () => { - // Requesting a second immersive session from a device that already - // has an active immersive session should fail. Immersive sessions + // Requesting a second immersive session when another immersive + // session is active should fail. Immersive sessions // should take up the users entire view, and therefore it should // be impossible for a user to be engaged with more than one. resolve(promise_rejects( t, "InvalidStateError", - device.requestSession({ immersive: true }) + navigator.xr.requestSession({ mode: 'immersive-vr' }) ).then( () => { // End the immersive session and try again. Now the immersive // session creation should succeed. return session.end().then( () => new Promise((resolve) => { XRTest.simulateUserActivation( () => { - resolve(device.requestSession({ immersive: true })); + resolve(navigator.xr.requestSession({ mode: 'immersive-vr' })); }); })); })); diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https.html index 48dc88779ab..268efcd596e 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https.html @@ -13,7 +13,7 @@ let fakeDeviceInitParams = { supportsImmersive:true }; - let immersiveSessionOptions = { immersive: true }; + let immersiveSessionOptions = { mode: 'immersive-vr' }; let nonImmersiveSessionOptions = { outputContext: getOutputContext() }; let testFunction = (testSession) => new Promise((resolve) => { diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https.html index b5f4f180c1a..f873a115880 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https.html @@ -28,7 +28,7 @@ }; const fakeDeviceInitOptions = { supportsImmersive:true }; - const sessionOptions = { immersive:true }; + const sessionOptions = { mode: 'immersive-vr' }; let testSession; diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html index 17b5307f019..ca6a71758c6 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html @@ -14,7 +14,7 @@ let fakeDeviceInitParams = { supportsImmersive: true }; - let immersiveSessionOptions = { immersive: true }; + let immersiveSessionOptions = { mode: 'immersive-vr' }; let nonImmersiveSessionOptions = { outputContext: getOutputContext() }; // Valid matrices for when we don't care about specific values diff --git a/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html b/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html index d97852c917b..1eb49e0b875 100644 --- a/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrSession_requestReferenceSpace.https.html @@ -13,7 +13,7 @@ let fakeDeviceInitParams = { supportsImmersive: true }; - let immersiveSessionOptions = { immersive: true }; + let immersiveSessionOptions = { mode: 'immersive-vr' }; let nonImmersiveSessionOptions = { outputContext: getOutputContext() }; let testFunction = function(session, fakeDeviceController, t) { diff --git a/tests/wpt/web-platform-tests/workers/semantics/run-a-worker/003.html b/tests/wpt/web-platform-tests/workers/semantics/run-a-worker/003.html index 8c2f07ee730..e96c176f20a 100644 --- a/tests/wpt/web-platform-tests/workers/semantics/run-a-worker/003.html +++ b/tests/wpt/web-platform-tests/workers/semantics/run-a-worker/003.html @@ -2,20 +2,14 @@ handling for 404 response -