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 ad22286ea9c..ddec8f6b25a 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -14221,6 +14221,18 @@ {} ] ], + "payment-handler/change-payment-method-manual.https.html": [ + [ + "payment-handler/change-payment-method-manual.https.html", + {} + ] + ], + "payment-handler/payment-request-event-manual.https.html": [ + [ + "payment-handler/payment-request-event-manual.https.html", + {} + ] + ], "payment-method-basic-card/empty-data-manual.https.html": [ [ "payment-method-basic-card/empty-data-manual.https.html", @@ -14581,36 +14593,6 @@ {} ] ], - "pointerevents/pointerlock/pointerevent_movementxy-manual.html": [ - [ - "pointerevents/pointerlock/pointerevent_movementxy-manual.html", - {} - ] - ], - "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html": [ - [ - "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html", - {} - ] - ], - "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html": [ - [ - "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html", - {} - ] - ], - "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html": [ - [ - "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html", - {} - ] - ], - "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html": [ - [ - "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html", - {} - ] - ], "pointerlock/movementX_Y_no-jumps-manual.html": [ [ "pointerlock/movementX_Y_no-jumps-manual.html", @@ -117453,6 +117435,18 @@ {} ] ], + "css/css-flexbox/flex-aspect-ratio-img-column-005.html": [ + [ + "css/css-flexbox/flex-aspect-ratio-img-column-005.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css/css-flexbox/flex-aspect-ratio-img-row-001.html": [ [ "css/css-flexbox/flex-aspect-ratio-img-row-001.html", @@ -118149,6 +118143,18 @@ {} ] ], + "css/css-flexbox/flex-minimum-height-flex-items-015.html": [ + [ + "css/css-flexbox/flex-minimum-height-flex-items-015.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css/css-flexbox/flex-minimum-width-flex-items-001.xht": [ [ "css/css-flexbox/flex-minimum-width-flex-items-001.xht", @@ -130315,6 +130321,18 @@ {} ] ], + "css/css-multicol/composited-under-clip-under-multicol.html": [ + [ + "css/css-multicol/composited-under-clip-under-multicol.html", + [ + [ + "/css/css-multicol/composited-under-clip-under-multicol-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-multicol/float-and-block.html": [ [ "css/css-multicol/float-and-block.html", @@ -165053,6 +165071,18 @@ {} ] ], + "css/css-variables/variable-reference-visited.html": [ + [ + "css/css-variables/variable-reference-visited.html", + [ + [ + "/css/css-variables/variable-reference-visited-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-variables/variable-reference-without-whitespace.html": [ [ "css/css-variables/variable-reference-without-whitespace.html", @@ -177109,6 +177139,18 @@ {} ] ], + "css/filter-effects/backdrop-filter-plus-mask.html": [ + [ + "css/filter-effects/backdrop-filter-plus-mask.html", + [ + [ + "/css/filter-effects/backdrop-filter-plus-mask-ref.html", + "==" + ] + ], + {} + ] + ], "css/filter-effects/backdrop-filter-reference-filter.html": [ [ "css/filter-effects/backdrop-filter-reference-filter.html", @@ -248464,6 +248506,9 @@ "css/css-multicol/META.yml": [ [] ], + "css/css-multicol/composited-under-clip-under-multicol-ref.html": [ + [] + ], "css/css-multicol/float-with-line-after-spanner-ref.html": [ [] ], @@ -254869,6 +254914,9 @@ "css/css-variables/variable-generated-content-dynamic-001-ref.html": [ [] ], + "css/css-variables/variable-reference-visited-ref.html": [ + [] + ], "css/css-variables/wide-keyword-fallback-ref.html": [ [] ], @@ -256891,6 +256939,9 @@ "css/filter-effects/backdrop-filter-plus-filter-ref.html": [ [] ], + "css/filter-effects/backdrop-filter-plus-mask-ref.html": [ + [] + ], "css/filter-effects/backdrop-filter-update-ref.html": [ [] ], @@ -260635,15 +260686,6 @@ "docs/writing-tests/python-handlers/index.md": [ [] ], - "docs/writing-tests/python-handlers/request.md": [ - [] - ], - "docs/writing-tests/python-handlers/response.md": [ - [] - ], - "docs/writing-tests/python-handlers/stash.md": [ - [] - ], "docs/writing-tests/reftests.md": [ [] ], @@ -262825,6 +262867,9 @@ "fetch/sec-metadata/resources/record-header.py": [ [] ], + "fetch/sec-metadata/resources/redirectTestHelper.sub.js": [ + [] + ], "fetch/sec-metadata/resources/sharedWorker.js": [ [] ], @@ -263515,6 +263560,12 @@ "html/browsers/browsing-the-web/history-traversal/resources/a.html": [ [] ], + "html/browsers/browsing-the-web/history-traversal/resources/api-availability-1.html": [ + [] + ], + "html/browsers/browsing-the-web/history-traversal/resources/api-availability-2.html": [ + [] + ], "html/browsers/browsing-the-web/history-traversal/resources/b.html": [ [] ], @@ -264361,7 +264412,22 @@ "html/browsers/windows/resources/window-opener.html": [ [] ], - "html/cross-origin-opener/new_window_same_site.html.headers": [ + "html/cross-origin-opener/common.sub.js": [ + [] + ], + "html/cross-origin-opener/new_window_same_origin.tentative.html.headers": [ + [] + ], + "html/cross-origin-opener/new_window_same_origin_unsafe_allow_outgoing.tentative.html.headers": [ + [] + ], + "html/cross-origin-opener/new_window_same_site.tentative.html.headers": [ + [] + ], + "html/cross-origin-opener/new_window_same_site_unsafe_allow_outgoing.tentative.html.headers": [ + [] + ], + "html/cross-origin-opener/resources/coop_window.py": [ [] ], "html/cross-origin-opener/resources/postback.sub.html": [ @@ -270754,7 +270820,7 @@ "lifecycle/META.yml": [ [] ], - "lifecycle/resources/foo.txt": [ + "lifecycle/resources/beacon.py": [ [] ], "lifecycle/resources/subframe.html": [ @@ -272194,7 +272260,10 @@ "page-visibility/resources/prerender_target.html": [ [] ], - "page-visibility/unload-1.html": [ + "page-visibility/resources/unload-bubbles.html": [ + [] + ], + "page-visibility/resources/unload.html": [ [] ], "paint-timing/META.yml": [ @@ -276538,18 +276607,9 @@ "service-workers/service-worker/resources/cors-denied.txt": [ [] ], - "service-workers/service-worker/resources/dummy-shared-worker-interceptor.js": [ - [] - ], - "service-workers/service-worker/resources/dummy-shared-worker-interceptor.js.headers": [ - [] - ], "service-workers/service-worker/resources/dummy-worker-interceptor.js": [ [] ], - "service-workers/service-worker/resources/dummy-worker-script.py": [ - [] - ], "service-workers/service-worker/resources/dummy.html": [ [] ], @@ -277039,6 +277099,9 @@ "service-workers/service-worker/resources/postmessage-msgport-to-client-worker.js": [ [] ], + "service-workers/service-worker/resources/postmessage-on-load-worker.js": [ + [] + ], "service-workers/service-worker/resources/postmessage-to-client-worker.js": [ [] ], @@ -277159,12 +277222,6 @@ "service-workers/service-worker/resources/service-worker-interception-static-import-worker.js": [ [] ], - "service-workers/service-worker/resources/shared-worker-controlled.js": [ - [] - ], - "service-workers/service-worker/resources/shared-worker-import.js": [ - [] - ], "service-workers/service-worker/resources/silence.oga": [ [] ], @@ -277585,6 +277642,12 @@ "speech-api/webspeech.js": [ [] ], + "std-toast/META.yml": [ + [] + ], + "std-toast/resources/helpers.js": [ + [] + ], "storage/META.yml": [ [] ], @@ -277627,33 +277690,18 @@ "subresource-integrity/alternate.css": [ [] ], - "subresource-integrity/crossorigin-anon-script.js": [ - [] - ], - "subresource-integrity/crossorigin-anon-script.js.headers": [ - [] - ], "subresource-integrity/crossorigin-anon-style.css": [ [] ], "subresource-integrity/crossorigin-anon-style.css.headers": [ [] ], - "subresource-integrity/crossorigin-creds-script.js": [ - [] - ], - "subresource-integrity/crossorigin-creds-script.js.sub.headers": [ - [] - ], "subresource-integrity/crossorigin-creds-style.css": [ [] ], "subresource-integrity/crossorigin-creds-style.css.sub.headers": [ [] ], - "subresource-integrity/crossorigin-ineligible-script.js": [ - [] - ], "subresource-integrity/crossorigin-ineligible-style.css": [ [] ], @@ -277729,10 +277777,10 @@ "subresource-integrity/ed25519-style.css.headers": [ [] ], - "subresource-integrity/matching-digest.js": [ + "subresource-integrity/script.js": [ [] ], - "subresource-integrity/non-matching-digest.js": [ + "subresource-integrity/sri-test-helpers.sub.js": [ [] ], "subresource-integrity/style.css": [ @@ -304140,6 +304188,12 @@ {} ] ], + "content-security-policy/meta/sandbox-iframe.html": [ + [ + "content-security-policy/meta/sandbox-iframe.html", + {} + ] + ], "content-security-policy/navigate-to/anchor-navigation-always-allowed.html": [ [ "content-security-policy/navigate-to/anchor-navigation-always-allowed.html", @@ -306726,6 +306780,18 @@ {} ] ], + "css/CSS2/floats/floats-saturated-position-crash.html": [ + [ + "css/CSS2/floats/floats-saturated-position-crash.html", + {} + ] + ], + "css/CSS2/floats/list-item-taller-than-opportunity-001.html": [ + [ + "css/CSS2/floats/list-item-taller-than-opportunity-001.html", + {} + ] + ], "css/CSS2/floats/zero-space-between-floats-001.html": [ [ "css/CSS2/floats/zero-space-between-floats-001.html", @@ -312966,6 +313032,12 @@ {} ] ], + "css/css-position/position-absolute-crash-chrome-009.html": [ + [ + "css/css-position/position-absolute-crash-chrome-009.html", + {} + ] + ], "css/css-position/position-absolute-dynamic-containing-block.html": [ [ "css/css-position/position-absolute-dynamic-containing-block.html", @@ -314718,6 +314790,12 @@ {} ] ], + "css/css-sizing/min-max-content-orthogonal-flow-crash-001.html": [ + [ + "css/css-sizing/min-max-content-orthogonal-flow-crash-001.html", + {} + ] + ], "css/css-sizing/parsing/box-sizing-computed.html": [ [ "css/css-sizing/parsing/box-sizing-computed.html", @@ -319742,6 +319820,24 @@ {} ] ], + "css/css-ui/appearance-parsing.html": [ + [ + "css/css-ui/appearance-parsing.html", + {} + ] + ], + "css/css-ui/appearance-property.html": [ + [ + "css/css-ui/appearance-property.html", + {} + ] + ], + "css/css-ui/appearance-serialization.html": [ + [ + "css/css-ui/appearance-serialization.html", + {} + ] + ], "css/css-ui/box-sizing-027.html": [ [ "css/css-ui/box-sizing-027.html", @@ -320006,6 +320102,24 @@ {} ] ], + "css/css-ui/webkit-appearance-parsing.html": [ + [ + "css/css-ui/webkit-appearance-parsing.html", + {} + ] + ], + "css/css-ui/webkit-appearance-property.html": [ + [ + "css/css-ui/webkit-appearance-property.html", + {} + ] + ], + "css/css-ui/webkit-appearance-serialization.html": [ + [ + "css/css-ui/webkit-appearance-serialization.html", + {} + ] + ], "css/css-values/absolute-length-units-001.html": [ [ "css/css-values/absolute-length-units-001.html", @@ -326717,6 +326831,12 @@ {} ] ], + "element-timing/css-generated-text.html": [ + [ + "element-timing/css-generated-text.html", + {} + ] + ], "element-timing/disconnect-image.html": [ [ "element-timing/disconnect-image.html", @@ -326813,12 +326933,6 @@ {} ] ], - "element-timing/observe-large-image.html": [ - [ - "element-timing/observe-large-image.html", - {} - ] - ], "element-timing/observe-multiple-images.html": [ [ "element-timing/observe-multiple-images.html", @@ -326831,6 +326945,12 @@ {} ] ], + "element-timing/observe-shadow-text.html": [ + [ + "element-timing/observe-shadow-text.html", + {} + ] + ], "element-timing/observe-svg-image.html": [ [ "element-timing/observe-svg-image.html", @@ -340451,12 +340571,30 @@ {} ] ], + "fetch/sec-metadata/redirect/multiple-redirect-https-downgrade-upgrade.tentative.sub.html": [ + [ + "fetch/sec-metadata/redirect/multiple-redirect-https-downgrade-upgrade.tentative.sub.html", + {} + ] + ], "fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html": [ [ "fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html", {} ] ], + "fetch/sec-metadata/redirect/redirect-http-upgrade.tentative.sub.html": [ + [ + "fetch/sec-metadata/redirect/redirect-http-upgrade.tentative.sub.html", + {} + ] + ], + "fetch/sec-metadata/redirect/redirect-https-downgrade.tentative.sub.html": [ + [ + "fetch/sec-metadata/redirect/redirect-https-downgrade.tentative.sub.html", + {} + ] + ], "fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html": [ [ "fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html", @@ -341104,6 +341242,12 @@ {} ] ], + "html/browsers/browsing-the-web/history-traversal/api-availability.html": [ + [ + "html/browsers/browsing-the-web/history-traversal/api-availability.html", + {} + ] + ], "html/browsers/browsing-the-web/history-traversal/browsing_context_name.html": [ [ "html/browsers/browsing-the-web/history-traversal/browsing_context_name.html", @@ -343172,9 +343316,33 @@ {} ] ], - "html/cross-origin-opener/new_window_same_site.html": [ + "html/cross-origin-opener/new_window_null.tentative.html": [ [ - "html/cross-origin-opener/new_window_same_site.html", + "html/cross-origin-opener/new_window_null.tentative.html", + {} + ] + ], + "html/cross-origin-opener/new_window_same_origin.tentative.html": [ + [ + "html/cross-origin-opener/new_window_same_origin.tentative.html", + {} + ] + ], + "html/cross-origin-opener/new_window_same_origin_unsafe_allow_outgoing.tentative.html": [ + [ + "html/cross-origin-opener/new_window_same_origin_unsafe_allow_outgoing.tentative.html", + {} + ] + ], + "html/cross-origin-opener/new_window_same_site.tentative.html": [ + [ + "html/cross-origin-opener/new_window_same_site.tentative.html", + {} + ] + ], + "html/cross-origin-opener/new_window_same_site_unsafe_allow_outgoing.tentative.html": [ + [ + "html/cross-origin-opener/new_window_same_site_unsafe_allow_outgoing.tentative.html", {} ] ], @@ -356697,6 +356865,18 @@ {} ] ], + "largest-contentful-paint/observe-image.html": [ + [ + "largest-contentful-paint/observe-image.html", + {} + ] + ], + "largest-contentful-paint/observe-text.html": [ + [ + "largest-contentful-paint/observe-text.html", + {} + ] + ], "layout-instability/buffer-layout-shift.html": [ [ "layout-instability/buffer-layout-shift.html", @@ -361099,54 +361279,12 @@ {} ] ], - "navigation-timing/nav2_test_redirect_xserver_opt_in.html": [ - [ - "navigation-timing/nav2_test_redirect_xserver_opt_in.html", - {} - ] - ], "navigation-timing/nav2_test_unique_nav_instances.html": [ [ "navigation-timing/nav2_test_unique_nav_instances.html", {} ] ], - "navigation-timing/nav2_test_unloadEvents_no_previous_document.html": [ - [ - "navigation-timing/nav2_test_unloadEvents_no_previous_document.html", - {} - ] - ], - "navigation-timing/nav2_test_unloadEvents_previous_document_cross_origin.sub.html": [ - [ - "navigation-timing/nav2_test_unloadEvents_previous_document_cross_origin.sub.html", - {} - ] - ], - "navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_chain_partial_opt_in.html": [ - [ - "navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_chain_partial_opt_in.html", - {} - ] - ], - "navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_opt_in.html": [ - [ - "navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_opt_in.html", - {} - ] - ], - "navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirects.html": [ - [ - "navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirects.html", - {} - ] - ], - "navigation-timing/nav2_test_unloadEvents_with_previous_document.html": [ - [ - "navigation-timing/nav2_test_unloadEvents_with_previous_document.html", - {} - ] - ], "navigation-timing/po-navigation.html": [ [ "navigation-timing/po-navigation.html", @@ -361279,6 +361417,12 @@ {} ] ], + "navigation-timing/unload-event-same-origin-check.html": [ + [ + "navigation-timing/unload-event-same-origin-check.html", + {} + ] + ], "netinfo/idlharness.any.js": [ [ "netinfo/idlharness.any.html", @@ -371266,6 +371410,12 @@ {} ] ], + "page-visibility/unload-bubbles.html": [ + [ + "page-visibility/unload-bubbles.html", + {} + ] + ], "page-visibility/unload.html": [ [ "page-visibility/unload.html", @@ -371391,14 +371541,6 @@ {} ] ], - "payment-handler/change-payment-method.https.html": [ - [ - "payment-handler/change-payment-method.https.html", - { - "testdriver": true - } - ] - ], "payment-handler/idlharness.https.any.js": [ [ "payment-handler/idlharness.https.any.html", @@ -371517,12 +371659,6 @@ {} ] ], - "payment-handler/payment-request-event.https.html": [ - [ - "payment-handler/payment-request-event.https.html", - {} - ] - ], "payment-handler/same-object-attributes.https.html": [ [ "payment-handler/same-object-attributes.https.html", @@ -372920,6 +373056,15 @@ } ] ], + "pointerevents/pointerlock/pointerevent_movementxy.html": [ + [ + "pointerevents/pointerlock/pointerevent_movementxy.html", + { + "testdriver": true, + "timeout": "long" + } + ] + ], "pointerevents/pointerlock/pointerevent_movementxy_when_locked.html": [ [ "pointerevents/pointerlock/pointerevent_movementxy_when_locked.html", @@ -372928,6 +373073,38 @@ } ] ], + "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html": [ + [ + "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html", + { + "testdriver": true + } + ] + ], + "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html": [ + [ + "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html", + { + "testdriver": true + } + ] + ], + "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html": [ + [ + "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html", + { + "testdriver": true + } + ] + ], + "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html": [ + [ + "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html", + { + "testdriver": true + } + ] + ], "pointerlock/constructor.html": [ [ "pointerlock/constructor.html", @@ -373560,6 +373737,12 @@ {} ] ], + "quirks/table-replaced-descendant-percentage-height-crash.html": [ + [ + "quirks/table-replaced-descendant-percentage-height-crash.html", + {} + ] + ], "quirks/unitless-length/excluded-properties-001.html": [ [ "quirks/unitless-length/excluded-properties-001.html", @@ -384223,6 +384406,12 @@ } ] ], + "scroll-animations/scroll-animation.html": [ + [ + "scroll-animations/scroll-animation.html", + {} + ] + ], "secure-contexts/basic-dedicated-worker.html": [ [ "secure-contexts/basic-dedicated-worker.html", @@ -385586,6 +385775,23 @@ {} ] ], + "service-workers/service-worker/global-serviceworker.https.any.js": [ + [ + "service-workers/service-worker/global-serviceworker.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "serviceWorker on service worker global" + ], + [ + "global", + "!default,serviceworker" + ] + ] + } + ] + ], "service-workers/service-worker/http-to-https-redirect-and-register.https.html": [ [ "service-workers/service-worker/http-to-https-redirect-and-register.https.html", @@ -386066,12 +386272,6 @@ {} ] ], - "service-workers/service-worker/shared-worker-controlled.https.html": [ - [ - "service-workers/service-worker/shared-worker-controlled.https.html", - {} - ] - ], "service-workers/service-worker/skip-waiting-installed.https.html": [ [ "service-workers/service-worker/skip-waiting-installed.https.html", @@ -386277,7 +386477,9 @@ "service-workers/service-worker/worker-interception.https.html": [ [ "service-workers/service-worker/worker-interception.https.html", - {} + { + "timeout": "long" + } ] ], "service-workers/service-worker/xhr-response-url.https.html": [ @@ -387469,6 +387671,44 @@ } ] ], + "std-toast/attributes.html": [ + [ + "std-toast/attributes.html", + {} + ] + ], + "std-toast/events-open.html": [ + [ + "std-toast/events-open.html", + {} + ] + ], + "std-toast/events-showhide.html": [ + [ + "std-toast/events-showhide.html", + {} + ] + ], + "std-toast/methods.html": [ + [ + "std-toast/methods.html", + {} + ] + ], + "std-toast/options.html": [ + [ + "std-toast/options.html", + { + "timeout": "long" + } + ] + ], + "std-toast/show-toast.html": [ + [ + "std-toast/show-toast.html", + {} + ] + ], "storage/estimate-indexeddb.https.any.js": [ [ "storage/estimate-indexeddb.https.any.html", @@ -392864,9 +393104,9 @@ {} ] ], - "subresource-integrity/subresource-integrity.sub.html": [ + "subresource-integrity/subresource-integrity.html": [ [ - "subresource-integrity/subresource-integrity.sub.html", + "subresource-integrity/subresource-integrity.html", {} ] ], @@ -405420,6 +405660,24 @@ } ] ], + "websockets/remove-own-iframe-during-onerror.window.js": [ + [ + "websockets/remove-own-iframe-during-onerror.window.html", + { + "script_metadata": [ + [ + "script", + "websocket.sub.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], "websockets/security/001.html": [ [ "websockets/security/001.html", @@ -432397,6 +432655,12 @@ {} ] ], + "webdriver/tests/switch_to_window/alerts.py": [ + [ + "webdriver/tests/switch_to_window/alerts.py", + {} + ] + ], "webdriver/tests/switch_to_window/switch.py": [ [ "webdriver/tests/switch_to_window/switch.py", @@ -432435,7 +432699,7 @@ }, "paths": { ".azure-pipelines.yml": [ - "80748691d6fd3c16a659c4c6c57115ca9341a38e", + "95721a82ab8dcb80e9e9f0095dba652f21ab3492", "support" ], ".codecov.yml": [ @@ -437779,7 +438043,7 @@ "testharness" ], "IndexedDB/idbfactory_open2.htm": [ - "e4d54ee0a1318211a84a51dfb742230bcbc83c14", + "ba72b78eea0c894c22d4a10b4e6a1dfc863ba3ce", "testharness" ], "IndexedDB/idbfactory_open3.htm": [ @@ -437787,11 +438051,11 @@ "testharness" ], "IndexedDB/idbfactory_open4.htm": [ - "15ca666b816a0b6f574907e92c98830940f996e9", + "9571d825be9d05b747acd2d76ce1e5346ce70df1", "testharness" ], "IndexedDB/idbfactory_open5.htm": [ - "d9460bb7eda403f8374a4dd8d40f2f0a40386fb1", + "eef37efcfcbb6a372c9b92f39b32822c565eba56", "testharness" ], "IndexedDB/idbfactory_open6.htm": [ @@ -462535,7 +462799,7 @@ "testharness" ], "content-security-policy/generic/generic-0_2.html": [ - "ecfeaf66cb590ed0e882ef23280d3907a56a1be3", + "4f295441cdb728152bb5a6be182e577a986242bc", "testharness" ], "content-security-policy/generic/generic-0_2_2.sub.html": [ @@ -462547,15 +462811,15 @@ "testharness" ], "content-security-policy/generic/generic-0_8.sub.html": [ - "79edff25e31a40a0bc9e262416c606712380a59b", + "a9a76c825e58f1fa61da75a285b4b2abf4707427", "testharness" ], "content-security-policy/generic/generic-0_8_1.sub.html": [ - "e8ce23415f7aca1a3b5ccfc6fc637730eee8d835", + "a0b74160c4ffe1ba1f1513cd3ed0df8835d551f2", "testharness" ], "content-security-policy/generic/generic-0_9.sub.html": [ - "150876c917d4b1db47e8cc7faefee6d7ad709aa6", + "f7f7f0db25696b88e9a56fc4da3b209ea5c5d6fb", "testharness" ], "content-security-policy/generic/negativeTests.js": [ @@ -462563,7 +462827,7 @@ "support" ], "content-security-policy/generic/no-default-src.sub.html": [ - "5f5c8cb369b41fcdffb1c199608d5c36404ba4d3", + "9a89ec05ad00f3122680cc7aace96999610bf195", "testharness" ], "content-security-policy/generic/no-default-src.sub.html.sub.headers": [ @@ -462591,7 +462855,7 @@ "support" ], "content-security-policy/generic/positiveTest.js": [ - "63c99919623e396a41870273e35e3e8999a712f0", + "15053e055d6fb085556aea01507edf21f14f347a", "support" ], "content-security-policy/generic/support/304-response.py": [ @@ -462854,6 +463118,10 @@ "8e90073147a233a74727a3ba03307c1564dc3224", "support" ], + "content-security-policy/meta/sandbox-iframe.html": [ + "d353cafae1618d63482bda072f4ca530efa54a0b", + "testharness" + ], "content-security-policy/meta/support/metaHelper.js": [ "9191a39c73bef941773ad5b8eb1553caa1528faf", "support" @@ -463375,7 +463643,7 @@ "support" ], "content-security-policy/reporting/report-only-in-meta.sub.html": [ - "04b968807c60ce7b50d1811bcd79db74c8b60279", + "574c218b427d9ba64e61244b1a189d3504493f82", "testharness" ], "content-security-policy/reporting/report-only-in-meta.sub.html.sub.headers": [ @@ -463411,7 +463679,7 @@ "support" ], "content-security-policy/reporting/report-uri-from-child-frame.html": [ - "92b1e1be5438f43f44d9f29e34283b51ec8d9f70", + "1be496194b637b74efdfc6c3dcc27dd1e6dd896d", "testharness" ], "content-security-policy/reporting/report-uri-from-inline-javascript.html": [ @@ -463979,7 +464247,7 @@ "support" ], "content-security-policy/script-src/support/worker-importscripts.js": [ - "0204de32cf19f32232d4e1bc79d4b8defa82932d", + "0ae53e7877a6d1d218ba67bb66849294a3912fa8", "support" ], "content-security-policy/script-src/support/worker-importscripts.js.sub.headers": [ @@ -464139,7 +464407,7 @@ "testharness" ], "content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub.html": [ - "7fdd5f6fb0c5bc50fe1fe84715c785d1d5380feb", + "7c95f47aff880d5818331b5020dacf39a5fc6839", "testharness" ], "content-security-policy/style-src/inline-style-allowed.sub.html": [ @@ -464907,7 +465175,7 @@ "testharness" ], "cookie-store/serviceworker_cookieStore_subscriptions.js": [ - "9913bf3aa2c1d091e882b3dc9d8e23f55a1e26ed", + "225e58266e2e0210299f9defef1d28eaeeb9403c", "support" ], "cookie-store/serviceworker_cookieStore_subscriptions.tentative.https.html": [ @@ -464915,7 +465183,7 @@ "testharness" ], "cookie-store/serviceworker_cookieStore_subscriptions_basic.js": [ - "08eef8498023573b855f4074f8af66da68f95ae9", + "4a5ee5eed962f65c21ad794d02e7452ff56046a0", "support" ], "cookie-store/serviceworker_cookieStore_subscriptions_basic.tentative.https.html": [ @@ -464923,7 +465191,7 @@ "testharness" ], "cookie-store/serviceworker_cookieStore_subscriptions_empty.js": [ - "d355055d08aef8f570c82f1a2473109f3a5b1ff8", + "de521caddd8763b1d30e1c0bfcf2feea98e7bc06", "support" ], "cookie-store/serviceworker_cookieStore_subscriptions_empty.tentative.https.html": [ @@ -464931,7 +465199,7 @@ "testharness" ], "cookie-store/serviceworker_cookieStore_subscriptions_eventhandler_attribute.js": [ - "1a5b67df35320eff43877c7c20822d8110bfc4ca", + "8784af7e6e80824711a9e20e39af33617b0a87b7", "support" ], "cookie-store/serviceworker_cookieStore_subscriptions_eventhandler_attribute.tentative.https.html": [ @@ -464939,7 +465207,7 @@ "testharness" ], "cookie-store/serviceworker_cookieStore_subscriptions_mismatch.js": [ - "d7230051234708ce047ea880cd3092d535c35e03", + "12759a2e3ae9c40cb301482f093fb5b30b63cfbc", "support" ], "cookie-store/serviceworker_cookieStore_subscriptions_mismatch.tentative.https.html": [ @@ -486502,6 +486770,10 @@ "0ebd9a621db450a70e23af3d236b79a32aa4b56a", "reftest" ], + "css/CSS2/floats/floats-saturated-position-crash.html": [ + "08a400df569c2f42670de1963724d0e028bac150", + "testharness" + ], "css/CSS2/floats/floats-wrap-bfc-001-left-overflow-ref.xht": [ "9d4c968d1d687c42932cfa205775f300de4fe343", "support" @@ -486726,6 +486998,10 @@ "060312454915307da67988ac52dc41e558479dd1", "reftest" ], + "css/CSS2/floats/list-item-taller-than-opportunity-001.html": [ + "ae8783ce31303024152d3dc91dde3058b3beef0c", + "testharness" + ], "css/CSS2/floats/new-fc-beside-adjoining-float-2.html": [ "2d27a28a0533eece2ec6b1ee933028da8fb99c4f", "reftest" @@ -536610,6 +536886,10 @@ "5ae39e11fe0454f3e70302dcb2591d9855adaaf6", "reftest" ], + "css/css-flexbox/flex-aspect-ratio-img-column-005.html": [ + "0bd7ef8b23fb19d100d27431ba093a0dee182f34", + "reftest" + ], "css/css-flexbox/flex-aspect-ratio-img-row-001.html": [ "14fabf760ca4293abf5af9e618b2e2ed627be2b2", "reftest" @@ -536922,6 +537202,10 @@ "b130ff5561f721d69058902f9c5081b3f6471ace", "reftest" ], + "css/css-flexbox/flex-minimum-height-flex-items-015.html": [ + "81fd54915f52177649ff0e0d4d1a5fb657ddccfa", + "reftest" + ], "css/css-flexbox/flex-minimum-width-flex-items-001.xht": [ "cd18483ba414160c46e30bc282dec0c2fcd2f418", "reftest" @@ -552658,6 +552942,14 @@ "8a6bd957911251bdb952e35e69297d3ed86696cc", "reftest" ], + "css/css-multicol/composited-under-clip-under-multicol-ref.html": [ + "ebd2d860cec74ba0d535637934aca8dadf90571d", + "support" + ], + "css/css-multicol/composited-under-clip-under-multicol.html": [ + "a47ed89a2e0eb11624bfb5c96d547f632f9c27e7", + "reftest" + ], "css/css-multicol/extremely-tall-multicol-with-extremely-tall-child-crash.html": [ "6e40afe54c9ce9aa50765f778d74640454dcc1ce", "testharness" @@ -555766,6 +556058,10 @@ "3d1c90930cf3f0b794ea34fcdbcb347cb6d3863c", "testharness" ], + "css/css-position/position-absolute-crash-chrome-009.html": [ + "23df49cfaae5cdba6225c981d652b491f9df6784", + "testharness" + ], "css/css-position/position-absolute-dynamic-containing-block.html": [ "3968f685849663574ca213fcb90dc5fb3eaffaa3", "testharness" @@ -561130,6 +561426,10 @@ "bce0a18be6f66e57cad2e2e90694a6f53dab71c7", "reftest" ], + "css/css-sizing/min-max-content-orthogonal-flow-crash-001.html": [ + "d2617f8aa2d1c966e394abb1d1617c012ea4648e", + "testharness" + ], "css/css-sizing/orthogonal-writing-mode-float-in-inline.html": [ "fa95069dbf0083b0dc7095d2bb3acf20a6ccf898", "reftest" @@ -576826,10 +577126,18 @@ "da6f1ffa6cacd3ac0e77b343ffaa33ab44f4c2c2", "reftest" ], + "css/css-ui/appearance-parsing.html": [ + "8d6973231c0cb33fa0bd1ff83f54f98487d844e8", + "testharness" + ], "css/css-ui/appearance-progress-bar-001.html": [ "1573f69911566fc4410f6d49959f83dad140ce3e", "reftest" ], + "css/css-ui/appearance-property.html": [ + "53b98ba6055f81b7dd8510cd5be5f85b1ff4a01f", + "testharness" + ], "css/css-ui/appearance-push-button-001.html": [ "3aecbb079809bb0f1e8c2a0786dee51bc6eb61d4", "reftest" @@ -576842,6 +577150,10 @@ "78741411551c667c3f3f317eeb475db883d9d7d4", "reftest" ], + "css/css-ui/appearance-serialization.html": [ + "ed968afee609b4beab0a67d7bc9fc11c686ecb33", + "testharness" + ], "css/css-ui/appearance-slider-horizontal-001.html": [ "4d5b1a94fc9485b3aad8744d09dfe7d8c4ea12eb", "reftest" @@ -579402,10 +579714,18 @@ "05fb5ce25f24df1bf8fd2c72323a9deea9d0e112", "reftest" ], + "css/css-ui/webkit-appearance-parsing.html": [ + "0f08eab222493a123fd5a44afce3689385a42390", + "testharness" + ], "css/css-ui/webkit-appearance-progress-bar-001.html": [ "b989502902d2b8716f7fcc0d8f18e124ec8cb94e", "reftest" ], + "css/css-ui/webkit-appearance-property.html": [ + "fb3f7df2d4885c801711f91f7d1e1f7ba09a3951", + "testharness" + ], "css/css-ui/webkit-appearance-push-button-001.html": [ "6f44498d4660f58e6df2b32efd218c729edc0fc8", "reftest" @@ -579418,6 +579738,10 @@ "8abd91e3c8faa9f5e02a8af6d2f4e66e1a0c6c29", "reftest" ], + "css/css-ui/webkit-appearance-serialization.html": [ + "b325fd5d6c647063c880046804afbac23c617d7f", + "testharness" + ], "css/css-ui/webkit-appearance-slider-horizontal-001.html": [ "a9375b5088ca995c545fb441cccef281242836dd", "reftest" @@ -580314,6 +580638,14 @@ "866d6e649d3bd1186c9b157b8d32db7e6cc7470b", "testharness" ], + "css/css-variables/variable-reference-visited-ref.html": [ + "8647be19a8ccb033bc569fb9d1e1e444428f1655", + "support" + ], + "css/css-variables/variable-reference-visited.html": [ + "eb414679b97ed78aee5053280c2fe33d2da2dc15", + "reftest" + ], "css/css-variables/variable-reference-without-whitespace.html": [ "35d558892e2af2e34a1df445fab02b791689bf56", "reftest" @@ -588750,6 +589082,14 @@ "3a2d8feaeefc82c20afd3de2c2cf9ce9bf6aed11", "reftest" ], + "css/filter-effects/backdrop-filter-plus-mask-ref.html": [ + "15786e7ac873c6cbb4b5e6919f8f0d02bd522a79", + "support" + ], + "css/filter-effects/backdrop-filter-plus-mask.html": [ + "e1390af38d47b1eb6eec2df85299e279030aafd8", + "reftest" + ], "css/filter-effects/backdrop-filter-reference-filter.html": [ "6c61a9620aa82d23375fd31900d87bcfd873a5e1", "reftest" @@ -601691,7 +602031,7 @@ "testharness" ], "custom-elements/attribute-changed-callback.html": [ - "5090bfbfbfecdfbfbfb7c52579824cd333c93cdc", + "db2a01196a722a01d2297986a52881561a230597", "testharness" ], "custom-elements/builtin-coverage.html": [ @@ -601827,7 +602167,7 @@ "testharness" ], "custom-elements/reaction-timing.html": [ - "9e5bafbedfec42d28eb94c95ed84396941bc61ac", + "454cc26c0f07572c8245a9bc9452cbf45b6ec897", "testharness" ], "custom-elements/reactions/Attr.html": [ @@ -601855,7 +602195,7 @@ "testharness" ], "custom-elements/reactions/Element.html": [ - "8370724061ad193e71574596efa68c916e55535c", + "e1576734d0cc169c0cc072c644a0e300017977da", "testharness" ], "custom-elements/reactions/ElementContentEditable.html": [ @@ -602095,7 +602435,7 @@ "testharness" ], "docs/.gitignore": [ - "69fa449dd96e2405945b2e4cff2fd0ab8b102097", + "ed1740de54556efcec272354bf266b17dffc8323", "support" ], "docs/.ruby-version": [ @@ -602107,11 +602447,11 @@ "support" ], "docs/Makefile": [ - "298ea9e213e8c4c11f0431077510d4e325733c65", + "622e90f955b38d5b26dc83fa14b9dc05af2f4ca7", "support" ], "docs/README.md": [ - "f68cd6ad419b5bd0d79249f3506a4043f9b2b90d", + "a753462429d6cd460affa993e1a0db8cd3ec9fcd", "support" ], "docs/_includes/footer.html": [ @@ -602155,11 +602495,11 @@ "support" ], "docs/admin/index.md": [ - "6fab4f3ac4b9b4b78071b62aa30b35794e5e6b23", + "aa06e765d7bb14e4adf4cb1be840f7e2a93796cc", "support" ], "docs/appendix/github-intro.md": [ - "e339fe281ac5af582324a1f59aa3e022dcb91b9c", + "2777c69e320199f4679806633255bdd49bb2d0b8", "support" ], "docs/appendix/index.md": [ @@ -602171,7 +602511,7 @@ "support" ], "docs/appendix/test-templates.md": [ - "9c1afe2a78e5ebd2c888a29b755c372616714dc1", + "22f8f78920cacf46eb772a179180f23f9d92ca7a", "support" ], "docs/assets/_reftest_graph_example.dot": [ @@ -602223,7 +602563,7 @@ "support" ], "docs/conf.py": [ - "73777025cbdc648dbb6fe0944eabd867ce9af6aa", + "dc17e6d1b76a7c9323ef1a646a5243e22ec2fbf4", "support" ], "docs/index.rst": [ @@ -602231,11 +602571,11 @@ "support" ], "docs/introduction.md": [ - "f04a29e98f5a28d59da1830bd2bbf3fb4f134db0", + "cb664ed868c3913674836d09b89f9346ede9878c", "support" ], "docs/make.bat": [ - "27f573b87af11e2cbbd9f54eb1ee285a58550146", + "9bc48e7c52e1f33d795904b195d08c49b2462de8", "support" ], "docs/requirements.txt": [ @@ -602271,7 +602611,7 @@ "support" ], "docs/running-tests/from-local-system.md": [ - "8f908877c40470cf695e6bc1ae6f21988db7b2ec", + "5427ded7ec99f4f3d6214cfc7535093933b5374b", "support" ], "docs/running-tests/from-web.md": [ @@ -602287,7 +602627,7 @@ "support" ], "docs/writing-tests/ahem.md": [ - "39aaa5f104a9d36ee102205a31cfb76b6fb1c69a", + "30a3fcde26cd48910549c23dc0cd0fbc05e7b3c7", "support" ], "docs/writing-tests/assumptions.md": [ @@ -602295,7 +602635,7 @@ "support" ], "docs/writing-tests/css-metadata.md": [ - "c34002570a39e8b5f6c1bcab5d33d5805adb5c19", + "7051c74508c271b7e19a748b48f91483c82b6ccd", "support" ], "docs/writing-tests/css-user-styles.md": [ @@ -602331,19 +602671,7 @@ "support" ], "docs/writing-tests/python-handlers/index.md": [ - "174f79aad900a5e3c1a873b26e2c060c22709db1", - "support" - ], - "docs/writing-tests/python-handlers/request.md": [ - "e2e4efc87410f157e5233dc32f2a6cdfb08bdc29", - "support" - ], - "docs/writing-tests/python-handlers/response.md": [ - "0db95e57bf608a6717cdd35c6d4c3e6c4c81bde3", - "support" - ], - "docs/writing-tests/python-handlers/stash.md": [ - "fdf50b216f7cf79f2ca0a84eb4ce788297cd5978", + "a67317ebd8464e1f049438f370f94d3102ce8a3b", "support" ], "docs/writing-tests/reftests.md": [ @@ -604782,6 +605110,10 @@ "7296cfccfda6068313d6032c2625e2100e7f06fd", "testharness" ], + "element-timing/css-generated-text.html": [ + "1e3a812d1bc283e03ec232fd31b34253dbf62ddc", + "testharness" + ], "element-timing/disconnect-image.html": [ "82e7461b0417fb6f667ad266c08789b58f06c457", "testharness" @@ -604846,16 +605178,16 @@ "0c67130dcc356ee7da9b3e2e10127352af7d169e", "testharness" ], - "element-timing/observe-large-image.html": [ - "e907452d82f2ce7a603e4728faa2062f55f4cce8", - "testharness" - ], "element-timing/observe-multiple-images.html": [ "8a5fa0bb89a31f1bb1d1a277edb1b8102680a4bf", "testharness" ], "element-timing/observe-shadow-image.html": [ - "12bda4724bd8bf7cbc7b62b70e60efdd1c212f0f", + "3e1960dde3bf1b091d42002c3c40a08a5a7fa6a2", + "testharness" + ], + "element-timing/observe-shadow-text.html": [ + "cc0cf0bd823991f4dacde90f09ee02ec79688baa", "testharness" ], "element-timing/observe-svg-image.html": [ @@ -604863,7 +605195,7 @@ "testharness" ], "element-timing/observe-text.html": [ - "16382edaa9da45c246f34443ce3e70b7177f9203", + "4508db3a5442caff4b2f388428d6410114c1fffc", "testharness" ], "element-timing/observe-video-poster.html": [ @@ -609622,10 +609954,22 @@ "e173bb053fedd46f346a0e89990f44cf5cbc1856", "testharness" ], + "fetch/sec-metadata/redirect/multiple-redirect-https-downgrade-upgrade.tentative.sub.html": [ + "3f8726dc69e7ddf57b3d66cd0866caab0c58760c", + "testharness" + ], "fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html": [ "d19a1896ad77e69923e219292d9ae4c1ef35e70e", "testharness" ], + "fetch/sec-metadata/redirect/redirect-http-upgrade.tentative.sub.html": [ + "fe55cda7e6b0f108465477570288ccfc73b5af93", + "testharness" + ], + "fetch/sec-metadata/redirect/redirect-https-downgrade.tentative.sub.html": [ + "817843828c1b06b90ae3c293164a01c52961cd4e", + "testharness" + ], "fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html": [ "0b4fdfeec58b6f353000cf290f345b63c4c9cba9", "testharness" @@ -609682,6 +610026,10 @@ "683c0a6a0c4b6e32e06fce50aa8f6af19eacff76", "support" ], + "fetch/sec-metadata/resources/redirectTestHelper.sub.js": [ + "ad78702269dafd81d8c5e15cb7ed60419fd32c5c", + "support" + ], "fetch/sec-metadata/resources/sharedWorker.js": [ "5eb89cb4f68a098154cf3605f53318af2f5e56f1", "support" @@ -611266,6 +611614,10 @@ "8db1d2788c04b0fb85f79cc023969b2ee4e4079f", "testharness" ], + "html/browsers/browsing-the-web/history-traversal/api-availability.html": [ + "2f7d3fafdf7da02173c89c345879cdf972540485", + "testharness" + ], "html/browsers/browsing-the-web/history-traversal/browsing_context_name-0.html": [ "5cbab71a5eaac4fd789a470cca2538225589a497", "support" @@ -611366,6 +611718,14 @@ "55b73e1153593683092a3a331e815bca5ba23da2", "support" ], + "html/browsers/browsing-the-web/history-traversal/resources/api-availability-1.html": [ + "2c311687500942a9bde2860b072513f61408e4ef", + "support" + ], + "html/browsers/browsing-the-web/history-traversal/resources/api-availability-2.html": [ + "420e5092bc5b3f724fd69b7d56165bab48032519", + "support" + ], "html/browsers/browsing-the-web/history-traversal/resources/b.html": [ "8f2fc900ddac31e8463cf31bd6821e4cd8276da4", "support" @@ -612611,7 +612971,7 @@ "testharness" ], "html/browsers/history/the-location-interface/location_hash.html": [ - "74d2d01543086e841cdfd39c95a2f956a9dd1f32", + "99f64ddea248a2fc77eb3faaa51f12ee97843eed", "testharness" ], "html/browsers/history/the-location-interface/location_host.html": [ @@ -613878,20 +614238,56 @@ "7407248ffe9fe3da977275c2192e31e3db9fc8a9", "testharness" ], - "html/cross-origin-opener/new_window_same_site.html": [ - "b75f7ff7a646addffca73e7fc47539e88293d2ed", + "html/cross-origin-opener/common.sub.js": [ + "a73a95aba8625230b84e917eba6b469be5459cc8", + "support" + ], + "html/cross-origin-opener/new_window_null.tentative.html": [ + "35a42fd2f0963f886324ac7ca01d5b45cdc1588e", "testharness" ], - "html/cross-origin-opener/new_window_same_site.html.headers": [ + "html/cross-origin-opener/new_window_same_origin.tentative.html": [ + "6bbb37cafca07cec641e925b9d06d803b3cf2ae8", + "testharness" + ], + "html/cross-origin-opener/new_window_same_origin.tentative.html.headers": [ + "46ad58d83bf6e98913ca4c564b7acb8f19fa0093", + "support" + ], + "html/cross-origin-opener/new_window_same_origin_unsafe_allow_outgoing.tentative.html": [ + "bbd55130d7a903bf24fb8d2e3660131009d4b42d", + "testharness" + ], + "html/cross-origin-opener/new_window_same_origin_unsafe_allow_outgoing.tentative.html.headers": [ + "a19f4400cea33a60c99807330704a23ee363b146", + "support" + ], + "html/cross-origin-opener/new_window_same_site.tentative.html": [ + "e1efac12d02e26ca4db9f43f660155e9d916b531", + "testharness" + ], + "html/cross-origin-opener/new_window_same_site.tentative.html.headers": [ "34bd099a302f893f92586241ea38aac812bf28d0", "support" ], + "html/cross-origin-opener/new_window_same_site_unsafe_allow_outgoing.tentative.html": [ + "d81506f434b70d9b66d0f8aa41d845c1541ae8a8", + "testharness" + ], + "html/cross-origin-opener/new_window_same_site_unsafe_allow_outgoing.tentative.html.headers": [ + "ab7b28948150ff64101ef080b0d9c7cc9a6a34d2", + "support" + ], + "html/cross-origin-opener/resources/coop_window.py": [ + "b24d6d55a9a368057376436c0e2692a9ed27a1da", + "support" + ], "html/cross-origin-opener/resources/postback.sub.html": [ "ee08bab4d55ed45523ae862f65a41b29046fba69", "support" ], "html/cross-origin-opener/resources/window.sub.html": [ - "7c72f87c3ddd8996991a87721076a95a85c272d9", + "524efe2588d08e77419cda38319f4b1fbcfdea3c", "support" ], "html/cross-origin-opener/resources/window.sub.html.headers": [ @@ -631191,11 +631587,11 @@ "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/actionsWithKeyPressed.html.ini": [ - "38f84319c91d0b617ed0a72716bfa8756fc2c317", + "c83e8ff9261b78084f75fb584a8b5236cc28c3fd", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/elementPosition.html.ini": [ - "9ae71a6e73e22a855c69d3269936d71c17d6e9e5", + "49e4a40016e0eb2304a5e6e61b19556818c4ef3d", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/eventOrder.html.ini": [ @@ -631795,7 +632191,7 @@ "support" ], "interfaces/mediasession.idl": [ - "95210c0bca3e06a8c1b418ea48d0c0c2e6b1caba", + "565eab7b02715ee2b20e06992292a136bfc5bf22", "support" ], "interfaces/mediastream-recording.idl": [ @@ -632035,7 +632431,7 @@ "support" ], "interfaces/webrtc.idl": [ - "b18d4ac2b46e2b9924820ab227d21b78a86fa349", + "c7bb45d012aa56ed1b77957f461f62a24f7b080e", "support" ], "interfaces/webusb.idl": [ @@ -632502,6 +632898,14 @@ "64756bf195fc3319d9dd21abad4c5d86fa266cfe", "testharness" ], + "largest-contentful-paint/observe-image.html": [ + "f98912085aaf2677f4dbd85fba37c4b7f49ac5c2", + "testharness" + ], + "largest-contentful-paint/observe-text.html": [ + "77ed06e2aa1fb99d1199b9e3b6e99620037ef959", + "testharness" + ], "layout-instability/buffer-layout-shift.html": [ "c1d0dc6d6eb971f39c913a78423aad046dd18a04", "testharness" @@ -632531,11 +632935,11 @@ "testharness" ], "lifecycle/freeze.html": [ - "88e32c9d3b01eb2622ce90699548d95fba5eb960", + "a2a9a7d3f147da9069bde019ec5940a213fbae79", "testharness" ], - "lifecycle/resources/foo.txt": [ - "403d01060821820b9d3a772b28a826698c8796e6", + "lifecycle/resources/beacon.py": [ + "8718b84386b56bdaf2e189a5f12041aa8b62c555", "support" ], "lifecycle/resources/subframe.html": [ @@ -632555,7 +632959,7 @@ "support" ], "lifecycle/resources/window.html": [ - "69fdbc0986633793d501a4bddfee9e88f76e1348", + "a7659af423d545683182ae750ecaadd195d273c0", "support" ], "lifecycle/set-composited-layer-position-ref.html": [ @@ -637087,7 +637491,7 @@ "testharness" ], "native-file-system/FileSystemWriter.tentative.window.js": [ - "bc5cfd104b6a2645a5321e0f9d38e990b6533969", + "f2c2fc82866b83953e2783f8dc56ceaa0803b097", "testharness" ], "native-file-system/NativeFileSystemWritableFileStream.tentative.window.js": [ @@ -637186,38 +637590,10 @@ "06c9b7f3b678a22751a1e8e1a57028216ab21879", "testharness" ], - "navigation-timing/nav2_test_redirect_xserver_opt_in.html": [ - "11dc5b7df0a4871114c3e4c4f4a2dd142708d26e", - "testharness" - ], "navigation-timing/nav2_test_unique_nav_instances.html": [ "1d77ab6bae101b704d1267e8b03416011f28d676", "testharness" ], - "navigation-timing/nav2_test_unloadEvents_no_previous_document.html": [ - "3e7b0721d277e5b8fb6a2c1deb56226ed3eaa9d1", - "testharness" - ], - "navigation-timing/nav2_test_unloadEvents_previous_document_cross_origin.sub.html": [ - "fb7247d10b7566a93b955e0b9145e3089f329cf4", - "testharness" - ], - "navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_chain_partial_opt_in.html": [ - "0b3978641b9a74f7f9d85c50cefe48210a8f1473", - "testharness" - ], - "navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_opt_in.html": [ - "d3ff55087a1715f14a6b089b7bf80e8037ae8a1a", - "testharness" - ], - "navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirects.html": [ - "8a7f57d746009367d099d141620bcfdfd88acc7d", - "testharness" - ], - "navigation-timing/nav2_test_unloadEvents_with_previous_document.html": [ - "90f336d134054ae9cb563ad874cb57c5c1064ae9", - "testharness" - ], "navigation-timing/po-navigation.html": [ "a54fb2aff8eab74e59c5a84fc2bcf487f122ec49", "testharness" @@ -637338,6 +637714,10 @@ "a8f7e6002d2179a2888da14bea23fcce42db19d7", "testharness" ], + "navigation-timing/unload-event-same-origin-check.html": [ + "319d04462deba82b548d44291042d296afaf36a7", + "testharness" + ], "netinfo/META.yml": [ "220c5d6d32b6c31dfd71e3267360b71001465b41", "support" @@ -644219,7 +644599,7 @@ "testharness" ], "page-visibility/onvisibilitychange.html": [ - "054e8c76c868b7c4d75c598d62511a3b99d44095", + "f8540842805ac9078da4e4c68ef2209a082eab83", "testharness" ], "page-visibility/prerender_call.html": [ @@ -644246,6 +644626,14 @@ "73108e8ab9f20f68da3eda3214a2e00d3ca1c2db", "support" ], + "page-visibility/resources/unload-bubbles.html": [ + "44f0c0cef319f279435bb38f670ed96d00ebcd17", + "support" + ], + "page-visibility/resources/unload.html": [ + "b548518784174e216856f93503c5d6bf06f3687a", + "support" + ], "page-visibility/test_attributes_exist.html": [ "748161fdf8fb68319158b717871877c1db745e34", "testharness" @@ -644270,12 +644658,12 @@ "75d1da6e937511ea012ac71c3b792d515a42f82f", "manual" ], - "page-visibility/unload-1.html": [ - "b548518784174e216856f93503c5d6bf06f3687a", - "support" + "page-visibility/unload-bubbles.html": [ + "41f40c5bcf7abbf03f7f1fe8e1cd6822654fdde6", + "testharness" ], "page-visibility/unload.html": [ - "48cf203cdeca2b54bfdd14cb5fa1107378c0ac7a", + "9b7dcb8c66c5724806d6bc8241561b28dc3f4a71", "testharness" ], "paint-timing/META.yml": [ @@ -644394,9 +644782,9 @@ "7c09f5d407e890c0ed02df1217d85f2f36d722bc", "testharness" ], - "payment-handler/change-payment-method.https.html": [ + "payment-handler/change-payment-method-manual.https.html": [ "56690d2b26ed671f773a16853463126e57735f77", - "testharness" + "manual" ], "payment-handler/idlharness.https.any.js": [ "878114ec7ed878d3e754341cbffa138092fee129", @@ -644430,9 +644818,9 @@ "fdb71aa845179cf63344d9370b1a138ef8924746", "testharness" ], - "payment-handler/payment-request-event.https.html": [ + "payment-handler/payment-request-event-manual.https.html": [ "3c8deb3b92fe00d7b4bdf1c57f1e33ab553acee3", - "testharness" + "manual" ], "payment-handler/register-and-activate-service-worker.js": [ "fb54c5c06488f319b0b4152837cc6a1b530cab7a", @@ -644799,7 +645187,7 @@ "manual" ], "payment-request/rejects_if_not_active.https.html": [ - "3c7e85ba970f8c6f2d608f02dd2f60f911124da2", + "4ba760ac987746ad9b561377a6b1e4185f7e7331", "testharness" ], "payment-request/resources/page1.html": [ @@ -645370,29 +645758,29 @@ "a79327252277d3b27e416e885b27ff6cb0b0bf5d", "testharness" ], - "pointerevents/pointerlock/pointerevent_movementxy-manual.html": [ - "6d903c405e95bd140cc201b7191434fac57931c8", - "manual" + "pointerevents/pointerlock/pointerevent_movementxy.html": [ + "2d6147dae562af7efadacee9dfb44cc080005742", + "testharness" ], "pointerevents/pointerlock/pointerevent_movementxy_when_locked.html": [ "bdad97df04b2ca67fc1f92e256c979c137a4c66a", "testharness" ], - "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html": [ - "8ac35f82856a38e887ec84ad67f5c374014905c5", - "manual" + "pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture.html": [ + "c66584a939420ca5470226b1e66d18d41cfe5d1e", + "testharness" ], - "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html": [ - "d8dbeaae172dfd6314341c55ef1fa3b9945f60fc", - "manual" + "pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture.html": [ + "f3f61cf0d03fed40b44c5f2c10043bcf6a7e611f", + "testharness" ], - "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html": [ - "80c01d61c8f906364fea0497d32cbd44ad8fdd3f", - "manual" + "pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html": [ + "b2251d660e7176627204e4d48dc591033501554e", + "testharness" ], - "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html": [ - "b2fadbfe05f7efcc674f2b4cac61a15a67560597", - "manual" + "pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html": [ + "a6f238cbee127353fdab9982fe8a9a75d67b23f7", + "testharness" ], "pointerevents/pointerlock/resources/pointerevent_movementxy-iframe.html": [ "627af3b61cad74bb112558169b1e66f6a24b1129", @@ -645507,7 +645895,7 @@ "testharness" ], "portals/portal-activate-data.html": [ - "6010fe663aa673a9c6b83a08b608e3524ebb66c7", + "057ecbf6e01b03f32e81fa9dc7f23dfb125a2645", "testharness" ], "portals/portal-activate-event-constructor.html": [ @@ -646314,6 +646702,10 @@ "eeb726627b78fdcbf81d3c29b9205f771bd0aca8", "testharness" ], + "quirks/table-replaced-descendant-percentage-height-crash.html": [ + "385d6caf200940ab874b0b20c33b593357c9f68e", + "testharness" + ], "quirks/text-decoration-doesnt-propagate-into-tables/quirks-ref.html": [ "a72475f40cec7a84702fdb03aad81198e0e7cdca", "support" @@ -657290,6 +657682,10 @@ "b0e5ead25c6ecd72bb0afcba572af46b819152aa", "support" ], + "scroll-animations/scroll-animation.html": [ + "0320210f8394c7439353a6e1efd0eba339b27e20", + "testharness" + ], "secure-contexts/META.yml": [ "e6537166280091c062a8894508f3f0ab9a33a8bf", "support" @@ -659026,6 +659422,10 @@ "11da27036d092c2f2c6d58df576b29e9bfb99537", "testharness" ], + "service-workers/service-worker/global-serviceworker.https.any.js": [ + "489b37f83e1c21809e9b0b63d0f0e59db23d197c", + "testharness" + ], "service-workers/service-worker/http-to-https-redirect-and-register.https.html": [ "5626237dcccbf279029ca072b8a0bc9e845fbb1c", "testharness" @@ -659574,20 +659974,8 @@ "ff333bd97da4c6949a3142ac8789cb2e45d41b86", "support" ], - "service-workers/service-worker/resources/dummy-shared-worker-interceptor.js": [ - "e996da6b2b7f491820ddab168e9d2f2d6f6cea35", - "support" - ], - "service-workers/service-worker/resources/dummy-shared-worker-interceptor.js.headers": [ - "a17a9a3a12cefe883a5d4dee4d5a45bef120d050", - "support" - ], "service-workers/service-worker/resources/dummy-worker-interceptor.js": [ - "abec5fdd58b28b7b6a1d0ba453e67cce1a4d4973", - "support" - ], - "service-workers/service-worker/resources/dummy-worker-script.py": [ - "6f40b5ed605acc46c5ed96634938d361ddee6d86", + "1c381fd180e2b3d3b7a11394926096141b0a3c76", "support" ], "service-workers/service-worker/resources/dummy.html": [ @@ -660035,7 +660423,7 @@ "support" ], "service-workers/service-worker/resources/load_worker.js": [ - "ba15ffe32daa7eb5cf6dba0ccf17245f63c0ad4c", + "18c673bebcab9827707da855f38a7549b695da7f", "support" ], "service-workers/service-worker/resources/loaded.html": [ @@ -660135,7 +660523,7 @@ "support" ], "service-workers/service-worker/resources/nested_load_worker.js": [ - "6e2e9edc4d8b35e03f5aa4b29966812addf43444", + "ef0ed8fc704ceaa81f1eef8d4ed75fd041baae6d", "support" ], "service-workers/service-worker/resources/notification_icon.py": [ @@ -660242,6 +660630,10 @@ "7af935f4f8fc01756980e46dcce5018ddc620e67", "support" ], + "service-workers/service-worker/resources/postmessage-on-load-worker.js": [ + "c2b0bcb8bfb0aa0a7607143840f1f56a38d8b0a3", + "support" + ], "service-workers/service-worker/resources/postmessage-to-client-worker.js": [ "17913063583a8276675adcc65a66e843d83a303f", "support" @@ -660402,14 +660794,6 @@ "e570958701db47250cf6d87a16f4722a84e626b2", "support" ], - "service-workers/service-worker/resources/shared-worker-controlled.js": [ - "1ccc2fe3bdbe68ad200f7037fd5c68d768931834", - "support" - ], - "service-workers/service-worker/resources/shared-worker-import.js": [ - "7c554bd7415209b266fffceb90185a79ebd756c5", - "support" - ], "service-workers/service-worker/resources/silence.oga": [ "af591880436af43abb4cee59fde320081bcac7ed", "support" @@ -660575,7 +660959,7 @@ "support" ], "service-workers/service-worker/resources/worker-interception-iframe.https.html": [ - "9dd5a185e7e0ec3a751c24633cf9fc7e41837627", + "87b0ed3f2498552d995cc5086fcc15b90d47097f", "support" ], "service-workers/service-worker/resources/worker-interception-redirect-serviceworker.js": [ @@ -660587,7 +660971,7 @@ "support" ], "service-workers/service-worker/resources/worker-load-interceptor.js": [ - "a5f65c3216e44632ff052bac0448316f25d443c6", + "ebc0db67aa5045842a51afd225671fa0c78267e9", "support" ], "service-workers/service-worker/resources/worker-testharness.js": [ @@ -660654,10 +661038,6 @@ "6004985a34608132825086dab0c0777f3f0fdf1e", "testharness" ], - "service-workers/service-worker/shared-worker-controlled.https.html": [ - "0320c02a4fa2b8066bc6f603bf7abc3eefe1c3b3", - "testharness" - ], "service-workers/service-worker/skip-waiting-installed.https.html": [ "b604f651b3c1deb38d891c77394a8f175a19c34e", "testharness" @@ -660791,7 +661171,7 @@ "testharness" ], "service-workers/service-worker/worker-interception.https.html": [ - "1776376e96c4cd6d44912f4496af1b35f049ee12", + "6b66fb0f02296410f4d96076c68deb798024e7b9", "testharness" ], "service-workers/service-worker/xhr-response-url.https.html": [ @@ -662047,7 +662427,7 @@ "testharness" ], "sms/interceptor.https.html": [ - "4a6772f4416ab0550e451c710da1b48bbd9303d6", + "b7e8fd53bff98c6c64554149e0cd71c5f1f45686", "testharness" ], "sms/resources/iframe.html": [ @@ -662059,7 +662439,7 @@ "testharness" ], "sms/sms_provider.js": [ - "a4759419a88670ec6e3f1cbd4ac3dcb3500ad57a", + "eaa31ebea3113db8ecac51d6d0dec08d2d234444", "support" ], "sms/sms_receiver.idl": [ @@ -662138,6 +662518,38 @@ "6eeb5d9447d4f74a565326de0b2435f1968e100c", "support" ], + "std-toast/META.yml": [ + "c54357a03f214572481fc08be473cc308d50097b", + "support" + ], + "std-toast/attributes.html": [ + "9bfc65c395cd37c07f7499a03e5cdfb6fe16c85e", + "testharness" + ], + "std-toast/events-open.html": [ + "5442b36d261d0fd91f62cd38396b173429754245", + "testharness" + ], + "std-toast/events-showhide.html": [ + "73f1df4ae55bba7ef493dc22adae67553576326a", + "testharness" + ], + "std-toast/methods.html": [ + "7ce0e5adb810294fcc99c4c3bbf696c2fffd0f39", + "testharness" + ], + "std-toast/options.html": [ + "74470e35998b537304538b3fab96bf37a0702ecc", + "testharness" + ], + "std-toast/resources/helpers.js": [ + "41b7672ab1bb60d0a2345a6debb880db756940f6", + "support" + ], + "std-toast/show-toast.html": [ + "50cdc2c06ddbf34b16119f9c42e3a7cbaf5ec258", + "testharness" + ], "storage/META.yml": [ "2aad1fb513710e839ad86c923bf208dae604d3d2", "support" @@ -662502,14 +662914,6 @@ "0ea6d22ec772aed88ec1926e7e1a23a4ba81375c", "support" ], - "subresource-integrity/crossorigin-anon-script.js": [ - "8493585f1b189c680fd4f6853a2cc9072ff962f7", - "support" - ], - "subresource-integrity/crossorigin-anon-script.js.headers": [ - "cb762eff806849df46dc758ef7b98b63f27f54c9", - "support" - ], "subresource-integrity/crossorigin-anon-style.css": [ "3cde4df12c45211dd3637cf79524bad1f6d09c55", "support" @@ -662518,14 +662922,6 @@ "cb762eff806849df46dc758ef7b98b63f27f54c9", "support" ], - "subresource-integrity/crossorigin-creds-script.js": [ - "6f39e25b40b9b552b6632123eab95e761e896558", - "support" - ], - "subresource-integrity/crossorigin-creds-script.js.sub.headers": [ - "d6af1f0deabbf20cdad47e8c084db6fbf42a42b7", - "support" - ], "subresource-integrity/crossorigin-creds-style.css": [ "3cde4df12c45211dd3637cf79524bad1f6d09c55", "support" @@ -662534,10 +662930,6 @@ "d6af1f0deabbf20cdad47e8c084db6fbf42a42b7", "support" ], - "subresource-integrity/crossorigin-ineligible-script.js": [ - "dd2f968ef6a3ed8c51b1c338dcaa2a8669747b32", - "support" - ], "subresource-integrity/crossorigin-ineligible-style.css": [ "3cde4df12c45211dd3637cf79524bad1f6d09c55", "support" @@ -662642,12 +663034,12 @@ "d2997e562fadfd208d202ce3d60d11cd937ea779", "testharness" ], - "subresource-integrity/matching-digest.js": [ - "ec41325e4e9cde1231f44aaa5343c5e2689228e4", + "subresource-integrity/script.js": [ + "bfca1efbf3fb10fc98dd39600966fc97817586ee", "support" ], - "subresource-integrity/non-matching-digest.js": [ - "1b4943ee016b366bf7c07401da5a87dcbbb537a9", + "subresource-integrity/sri-test-helpers.sub.js": [ + "22c9e9c5dd9af81d988f9c1570645925a558d070", "support" ], "subresource-integrity/style.css": [ @@ -662666,8 +663058,8 @@ "1f091ebd5694f9d6e2e09a6b36c19bffcfb0ac72", "testharness" ], - "subresource-integrity/subresource-integrity.sub.html": [ - "658ea6fd92eb4c7ced3f21f1051615de606e5ceb", + "subresource-integrity/subresource-integrity.html": [ + "f317b0e423ec26a12196b69de84bf10cae088d5a", "testharness" ], "subresource-integrity/tools/ed25519.py": [ @@ -667583,7 +667975,7 @@ "support" ], "tools/requirements_mypy.txt": [ - "8caf51e9a168044b496f8343049567f10cddfcd9", + "742ebbbd7199f582045901cb875e1a79503a0fec", "support" ], "tools/runner/css/bootstrap-theme.min.css": [ @@ -667667,7 +668059,7 @@ "support" ], "tools/serve/serve.py": [ - "1fc617474a2374de7784e557445d3d00f8f870e6", + "45634934c37b5b839275361d5ffc8b223d9f922a", "support" ], "tools/serve/test_functional.py": [ @@ -671611,7 +672003,7 @@ "support" ], "tools/webdriver/webdriver/client.py": [ - "52ebc95e84aaea1536d15a7325e2ea62b7f2914c", + "1ce49069cfdc128f4ea0e6584bd13bac4d50774a", "support" ], "tools/webdriver/webdriver/error.py": [ @@ -671659,7 +672051,7 @@ "support" ], "tools/wpt/run.py": [ - "0d7fa2233d64a6b5ee942038bc9a81ca33304938", + "fec2afc9a365b9daa813cfe6463060958a4a7a1b", "support" ], "tools/wpt/testfiles.py": [ @@ -672387,27 +672779,27 @@ "support" ], "tools/wptserve/docs/pipes.rst": [ - "2c9966d0b238d249944140681a02fc671c48c3e6", + "1edbd44867259aa337ca717513c86d5aaf51bcaf", "support" ], "tools/wptserve/docs/request.rst": [ - "790e4f0bb02397c006cb54823b90e808a0dbd552", + "ef5b8a0c08e7736a233596d6ff0d4b372b20b30f", "support" ], "tools/wptserve/docs/response.rst": [ - "23075dfb3d99ee1045e7b1d8d410729762c6c511", + "0c2f45ce264dbc6b13ec93e905920aa0d56a2ce2", "support" ], "tools/wptserve/docs/router.rst": [ - "21d67d222689c21a8aee1f8b99592cf6de86008a", + "986f5819228eb46aa17ae8025bf2f83a14592a6f", "support" ], "tools/wptserve/docs/server.rst": [ - "732f9fdc78af5b65ec8daa707e2be56f99511875", + "5688a0a3bcfd79c9e0e6a57c3fc82f554d17ea3d", "support" ], "tools/wptserve/docs/stash.rst": [ - "49846f21061b30b4d4a54e7e7cffc9dd122a7a67", + "8ba5ed74a4aff7d4c22eb9b6c9132a8effa4405a", "support" ], "tools/wptserve/setup.py": [ @@ -672635,7 +673027,7 @@ "support" ], "tools/wptserve/wptserve/pipes.py": [ - "d1eb7245abdc229b23af4a7f87780c48c799f40a", + "96e8df88c4c864ec9596ef27a6ff77f4d1eae194", "support" ], "tools/wptserve/wptserve/ranges.py": [ @@ -672647,7 +673039,7 @@ "support" ], "tools/wptserve/wptserve/response.py": [ - "6a2410396bee8040a42551be87312be37acb6c9b", + "3a60c2babb39d8d77999022a7fb4d184cb019aa8", "support" ], "tools/wptserve/wptserve/router.py": [ @@ -672763,7 +673155,7 @@ "testharness" ], "trusted-types/Element-setAttributeNS.tentative.html": [ - "80128cfbf0ebce7d878dd349fc8838b2a6469a16", + "374e6a9cfa3c36a21daf7d8dd6d8111981fe192b", "testharness" ], "trusted-types/GlobalEventHandlers-onclick.tentative.html": [ @@ -672891,7 +673283,7 @@ "testharness" ], "trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html": [ - "3ad27e219e998145610d79769a784034aef94aff", + "76a639a622799dcb9769ad4781104d17be8439bc", "testharness" ], "trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html": [ @@ -675255,7 +675647,7 @@ "testharness" ], "web-animations/animation-model/keyframe-effects/effect-value-transformed-distance.html": [ - "6ad9cd2aca3260f5a247c6b6f4d1c31c39030dc8", + "a33d6d4f24676356b59b6b431968d8486df50615", "testharness" ], "web-animations/interfaces/Animatable/animate-no-browsing-context.html": [ @@ -675695,11 +676087,11 @@ "manual" ], "web-nfc/NFCReadingEvent_constructor.https.html": [ - "da3e4c071d1e48a43be5ee27d775721d2af88e07", + "3c4242943d6c44540676c6e12acb83a51e2d11f0", "testharness" ], "web-nfc/NFCWriter_push.https.html": [ - "b1559b30fec513aaa5b8fa46f104c98388fcf166", + "f5bbfcd6194d02330ac25fddb09d89bfd0e54b57", "testharness" ], "web-nfc/NFCWriter_push_signal-manual.https.html": [ @@ -676959,7 +677351,7 @@ "support" ], "webdriver/tests/accept_alert/accept.py": [ - "a111f103bf142b4041f2a8d1c6017de79b54560e", + "d8211841d5c799b6f85d46b71bd3eb3a7ab99f52", "wdspec" ], "webdriver/tests/add_cookie/__init__.py": [ @@ -677043,7 +677435,7 @@ "support" ], "webdriver/tests/dismiss_alert/dismiss.py": [ - "c0efc38b47fd8b5d3d9fcf89a4dd803a9d38ec2f", + "bcff3a32af34b95bb23db6ad93770224226b7633", "wdspec" ], "webdriver/tests/element_clear/__init__.py": [ @@ -677303,7 +677695,7 @@ "support" ], "webdriver/tests/get_alert_text/get.py": [ - "2327abce3a4d266f0d14d8929c2ba58fedd3e441", + "d6fdda2d1ed08ecceb5863d78ce915c19d4846fb", "wdspec" ], "webdriver/tests/get_current_url/__init__.py": [ @@ -677755,7 +678147,7 @@ "support" ], "webdriver/tests/send_alert_text/send.py": [ - "3ed5621c08417154833161a7e05a68c422ff0c75", + "9186e3e3fc22d49ea6175e6a95b90f11ad1ce457", "wdspec" ], "webdriver/tests/set_timeouts/__init__.py": [ @@ -677858,6 +678250,10 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", "support" ], + "webdriver/tests/switch_to_window/alerts.py": [ + "e3a3342449912dafafaac1bec7bf90f98b29c44c", + "wdspec" + ], "webdriver/tests/switch_to_window/switch.py": [ "907be66a149e8196c87760544140636d9625bbb9", "wdspec" @@ -679930,6 +680326,10 @@ "914af77e6780b68ffdad8ab357c76ab0e2a2f1c6", "testharness" ], + "websockets/remove-own-iframe-during-onerror.window.js": [ + "31c21b4ff93bd95b5b1a83abf96b04d331909a03", + "testharness" + ], "websockets/security/001.html": [ "4cc24598bd31ea466b5f71979c61e6eb42e12b0d", "testharness" diff --git a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini index 1c8f983cd37..8850ec200da 100644 --- a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini +++ b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini @@ -74,6 +74,3 @@ [opacity end] expected: FAIL - [outline-width end] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-ui/appearance-parsing.html.ini b/tests/wpt/metadata/css/css-ui/appearance-parsing.html.ini new file mode 100644 index 00000000000..b808169f4f0 --- /dev/null +++ b/tests/wpt/metadata/css/css-ui/appearance-parsing.html.ini @@ -0,0 +1,10 @@ +[appearance-parsing.html] + [parsing via modification of cssText] + expected: FAIL + + [parsing via attribute change steps of CSS declaration block's owner node] + expected: FAIL + + [parsing via creation of CSS declaration block] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-ui/appearance-property.html.ini b/tests/wpt/metadata/css/css-ui/appearance-property.html.ini new file mode 100644 index 00000000000..d66c80f9620 --- /dev/null +++ b/tests/wpt/metadata/css/css-ui/appearance-property.html.ini @@ -0,0 +1,13 @@ +[appearance-property.html] + [property access] + expected: FAIL + + [removeProperty] + expected: FAIL + + [getPropertyValue] + expected: FAIL + + [setProperty] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-ui/appearance-serialization.html.ini b/tests/wpt/metadata/css/css-ui/appearance-serialization.html.ini new file mode 100644 index 00000000000..eaa41649f95 --- /dev/null +++ b/tests/wpt/metadata/css/css-ui/appearance-serialization.html.ini @@ -0,0 +1,10 @@ +[appearance-serialization.html] + [serialization via CSSStyleRule] + expected: FAIL + + [serialization via CSSStyleDeclaration] + expected: FAIL + + [serialization via CSSMediaRule] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-ui/webkit-appearance-parsing.html.ini b/tests/wpt/metadata/css/css-ui/webkit-appearance-parsing.html.ini new file mode 100644 index 00000000000..5f0c9dd7382 --- /dev/null +++ b/tests/wpt/metadata/css/css-ui/webkit-appearance-parsing.html.ini @@ -0,0 +1,10 @@ +[webkit-appearance-parsing.html] + [parsing via modification of cssText] + expected: FAIL + + [parsing via attribute change steps of CSS declaration block's owner node] + expected: FAIL + + [parsing via creation of CSS declaration block] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-ui/webkit-appearance-property.html.ini b/tests/wpt/metadata/css/css-ui/webkit-appearance-property.html.ini new file mode 100644 index 00000000000..e7dd1b0b9ef --- /dev/null +++ b/tests/wpt/metadata/css/css-ui/webkit-appearance-property.html.ini @@ -0,0 +1,40 @@ +[webkit-appearance-property.html] + [removeProperty - camel-cased property name (ignored)] + expected: FAIL + + [removeProperty - webkit-cased property name (ignored)] + expected: FAIL + + [setProperty - CSS property name] + expected: FAIL + + [property assignment - webkit-cased property name] + expected: FAIL + + [setProperty - camel-cased property name (ignored)] + expected: FAIL + + [property assignment - camel-cased property name] + expected: FAIL + + [property access - CSS property name] + expected: FAIL + + [removeProperty - CSS property name] + expected: FAIL + + [property access - webkit-cased property name] + expected: FAIL + + [property access - camel-cased property name] + expected: FAIL + + [getPropertyValue - CSS property name] + expected: FAIL + + [property assignment - CSS property name] + expected: FAIL + + [setProperty - webkit-cased property name (ignored)] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-ui/webkit-appearance-serialization.html.ini b/tests/wpt/metadata/css/css-ui/webkit-appearance-serialization.html.ini new file mode 100644 index 00000000000..86a85e1ab42 --- /dev/null +++ b/tests/wpt/metadata/css/css-ui/webkit-appearance-serialization.html.ini @@ -0,0 +1,10 @@ +[webkit-appearance-serialization.html] + [serialization via CSSStyleRule] + expected: FAIL + + [serialization via CSSStyleDeclaration] + expected: FAIL + + [serialization via CSSMediaRule] + expected: FAIL + diff --git a/tests/wpt/metadata/css/filter-effects/backdrop-filter-plus-mask.html.ini b/tests/wpt/metadata/css/filter-effects/backdrop-filter-plus-mask.html.ini new file mode 100644 index 00000000000..7191f790cb2 --- /dev/null +++ b/tests/wpt/metadata/css/filter-effects/backdrop-filter-plus-mask.html.ini @@ -0,0 +1,2 @@ +[backdrop-filter-plus-mask.html] + 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 3d135f3bd66..939a36eb9d9 100644 --- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini +++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini @@ -2,7 +2,6 @@ type: testharness [single-byte-decoder.html?document] - expected: TIMEOUT [ISO-8859-4: iso_8859-4:1988 (document.characterSet and document.inputEncoding)] expected: FAIL diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 6d97a137e51..03e7844f26c 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -321,12 +321,15 @@ [ - - - diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_no_previous_document.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_no_previous_document.html deleted file mode 100644 index 3e7b0721d27..00000000000 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_no_previous_document.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - Navigation Timing 2 WPT - - - - - - - - - -

Description

-

This test validates the unload event times are 0 when there is no previous document.

- - - - diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_previous_document_cross_origin.sub.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_previous_document_cross_origin.sub.html deleted file mode 100644 index fb7247d10b7..00000000000 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_previous_document_cross_origin.sub.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - Navigation Timing 2 WPT - - - - - - - - -

Description

-

This test validates the value of window.performance.getEntriesByType("navigation")[0].(type/unloadEventEnd/unloadEventStart) with a navigation on top of a cross-origin document.

- -

This page should be loaded with a green background frame below. The frame will be automatically reloaded - and then verified that -

-

- - - - diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_chain_partial_opt_in.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_chain_partial_opt_in.html deleted file mode 100644 index 0b3978641b9..00000000000 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_chain_partial_opt_in.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - Navigation Timing 2 WPT - - - - - - - - -

Description

-

This test validates the value of window.performance.getEntriesByType("navigation")[0].(type/unloadEventEnd/unloadEventStart) with a reloaded navigation.

- -

This page should be loaded with a green background frame below. The frame will be automatically reloaded - and then verified that -

-

- - - - diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_opt_in.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_opt_in.html deleted file mode 100644 index d3ff55087a1..00000000000 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirect_opt_in.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - Navigation Timing 2 WPT - - - - - - - - -

Description

-

This test validates the value of window.performance.getEntriesByType("navigation")[0].(type/unloadEventEnd/unloadEventStart) with a reloaded navigation.

- -

This page should be loaded with a green background frame below. The frame will be automatically reloaded - and then verified that -

-

- - - - diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirects.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirects.html deleted file mode 100644 index 8a7f57d7460..00000000000 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_cross_origin_redirects.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - Navigation Timing 2 WPT - - - - - - - - -

Description

-

This test validates the value of window.performance.getEntriesByType("navigation")[0].(type/unloadEventEnd/unloadEventStart) with a reloaded navigation.

- -

This page should be loaded with a green background frame below. The frame will be automatically reloaded - and then verified that -

-

- - - - diff --git a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_previous_document.html b/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_previous_document.html deleted file mode 100644 index 90f336d1340..00000000000 --- a/tests/wpt/web-platform-tests/navigation-timing/nav2_test_unloadEvents_with_previous_document.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - Navigation Timing 2 WPT - - - - - - - -

Description

-

This test validates the value of window.performance.getEntriesByType("navigation")[0].(type/unloadEventEnd/unloadEventStart) with a reloaded navigation.

- -

This page should be loaded with a green background frame below. The frame will be automatically reloaded - and then verified that -

-

- - - - diff --git a/tests/wpt/web-platform-tests/navigation-timing/unload-event-same-origin-check.html b/tests/wpt/web-platform-tests/navigation-timing/unload-event-same-origin-check.html new file mode 100644 index 00000000000..319d04462de --- /dev/null +++ b/tests/wpt/web-platform-tests/navigation-timing/unload-event-same-origin-check.html @@ -0,0 +1,125 @@ + + + + + Navigation Timing 2 WPT + + + + + + + + +

Description

+

This test validates that the values of window.performance.getEntriesByType("navigation")[0].(type/unloadEventEnd/unloadEventStart) are only exposed when the same-origin test passes.

+ + diff --git a/tests/wpt/web-platform-tests/page-visibility/onvisibilitychange.html b/tests/wpt/web-platform-tests/page-visibility/onvisibilitychange.html index 054e8c76c86..f8540842805 100644 --- a/tests/wpt/web-platform-tests/page-visibility/onvisibilitychange.html +++ b/tests/wpt/web-platform-tests/page-visibility/onvisibilitychange.html @@ -5,7 +5,6 @@
+ + diff --git a/tests/wpt/web-platform-tests/page-visibility/unload-1.html b/tests/wpt/web-platform-tests/page-visibility/resources/unload.html similarity index 100% rename from tests/wpt/web-platform-tests/page-visibility/unload-1.html rename to tests/wpt/web-platform-tests/page-visibility/resources/unload.html diff --git a/tests/wpt/web-platform-tests/page-visibility/unload-bubbles.html b/tests/wpt/web-platform-tests/page-visibility/unload-bubbles.html new file mode 100644 index 00000000000..41f40c5bcf7 --- /dev/null +++ b/tests/wpt/web-platform-tests/page-visibility/unload-bubbles.html @@ -0,0 +1,18 @@ + +visibilitychange event bubbles when fired on unload + + +
+ diff --git a/tests/wpt/web-platform-tests/page-visibility/unload.html b/tests/wpt/web-platform-tests/page-visibility/unload.html index 48cf203cdec..9b7dcb8c66c 100644 --- a/tests/wpt/web-platform-tests/page-visibility/unload.html +++ b/tests/wpt/web-platform-tests/page-visibility/unload.html @@ -5,7 +5,7 @@
+ + + +
+ \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/global-serviceworker.https.any.js b/tests/wpt/web-platform-tests/service-workers/service-worker/global-serviceworker.https.any.js new file mode 100644 index 00000000000..489b37f83e1 --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/global-serviceworker.https.any.js @@ -0,0 +1,53 @@ +// META: title=serviceWorker on service worker global +// META: global=!default,serviceworker + +test(() => { + assert_equals(registration.installing, null, 'registration.installing'); + assert_equals(registration.waiting, null, 'registration.waiting'); + assert_equals(registration.active, null, 'registration.active'); + assert_true('serviceWorker' in self, 'self.serviceWorker exists'); + assert_equals(serviceWorker.state, 'parsed', 'serviceWorker.state'); + assert_readonly(self, 'serviceWorker', `self.serviceWorker is read only`); +}, 'First run'); + +// Cache this for later tests. +const initialServiceWorker = self.serviceWorker; + +async_test((t) => { + assert_true('serviceWorker' in self, 'self.serviceWorker exists'); + serviceWorker.postMessage({ messageTest: true }); + + // The rest of the rest runs once we receive the above message. + addEventListener('message', t.step_func((event) => { + // Ignore unrelated messages. + if (!event.data.messageTest) return; + assert_equals(event.source, serviceWorker, 'event.source'); + t.done(); + })); +}, 'Can post message to self during startup'); + +// The test is registered now so there isn't a race condition when collecting tests, but the asserts +// don't happen until the 'install' event fires. +async_test((t) => { + addEventListener('install', t.step_func_done(() => { + assert_true('serviceWorker' in self, 'self.serviceWorker exists'); + assert_equals(serviceWorker, initialServiceWorker, `self.serviceWorker hasn't changed`); + assert_equals(registration.installing, serviceWorker, 'registration.installing'); + assert_equals(registration.waiting, null, 'registration.waiting'); + assert_equals(registration.active, null, 'registration.active'); + assert_equals(serviceWorker.state, 'installing', 'serviceWorker.state'); + })); +}, 'During install'); + +// The test is registered now so there isn't a race condition when collecting tests, but the asserts +// don't happen until the 'activate' event fires. +async_test((t) => { + addEventListener('activate', t.step_func_done(() => { + assert_true('serviceWorker' in self, 'self.serviceWorker exists'); + assert_equals(serviceWorker, initialServiceWorker, `self.serviceWorker hasn't changed`); + assert_equals(registration.installing, null, 'registration.installing'); + assert_equals(registration.waiting, null, 'registration.waiting'); + assert_equals(registration.active, serviceWorker, 'registration.active'); + assert_equals(serviceWorker.state, 'activating', 'serviceWorker.state'); + })); +}, 'During activate'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-shared-worker-interceptor.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-shared-worker-interceptor.js deleted file mode 100644 index e996da6b2b7..00000000000 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-shared-worker-interceptor.js +++ /dev/null @@ -1,9 +0,0 @@ -var worker_text = 'onconnect = function(e) { e.ports[0].postMessage("worker loading intercepted by service worker"); };'; - -self.onfetch = function(event) { - if (event.request.url.indexOf('dummy-shared-worker.js') != -1) { - event.respondWith(new Response( - worker_text, {headers: {"Content-Type": "application/javascript"}})); - } -}; - diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-shared-worker-interceptor.js.headers b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-shared-worker-interceptor.js.headers deleted file mode 100644 index a17a9a3a12c..00000000000 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-shared-worker-interceptor.js.headers +++ /dev/null @@ -1 +0,0 @@ -Content-Type: application/javascript diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-worker-interceptor.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-worker-interceptor.js index abec5fdd58b..1c381fd180e 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-worker-interceptor.js +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-worker-interceptor.js @@ -1,21 +1,45 @@ importScripts('/common/get-host-info.sub.js'); -var worker_text = 'postMessage("worker loading intercepted by service worker"); '; +const text = 'worker loading intercepted by service worker'; +const dedicated_worker_script = `postMessage('${text}');`; +const shared_worker_script = + `onconnect = evt => evt.ports[0].postMessage('${text}');`; -self.onfetch = function(event) { - if (event.request.url.indexOf('synthesized') != -1) { - event.respondWith(new Response(worker_text)); - } else if (event.request.url.indexOf('same-origin') != -1) { - event.respondWith(fetch('dummy-worker-script.py')); - } else if (event.request.url.indexOf('cors') != -1) { - var path = (new URL('dummy-worker-script.py', self.location)).pathname; - var url = get_host_info()['HTTPS_REMOTE_ORIGIN'] + path; - var mode = "no-cors"; - if (event.request.url.indexOf('no-cors') == -1) { - url += '?ACAOrigin=*'; - mode = "cors"; +self.onfetch = event => { + const url = event.request.url; + const destination = event.request.destination; + + // Request handler for a synthesized response. + if (url.indexOf('synthesized') != -1) { + if (destination === 'worker') + event.respondWith(new Response(dedicated_worker_script)); + else if (destination === 'sharedworker') + event.respondWith(new Response(shared_worker_script)); + else + event.respondWith(new Response('Unexpected request! ' + destination)); + return; + } + + // Request handler for a same-origin response. + if (url.indexOf('same-origin') != -1) { + event.respondWith(fetch('postmessage-on-load-worker.js')); + return; + } + + // Request handler for a cross-origin response. + if (url.indexOf('cors') != -1) { + const filename = 'postmessage-on-load-worker.js'; + const path = (new URL(filename, self.location)).pathname; + let new_url = get_host_info()['HTTPS_REMOTE_ORIGIN'] + path; + let mode; + if (url.indexOf('no-cors') != -1) { + // Test no-cors mode. + mode = 'no-cors'; + } else { + // Test cors mode. + new_url += '?pipe=header(Access-Control-Allow-Origin,*)'; + mode = 'cors'; } - event.respondWith(fetch(url, { mode: mode })); + event.respondWith(fetch(new_url, { mode: mode })); } }; - diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-worker-script.py b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-worker-script.py deleted file mode 100644 index 6f40b5ed605..00000000000 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/dummy-worker-script.py +++ /dev/null @@ -1,9 +0,0 @@ -def main(request, response): - headers = [] - - if "ACAOrigin" in request.GET: - for item in request.GET["ACAOrigin"].split(","): - headers.append(("Access-Control-Allow-Origin", item)) - - return headers, "postMessage('dummy-worker-script loaded');" - diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/load_worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/load_worker.js index ba15ffe32da..18c673bebca 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/load_worker.js +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/load_worker.js @@ -1,19 +1,29 @@ -self.onmessage = evt => { - if (evt.data == "xhr") { +function run_test(data, sender) { + if (data === 'xhr') { const xhr = new XMLHttpRequest(); - xhr.open("GET", "synthesized-response.txt", true); - xhr.responseType = "text"; + xhr.open('GET', 'synthesized-response.txt', true); + xhr.responseType = 'text'; xhr.send(); - xhr.onload = evt => postMessage(xhr.responseText); - xhr.onerror = () => postMessage("XHR failed!"); - } else if (evt.data == "fetch") { - fetch("synthesized-response.txt") + xhr.onload = evt => sender.postMessage(xhr.responseText); + xhr.onerror = () => sender.postMessage('XHR failed!'); + } else if (data === 'fetch') { + fetch('synthesized-response.txt') .then(response => response.text()) - .then(data => postMessage(data)) - .catch(error => postMessage("Fetch failed!")); - } else if (evt.data == "importScripts") { - importScripts("synthesized-response.js"); + .then(data => sender.postMessage(data)) + .catch(error => sender.postMessage('Fetch failed!')); + } else if (data === 'importScripts') { + importScripts('synthesized-response.js'); + // |message| is provided by 'synthesized-response.js'; + sender.postMessage(message); } else { - postMessage("Unexpected message! " + evt.data); + sender.postMessage('Unexpected message! ' + data); } +} + +// Entry point for dedicated workers. +self.onmessage = evt => run_test(evt.data, self); + +// Entry point for shared workers. +self.onconnect = evt => { + evt.ports[0].onmessage = e => run_test(e.data, evt.ports[0]); }; diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/nested_load_worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/nested_load_worker.js index 6e2e9edc4d8..ef0ed8fc704 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/nested_load_worker.js +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/nested_load_worker.js @@ -1,9 +1,23 @@ -var worker = new Worker("load_worker.js"); - -self.onmessage = function (evt) { - worker.postMessage(evt.data); +// Entry point for dedicated workers. +self.onmessage = evt => { + try { + const worker = new Worker('load_worker.js'); + worker.onmessage = evt => self.postMessage(evt.data); + worker.postMessage(evt.data); + } catch (err) { + self.postMessage('Unexpected error! ' + err.message); + } }; -worker.onmessage = function (evt) { - self.postMessage(evt.data); -} +// Entry point for shared workers. +self.onconnect = evt => { + evt.ports[0].onmessage = e => { + try { + const worker = new Worker('load_worker.js'); + worker.onmessage = e => evt.ports[0].postMessage(e.data); + worker.postMessage(evt.data); + } catch (err) { + evt.ports[0].postMessage('Unexpected error! ' + err.message); + } + }; +}; diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/postmessage-on-load-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/postmessage-on-load-worker.js new file mode 100644 index 00000000000..c2b0bcb8bfb --- /dev/null +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/postmessage-on-load-worker.js @@ -0,0 +1,9 @@ +if ('DedicatedWorkerGlobalScope' in self && + self instanceof DedicatedWorkerGlobalScope) { + postMessage('dedicated worker script loaded'); +} else if ('SharedWorkerGlobalScope' in self && + self instanceof SharedWorkerGlobalScope) { + self.onconnect = evt => { + evt.ports[0].postMessage('shared worker script loaded'); + }; +} diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/shared-worker-controlled.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/shared-worker-controlled.js deleted file mode 100644 index 1ccc2fe3bdb..00000000000 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/shared-worker-controlled.js +++ /dev/null @@ -1,8 +0,0 @@ -onconnect = function(e) { - var port = e.ports[0]; - var xhr = new XMLHttpRequest(); - xhr.onload = function() { port.postMessage(this.responseText); }; - xhr.onerror = function(e) { port.postMessage(e); }; - xhr.open('GET', 'dummy.txt?simple', true); - xhr.send(); -}; diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/shared-worker-import.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/shared-worker-import.js deleted file mode 100644 index 7c554bd7415..00000000000 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/shared-worker-import.js +++ /dev/null @@ -1 +0,0 @@ -importScripts('import-dummy-shared-worker.js'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/worker-interception-iframe.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/worker-interception-iframe.https.html index 9dd5a185e7e..87b0ed3f249 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/worker-interception-iframe.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/worker-interception-iframe.https.html @@ -2,50 +2,58 @@ diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/worker-load-interceptor.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/worker-load-interceptor.js index a5f65c3216e..ebc0db67aa5 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/worker-load-interceptor.js +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/worker-load-interceptor.js @@ -1,15 +1,16 @@ importScripts('/common/get-host-info.sub.js'); -var response_text = "This load was successfully intercepted."; -var response_script = "postMessage(\"This load was successfully intercepted.\");"; +const response_text = 'This load was successfully intercepted.'; +const response_script = + `const message = 'This load was successfully intercepted.';`; -self.onfetch = function(event) { - var url = event.request.url; - if (url.indexOf("synthesized-response.txt") != -1) { - event.respondWith(new Response(response_text)); - } else if (url.indexOf("synthesized-response.js") != -1) { - event.respondWith(new Response( - response_script, - {headers: {'Content-Type': 'application/javascript'}})); - } +self.onfetch = event => { + const url = event.request.url; + if (url.indexOf('synthesized-response.txt') != -1) { + event.respondWith(new Response(response_text)); + } else if (url.indexOf('synthesized-response.js') != -1) { + event.respondWith(new Response( + response_script, + {headers: {'Content-Type': 'application/javascript'}})); + } }; diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html deleted file mode 100644 index 0320c02a4fa..00000000000 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html +++ /dev/null @@ -1,86 +0,0 @@ - -Service Worker: controlling a SharedWorker - - - - - - diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html index 1776376e96c..6b66fb0f022 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/worker-interception.https.html @@ -1,5 +1,6 @@ Service Worker: intercepting Worker script loads + @@ -14,7 +15,7 @@ async function setup_service_worker(t, script_url, scope) { } promise_test(async t => { - const worker_url = 'resources/dummy-synthesized-worker.js'; + const worker_url = 'resources/dummy-synthesized-worker.js?dedicated'; const service_worker = 'resources/dummy-worker-interceptor.js'; const scope = worker_url; @@ -25,11 +26,26 @@ promise_test(async t => { w.onerror = e => reject(e.message); }); assert_equals(data, 'worker loading intercepted by service worker'); -}, 'Verify worker script from uncontrolled document is intercepted by ' + - 'Service Worker'); +}, `Verify a dedicated worker script request issued from a uncontrolled ` + + `document is intercepted by worker's own service worker.`); promise_test(async t => { - const worker_url = 'resources/dummy-same-origin-worker.js'; + const worker_url = 'resources/dummy-synthesized-worker.js?shared'; + const service_worker = 'resources/dummy-worker-interceptor.js'; + const scope = worker_url; + + await setup_service_worker(t, service_worker, scope); + const w = new SharedWorker(worker_url); + const data = await new Promise((resolve, reject) => { + w.port.onmessage = e => resolve(e.data); + w.onerror = e => reject(e.message); + }); + assert_equals(data, 'worker loading intercepted by service worker'); +}, `Verify a shared worker script request issued from a uncontrolled ` + + `document is intercepted by worker's own service worker.`); + +promise_test(async t => { + const worker_url = 'resources/dummy-same-origin-worker.js?dedicated'; const service_worker = 'resources/dummy-worker-interceptor.js'; const scope = worker_url; @@ -39,11 +55,27 @@ promise_test(async t => { w.onmessage = e => resolve(e.data); w.onerror = e => reject(e.message); }); - assert_equals(data, 'dummy-worker-script loaded'); -}, 'Verify worker script intercepted by same-origin response succeeds'); + assert_equals(data, 'dedicated worker script loaded'); +}, 'Verify a same-origin worker script served by a service worker succeeds ' + + 'in starting a dedicated worker.'); promise_test(async t => { - const worker_url = 'resources/dummy-cors-worker.js'; + const worker_url = 'resources/dummy-same-origin-worker.js?shared'; + const service_worker = 'resources/dummy-worker-interceptor.js'; + const scope = worker_url; + + await setup_service_worker(t, service_worker, scope); + const w = new SharedWorker(worker_url); + const data = await new Promise((resolve, reject) => { + w.port.onmessage = e => resolve(e.data); + w.onerror = e => reject(e.message); + }); + assert_equals(data, 'shared worker script loaded'); +}, 'Verify a same-origin worker script served by a service worker succeeds ' + + 'in starting a shared worker.'); + +promise_test(async t => { + const worker_url = 'resources/dummy-cors-worker.js?dedicated'; const service_worker = 'resources/dummy-worker-interceptor.js'; const scope = worker_url; @@ -51,10 +83,23 @@ promise_test(async t => { const w = new Worker(worker_url); const watcher = new EventWatcher(t, w, ['message', 'error']); await watcher.wait_for('error'); -}, 'Verify worker script intercepted by cors response fails'); +}, 'Verify a cors worker script served by a service worker fails dedicated ' + + 'worker start.'); promise_test(async t => { - const worker_url = 'resources/dummy-no-cors-worker.js'; + const worker_url = 'resources/dummy-cors-worker.js?shared'; + const service_worker = 'resources/dummy-worker-interceptor.js'; + const scope = worker_url; + + await setup_service_worker(t, service_worker, scope); + const w = new SharedWorker(worker_url); + const watcher = new EventWatcher(t, w, ['message', 'error']); + await watcher.wait_for('error'); +}, 'Verify a cors worker script served by a service worker fails shared ' + + 'worker start.'); + +promise_test(async t => { + const worker_url = 'resources/dummy-no-cors-worker.js?dedicated'; const service_worker = 'resources/dummy-worker-interceptor.js'; const scope = worker_url; @@ -62,12 +107,25 @@ promise_test(async t => { const w = new Worker(worker_url); const watcher = new EventWatcher(t, w, ['message', 'error']); await watcher.wait_for('error'); -}, 'Verify worker script intercepted by no-cors cross-origin response fails'); +}, 'Verify a no-cors cross-origin worker script served by a service worker ' + + 'fails dedicated worker start.'); promise_test(async t => { - const subdoc_url = 'resources/worker-interception-iframe.https.html?bypass'; + const worker_url = 'resources/dummy-no-cors-worker.js?shared'; + const service_worker = 'resources/dummy-worker-interceptor.js'; + const scope = worker_url; + + await setup_service_worker(t, service_worker, scope); + const w = new SharedWorker(worker_url); + const watcher = new EventWatcher(t, w, ['message', 'error']); + await watcher.wait_for('error'); +}, 'Verify a no-cors cross-origin worker script served by a service worker ' + + 'fails shared worker start.'); + +promise_test(async t => { + const subdoc_url = 'resources/worker-interception-iframe.https.html'; const service_worker = 'resources/worker-load-interceptor.js'; - const scope = 'resources/'; + const scope = 'resources/load_worker.js?dedicated'; await setup_service_worker(t, service_worker, scope); const frame = await with_iframe(subdoc_url); @@ -75,11 +133,70 @@ promise_test(async t => { const data = await new Promise((resolve, reject) => { const channel = new MessageChannel(); channel.port1.onmessage = e => resolve(e.data); - frame.contentWindow.postMessage("GO", "*", [channel.port2]); + frame.contentWindow.postMessage( + { script: 'load_worker.js?dedicated', type: 'worker' }, + '*', [channel.port2]); }); assert_equals(data.results, 'finish'); -}, 'Verify worker loads from controlled document are intercepted by Service ' + - 'Worker'); +}, 'Verify subresource requests on a dedicated worker controlled by a ' + + 'service worker.'); + +promise_test(async t => { + const subdoc_url = 'resources/worker-interception-iframe.https.html'; + const service_worker = 'resources/worker-load-interceptor.js'; + const scope = 'resources/load_worker.js?shared'; + + await setup_service_worker(t, service_worker, scope); + const frame = await with_iframe(subdoc_url); + t.add_cleanup(() => frame.remove()); + const data = await new Promise((resolve, reject) => { + const channel = new MessageChannel(); + channel.port1.onmessage = e => resolve(e.data); + frame.contentWindow.postMessage( + { script: 'load_worker.js?shared', type: 'sharedworker' }, + '*', [channel.port2]); + }); + assert_equals(data.results, 'finish'); +}, 'Verify subresource requests on a shared worker controlled by a service ' + + 'worker.'); + +promise_test(async t => { + const subdoc_url = 'resources/worker-interception-iframe.https.html'; + const service_worker = 'resources/worker-load-interceptor.js'; + const scope = 'resources/nested_load_worker.js?dedicated'; + + await setup_service_worker(t, service_worker, scope); + const frame = await with_iframe(subdoc_url); + t.add_cleanup(() => frame.remove()); + const data = await new Promise((resolve, reject) => { + const channel = new MessageChannel(); + channel.port1.onmessage = e => resolve(e.data); + frame.contentWindow.postMessage( + { script: 'nested_load_worker.js?dedicated', type: 'worker' }, + '*', [channel.port2]); + }); + assert_equals(data.results, 'finish'); +}, 'Verify subresource requests on a nested dedicated worker created from a ' + + 'dedicated worker and controlled by a service worker.'); + +promise_test(async t => { + const subdoc_url = 'resources/worker-interception-iframe.https.html'; + const service_worker = 'resources/worker-load-interceptor.js'; + const scope = 'resources/nested_load_worker.js?shared'; + + await setup_service_worker(t, service_worker, scope); + const frame = await with_iframe(subdoc_url); + t.add_cleanup(() => frame.remove()); + const data = await new Promise((resolve, reject) => { + const channel = new MessageChannel(); + channel.port1.onmessage = e => resolve(e.data); + frame.contentWindow.postMessage( + { script: 'nested_load_worker.js?shared', type: 'sharedworker' }, + '*', [channel.port2]); + }); + assert_equals(data.results, 'finish'); +}, 'Verify subresource requests on a nested dedicated worker created from a ' + + 'shared worker and controlled by a service worker.'); diff --git a/tests/wpt/web-platform-tests/sms/interceptor.https.html b/tests/wpt/web-platform-tests/sms/interceptor.https.html index 4a6772f4416..b7e8fd53bff 100644 --- a/tests/wpt/web-platform-tests/sms/interceptor.https.html +++ b/tests/wpt/web-platform-tests/sms/interceptor.https.html @@ -12,7 +12,7 @@ 1) Include in your test. 2) Set expectations - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { // mock behavior }) 3) Call navigator.sms.receive() @@ -24,8 +24,8 @@ Here are the symbols that are exposed to tests that need to be implemented per engine: - - function getNextMessage(): the main/only function that can be mocked. - - function expect(): the main/only function that enables us to mock it + - function receive(): the main/only function that can be mocked. + - function expect(): the main/only function that enables us to mock it. - enum State {kSuccess, kTimeout}: allows you to mock success/failures. --> @@ -34,12 +34,10 @@ 'use strict'; promise_test(async t => { - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - content: "hello", - status: Status.kSuccess, - } + status: Status.kSuccess, + message: "hello", }); }); @@ -49,20 +47,16 @@ promise_test(async t => { }, 'Basic usage'); promise_test(async t => { - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - content: "hello1", - status: Status.kSuccess, - } + status: Status.kSuccess, + message: "hello1", }); }); - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - content: "hello2", - status: Status.kSuccess, - } + status: Status.kSuccess, + message: "hello2", }); }); @@ -77,19 +71,15 @@ promise_test(async t => { }, 'Handle multiple requests in different order.'); promise_test(async t => { - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - status: Status.kTimeout - } + status: Status.kTimeout, }); }); - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - content: "success", - status: Status.kSuccess - } + status: Status.kSuccess, + message: "success", }); }); @@ -109,11 +99,9 @@ promise_test(async t => { }, 'Handle multiple requests with success and error.'); promise_test(async t => { - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - status: Status.kTimeout, - } + status: Status.kTimeout, }); }); @@ -167,12 +155,10 @@ promise_test(async t => { }, 'Should throw error with invalid timeout (NaN)'); promise_test(async t => { - await expect(getNextMessage).andReturn((timeout) => { + await expect(receive).andReturn((timeout) => { return Promise.resolve({ - sms: { - content: "hello", - status: Status.kSuccess, - } + status: Status.kSuccess, + message: "hello", }); }); diff --git a/tests/wpt/web-platform-tests/sms/sms_provider.js b/tests/wpt/web-platform-tests/sms/sms_provider.js index a4759419a88..eaa31ebea31 100644 --- a/tests/wpt/web-platform-tests/sms/sms_provider.js +++ b/tests/wpt/web-platform-tests/sms/sms_provider.js @@ -5,7 +5,7 @@ let interceptor = (async function() { '/gen/mojo/public/mojom/base/big_buffer.mojom-lite.js', '/gen/mojo/public/mojom/base/string16.mojom-lite.js', '/gen/mojo/public/mojom/base/time.mojom-lite.js', - '/gen/third_party/blink/public/mojom/sms/sms_manager.mojom-lite.js', + '/gen/third_party/blink/public/mojom/sms/sms_receiver.mojom-lite.js', ].forEach(path => { let script = document.createElement('script'); script.src = path; @@ -24,8 +24,8 @@ class SmsProvider { this.returnValues = {} } - getNextMessage(timeout) { - let call = this.returnValues.getNextMessage.shift(); + receive(timeout) { + let call = this.returnValues.receive.shift(); if (!call) { throw new Error("Unexpected call."); } @@ -39,7 +39,7 @@ class SmsProvider { } } -function getNextMessage(timeout, callback) { +function receive(timeout, callback) { throw new Error("expected to be overriden by tests"); } @@ -58,9 +58,9 @@ function intercept() { let provider = new SmsProvider(); let interceptor = new MojoInterfaceInterceptor( - blink.mojom.SmsManager.$interfaceName); + blink.mojom.SmsReceiver.$interfaceName); interceptor.oninterfacerequest = (e) => { - let impl = new blink.mojom.SmsManager(provider); + let impl = new blink.mojom.SmsReceiver(provider); impl.bindHandle(e.handle); } diff --git a/tests/wpt/web-platform-tests/std-toast/META.yml b/tests/wpt/web-platform-tests/std-toast/META.yml new file mode 100644 index 00000000000..c54357a03f2 --- /dev/null +++ b/tests/wpt/web-platform-tests/std-toast/META.yml @@ -0,0 +1,5 @@ +spec: https://github.com/jackbsteinberg/std-toast +suggested_reviewers: + - domenic + - fergald + - jackbsteinberg diff --git a/tests/wpt/web-platform-tests/std-toast/attributes.html b/tests/wpt/web-platform-tests/std-toast/attributes.html new file mode 100644 index 00000000000..9bfc65c395c --- /dev/null +++ b/tests/wpt/web-platform-tests/std-toast/attributes.html @@ -0,0 +1,116 @@ + + +Toast: attribute tests + + + + +
+ + diff --git a/tests/wpt/web-platform-tests/std-toast/events-open.html b/tests/wpt/web-platform-tests/std-toast/events-open.html new file mode 100644 index 00000000000..5442b36d261 --- /dev/null +++ b/tests/wpt/web-platform-tests/std-toast/events-open.html @@ -0,0 +1,73 @@ + + +Toast: Event tests + + + + +
+ + diff --git a/tests/wpt/web-platform-tests/std-toast/events-showhide.html b/tests/wpt/web-platform-tests/std-toast/events-showhide.html new file mode 100644 index 00000000000..73f1df4ae55 --- /dev/null +++ b/tests/wpt/web-platform-tests/std-toast/events-showhide.html @@ -0,0 +1,98 @@ + + +Toast: Event tests + + + + +
+ + diff --git a/tests/wpt/web-platform-tests/std-toast/methods.html b/tests/wpt/web-platform-tests/std-toast/methods.html new file mode 100644 index 00000000000..7ce0e5adb81 --- /dev/null +++ b/tests/wpt/web-platform-tests/std-toast/methods.html @@ -0,0 +1,125 @@ + + +Toast: method tests + + + + +
+
+ + diff --git a/tests/wpt/web-platform-tests/std-toast/options.html b/tests/wpt/web-platform-tests/std-toast/options.html new file mode 100644 index 00000000000..74470e35998 --- /dev/null +++ b/tests/wpt/web-platform-tests/std-toast/options.html @@ -0,0 +1,102 @@ + + + +Toast: showToast tests + + + + + + + + diff --git a/tests/wpt/web-platform-tests/std-toast/resources/helpers.js b/tests/wpt/web-platform-tests/std-toast/resources/helpers.js new file mode 100644 index 00000000000..41b7672ab1b --- /dev/null +++ b/tests/wpt/web-platform-tests/std-toast/resources/helpers.js @@ -0,0 +1,70 @@ +import { showToast, StdToastElement } from 'std:elements/toast'; + +// helper functions to keep tests from bleeding into each other + +const runTest = (testFn, name, toast) => { + try { + test(() => { + testFn(toast); + }, name); + } finally { + toast.remove(); + } +}; + +const runTestAsync = (testFn, name, toast) => { + async_test(t => { + testFn(t, toast); + t.add_cleanup(() => { + toast.remove(); + }); + }, name); +}; + +export const testToastElement = (testFn, name) => { + const toast = new StdToastElement('Message', {}); + document.querySelector('main').appendChild(toast); + + runTest(testFn, name, toast); +}; + +export const testToastElementAsync = (testFn, name) => { + const toast = new StdToastElement('Message', {}); + document.querySelector('main').appendChild(toast); + + runTestAsync(testFn, name, toast); +}; + +export const testShowToast = (testFn, name) => { + const toast = showToast("message"); + + runTest(testFn, name, toast); +}; + +export const assertToastShown = (toast) => { + assert_not_equals(window.getComputedStyle(toast).display, 'none'); + assert_true(toast.hasAttribute('open')); + assert_true(toast.open); +}; + +export const assertToastNotShown = (toast) => { + assert_equals(window.getComputedStyle(toast).display, 'none'); + assert_false(toast.hasAttribute('open')); + assert_false(toast.open); +}; + +export class EventCollector { + events = []; + + getCallback() { + return (e) => {this.events.push(e)}; + } + + getCount() { + return this.events.length; + } + + getEvents() { + return this.events; + } +} diff --git a/tests/wpt/web-platform-tests/std-toast/show-toast.html b/tests/wpt/web-platform-tests/std-toast/show-toast.html new file mode 100644 index 00000000000..50cdc2c06dd --- /dev/null +++ b/tests/wpt/web-platform-tests/std-toast/show-toast.html @@ -0,0 +1,63 @@ + + +Toast: showToast tests + + + + + + + + diff --git a/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-anon-script.js b/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-anon-script.js deleted file mode 100644 index 8493585f1b1..00000000000 --- a/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-anon-script.js +++ /dev/null @@ -1 +0,0 @@ -crossorigin_anon_script=true; \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-anon-script.js.headers b/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-anon-script.js.headers deleted file mode 100644 index cb762eff806..00000000000 --- a/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-anon-script.js.headers +++ /dev/null @@ -1 +0,0 @@ -Access-Control-Allow-Origin: * diff --git a/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-creds-script.js b/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-creds-script.js deleted file mode 100644 index 6f39e25b40b..00000000000 --- a/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-creds-script.js +++ /dev/null @@ -1 +0,0 @@ -crossorigin_creds_script=true; \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-creds-script.js.sub.headers b/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-creds-script.js.sub.headers deleted file mode 100644 index d6af1f0deab..00000000000 --- a/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-creds-script.js.sub.headers +++ /dev/null @@ -1,2 +0,0 @@ -Access-Control-Allow-Origin: {{location[scheme]}}://{{domains[]}}{{GET[acao_port]}} -Access-Control-Allow-Credentials: true diff --git a/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-ineligible-script.js b/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-ineligible-script.js deleted file mode 100644 index dd2f968ef6a..00000000000 --- a/tests/wpt/web-platform-tests/subresource-integrity/crossorigin-ineligible-script.js +++ /dev/null @@ -1 +0,0 @@ -crossorigin_ineligible_script=true; \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/subresource-integrity/matching-digest.js b/tests/wpt/web-platform-tests/subresource-integrity/matching-digest.js deleted file mode 100644 index ec41325e4e9..00000000000 --- a/tests/wpt/web-platform-tests/subresource-integrity/matching-digest.js +++ /dev/null @@ -1 +0,0 @@ -matching_digest=true; \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/subresource-integrity/non-matching-digest.js b/tests/wpt/web-platform-tests/subresource-integrity/non-matching-digest.js deleted file mode 100644 index 1b4943ee016..00000000000 --- a/tests/wpt/web-platform-tests/subresource-integrity/non-matching-digest.js +++ /dev/null @@ -1 +0,0 @@ -non_matching_digest=true; \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/subresource-integrity/script.js b/tests/wpt/web-platform-tests/subresource-integrity/script.js new file mode 100644 index 00000000000..bfca1efbf3f --- /dev/null +++ b/tests/wpt/web-platform-tests/subresource-integrity/script.js @@ -0,0 +1 @@ +// nothing important. diff --git a/tests/wpt/web-platform-tests/subresource-integrity/sri-test-helpers.sub.js b/tests/wpt/web-platform-tests/subresource-integrity/sri-test-helpers.sub.js new file mode 100644 index 00000000000..22c9e9c5dd9 --- /dev/null +++ b/tests/wpt/web-platform-tests/subresource-integrity/sri-test-helpers.sub.js @@ -0,0 +1,38 @@ +// This horrible hack is needed for the 'use-credentials' tests because, on +// response, if port 80 or 443 is the current port, it will not appear to +// the browser as part of the origin string. Since the origin *string* is +// used for CORS access control, instead of the origin itself, if there +// isn't an exact string match, the check will fail. For example, +// "http://example.com" would not match "http://example.com:80", because +// they are not exact string matches, even though the origins are the same. +// +// Thus, we only want the Access-Control-Allow-Origin header to have +// the port if it's not port 80 or 443, since the user agent will elide the +// ports in those cases. +const main_domain = "{{domains[]}}"; +const www_domain = "{{domains[www]}}"; +const default_port = (location.protocol === "https:") ? "{{ports[https][0]}}" : + "{{ports[http][0]}}"; + +const port_string = (default_port !== "80" && default_port !== "443") ? + `:${default_port}` : ""; +const www_host_and_port = www_domain + port_string; + +// General resource prefixes. +const same_origin_prefix = '/subresource-integrity/'; +const xorigin_prefix = `${location.protocol}//${www_host_and_port}/subresource-integrity/`; + +// Note that all of these style URLs have query parameters started, so any +// additional parameters should be appended starting with '&'. +const xorigin_anon_style = location.protocol + + '//' + www_host_and_port + + '/subresource-integrity/crossorigin-anon-style.css?'; + +const xorigin_creds_style = location.protocol + + '//' + www_host_and_port + + '/subresource-integrity/crossorigin-creds-style.css?acao_port=' + + port_string; + +const xorigin_ineligible_style = location.protocol + + '//' + www_host_and_port + + '/subresource-integrity/crossorigin-ineligible-style.css?'; diff --git a/tests/wpt/web-platform-tests/subresource-integrity/subresource-integrity.sub.html b/tests/wpt/web-platform-tests/subresource-integrity/subresource-integrity.html similarity index 74% rename from tests/wpt/web-platform-tests/subresource-integrity/subresource-integrity.sub.html rename to tests/wpt/web-platform-tests/subresource-integrity/subresource-integrity.html index 658ea6fd92e..f317b0e423e 100644 --- a/tests/wpt/web-platform-tests/subresource-integrity/subresource-integrity.sub.html +++ b/tests/wpt/web-platform-tests/subresource-integrity/subresource-integrity.html @@ -4,64 +4,13 @@ + +
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html index 3ad27e219e9..76a639a6227 100644 --- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html +++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html @@ -25,11 +25,112 @@ assert_element_accepts_trusted_url_set_ns(window, '3', t, 'a', 'b', RESULTS.URL); }, "Element.setAttributeNS assigned via policy (successful URL transformation)"); + // Unknown, namespaced attributes should not be TT checked: test(t => { - assert_throws_no_trusted_type_set_ns('a', 'b', 'A string'); - }, "`Element.setAttributeNS = string` throws"); + assert_element_accepts_non_trusted_type_set_ns('a', 'b', 'A string', 'A string'); + }, "Element.setAttributeNS accepts untrusted string for non-specced accessor"); test(t => { - assert_throws_no_trusted_type_set_ns('a', 'b', null); - }, "`Element.setAttributeNS = null` throws"); + assert_element_accepts_non_trusted_type_set_ns('a', 'b', null, 'null'); + }, "Element.setAttributeNS accepts null for non-specced accessor"); + + // Setup trusted values for use in subsequent tests. + const url = createURL_policy(window, '4').createURL(INPUTS.URL); + const script_url = createScriptURL_policy(window, '5').createScriptURL(INPUTS.ScriptURL); + const html = createHTML_policy(window, '6').createHTML(INPUTS.HTML); + const script = createScript_policy(window, '7').createScript(INPUTS.Script); + + // SVG elements that use xlink:href (SVGURIReference) and that expect + // TrustedURL. + // There a number of affected elements, and there are several ways to set + // a namespaced attribute. Let's iterate over all combinations. + const xlink = "http://www.w3.org/1999/xlink"; + const svg = "http://www.w3.org/2000/svg"; + const elems = [ "a", "animate", "animateMotion", "animateTransform", + "discard", "feImage", "filter", "image", "linearGradient", + "mpath", "pattern", "radialGradient", "set", "textPath", + "use" ]; + + // There are multiple ways to set a namespaced attribute. Let's encapsulate + // each in a function. + const variants = { + "setAttributeNS with prefix": (element_name, value) => { + let elem = document.createElementNS(svg, element_name); + elem.setAttributeNS(xlink, "xlink:href", value); + return elem; + }, + "setAttributeNS without prefix": (element_name, value) => { + let elem = document.createElementNS(svg, element_name); + elem.setAttributeNS(xlink, "href", value); + return elem; + }, + "setAttribute with prefix": (element_name, value) => { + let elem = document.createElementNS(svg, element_name); + // Create the namespaced attribute with setAttributeNS. Then refer + // to it with the prefix in setAttribute. This test will break + // if either setAttributeNS or setAttribtue functionality it broken. + elem.setAttributeNS(xlink, "xlink:href", url); + elem.setAttribute("xlink:href", value); + return elem; + } + }; + for (const e of elems) { + for (const variant in variants) { + // Assigning a TrustedURL works. + test(t => { + let elem = variants[variant](e, url); + assert_equals("" + RESULTS.URL, + elem.getAttributeNodeNS(xlink, "href").value); + }, "Assigning TrustedURL to works via " + variant); + + // Assigning things that ought to not work. + const values = ["abc", null, script_url, html, script]; + values.forEach((value, index) => { + test(t => { + assert_throws(new TypeError(), _ => { variants[variant](e, value); }); + }, "Blocking non-TrustedURL assignment to via " + + variant + " value no " + index); + }); + } + } + + // Test 'synchronization' of 'xlink:href'. + test(t => { + // ..setAttribute("xlink:href") will behave differently, depending on + // whether the element already has an attribute by that name. Make sure + // that Trusted Type handling respects that difference. + + // Case 1: "xlink:href" on an empty element: This is an unknown attribute + // not processed by SVG, and string assignment should work. + let elem1 = document.createElementNS(svg, "a"); + elem1.setAttribute("xlink:href", "abc"); + + // Case 2: "xlink:href", after a namespaced attribute has been set: Now + // this mirrors the SVG attribute, and string assignment should fail. + let elem2 = document.createElementNS(svg, "a"); + elem2.setAttributeNS(xlink, "xlink:href", url); + assert_throws(new TypeError(), _ => { + elem2.setAttribute("xlink:href", "abc"); + }); + }, "Test synchronized, namespaced attributes."); + + // svg:script xlink:href=... expects a TrustedScriptURL. + // Assigning a TrustedScriptURL works. + test(t => { + let elem = document.createElementNS(svg, "script"); + elem.setAttributeNS(xlink, "href", script_url); + assert_equals("" + RESULTS.ScriptURL, + elem.getAttributeNodeNS(xlink, "href").value); + }, "Assigning TrustedScriptURL to works"); + + // Assigning things that ought to not work. + test(t => { + let elem = document.createElementNS(svg, "script"); + const values = [ "abc", null, url, html, script ]; + for (const v of values) { + assert_throws(new TypeError(), _ => { + elem.setAttributeNS(xlink, "href", v); + }); + } + }, "Blocking non-TrustedScriptURL assignment to works"); diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance.html b/tests/wpt/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance.html index 6ad9cd2aca3..a33d6d4f246 100644 --- a/tests/wpt/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance.html +++ b/tests/wpt/web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance.html @@ -35,7 +35,7 @@ for (const params of gEasingTests) { : 100 + params.easingFunction(portion) * 100; assert_approx_equals(parseFloat(getComputedStyle(target).width), expectedWidth, - 0.01, + 0.02, 'The width should be approximately ' + `${expectedWidth} at ${sampleTime}ms`); } diff --git a/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html index da3e4c071d1..3c4242943d6 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NFCReadingEvent_constructor.https.html @@ -6,31 +6,11 @@ diff --git a/tests/wpt/web-platform-tests/webdriver/tests/accept_alert/accept.py b/tests/wpt/web-platform-tests/webdriver/tests/accept_alert/accept.py index a111f103bf1..d8211841d5c 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/accept_alert/accept.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/accept_alert/accept.py @@ -1,5 +1,8 @@ +from webdriver.error import NoSuchAlertException + from tests.support.asserts import assert_error, assert_success from tests.support.inline import inline +from tests.support.sync import Poll def accept_alert(session): @@ -43,3 +46,16 @@ def test_accept_prompt(session): response = accept_alert(session) assert_success(response) assert session.execute_script("return window.result") == "Federer" + + +def test_unexpected_alert(session): + session.execute_script("window.setTimeout(function() { window.alert('Hello'); }, 100);") + wait = Poll( + session, + timeout=5, + ignored_exceptions=NoSuchAlertException, + message="No user prompt with text 'Hello' detected") + wait.until(lambda s: s.alert.text == "Hello") + + response = accept_alert(session) + assert_success(response) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/dismiss_alert/dismiss.py b/tests/wpt/web-platform-tests/webdriver/tests/dismiss_alert/dismiss.py index c0efc38b47f..bcff3a32af3 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/dismiss_alert/dismiss.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/dismiss_alert/dismiss.py @@ -1,5 +1,8 @@ +from webdriver.error import NoSuchAlertException + from tests.support.asserts import assert_error, assert_success from tests.support.inline import inline +from tests.support.sync import Poll def dismiss_alert(session): @@ -43,3 +46,16 @@ def test_dismiss_prompt(session): response = dismiss_alert(session) assert_success(response) assert session.execute_script("return window.result") is None + + +def test_unexpected_alert(session): + session.execute_script("setTimeout(function() { alert('Hello'); }, 100);") + wait = Poll( + session, + timeout=5, + ignored_exceptions=NoSuchAlertException, + message="No user prompt with text 'Hello' detected") + wait.until(lambda s: s.alert.text == "Hello") + + response = dismiss_alert(session) + assert_success(response) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/get_alert_text/get.py b/tests/wpt/web-platform-tests/webdriver/tests/get_alert_text/get.py index 2327abce3a4..d6fdda2d1ed 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/get_alert_text/get.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/get_alert_text/get.py @@ -1,5 +1,8 @@ +from webdriver.error import NoSuchAlertException + from tests.support.asserts import assert_error, assert_success from tests.support.inline import inline +from tests.support.sync import Poll def get_alert_text(session): @@ -48,3 +51,16 @@ def test_get_prompt_text(session): prompt_text = response.body["value"] assert isinstance(prompt_text, basestring) assert prompt_text == "Enter Your Name: " + + +def test_unexpected_alert(session): + session.execute_script("setTimeout(function() { alert('Hello'); }, 100);") + wait = Poll( + session, + timeout=5, + ignored_exceptions=NoSuchAlertException, + message="No user prompt with text 'Hello' detected") + wait.until(lambda s: s.alert.text == "Hello") + + response = get_alert_text(session) + assert_success(response) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/send.py b/tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/send.py index 3ed5621c084..9186e3e3fc2 100644 --- a/tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/send.py +++ b/tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/send.py @@ -1,10 +1,12 @@ import pytest +from webdriver.error import NoSuchAlertException from webdriver.transport import Response from tests.support.asserts import assert_error, assert_success from tests.support.authentication import basic_authentication from tests.support.inline import inline +from tests.support.sync import Poll @pytest.fixture @@ -71,3 +73,16 @@ def test_send_alert_text(session, page, text): session.alert.accept() assert session.execute_script("return window.result") == text + + +def test_unexpected_alert(session): + session.execute_script("setTimeout(function() { prompt('Hello'); }, 100);") + wait = Poll( + session, + timeout=5, + ignored_exceptions=NoSuchAlertException, + message="No user prompt with text 'Hello' detected") + wait.until(lambda s: s.alert.text == "Hello") + + response = send_alert_text(session, "Federer") + assert_success(response) diff --git a/tests/wpt/web-platform-tests/webdriver/tests/switch_to_window/alerts.py b/tests/wpt/web-platform-tests/webdriver/tests/switch_to_window/alerts.py new file mode 100644 index 00000000000..e3a33424499 --- /dev/null +++ b/tests/wpt/web-platform-tests/webdriver/tests/switch_to_window/alerts.py @@ -0,0 +1,32 @@ +import pytest + +from webdriver import error + +from tests.support.asserts import assert_success +from tests.support.inline import inline + + +def switch_to_window(session, handle): + return session.transport.send( + "POST", "session/{session_id}/window".format(**vars(session)), + {"handle": handle}) + + +def test_retain_tab_modal_status(session, create_window): + handle = session.window_handle + + new_handle = create_window() + response = switch_to_window(session, new_handle) + assert_success(response) + + session.url = inline("") + assert session.alert.text == "Hello" + response = switch_to_window(session, handle) + assert_success(response) + + with pytest.raises(error.NoSuchAlertException): + session.alert.text == "Hello" + response = switch_to_window(session, new_handle) + assert_success(response) + + assert session.alert.text == "Hello" diff --git a/tests/wpt/web-platform-tests/websockets/remove-own-iframe-during-onerror.window.js b/tests/wpt/web-platform-tests/websockets/remove-own-iframe-during-onerror.window.js new file mode 100644 index 00000000000..31c21b4ff93 --- /dev/null +++ b/tests/wpt/web-platform-tests/websockets/remove-own-iframe-during-onerror.window.js @@ -0,0 +1,21 @@ +// META: script=websocket.sub.js +// META: timeout=long + +async_test(t => { + window.wsurl = 'wss://' + __SERVER__NAME + ':' + __SECURE__PORT + + '/does-not-exist'; + let wsframe; + window.wsonerror = () => { + wsframe.remove(); + // If this didn't crash then the test passed. + t.done(); + }; + wsframe = document.createElement('iframe'); + wsframe.srcdoc = ``; + onload = () => document.body.appendChild(wsframe); +}, 'removing an iframe from within an onerror handler should work'); + +done();