From a7e62acbe8ddae59a2592e45b78c11e2b5dc5407 Mon Sep 17 00:00:00 2001 From: WPT Sync Bot Date: Thu, 14 Feb 2019 20:36:47 -0500 Subject: [PATCH] Update web-platform-tests to revision ad219567030d1f99f7310f52a17546b57b70d29e --- tests/wpt/metadata/MANIFEST.json | 740 ++++++++++++++++-- .../scroll-behavior-smooth.html.ini | 6 + .../reactions/HTMLBaseElement.html.ini | 7 + .../XMLSerializer-serializeToString.html.ini | 21 + .../fetch.tentative.https.sub.html.ini | 9 + .../script.tentative.https.sub.html.ini | 3 + .../style.tentative.https.sub.html.ini | 3 + .../track.tentative.https.sub.html.ini | 3 + ...-return-value-undefined.tentative.html.ini | 5 - .../traverse_the_history_5.html.ini | 4 - ...ocument_domain_access_details.sub.html.ini | 31 + .../name-attribute.window.js.ini | 4 + .../document-write/iframe_005.html.ini | 4 - .../web-platform-tests/.azure-pipelines.yml | 14 +- .../animator-animate.https.html | 22 + .../animator-with-options.https.html | 35 + tests/wpt/web-platform-tests/common/sleep.py | 6 +- .../securitypolicyviolation/targeting.html | 4 +- ...ion-absolute-dynamic-containing-block.html | 140 ++++ .../css/css-values/rgba-011.html | 54 ++ .../reactions/HTMLBaseElement.html | 21 + .../reactions/HTMLButtonElement.html | 46 +- .../reactions/resources/reactions.js | 35 + .../XMLSerializer-serializeToString.html | 93 +++ .../element-timing/observe-svg-image.html | 30 + .../embed.tentative.https.sub.html | 6 +- .../fetch.tentative.https.sub.html | 50 +- .../font.tentative.https.sub.html | 6 +- .../iframe.tentative.https.sub.html | 9 +- .../sec-metadata/iframe.tentative.sub.html | 9 +- .../sec-metadata/img.tentative.https.sub.html | 9 +- .../object.tentative.https.sub.html | 6 +- ...oss-site-redirect.tentative.https.sub.html | 6 +- ...direct-cross-site.tentative.https.sub.html | 2 +- ...edirect-same-site.tentative.https.sub.html | 2 +- ...e-origin-redirect.tentative.https.sub.html | 6 +- ...ame-site-redirect.tentative.https.sub.html | 6 +- .../report.tentative.https.sub.html | 6 +- .../fetch/sec-metadata/resources/helper.js | 3 +- .../script.tentative.https.sub.html | 24 +- .../sec-metadata/script.tentative.sub.html | 9 +- .../serviceworker.tentative.https.sub.html | 2 +- .../sharedworker.tentative.https.sub.html | 2 +- .../style.tentative.https.sub.html | 27 +- .../track.tentative.https.sub.html | 47 +- .../window-open.tentative.https.sub.html | 18 +- .../worker.tentative.https.sub.html | 2 +- .../xslt.tentative.https.sub.html | 6 +- .../document_domain_access_details.sub.html | 193 +++++ .../support/document_domain_frame.html | 52 ++ .../support/document_domain_frame.sub.js | 65 ++ .../name-attribute.window.js | 18 + .../the-a-element/a.rel-setter-01.html | 4 +- .../navigator_user_agent.tentative.html | 8 + .../navigator_user_agent.tentative.https.html | 21 + .../import-maps/@std/__dir__.headers | 1 + .../web-platform-tests/import-maps/@std/blank | 1 + .../web-platform-tests/import-maps/@std/none | 1 + .../web-platform-tests/import-maps/README.md | 9 + .../dynamic-import/success.tentative.html | 31 + .../script-tag/success.tentative.html | 25 + .../worker-request/success.tentative.html | 25 + .../import-maps/bare.sub.tentative.html | 70 ++ .../import-maps/bare/__dir__.headers | 1 + .../web-platform-tests/import-maps/bare/bare | 1 + .../web-platform-tests/import-maps/bare/blank | 1 + .../import-maps/bare/cross-origin-bare | 1 + .../web-platform-tests/import-maps/bare/none | 1 + .../import-maps/bare/std-blank | 1 + .../import-maps/bare/std-none | 1 + .../import-maps/bare/to-bare | 1 + .../import-maps/bare/to-data | 1 + .../import-maps/builtin-empty.tentative.html | 43 + .../builtin-import-scheme.tentative.html | 27 + .../import-maps/builtin.tentative.html | 30 + .../import-maps/data.sub.tentative.html | 72 ++ .../fallback-disallowed.sub.tentative.html | 79 ++ .../import-maps/fallback.sub.tentative.html | 84 ++ .../import-maps/http.sub.tentative.html | 72 ++ .../import-maps/module-map-key.tentative.html | 25 + .../import-maps/resolving.tentative.html | 81 ++ .../import-maps/resources/empty.js | 0 .../import-maps/resources/log.js | 1 + .../import-maps/resources/log.js.headers | 1 + .../import-maps/resources/resolving.js | 206 +++++ .../import-maps/resources/test-helper.js | 205 +++++ .../import-maps/static-import.js | 1 + .../web-platform-tests/interfaces/webxr.idl | 21 +- .../intersection-observer-test-utils.js | 26 +- .../resources/v2-subframe.html | 32 + .../v2/animated-occlusion.html | 72 ++ .../intersection-observer/v2/blur-filter.html | 64 ++ .../intersection-observer/v2/box-shadow.html | 66 ++ .../v2/cross-origin-effects.sub.html | 64 ++ .../v2/cross-origin-occlusion.sub.html | 68 ++ .../intersection-observer/v2/delay-test.html | 75 ++ .../v2/iframe-target.html | 44 ++ .../v2/simple-effects.html | 71 ++ .../simple-occlusion-svg-foreign-object.html | 70 ++ .../v2/simple-occlusion.html | 66 ++ .../intersection-observer/v2/text-shadow.html | 69 ++ .../layout-stability/buffer-layout-jank.html | 39 + .../layout-stability/observe-layoutjank.html | 34 + .../layout-stability/resources/slow-image.py | 6 + .../supported-layout-type.html | 17 + tests/wpt/web-platform-tests/lint.whitelist | 1 + .../empty-data-manual.https.html | 11 +- ...t-request-canmakepayment-method.https.html | 2 +- .../payment-request/META.yml | 1 + ...ent-request-abort-method-manual.https.html | 95 --- .../payment-request-abort-method.https.html | 40 + ...st-canmakepayment-method-manual.https.html | 105 --- ...t-request-canmakepayment-method.https.html | 35 + ...nrolledinstrument-method-manual.https.html | 51 -- ...st-hasenrolledinstrument-method.https.html | 41 +- .../rejects_if_not_active.https.html | 91 +-- .../rejects_if_not_active_manual.https.html | 164 ++++ .../disable-picture-in-picture.html | 4 +- .../screen-orientation/lock-basic.html | 14 + .../screen-orientation/onchange-event.html | 8 + ...message-to-client-message-queue.https.html | 15 +- .../resources/generate-test-sxgs.sh | 3 + .../sxg/sxg-merkle-integrity-error.sxg | Bin 0 -> 999 bytes .../sxg-merkle-integrity-error.tentative.html | 24 + ...etch-merkle-integrity-error.tentative.html | 26 + .../web-platform-tests/tools/wpt/browser.py | 4 +- .../wptrunner/executors/executormarionette.py | 25 +- .../wptrunner/wptrunner/executors/protocol.py | 11 +- .../tools/wptrunner/wptrunner/testrunner.py | 8 +- 129 files changed, 4156 insertions(+), 590 deletions(-) create mode 100644 tests/wpt/metadata/custom-elements/reactions/HTMLBaseElement.html.ini delete mode 100644 tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini delete mode 100644 tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini create mode 100644 tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html.ini create mode 100644 tests/wpt/metadata/html/browsers/the-window-object/name-attribute.window.js.ini delete mode 100644 tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini create mode 100644 tests/wpt/web-platform-tests/animation-worklet/animator-animate.https.html create mode 100644 tests/wpt/web-platform-tests/animation-worklet/animator-with-options.https.html create mode 100644 tests/wpt/web-platform-tests/css/css-position/position-absolute-dynamic-containing-block.html create mode 100644 tests/wpt/web-platform-tests/css/css-values/rgba-011.html create mode 100644 tests/wpt/web-platform-tests/custom-elements/reactions/HTMLBaseElement.html create mode 100644 tests/wpt/web-platform-tests/element-timing/observe-svg-image.html create mode 100644 tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html create mode 100644 tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.html create mode 100644 tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.sub.js create mode 100644 tests/wpt/web-platform-tests/html/browsers/the-window-object/name-attribute.window.js create mode 100644 tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.html create mode 100644 tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html create mode 100644 tests/wpt/web-platform-tests/import-maps/@std/__dir__.headers create mode 100644 tests/wpt/web-platform-tests/import-maps/@std/blank create mode 100644 tests/wpt/web-platform-tests/import-maps/@std/none create mode 100644 tests/wpt/web-platform-tests/import-maps/README.md create mode 100644 tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/dynamic-import/success.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/script-tag/success.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/worker-request/success.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/bare.sub.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/bare/__dir__.headers create mode 100644 tests/wpt/web-platform-tests/import-maps/bare/bare create mode 100644 tests/wpt/web-platform-tests/import-maps/bare/blank create mode 100644 tests/wpt/web-platform-tests/import-maps/bare/cross-origin-bare create mode 100644 tests/wpt/web-platform-tests/import-maps/bare/none create mode 100644 tests/wpt/web-platform-tests/import-maps/bare/std-blank create mode 100644 tests/wpt/web-platform-tests/import-maps/bare/std-none create mode 100644 tests/wpt/web-platform-tests/import-maps/bare/to-bare create mode 100644 tests/wpt/web-platform-tests/import-maps/bare/to-data create mode 100644 tests/wpt/web-platform-tests/import-maps/builtin-empty.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/builtin-import-scheme.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/builtin.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/data.sub.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/fallback-disallowed.sub.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/fallback.sub.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/http.sub.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/module-map-key.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/resolving.tentative.html create mode 100644 tests/wpt/web-platform-tests/import-maps/resources/empty.js create mode 100644 tests/wpt/web-platform-tests/import-maps/resources/log.js create mode 100644 tests/wpt/web-platform-tests/import-maps/resources/log.js.headers create mode 100644 tests/wpt/web-platform-tests/import-maps/resources/resolving.js create mode 100644 tests/wpt/web-platform-tests/import-maps/resources/test-helper.js create mode 100644 tests/wpt/web-platform-tests/import-maps/static-import.js create mode 100644 tests/wpt/web-platform-tests/intersection-observer/resources/v2-subframe.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/animated-occlusion.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/blur-filter.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/box-shadow.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/cross-origin-effects.sub.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/cross-origin-occlusion.sub.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/delay-test.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/iframe-target.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/simple-effects.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/simple-occlusion-svg-foreign-object.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/simple-occlusion.html create mode 100644 tests/wpt/web-platform-tests/intersection-observer/v2/text-shadow.html create mode 100644 tests/wpt/web-platform-tests/layout-stability/buffer-layout-jank.html create mode 100644 tests/wpt/web-platform-tests/layout-stability/observe-layoutjank.html create mode 100644 tests/wpt/web-platform-tests/layout-stability/resources/slow-image.py create mode 100644 tests/wpt/web-platform-tests/layout-stability/supported-layout-type.html delete mode 100644 tests/wpt/web-platform-tests/payment-request/payment-request-abort-method-manual.https.html delete mode 100644 tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-manual.https.html create mode 100644 tests/wpt/web-platform-tests/payment-request/rejects_if_not_active_manual.https.html create mode 100644 tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-merkle-integrity-error.sxg create mode 100644 tests/wpt/web-platform-tests/signed-exchange/sxg-merkle-integrity-error.tentative.html create mode 100644 tests/wpt/web-platform-tests/signed-exchange/sxg-prefetch-merkle-integrity-error.tentative.html diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 679f3f4d974..74dbb217fab 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -13537,18 +13537,6 @@ {} ] ], - "payment-request/payment-request-abort-method-manual.https.html": [ - [ - "/payment-request/payment-request-abort-method-manual.https.html", - {} - ] - ], - "payment-request/payment-request-canmakepayment-method-manual.https.html": [ - [ - "/payment-request/payment-request-canmakepayment-method-manual.https.html", - {} - ] - ], "payment-request/payment-request-hasenrolledinstrument-method-manual.https.html": [ [ "/payment-request/payment-request-hasenrolledinstrument-method-manual.https.html", @@ -292208,6 +292196,16 @@ {} ] ], + "html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.html": [ + [ + {} + ] + ], + "html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.sub.js": [ + [ + {} + ] + ], "html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_setter_iframe.html": [ [ {} @@ -301813,6 +301811,101 @@ {} ] ], + "import-maps/@std/__dir__.headers": [ + [ + {} + ] + ], + "import-maps/@std/blank": [ + [ + {} + ] + ], + "import-maps/@std/none": [ + [ + {} + ] + ], + "import-maps/README.md": [ + [ + {} + ] + ], + "import-maps/bare/__dir__.headers": [ + [ + {} + ] + ], + "import-maps/bare/bare": [ + [ + {} + ] + ], + "import-maps/bare/blank": [ + [ + {} + ] + ], + "import-maps/bare/cross-origin-bare": [ + [ + {} + ] + ], + "import-maps/bare/none": [ + [ + {} + ] + ], + "import-maps/bare/std-blank": [ + [ + {} + ] + ], + "import-maps/bare/std-none": [ + [ + {} + ] + ], + "import-maps/bare/to-bare": [ + [ + {} + ] + ], + "import-maps/bare/to-data": [ + [ + {} + ] + ], + "import-maps/resources/empty.js": [ + [ + {} + ] + ], + "import-maps/resources/log.js": [ + [ + {} + ] + ], + "import-maps/resources/log.js.headers": [ + [ + {} + ] + ], + "import-maps/resources/resolving.js": [ + [ + {} + ] + ], + "import-maps/resources/test-helper.js": [ + [ + {} + ] + ], + "import-maps/static-import.js": [ + [ + {} + ] + ], "infrastructure/META.yml": [ [ {} @@ -302798,6 +302891,11 @@ {} ] ], + "intersection-observer/resources/v2-subframe.html": [ + [ + {} + ] + ], "js/META.yml": [ [ {} @@ -302858,6 +302956,11 @@ {} ] ], + "layout-stability/resources/slow-image.py": [ + [ + {} + ] + ], "lifecycle/META.yml": [ [ {} @@ -313818,6 +313921,11 @@ {} ] ], + "signed-exchange/resources/sxg/sxg-merkle-integrity-error.sxg": [ + [ + {} + ] + ], "signed-exchange/resources/sxg/sxg-noncacheable.sxg": [ [ {} @@ -336657,6 +336765,18 @@ {} ] ], + "animation-worklet/animator-animate.https.html": [ + [ + "/animation-worklet/animator-animate.https.html", + {} + ] + ], + "animation-worklet/animator-with-options.https.html": [ + [ + "/animation-worklet/animator-with-options.https.html", + {} + ] + ], "animation-worklet/current-time.https.html": [ [ "/animation-worklet/current-time.https.html", @@ -347309,6 +347429,12 @@ {} ] ], + "css/css-position/position-absolute-dynamic-containing-block.html": [ + [ + "/css/css-position/position-absolute-dynamic-containing-block.html", + {} + ] + ], "css/css-position/position-absolute-in-inline-crash.html": [ [ "/css/css-position/position-absolute-in-inline-crash.html", @@ -353701,6 +353827,12 @@ {} ] ], + "css/css-values/rgba-011.html": [ + [ + "/css/css-values/rgba-011.html", + {} + ] + ], "css/css-values/unset-value-storage.html": [ [ "/css/css-values/unset-value-storage.html", @@ -356671,6 +356803,12 @@ {} ] ], + "custom-elements/reactions/HTMLBaseElement.html": [ + [ + "/custom-elements/reactions/HTMLBaseElement.html", + {} + ] + ], "custom-elements/reactions/HTMLButtonElement.html": [ [ "/custom-elements/reactions/HTMLButtonElement.html", @@ -359727,6 +359865,12 @@ {} ] ], + "element-timing/observe-svg-image.html": [ + [ + "/element-timing/observe-svg-image.html", + {} + ] + ], "element-timing/progressively-loaded-image.html": [ [ "/element-timing/progressively-loaded-image.html", @@ -372561,6 +372705,12 @@ {} ] ], + "html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html": [ + [ + "/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html", + {} + ] + ], "html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_feature_policy.tentative.sub.html": [ [ "/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_feature_policy.tentative.sub.html", @@ -372849,6 +372999,12 @@ {} ] ], + "html/browsers/the-window-object/name-attribute.window.js": [ + [ + "/html/browsers/the-window-object/name-attribute.window.html", + {} + ] + ], "html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html": [ [ "/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html", @@ -384675,6 +384831,18 @@ {} ] ], + "html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.html": [ + [ + "/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.html", + {} + ] + ], + "html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html": [ + [ + "/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html", + {} + ] + ], "html/webappapis/system-state-and-capabilities/the-navigator-object/navigatorcookies-cookieenabled-true.html": [ [ "/html/webappapis/system-state-and-capabilities/the-navigator-object/navigatorcookies-cookieenabled-true.html", @@ -384795,6 +384963,84 @@ {} ] ], + "import-maps/acquire-import-maps-flag/dynamic-import/success.tentative.html": [ + [ + "/import-maps/acquire-import-maps-flag/dynamic-import/success.tentative.html", + {} + ] + ], + "import-maps/acquire-import-maps-flag/script-tag/success.tentative.html": [ + [ + "/import-maps/acquire-import-maps-flag/script-tag/success.tentative.html", + {} + ] + ], + "import-maps/acquire-import-maps-flag/worker-request/success.tentative.html": [ + [ + "/import-maps/acquire-import-maps-flag/worker-request/success.tentative.html", + {} + ] + ], + "import-maps/bare.sub.tentative.html": [ + [ + "/import-maps/bare.sub.tentative.html", + {} + ] + ], + "import-maps/builtin-empty.tentative.html": [ + [ + "/import-maps/builtin-empty.tentative.html", + {} + ] + ], + "import-maps/builtin-import-scheme.tentative.html": [ + [ + "/import-maps/builtin-import-scheme.tentative.html", + {} + ] + ], + "import-maps/builtin.tentative.html": [ + [ + "/import-maps/builtin.tentative.html", + {} + ] + ], + "import-maps/data.sub.tentative.html": [ + [ + "/import-maps/data.sub.tentative.html", + {} + ] + ], + "import-maps/fallback-disallowed.sub.tentative.html": [ + [ + "/import-maps/fallback-disallowed.sub.tentative.html", + {} + ] + ], + "import-maps/fallback.sub.tentative.html": [ + [ + "/import-maps/fallback.sub.tentative.html", + {} + ] + ], + "import-maps/http.sub.tentative.html": [ + [ + "/import-maps/http.sub.tentative.html", + {} + ] + ], + "import-maps/module-map-key.tentative.html": [ + [ + "/import-maps/module-map-key.tentative.html", + {} + ] + ], + "import-maps/resolving.tentative.html": [ + [ + "/import-maps/resolving.tentative.html", + {} + ] + ], "inert/inert-does-not-match-disabled-selector.tentative.html": [ [ "/inert/inert-does-not-match-disabled-selector.tentative.html", @@ -385235,6 +385481,72 @@ {} ] ], + "intersection-observer/v2/animated-occlusion.html": [ + [ + "/intersection-observer/v2/animated-occlusion.html", + {} + ] + ], + "intersection-observer/v2/blur-filter.html": [ + [ + "/intersection-observer/v2/blur-filter.html", + {} + ] + ], + "intersection-observer/v2/box-shadow.html": [ + [ + "/intersection-observer/v2/box-shadow.html", + {} + ] + ], + "intersection-observer/v2/cross-origin-effects.sub.html": [ + [ + "/intersection-observer/v2/cross-origin-effects.sub.html", + {} + ] + ], + "intersection-observer/v2/cross-origin-occlusion.sub.html": [ + [ + "/intersection-observer/v2/cross-origin-occlusion.sub.html", + {} + ] + ], + "intersection-observer/v2/delay-test.html": [ + [ + "/intersection-observer/v2/delay-test.html", + {} + ] + ], + "intersection-observer/v2/iframe-target.html": [ + [ + "/intersection-observer/v2/iframe-target.html", + {} + ] + ], + "intersection-observer/v2/simple-effects.html": [ + [ + "/intersection-observer/v2/simple-effects.html", + {} + ] + ], + "intersection-observer/v2/simple-occlusion-svg-foreign-object.html": [ + [ + "/intersection-observer/v2/simple-occlusion-svg-foreign-object.html", + {} + ] + ], + "intersection-observer/v2/simple-occlusion.html": [ + [ + "/intersection-observer/v2/simple-occlusion.html", + {} + ] + ], + "intersection-observer/v2/text-shadow.html": [ + [ + "/intersection-observer/v2/text-shadow.html", + {} + ] + ], "intersection-observer/zero-area-element-hidden.html": [ [ "/intersection-observer/zero-area-element-hidden.html", @@ -385481,6 +385793,24 @@ {} ] ], + "layout-stability/buffer-layout-jank.html": [ + [ + "/layout-stability/buffer-layout-jank.html", + {} + ] + ], + "layout-stability/observe-layoutjank.html": [ + [ + "/layout-stability/observe-layoutjank.html", + {} + ] + ], + "layout-stability/supported-layout-type.html": [ + [ + "/layout-stability/supported-layout-type.html", + {} + ] + ], "lifecycle/child-display-none.tentative.html": [ [ "/lifecycle/child-display-none.tentative.html", @@ -399937,6 +400267,12 @@ } ] ], + "payment-request/rejects_if_not_active_manual.https.html": [ + [ + "/payment-request/rejects_if_not_active_manual.https.html", + {} + ] + ], "performance-timeline/case-sensitivity.any.js": [ [ "/performance-timeline/case-sensitivity.any.html", @@ -411162,7 +411498,9 @@ "screen-orientation/lock-basic.html": [ [ "/screen-orientation/lock-basic.html", - {} + { + "testdriver": true + } ] ], "screen-orientation/lock-sandboxed-iframe.html": [ @@ -413803,6 +414141,12 @@ {} ] ], + "signed-exchange/sxg-merkle-integrity-error.tentative.html": [ + [ + "/signed-exchange/sxg-merkle-integrity-error.tentative.html", + {} + ] + ], "signed-exchange/sxg-non-secure-origin.tentative.html": [ [ "/signed-exchange/sxg-non-secure-origin.tentative.html", @@ -413815,6 +414159,12 @@ {} ] ], + "signed-exchange/sxg-prefetch-merkle-integrity-error.tentative.html": [ + [ + "/signed-exchange/sxg-prefetch-merkle-integrity-error.tentative.html", + {} + ] + ], "signed-exchange/sxg-prefetch-resource-timing.tentative.html": [ [ "/signed-exchange/sxg-prefetch-resource-timing.tentative.html", @@ -449245,7 +449595,7 @@ }, "paths": { ".azure-pipelines.yml": [ - "0f3747500486695937d65c1ea89b6ebb49cb280b", + "7224ff079f6b31dea3eccf10c03d2e1aeec01ed8", "support" ], ".codecov.yml": [ @@ -457172,6 +457522,14 @@ "b02186309dc2cf8df05559ef9fb9bcacdf535112", "testharness" ], + "animation-worklet/animator-animate.https.html": [ + "6efc3caf89d7fc0a933ed3366bedcaa41f19b5c9", + "testharness" + ], + "animation-worklet/animator-with-options.https.html": [ + "1ff2544d6a9a4ee2cb251ef1d27b2278d979344f", + "testharness" + ], "animation-worklet/common.js": [ "983c22403c44256f11ca470f2f74410ac3b84e08", "support" @@ -460689,7 +461047,7 @@ "support" ], "common/sleep.py": [ - "28065eff5fc907dbfb69f4c69020d049c7daa35d", + "afc0a7c26e1c2aa63a54bcf39d74cf9c7adf6d75", "support" ], "common/slow.py": [ @@ -480573,7 +480931,7 @@ "support" ], "content-security-policy/securitypolicyviolation/targeting.html": [ - "28ca32e3dcc345fff5e187eee24e124cdbb250d4", + "b21273ca555cb24aab369a752192ab87355339d2", "testharness" ], "content-security-policy/securitypolicyviolation/upgrade-insecure-requests-reporting.https.html": [ @@ -570800,6 +571158,10 @@ "592e5d22e70f1b0c5e3e4b9222cbd1ccef99bdef", "testharness" ], + "css/css-position/position-absolute-dynamic-containing-block.html": [ + "3968f685849663574ca213fcb90dc5fb3eaffaa3", + "testharness" + ], "css/css-position/position-absolute-in-inline-crash.html": [ "5d36710b6fe694b256d9841b3e7a0fff4535c85b", "testharness" @@ -592524,6 +592886,10 @@ "e56c6ec8451370e86fb16f76c50acd627bd5be78", "support" ], + "css/css-values/rgba-011.html": [ + "84c317033063b72716e36cfd15466780e010ba11", + "testharness" + ], "css/css-values/support/1x1-green.png": [ "b98ca0ba0a03c580ac339e4a3653539cfa8edc71", "support" @@ -613732,8 +614098,12 @@ "c6eeb1dce90b2a3ffe099cba80e64d71f2741f81", "testharness" ], + "custom-elements/reactions/HTMLBaseElement.html": [ + "82ab9228043053d26496c6ec106b812da5a66267", + "testharness" + ], "custom-elements/reactions/HTMLButtonElement.html": [ - "90390108b42155b2e5fcd5984d3a43a3ad1f9f6b", + "9b134ce2c6841a844b85e9fd27bc52c24fa29c91", "testharness" ], "custom-elements/reactions/HTMLCanvasElement.html": [ @@ -613837,7 +614207,7 @@ "testharness" ], "custom-elements/reactions/resources/reactions.js": [ - "c7b1851c7bf2abba861f02e7aaae5fb810f8d4a9", + "84d039bad9fb3674e124f7f852e77b2fcdf21a28", "support" ], "custom-elements/reactions/with-exceptions.html": [ @@ -615801,7 +616171,7 @@ "support" ], "domparsing/XMLSerializer-serializeToString.html": [ - "ab373481204e64070b8e3fd5a0f52f06211153b4", + "5f7e2bb0d4b459bd20acb43aca19b848920ac8bb", "testharness" ], "domparsing/createContextualFragment.html": [ @@ -616476,6 +616846,10 @@ "e56092c65bf4ab422875b54e25a5315d9f6da8c9", "testharness" ], + "element-timing/observe-svg-image.html": [ + "327ab69668b20addd31df5e9ae2ce655f021d81b", + "testharness" + ], "element-timing/progressively-loaded-image.html": [ "6fdff39d53848546e113b72ca17e38fd9b0dabc7", "testharness" @@ -621069,55 +621443,55 @@ "support" ], "fetch/sec-metadata/embed.tentative.https.sub.html": [ - "1c69c021accb90db3bc4ce599ce1988f5329c8ce", + "6f0c439595047049f8c5e71948bbcce6f8c22bd7", "testharness" ], "fetch/sec-metadata/fetch.tentative.https.sub.html": [ - "f6460b4efca7cadf29ad461b80dd45e79a4e7fb6", + "dc4b977ac6ec6544215bcf2a41007a6adde2d36e", "testharness" ], "fetch/sec-metadata/font.tentative.https.sub.html": [ - "d2bcf6928848f7a353035a29dd6ee38bc365d45b", + "9792f2dce9427c3e42f595adb4c67113a6bb29d7", "testharness" ], "fetch/sec-metadata/iframe.tentative.https.sub.html": [ - "6ee14300296b6f1e9f7f5083637eb06e620f30e8", + "73bd90745d1ab9dd52b88cc49871544375bb7703", "testharness" ], "fetch/sec-metadata/iframe.tentative.sub.html": [ - "ce31a8182510f246c22543b74ea40bec50d7b016", + "eab2d3f5886ed178781e092b90bfd52eaa194bc5", "testharness" ], "fetch/sec-metadata/img.tentative.https.sub.html": [ - "c5c389503ccafd2d2cf21a3634b6995bc22a2e91", + "252b220011c553b2b941dbc9fdce427990bb1131", "testharness" ], "fetch/sec-metadata/object.tentative.https.sub.html": [ - "0b9839470d1d8c49a5c58f4b832f825f77a6460b", + "2a0e8de85568c1ae6008af793f4ca9a6fad77a3d", "testharness" ], "fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html": [ - "56d88d9156c7ad201b7874fc7e196e5a9b2291f7", + "f88cf140d4e32ee21d3d0d6475905be55fe8adad", "testharness" ], "fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html": [ - "f6d18f568f1a8c96c6a360a7121241d506a29212", + "688c697ac931eefb445e75240bc4cb978c088e47", "testharness" ], "fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html": [ - "4756a79ab258ffc4402e02d80e745760c9caf9cb", + "bc79f7810a1be2cd12b40463ec6cac9a9e80d723", "testharness" ], "fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html": [ - "8558d6890e6fc8afa9e948906615cfc3ea79818c", + "a5323921c26bc9882c0c17e75a2a562fe7d6972f", "testharness" ], "fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html": [ - "8e05b255b88df81ae7db95428e0a5d8dd236000a", + "92749ae0b80c44938e6ca88e7c9bbbcd1cef48ca", "testharness" ], "fetch/sec-metadata/report.tentative.https.sub.html": [ - "1cfa8641ba8785d9168d85b73eaa12b95b10e314", + "f1d8e06e50e2decdcd7f5051c50a623e5642ffa4", "testharness" ], "fetch/sec-metadata/report.tentative.https.sub.html.sub.headers": [ @@ -621137,7 +621511,7 @@ "support" ], "fetch/sec-metadata/resources/helper.js": [ - "1a9ec154e02ba4c6a46ee3d4fde7a866ddd330fa", + "4bee68996e86e7fc9736f97cbdf3a002b73ad817", "support" ], "fetch/sec-metadata/resources/post-to-owner.py": [ @@ -621157,39 +621531,39 @@ "support" ], "fetch/sec-metadata/script.tentative.https.sub.html": [ - "d76378f1dd8df62fa5404dc1fda1b47fb6a8d409", + "a35e753c7898cc89427fa8dc22ce5fd55325ea8e", "testharness" ], "fetch/sec-metadata/script.tentative.sub.html": [ - "482f4b98f9e8bf4b12e5f960cc39ea4e55ee6c77", + "3218a40abdedfbb39b0dcb7a70d1c30d59ae74a2", "testharness" ], "fetch/sec-metadata/serviceworker.tentative.https.sub.html": [ - "d0b86d2d9a8ccf67119983890a29c52a5c875c62", + "5b7ee772b6175d7c2af3b1932a6194d69785ce65", "testharness" ], "fetch/sec-metadata/sharedworker.tentative.https.sub.html": [ - "66f7d5b9d8dcde9be0b84089701e8d7ca49967e1", + "cfeadd8d8e206bc7a108b25b177ec0b3666d8e58", "testharness" ], "fetch/sec-metadata/style.tentative.https.sub.html": [ - "9697db75c82fa213459aff6c8d4bc6605f6f4be0", + "4ae12662a29380b5c241988b7b97d34031d7bec7", "testharness" ], "fetch/sec-metadata/track.tentative.https.sub.html": [ - "b9dfabf9739775aa77952f5d48fca57d3224b581", + "89933f22c393711dd599cbdc4c3a18251005b7f6", "testharness" ], "fetch/sec-metadata/window-open.tentative.https.sub.html": [ - "236268e177405f4cd428ed6e1121f84343abcf7e", + "2957dad40a437aae77914f3b6cc7120894da0b26", "testharness" ], "fetch/sec-metadata/worker.tentative.https.sub.html": [ - "fcffe91dbf70df0a4d057b59c7c6f7dcafdad235", + "89be6f0b5a1b2cdb6ab2489a2cf70a77baf44667", "testharness" ], "fetch/sec-metadata/xslt.tentative.https.sub.html": [ - "32349c9598e868ef35873805a5d451a5b987ede9", + "eea2329900e000c43cb0b347c011d6d4adb8bd46", "testharness" ], "fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html": [ @@ -624476,6 +624850,10 @@ "d3af35c6d7ac50de4fd8942066875d52229634f2", "testharness" ], + "html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html": [ + "46280854e8f1b078e8653cfc875cfa559271407c", + "testharness" + ], "html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_feature_policy.tentative.sub.html": [ "e50e5e1657f11cc8484d864080e2c8e2b2a1922a", "testharness" @@ -624496,6 +624874,14 @@ "82e8023d0ba61851af5747ee2ccba154193d1875", "support" ], + "html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.html": [ + "61f54af3593167a0b09145f5d9755275cce98622", + "support" + ], + "html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.sub.js": [ + "b6631ea4f15035b61b95f2b6d6d2c2a7a16bf83b", + "support" + ], "html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_setter_iframe.html": [ "d3d5260af3f143edd702400879cc3d5db4aea40d", "support" @@ -624792,6 +625178,10 @@ "653f12b4646c06ffa65f84cd2dfe72566f9662ff", "testharness" ], + "html/browsers/the-window-object/name-attribute.window.js": [ + "f266dd7acb96cc473129c066e59f027c2eb067f0", + "testharness" + ], "html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html": [ "d5b1789d59455603d1f5929a7a7f05d8a7218d52", "testharness" @@ -639153,7 +639543,7 @@ "testharness" ], "html/semantics/text-level-semantics/the-a-element/a.rel-setter-01.html": [ - "83c69de301422f20241042852ac033023faf5ee0", + "c319266887b7ee916e80bce1eadcc033a13411bd", "testharness" ], "html/semantics/text-level-semantics/the-a-element/a.text-getter-01.html": [ @@ -641240,6 +641630,14 @@ "07bccb788052e7ce2cb722558e416b5c017ed9f0", "testharness" ], + "html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.html": [ + "dd4c531070c8a21328a14709fd0357c6fba15001", + "testharness" + ], + "html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html": [ + "5f0dba6bcf72cb94f7e53ee52bfaedf7ac4819bf", + "testharness" + ], "html/webappapis/system-state-and-capabilities/the-navigator-object/navigatorcookies-cookieenabled-false-manual.html": [ "adcea90a363af504c33738da53a979b9bd9479e7", "manual" @@ -641560,6 +641958,134 @@ "2bb82c9834790bfeb1a65cf2ef202dc63d2ebac4", "support" ], + "import-maps/@std/__dir__.headers": [ + "e7ec0d6699d07e5b13d0cb6f24c3639258fccdaa", + "support" + ], + "import-maps/@std/blank": [ + "38e1891bf7d5db9ad7063dc1f22bb17f8b1d4446", + "support" + ], + "import-maps/@std/none": [ + "69e165cce5e223684c9d0f0f7848bc6fc02b14cd", + "support" + ], + "import-maps/README.md": [ + "3803e350c844b4af77b871831817ac0d90aca97f", + "support" + ], + "import-maps/acquire-import-maps-flag/dynamic-import/success.tentative.html": [ + "512cd7fa6974e802dab6bff4c190774a76d7cbf1", + "testharness" + ], + "import-maps/acquire-import-maps-flag/script-tag/success.tentative.html": [ + "7f319b04758f8dbfd688f10b6a86be16d6bb720f", + "testharness" + ], + "import-maps/acquire-import-maps-flag/worker-request/success.tentative.html": [ + "ceef4100aad01f5cd5959086aacf83665f60c805", + "testharness" + ], + "import-maps/bare.sub.tentative.html": [ + "5bfb6b52072338568397a8dfac3a98a90c70b34b", + "testharness" + ], + "import-maps/bare/__dir__.headers": [ + "e7ec0d6699d07e5b13d0cb6f24c3639258fccdaa", + "support" + ], + "import-maps/bare/bare": [ + "1011e866b81dca7bf423fcb48266463c77591465", + "support" + ], + "import-maps/bare/blank": [ + "841d433acf72f828c34faca23f26e9afd10fbab7", + "support" + ], + "import-maps/bare/cross-origin-bare": [ + "64851cc8e2455a4cd150b10edf051425bb6dc5bf", + "support" + ], + "import-maps/bare/none": [ + "2aec0d72826f203074dea5a5268b9f937bdb7183", + "support" + ], + "import-maps/bare/std-blank": [ + "5ded98fd382a52a11d52af57cc7e79f56b083843", + "support" + ], + "import-maps/bare/std-none": [ + "1437d9ff1e0c0c60672a1f656a2ab91aa01601db", + "support" + ], + "import-maps/bare/to-bare": [ + "bdb3791bc9471533434067b826dc59fef07e1c0c", + "support" + ], + "import-maps/bare/to-data": [ + "6f25c5af12412dc6dbb374d4bee0fdd1472f475e", + "support" + ], + "import-maps/builtin-empty.tentative.html": [ + "aba28d18e043d53271888a382a7f7b4ca89a054a", + "testharness" + ], + "import-maps/builtin-import-scheme.tentative.html": [ + "6a27ef5aee2371b2114bc75b2b194c22a5fa85c2", + "testharness" + ], + "import-maps/builtin.tentative.html": [ + "e85289e4d884d49bb4520154cecdd2826a07b333", + "testharness" + ], + "import-maps/data.sub.tentative.html": [ + "1c7172bf7c6f21aeb22948f9d3eb05d9b3c11b86", + "testharness" + ], + "import-maps/fallback-disallowed.sub.tentative.html": [ + "3f89e8f12dfe04b214b36ef89a89eeccdbea935b", + "testharness" + ], + "import-maps/fallback.sub.tentative.html": [ + "4cf3e18182a11a75d682106d88c532d069b6e77d", + "testharness" + ], + "import-maps/http.sub.tentative.html": [ + "bd24f3535507334a69bb98b711106466c8a340a3", + "testharness" + ], + "import-maps/module-map-key.tentative.html": [ + "13bd122c673144f001048eacbaf4fc7bb78c9b58", + "testharness" + ], + "import-maps/resolving.tentative.html": [ + "f2b09a7ae02422c8f6fd3f8dad1f9b8d52a43831", + "testharness" + ], + "import-maps/resources/empty.js": [ + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "support" + ], + "import-maps/resources/log.js": [ + "a024a29bf2482c78cf7eb96544d38217f1d81f81", + "support" + ], + "import-maps/resources/log.js.headers": [ + "cb762eff806849df46dc758ef7b98b63f27f54c9", + "support" + ], + "import-maps/resources/resolving.js": [ + "ec2645e599119ab64949c016076164b40277006c", + "support" + ], + "import-maps/resources/test-helper.js": [ + "2447bfb94353e1ec193857cbcda79f46556216a1", + "support" + ], + "import-maps/static-import.js": [ + "1686fc123a798bddbf626f4d112516317739da8f", + "support" + ], "inert/inert-does-not-match-disabled-selector.tentative.html": [ "74b8ac3f7dd5c3447bf47fd732fade9220497c93", "testharness" @@ -642569,7 +643095,7 @@ "support" ], "interfaces/webxr.idl": [ - "2bc100e100d89da510c56dc51d13d45335f67740", + "d175729ca20fd66b0d1d8a32ef32e0957c58548f", "support" ], "interfaces/worklets.idl": [ @@ -642673,7 +643199,7 @@ "support" ], "intersection-observer/resources/intersection-observer-test-utils.js": [ - "8683c8b570c8bffbe413315c2b36ec1e47a6d650", + "44f794b0883b1bade51b1b7b8f5507ac6dfcb123", "support" ], "intersection-observer/resources/observer-in-iframe-subframe.html": [ @@ -642684,6 +643210,10 @@ "143e4f6e23a7688949420a07ccd20e3c211a6f6b", "support" ], + "intersection-observer/resources/v2-subframe.html": [ + "295bbf047e6523313ce74f2e383ed769c0d5c81b", + "support" + ], "intersection-observer/root-margin.html": [ "c1fffec02becc50ccaad1f8fdaa9ffd16afef11c", "testharness" @@ -642720,6 +643250,50 @@ "24ae01cedc2ef95f6dd04a722d47aefa30e8b777", "testharness" ], + "intersection-observer/v2/animated-occlusion.html": [ + "c1eafb7fa1427a507c203feac5e0685a39bcb5e4", + "testharness" + ], + "intersection-observer/v2/blur-filter.html": [ + "2f55066e3630f73f53bbab050cfab236c7cd60d7", + "testharness" + ], + "intersection-observer/v2/box-shadow.html": [ + "bcc6980aec3641db0573c8b081632b53880a423e", + "testharness" + ], + "intersection-observer/v2/cross-origin-effects.sub.html": [ + "edb8f023c09ff51ef6693dd6b994c364895241ca", + "testharness" + ], + "intersection-observer/v2/cross-origin-occlusion.sub.html": [ + "6f9fa57fb718ceb90870fd0812930eda79db7d1b", + "testharness" + ], + "intersection-observer/v2/delay-test.html": [ + "086301c44d4ef5f5dce2afb1d9ff6388f089fccf", + "testharness" + ], + "intersection-observer/v2/iframe-target.html": [ + "3e53ee5f5814e8ef69d8454011ceafabfe8d1f17", + "testharness" + ], + "intersection-observer/v2/simple-effects.html": [ + "2b7a83a9c9507a79e91cb2ef890604d9b2ca5e3e", + "testharness" + ], + "intersection-observer/v2/simple-occlusion-svg-foreign-object.html": [ + "fcdff67a48925a74a200e328eaf4bcd6deefb9ae", + "testharness" + ], + "intersection-observer/v2/simple-occlusion.html": [ + "ea1ee31ebe4519f9563987934c1a9db7fac77136", + "testharness" + ], + "intersection-observer/v2/text-shadow.html": [ + "c6445c514eecaf978e95d75f5d37a1387939c5e2", + "testharness" + ], "intersection-observer/zero-area-element-hidden.html": [ "e007040c8fe2e25bfca8fbe450b06a26934ad186", "testharness" @@ -642932,6 +643506,22 @@ "64756bf195fc3319d9dd21abad4c5d86fa266cfe", "testharness" ], + "layout-stability/buffer-layout-jank.html": [ + "f5818cfbc64e0dc70d503d79a278f20777151280", + "testharness" + ], + "layout-stability/observe-layoutjank.html": [ + "1a0533ac703e92abbd3d2116b9d3eedaff6278ce", + "testharness" + ], + "layout-stability/resources/slow-image.py": [ + "ee7988c551f6429eea2b929af083ad30cbd5c73d", + "support" + ], + "layout-stability/supported-layout-type.html": [ + "e3204b52f788729e6a9b1ee845ea36ff79a8b8cf", + "testharness" + ], "lifecycle/META.yml": [ "c1fcbca4c1f8366da1dd9eb91bc9427edeef1153", "support" @@ -642957,7 +643547,7 @@ "support" ], "lint.whitelist": [ - "64ff0296a46f3f8302dd71a9894144c6988e24b0", + "0d066ac741feb9732ca48f84c208e62fc141132c", "support" ], "loading/preloader-css-import-no-quote.tentative.html": [ @@ -654545,7 +655135,7 @@ "support" ], "payment-method-basic-card/empty-data-manual.https.html": [ - "2392553ebd3742daac77bf3a80259627a6e44c20", + "ba881ee2366c49aa15799767892c5ed847e41ac3", "manual" ], "payment-method-basic-card/historical.https.html": [ @@ -654557,7 +655147,7 @@ "testharness" ], "payment-method-basic-card/payment-request-canmakepayment-method.https.html": [ - "a89c63b1bbc8aa3a917207a129d56827be31b617", + "f1b0c28abb886745713378025af341507a3a7c2d", "testharness" ], "payment-method-id/META.yml": [ @@ -654573,7 +655163,7 @@ "testharness" ], "payment-request/META.yml": [ - "227ca551dc2f564bf8af8f8eae63526f4f86d8b8", + "558db3e088c1b07ad90eff717feccbb0591e67fb", "support" ], "payment-request/MerchantValidationEvent/complete-method.https.html": [ @@ -654736,24 +655326,16 @@ "650b76d61f72d82fce1644be95e1ee2b99a90d95", "testharness" ], - "payment-request/payment-request-abort-method-manual.https.html": [ - "a24bac864aad00afdfe830e04b40ef81a583b341", - "manual" - ], "payment-request/payment-request-abort-method.https.html": [ - "cf16401d0b0d3e97f3ab14c337880a4ec0d9ea7f", + "a8a013165ee2573571e606a70565b2014e44c5aa", "testharness" ], - "payment-request/payment-request-canmakepayment-method-manual.https.html": [ - "fea45500b18b35eadf144389e86d444d53366fce", - "manual" - ], "payment-request/payment-request-canmakepayment-method-protection.https.html": [ "e221034dd4ebd05c5bd701e05a81895b8457c3b7", "testharness" ], "payment-request/payment-request-canmakepayment-method.https.html": [ - "cc8349a42239ca1a459d59f016611f6e564f4690", + "5627f337488b83a326bcf39d28dd992b78873eaf", "testharness" ], "payment-request/payment-request-constructor-crash.https.html": [ @@ -654773,7 +655355,7 @@ "testharness" ], "payment-request/payment-request-hasenrolledinstrument-method-manual.https.html": [ - "a4e8028c07f50514b03a7f10b80e1b3ba80bc505", + "e6b164f7cc7b8f1c57b8fa9fd14cbc7f5ef81eea", "manual" ], "payment-request/payment-request-hasenrolledinstrument-method-protection.https.html": [ @@ -654781,7 +655363,7 @@ "testharness" ], "payment-request/payment-request-hasenrolledinstrument-method.https.html": [ - "c5139950d53ec310b3ed5cb835d4d252033f904f", + "c1f7b27a22b41fe64a7fb77e73336d3d0daec159", "testharness" ], "payment-request/payment-request-id-attribute.https.html": [ @@ -654881,7 +655463,11 @@ "manual" ], "payment-request/rejects_if_not_active.https.html": [ - "06c1f7383a045d7ffd386cb6aec57d6010843d31", + "3c7e85ba970f8c6f2d608f02dd2f60f911124da2", + "testharness" + ], + "payment-request/rejects_if_not_active_manual.https.html": [ + "f1d2fb83e0e0b17e0030bc991b0135bd21200aa0", "testharness" ], "payment-request/resources/page1.html": [ @@ -655029,7 +655615,7 @@ "support" ], "picture-in-picture/disable-picture-in-picture.html": [ - "31e0d12ad770fb9bcc8bbc2f7f86d690efe3c06d", + "5075c011632e549848dfbd3420d733d60e84dc8a", "testharness" ], "picture-in-picture/enter-picture-in-picture.html": [ @@ -667081,7 +667667,7 @@ "testharness" ], "screen-orientation/lock-basic.html": [ - "5b30459bf7fab739c34dd0723e60e9ab46c5a9ea", + "c42aba783e4c0a593a3c71c14ea4ea792953a5dc", "testharness" ], "screen-orientation/lock-sandboxed-iframe.html": [ @@ -667093,7 +667679,7 @@ "testharness" ], "screen-orientation/onchange-event.html": [ - "538fafc41ec317288b58b85cfa17c8ff3c705f08", + "401af096631a2cfdf44f3c920454eb1958925c3c", "testharness" ], "screen-orientation/orientation-reading.html": [ @@ -669137,7 +669723,7 @@ "testharness" ], "service-workers/service-worker/postmessage-to-client-message-queue.https.html": [ - "caa4f9445d3d8ad0ab92ba73713da17a33af185c", + "83e5f4540d1411e2a215ebe59d2037f369c48616", "testharness" ], "service-workers/service-worker/postmessage-to-client.https.html": [ @@ -671373,7 +671959,7 @@ "support" ], "signed-exchange/resources/generate-test-sxgs.sh": [ - "7c953940cb308b669a647a4a2d5c5bbc83c60200", + "bb95df83295e1b2f81a569e93fd5d9d0ce548574", "support" ], "signed-exchange/resources/inner-url.html": [ @@ -671440,6 +672026,10 @@ "1678b751bcba390d35687730bb24e13232e33eda", "support" ], + "signed-exchange/resources/sxg/sxg-merkle-integrity-error.sxg": [ + "0c6dce01da270bdacf5d280551d56d1519aff3a3", + "support" + ], "signed-exchange/resources/sxg/sxg-noncacheable.sxg": [ "88439982f6044b3ddbd1a1e0198bebb6409b0837", "support" @@ -671488,6 +672078,10 @@ "17ca0768d6f8e0e1a4bccf707d8e34c6dbfdfc8c", "testharness" ], + "signed-exchange/sxg-merkle-integrity-error.tentative.html": [ + "5f923d205421ca30e360ddf0de41bb64733de1d3", + "testharness" + ], "signed-exchange/sxg-non-secure-origin.tentative.html": [ "84938da76d09dbe4f045b763e49ba95a4936003f", "testharness" @@ -671496,6 +672090,10 @@ "1315360745789655acb926d7e8bafea9322c3a25", "testharness" ], + "signed-exchange/sxg-prefetch-merkle-integrity-error.tentative.html": [ + "2086c38545d7df43dbe913b78ef1030c476b3649", + "testharness" + ], "signed-exchange/sxg-prefetch-resource-timing.tentative.html": [ "5b60ab9e1a12e2b169c4972c422ddbe3ebc5f581", "testharness" @@ -680849,7 +681447,7 @@ "support" ], "tools/wpt/browser.py": [ - "5f711f47580fc54461c166771b28828693a63d5b", + "c4469800608ad73b4a00c3bbef558cf9d0f7e596", "support" ], "tools/wpt/commands.json": [ @@ -681241,7 +681839,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/executormarionette.py": [ - "1b4c0b93cbeb9d303f5e7df89ccc68f592c30c27", + "5791cdae957b54031186cca0ec1359f12e08b1ce", "support" ], "tools/wptrunner/wptrunner/executors/executoropera.py": [ @@ -681277,7 +681875,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/protocol.py": [ - "74a7cc4b7fc686318b9944272dc4118ae3cb95e4", + "aa3565e5726a0662d10ed49cee85f153691c441f", "support" ], "tools/wptrunner/wptrunner/executors/pytestrunner/__init__.py": [ @@ -681377,7 +681975,7 @@ "support" ], "tools/wptrunner/wptrunner/testrunner.py": [ - "d3a62646278e38fcb0c86bc163c4595560f5fa3f", + "05b3190a5f44ec83311c8df9e72fadea46594b95", "support" ], "tools/wptrunner/wptrunner/tests/__init__.py": [ diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini index e1a609649d6..ee754ce4aa3 100644 --- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini +++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini @@ -3,3 +3,9 @@ [scroll-behavior: smooth on DIV element] expected: FAIL + [Smooth scrolling while doing history navigation.] + expected: FAIL + + [Instant scrolling while doing history navigation.] + expected: FAIL + diff --git a/tests/wpt/metadata/custom-elements/reactions/HTMLBaseElement.html.ini b/tests/wpt/metadata/custom-elements/reactions/HTMLBaseElement.html.ini new file mode 100644 index 00000000000..33970e18200 --- /dev/null +++ b/tests/wpt/metadata/custom-elements/reactions/HTMLBaseElement.html.ini @@ -0,0 +1,7 @@ +[HTMLBaseElement.html] + [target on HTMLBaseElement must enqueue an attributeChanged reaction when adding a new attribute] + expected: FAIL + + [target on HTMLBaseElement must enqueue an attributeChanged reaction when replacing an existing attribute] + expected: FAIL + diff --git a/tests/wpt/metadata/domparsing/XMLSerializer-serializeToString.html.ini b/tests/wpt/metadata/domparsing/XMLSerializer-serializeToString.html.ini index 10057a087f4..bc0535d9712 100644 --- a/tests/wpt/metadata/domparsing/XMLSerializer-serializeToString.html.ini +++ b/tests/wpt/metadata/domparsing/XMLSerializer-serializeToString.html.ini @@ -27,3 +27,24 @@ [Check if attribute serialization takes into account of the same prefix declared in an ancestor element] expected: FAIL + [Check if the prefix of an attribute is replaced with another existing prefix mapped to the same namespace URI.] + expected: FAIL + + [Check if inconsistent xmlns="..." is dropped.] + expected: FAIL + + [Check if an attribute with namespace and no prefix is serialized with the nearest-declared prefix] + expected: FAIL + + [Check if no special handling for XLink namespace unlike HTML serializer.] + expected: FAIL + + [Check if the prefix of an attribute is NOT preserved in a case where neither its prefix nor its namespace URI is not already used.] + expected: FAIL + + [Check if the prefix of an attribute is replaced with a generated one in a case where the prefix is already mapped to a different namespace URI.] + expected: FAIL + + [Check if an attribute with namespace and no prefix is serialized with the nearest-declared prefix even if the prefix is assigned to another namespace.] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/fetch.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/fetch.tentative.https.sub.html.ini index 3a72c7d6b84..70f3a453c27 100644 --- a/tests/wpt/metadata/fetch/sec-metadata/fetch.tentative.https.sub.html.ini +++ b/tests/wpt/metadata/fetch/sec-metadata/fetch.tentative.https.sub.html.ini @@ -8,3 +8,12 @@ [Cross-site fetch] expected: FAIL + [Same-origin mode] + expected: FAIL + + [no-CORS mode] + expected: FAIL + + [CORS mode] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/script.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/script.tentative.https.sub.html.ini index ecf13666b3d..eb77e8c6c3d 100644 --- a/tests/wpt/metadata/fetch/sec-metadata/script.tentative.https.sub.html.ini +++ b/tests/wpt/metadata/fetch/sec-metadata/script.tentative.https.sub.html.ini @@ -8,3 +8,6 @@ [Cross-site script] expected: FAIL + [Same-origin CORS script] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/style.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/style.tentative.https.sub.html.ini index 660d71dcc7f..6054adf0361 100644 --- a/tests/wpt/metadata/fetch/sec-metadata/style.tentative.https.sub.html.ini +++ b/tests/wpt/metadata/fetch/sec-metadata/style.tentative.https.sub.html.ini @@ -8,3 +8,6 @@ [Same-Origin style] expected: FAIL + [Same-Origin, cors style] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/track.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/track.tentative.https.sub.html.ini index 15eaec3e714..3e1fe1a05a2 100644 --- a/tests/wpt/metadata/fetch/sec-metadata/track.tentative.https.sub.html.ini +++ b/tests/wpt/metadata/fetch/sec-metadata/track.tentative.https.sub.html.ini @@ -9,3 +9,6 @@ [Cross-Site track] expected: NOTRUN + [Same-Origin, CORS track] + expected: NOTRUN + diff --git a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini deleted file mode 100644 index 78879bad5f1..00000000000 --- a/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[javascript-url-abort-return-value-undefined.tentative.html] - expected: TIMEOUT - [Not aborting fetch for javascript:undefined navigation] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini deleted file mode 100644 index dc2e45516de..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_5.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html.ini b/tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html.ini new file mode 100644 index 00000000000..b1497a0359f --- /dev/null +++ b/tests/wpt/metadata/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html.ini @@ -0,0 +1,31 @@ +[document_domain_access_details.sub.html] + [Access allowed if same-origin with no 'document.domain' modification. (Sanity check)] + expected: FAIL + + [Access is revoked to Window object when we stop being same effective script origin due to document.domain.] + expected: FAIL + + [Access allowed if different-origin but both set document.domain to parent domain.] + expected: FAIL + + [Access is not revoked to random object when we stop being same effective script origin due to document.domain.] + expected: FAIL + + [Access not allowed if different-origin with no 'document.domain' modification. (Sanity check)] + expected: FAIL + + [Access disallowed again if same-origin, both set document-domain to existing value, then one sets to parent.] + expected: FAIL + + [Access is revoked to Location object when we stop being same effective script origin due to document.domain.] + expected: FAIL + + [Access allowed if same-origin and both set document.domain to existing value.] + expected: FAIL + + [Access is not revoked to Document object when we stop being same effective script origin due to document.domain.] + expected: FAIL + + [Access disallowed if same-origin but only one sets document.domain.] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/the-window-object/name-attribute.window.js.ini b/tests/wpt/metadata/html/browsers/the-window-object/name-attribute.window.js.ini new file mode 100644 index 00000000000..015d05d87e1 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/the-window-object/name-attribute.window.js.ini @@ -0,0 +1,4 @@ +[name-attribute.window.html] + [Window object's name IDL attribute] + expected: FAIL + diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini deleted file mode 100644 index 6cf9d13975c..00000000000 --- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[iframe_005.html] - [document.write external script into iframe write back into parent] - expected: FAIL - diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml index 0f374750048..7224ff079f6 100644 --- a/tests/wpt/web-platform-tests/.azure-pipelines.yml +++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml @@ -214,15 +214,11 @@ jobs: - job: all_post displayName: 'all tests (wpt.fyi hook)' dependsOn: all_macOS - pool: server + pool: + vmImage: 'ubuntu-16.04' steps: - - task: InvokeRESTAPI@1 + - script: curl -s -S https://wpt.fyi/api/checks/azure/$(Build.BuildId) displayName: 'Invoke wpt.fyi hook' - inputs: - serviceConnection: wpt.fyi - urlSuffix: /api/checks/azure/$(Build.BuildId) - - task: InvokeRESTAPI@1 + - script: curl -s -S https://staging.wpt.fyi/api/checks/azure/$(Build.BuildId) displayName: 'Invoke staging.wpt.fyi hook' - inputs: - serviceConnection: staging.wpt.fyi - urlSuffix: /api/checks/azure/$(Build.BuildId) + condition: succeededOrFailed() diff --git a/tests/wpt/web-platform-tests/animation-worklet/animator-animate.https.html b/tests/wpt/web-platform-tests/animation-worklet/animator-animate.https.html new file mode 100644 index 00000000000..6efc3caf89d --- /dev/null +++ b/tests/wpt/web-platform-tests/animation-worklet/animator-animate.https.html @@ -0,0 +1,22 @@ + +Basic use of Worklet Animation + + + + + + + +
+ + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/animation-worklet/animator-with-options.https.html b/tests/wpt/web-platform-tests/animation-worklet/animator-with-options.https.html new file mode 100644 index 00000000000..1ff2544d6a9 --- /dev/null +++ b/tests/wpt/web-platform-tests/animation-worklet/animator-with-options.https.html @@ -0,0 +1,35 @@ + +Worklet Animation with options + + + + + + + +
+ + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/common/sleep.py b/tests/wpt/web-platform-tests/common/sleep.py index 28065eff5fc..afc0a7c26e1 100644 --- a/tests/wpt/web-platform-tests/common/sleep.py +++ b/tests/wpt/web-platform-tests/common/sleep.py @@ -5,4 +5,8 @@ import time sleep_padding = 15.0 def sleep_at_least(sleep_in_ms): - time.sleep((sleep_in_ms + sleep_padding) / 1E3); + sleep_until = time.time() + (sleep_in_ms / 1E3) + time.sleep((sleep_in_ms + sleep_padding) / 1E3) + # Check if the padding was sufficient; if not, sleep again. + while time.time() < sleep_until: + time.sleep(sleep_padding / 1E3) diff --git a/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/targeting.html b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/targeting.html index 28ca32e3dcc..b21273ca555 100644 --- a/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/targeting.html +++ b/tests/wpt/web-platform-tests/content-security-policy/securitypolicyviolation/targeting.html @@ -36,7 +36,7 @@ .then(t.step_func(e => { assert_equals(e.blockedURI, "inline"); assert_equals(e.lineNumber, 118); - assert_equals(e.columnNumber, 4); + assert_in_array(e.columnNumber, [4, 6]); assert_equals(e.target, document, "Elements created in this document, but pushed into a same-origin frame trigger on that frame's document, not on this frame's document."); return watcher.wait_for('securitypolicyviolation'); })) @@ -50,7 +50,7 @@ .then(t.step_func(e => { assert_equals(e.blockedURI, "inline"); assert_equals(e.lineNumber, 139); - assert_equals(e.columnNumber, 4); + assert_in_array(e.columnNumber, [4, 6]); assert_equals(e.target, document, "Inline event handlers for disconnected elements target the document."); return watcher.wait_for('securitypolicyviolation'); })) diff --git a/tests/wpt/web-platform-tests/css/css-position/position-absolute-dynamic-containing-block.html b/tests/wpt/web-platform-tests/css/css-position/position-absolute-dynamic-containing-block.html new file mode 100644 index 00000000000..3968f685849 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-position/position-absolute-dynamic-containing-block.html @@ -0,0 +1,140 @@ + +CSS Position: position:absolute dynamic containing block + + + + + + + +
+
+
+
+
TTT
+
+
+
+
+
+
+ diff --git a/tests/wpt/web-platform-tests/css/css-values/rgba-011.html b/tests/wpt/web-platform-tests/css/css-values/rgba-011.html new file mode 100644 index 00000000000..84c31703306 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-values/rgba-011.html @@ -0,0 +1,54 @@ + + + + + CSS Values and Units Test: rgba() function syntax (complex) + + + + + + + + + + + + + +
+ +
+ + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLBaseElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLBaseElement.html new file mode 100644 index 00000000000..82ab9228043 --- /dev/null +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLBaseElement.html @@ -0,0 +1,21 @@ + + +Custom Elements: CEReactions on HTMLBaseElement interface + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLButtonElement.html b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLButtonElement.html index 90390108b42..9b134ce2c68 100644 --- a/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLButtonElement.html +++ b/tests/wpt/web-platform-tests/custom-elements/reactions/HTMLButtonElement.html @@ -10,55 +10,23 @@ diff --git a/tests/wpt/web-platform-tests/element-timing/observe-svg-image.html b/tests/wpt/web-platform-tests/element-timing/observe-svg-image.html new file mode 100644 index 00000000000..327ab69668b --- /dev/null +++ b/tests/wpt/web-platform-tests/element-timing/observe-svg-image.html @@ -0,0 +1,30 @@ + + +Element Timing: observe image inside SVG + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html index 1c69c021acc..6f0c4395950 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html @@ -13,7 +13,7 @@ let e = document.createElement('embed'); e.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.onload = e => { - let expected = {"dest":"embed", "site":"same-origin", "user":"?F"}; + let expected = {"dest":"embed", "site":"same-origin", "user":"?F", "mode":"no-cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -32,7 +32,7 @@ let e = document.createElement('embed'); e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.onload = e => { - let expected = {"dest":"embed", "site":"same-site", "user":"?F"}; + let expected = {"dest":"embed", "site":"same-site", "user":"?F", "mode":"no-cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -51,7 +51,7 @@ let e = document.createElement('embed'); e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.onload = e => { - let expected = {"dest":"embed", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"embed", "site":"cross-site", "user":"?F", "mode":"no-cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/fetch.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/fetch.tentative.https.sub.html index f6460b4efca..dc4b977ac6e 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/fetch.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/fetch.tentative.https.sub.html @@ -3,6 +3,7 @@ diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/font.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/font.tentative.https.sub.html index d2bcf692884..9792f2dce94 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/font.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/font.tentative.https.sub.html @@ -46,7 +46,7 @@ promise_test(t => { return new Promise((resolve, reject) => { let key = "font-same-origin"; - let expected = {"dest":"font", "site":"same-origin", "user":"?F"}; + let expected = {"dest":"font", "site":"same-origin", "user":"?F", "mode": "cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -58,7 +58,7 @@ promise_test(t => { return new Promise((resolve, reject) => { let key = "font-same-site"; - let expected = {"dest":"font", "site":"same-site", "user":"?F"}; + let expected = {"dest":"font", "site":"same-site", "user":"?F", "mode": "cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -70,7 +70,7 @@ promise_test(t => { return new Promise((resolve, reject) => { let key = "font-cross-site"; - let expected = {"dest":"font", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"font", "site":"cross-site", "user":"?F", "mode": "cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.https.sub.html index 6ee14300296..73bd90745d1 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.https.sub.html @@ -14,7 +14,8 @@ assert_header_equals(e.data, { "dest": "nested-document", "site": "same-origin", - "user":"?F" + "user": "?F", + "mode": "navigate" }); t.done(); })); @@ -32,7 +33,8 @@ assert_header_equals(e.data, { "dest": "nested-document", "site": "same-site", - "user": "?F" + "user": "?F", + "mode": "navigate" }); t.done(); })); @@ -50,7 +52,8 @@ assert_header_equals(e.data, { "dest": "nested-document", "site": "cross-site", - "user": "?F" + "user": "?F", + "mode": "navigate" }); t.done(); })); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.sub.html index ce31a818251..eab2d3f5886 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.sub.html @@ -14,7 +14,8 @@ assert_header_equals(e.data, { "dest": "", "site": "", - "user": "" + "user": "", + "mode": "", }); t.done(); })); @@ -32,7 +33,8 @@ assert_header_equals(e.data, { "dest": "", "site": "", - "user": "" + "user": "", + "mode": "", }); t.done(); })); @@ -50,7 +52,8 @@ assert_header_equals(e.data, { "dest": "", "site": "", - "user": "" + "user": "", + "mode": "", }); t.done(); })); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/img.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/img.tentative.https.sub.html index c5c389503cc..252b220011c 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/img.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/img.tentative.https.sub.html @@ -21,7 +21,8 @@ assert_header_equals(got, { "dest": "image", "site": "same-origin", - "user": "?F" + "user": "?F", + "mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin` }); }), [], @@ -42,7 +43,8 @@ assert_header_equals(got, { "dest": "image", "site": "same-site", - "user": "?F" + "user": "?F", + "mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin` }); }), [], @@ -63,7 +65,8 @@ assert_header_equals(got, { "dest": "image", "site": "cross-site", - "user": "?F" + "user": "?F", + "mode": "cors", // Because `loadImageInWindow` tacks on `crossorigin` }); }), [], diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html index 0b9839470d1..2a0e8de8556 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html @@ -13,7 +13,7 @@ let e = document.createElement('object'); e.data = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.onload = e => { - let expected = {"dest":"object", "site":"same-origin", "user":"?F"}; + let expected = {"dest":"object", "site":"same-origin", "user":"?F", "mode":"no-cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -32,7 +32,7 @@ let e = document.createElement('object'); e.data = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.onload = e => { - let expected = {"dest":"object", "site":"same-site", "user":"?F"}; + let expected = {"dest":"object", "site":"same-site", "user":"?F", "mode":"no-cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -51,7 +51,7 @@ let e = document.createElement('object'); e.data = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.onload = e => { - let expected = {"dest":"object", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"object", "site":"cross-site", "user":"?F", "mode":"no-cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html index 56d88d9156c..f88cf140d4e 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site-redirect.tentative.https.sub.html @@ -12,7 +12,7 @@ promise_test(t => { let e = document.createElement('img'); e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; - let expected = {"dest":"image", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) @@ -38,7 +38,7 @@ promise_test(t => { let e = document.createElement('img'); e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; - let expected = {"dest":"image", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) @@ -64,7 +64,7 @@ promise_test(t => { let e = document.createElement('img'); e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; - let expected = {"dest":"image", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html index f6d18f568f1..688c697ac93 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-cross-site.tentative.https.sub.html @@ -14,7 +14,7 @@ promise_test(t => { e.src = "https://{{host}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-origin "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// cross-site "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;// same-origin - let expected = {"dest":"image", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html index 4756a79ab25..bc79f7810a1 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/multiple-redirect-same-site.tentative.https.sub.html @@ -14,7 +14,7 @@ promise_test(t => { e.src = "https://{{host}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-origin "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-site "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;// same-origin - let expected = {"dest":"image", "site":"same-site", "user":"?F"}; + let expected = {"dest":"image", "site":"same-site", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html index 8558d6890e6..a5323921c26 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin-redirect.tentative.https.sub.html @@ -12,7 +12,7 @@ promise_test(t => { let e = document.createElement('img'); e.src = "/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; - let expected = {"dest":"image", "site":"same-origin", "user":"?F"}; + let expected = {"dest":"image", "site":"same-origin", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) @@ -39,7 +39,7 @@ promise_test(t => { let e = document.createElement('img'); e.src = "/xhr/resources/redirect.py?location=https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; - let expected = {"dest":"image", "site":"same-site", "user":"?F"}; + let expected = {"dest":"image", "site":"same-site", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) @@ -66,7 +66,7 @@ promise_test(t => { let e = document.createElement('img'); e.src = "/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; - let expected = {"dest":"image", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html index 8e05b255b88..92749ae0b80 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site-redirect.tentative.https.sub.html @@ -12,7 +12,7 @@ promise_test(t => { let e = document.createElement('img'); e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; - let expected = {"dest":"image", "site":"same-site", "user":"?F"}; + let expected = {"dest":"image", "site":"same-site", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) @@ -39,7 +39,7 @@ promise_test(t => { let e = document.createElement('img'); e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; - let expected = {"dest":"image", "site":"same-site", "user":"?F"}; + let expected = {"dest":"image", "site":"same-site", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) @@ -66,7 +66,7 @@ promise_test(t => { let e = document.createElement('img'); e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; - let expected = {"dest":"image", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"image", "site":"cross-site", "user":"?F", "mode": "no-cors"}; e.onload = e => { fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/report.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/report.tentative.https.sub.html index 1cfa8641ba8..f1d8e06e50e 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/report.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/report.tentative.https.sub.html @@ -22,9 +22,9 @@ document.addEventListener("securitypolicyviolation", (e) => { counter++; if (counter == 3) { - generate_test({"dest":"report", "site":"same-origin", "user":"?F"}, "same-origin"); - generate_test({"dest":"report", "site":"same-site", "user":"?F"}, "same-site"); - generate_test({"dest":"report", "site":"cross-site", "user":"?F"}, "cross-site"); + generate_test({"dest":"report", "site":"same-origin", "user":"?F", "mode": "no-cors"}, "same-origin"); + generate_test({"dest":"report", "site":"same-site", "user":"?F", "mode": "no-cors"}, "same-site"); + generate_test({"dest":"report", "site":"cross-site", "user":"?F", "mode": "no-cors"}, "cross-site"); } }); }, "Initialization."); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/helper.js b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/helper.js index 1a9ec154e02..4bee68996e8 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/helper.js +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/helper.js @@ -4,8 +4,7 @@ function assert_header_equals(value, expected) { value = JSON.parse(value); } assert_equals(value.dest, expected.dest, "dest"); - // Mode is commented out as no test cases have been filled out yet - // assert_equals(value.mode, expected.mode, "mode"); + assert_equals(value.mode, expected.mode, "mode"); assert_equals(value.site, expected.site, "site"); assert_equals(value.user, expected.user, "user"); } diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.https.sub.html index d76378f1dd8..a35e753c789 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.https.sub.html @@ -12,7 +12,8 @@ assert_header_equals(header, { "dest": "script", "site": "same-origin", - "user":"?F" + "user": "?F", + "mode": "no-cors", }); }, "Same-origin script"); @@ -26,7 +27,8 @@ assert_header_equals(header, { "dest": "script", "site": "same-site", - "user":"?F" + "user": "?F", + "mode": "no-cors", }); }, "Same-site script"); @@ -40,7 +42,23 @@ assert_header_equals(header, { "dest": "script", "site": "cross-site", - "user":"?F" + "user": "?F", + "mode": "no-cors", }); }, "Cross-site script"); + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.sub.html index 482f4b98f9e..3218a40abde 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.sub.html @@ -12,7 +12,8 @@ assert_header_equals(header, { "dest": "", "site": "", - "user": "" + "user": "", + "mode": "", }); }, "Non-secure same-origin script => No headers"); @@ -26,7 +27,8 @@ assert_header_equals(header, { "dest": "", "site": "", - "user": "" + "user": "", + "mode": "", }); }, "Non-secure same-site script => No headers"); @@ -40,7 +42,8 @@ assert_header_equals(header, { "dest": "", "site": "", - "user": "" + "user": "", + "mode": "", }); }, "Non-secure cross-site script => No headers"); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html index d0b86d2d9a8..5b7ee772b61 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html @@ -35,7 +35,7 @@ promise_test(t => { return new Promise((resolve, reject) => { let key = "serviceworker-same-origin"; - let expected = {"dest":"serviceworker", "site":"same-origin", "user":"?F"}; + let expected = {"dest":"serviceworker", "site":"same-origin", "user":"?F", "mode": "same-origin"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html index 66f7d5b9d8d..cfeadd8d8e2 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html @@ -26,7 +26,7 @@ promise_test(t => { return new Promise((resolve, reject) => { let key = "sharedworker-same-origin"; - let expected = {"dest":"sharedworker", "site":"same-origin", "user":"?F"}; + let expected = {"dest":"sharedworker", "site":"same-origin", "user":"?F", "mode": "same-origin"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html index 9697db75c82..4ae12662a29 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html @@ -14,7 +14,7 @@ e.rel = "stylesheet"; e.href = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.onload = e => { - let expected = {"dest":"style", "site":"same-origin", "user":"?F"}; + let expected = {"dest":"style", "site":"same-origin", "user":"?F", "mode": "no-cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -34,7 +34,7 @@ e.rel = "stylesheet"; e.href = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.onload = e => { - let expected = {"dest":"style", "site":"same-site", "user":"?F"}; + let expected = {"dest":"style", "site":"same-site", "user":"?F", "mode": "no-cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -54,7 +54,7 @@ e.rel = "stylesheet"; e.href = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; e.onload = e => { - let expected = {"dest":"style", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"style", "site":"cross-site", "user":"?F", "mode": "no-cors"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -65,6 +65,27 @@ document.body.appendChild(e); }) }, "Cross-Site style"); + + promise_test(t => { + return new Promise((resolve, reject) => { + let key = "style-same-origin"; + + let e = document.createElement('link'); + e.rel = "stylesheet"; + e.href = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key; + e.crossOrigin = "anonymous"; + e.onload = e => { + let expected = {"dest":"style", "site":"same-origin", "user":"?F", "mode": "cors"}; + fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) + .then(response => response.text()) + .then(text => assert_header_equals(text, expected)) + .then(_ => resolve()) + .catch(e => reject(e)); + }; + + document.body.appendChild(e); + }) + }, "Same-Origin, cors style"); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html index b9dfabf9739..89933f22c39 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html @@ -29,7 +29,12 @@ let el = createTrack(); el.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-same-origin"; el.onload = t.step_func(_ => { - expected = {"dest":"track", "site":"same-origin", "user":"?F"}; + expected = { + "dest": "track", + "site": "same-origin", + "user": "?F", + "mode": "cors" // Because the `video` element has `crossorigin` + }; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-same-origin") .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -46,7 +51,12 @@ let el = createTrack(); el.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-same-site"; el.onload = t.step_func(_ => { - expected = {"dest":"track", "site":"same-site", "user":"?F"}; + expected = { + "dest": "track", + "site": "same-site", + "user": "?F", + "mode": "cors" // Because the `video` element has `crossorigin` + }; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-same-site") .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -65,7 +75,12 @@ let el = createTrack(); el.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-cross-site"; el.onload = t.step_func(_ => { - expected = {"dest":"track", "site":"cross-site", "user":"?F"}; + expected = { + "dest": "track", + "site": "cross-site", + "user": "?F", + "mode": "cors" // Because the `video` element has `crossorigin` + }; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-cross-site") .then(response => response.text()) .then(text => assert_header_equals(text, expected)) @@ -76,4 +91,30 @@ document.body.appendChild(video); }); }, "Cross-Site track"); + + promise_test(t => { + return new Promise((resolve, reject) => { + let video = createVideoElement(); + + // Unset `crossorigin` to change the CORS mode: + video.crossOrigin = undefined; + + let el = createTrack(); + el.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-same-origin"; + el.onload = t.step_func(_ => { + expected = { + "dest":"track", + "site":"same-origin", + "user":"?F", + "mode": "same-origin" + }; + fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-same-origin") + .then(response => response.text()) + .then(text => assert_header_equals(text, expected)) + .then(_ => resolve()); + }); + video.appendChild(el); + document.body.appendChild(video); + }); + }, "Same-Origin, CORS track"); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/window-open.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/window-open.tentative.https.sub.html index 236268e1774..2957dad40a4 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/window-open.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/window-open.tentative.https.sub.html @@ -17,7 +17,8 @@ assert_header_equals(e.data, { "dest": "document", "site": "same-origin", - "user":"?F" + "user": "?F", + "mode": "navigate", }); t.done(); })); @@ -33,7 +34,8 @@ assert_header_equals(e.data, { "dest": "document", "site": "same-site", - "user":"?F" + "user": "?F", + "mode": "navigate", }); t.done(); })); @@ -49,7 +51,8 @@ assert_header_equals(e.data, { "dest": "document", "site": "cross-site", - "user":"?F" + "user": "?F", + "mode": "navigate", }); t.done(); })); @@ -68,7 +71,8 @@ assert_header_equals(e.data, { "dest": "document", "site": "same-origin", - "user": "?T" + "user": "?T", + "mode": "navigate", }); t.done(); })); @@ -89,7 +93,8 @@ assert_header_equals(e.data, { "dest": "document", "site": "same-site", - "user": "?T" + "user": "?T", + "mode": "navigate", }); t.done(); })); @@ -110,7 +115,8 @@ assert_header_equals(e.data, { "dest": "document", "site": "cross-site", - "user": "?T" + "user": "?T", + "mode": "navigate", }); t.done(); })); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html index fcffe91dbf7..89be6f0b5a1 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html @@ -10,7 +10,7 @@ let key = "worker-same-origin"; let w = new Worker("/fetch/sec-metadata/resources/record-header.py?file=" + key); w.onmessage = e => { - let expected = {"dest":"worker", "site":"same-origin", "user":"?F"}; + let expected = {"dest":"worker", "site":"same-origin", "user":"?F", "mode": "same-origin"}; fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key) .then(response => response.text()) .then(text => assert_header_equals(text, expected)) diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/xslt.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/xslt.tentative.https.sub.html index 32349c9598e..eea2329900e 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/xslt.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/xslt.tentative.https.sub.html @@ -12,21 +12,21 @@ return; promise_test(t => { - let expected = {"dest":"xslt", "site":"same-origin", "user":"?F"}; + let expected = {"dest":"xslt", "site":"same-origin", "user":"?F", "mode": "same-origin"}; return fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=xslt-same-origin") .then(response => response.text()) .then(text => assert_header_equals(text, expected)); }, "Same-Origin xslt"); promise_test(t => { - let expected = {"dest":"xslt", "site":"same-site", "user":"?F"}; + let expected = {"dest":"xslt", "site":"same-site", "user":"?F", "mode": "no-cors"}; return fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=xslt-same-site") .then(response => response.text()) .then(text => assert_header_equals(text, expected)); }, "Same-site xslt"); promise_test(t => { - let expected = {"dest":"xslt", "site":"cross-site", "user":"?F"}; + let expected = {"dest":"xslt", "site":"cross-site", "user":"?F", "mode": "no-cors"}; return fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=xslt-cross-site") .then(response => response.text()) .then(text => assert_header_equals(text, expected)); diff --git a/tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html b/tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html new file mode 100644 index 00000000000..46280854e8f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_access_details.sub.html @@ -0,0 +1,193 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.html b/tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.html new file mode 100644 index 00000000000..61f54af3593 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.html @@ -0,0 +1,52 @@ + + + diff --git a/tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.sub.js b/tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.sub.js new file mode 100644 index 00000000000..b6631ea4f15 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.sub.js @@ -0,0 +1,65 @@ +/** + * Utilities to be used with document_domain_frame.html. + */ + +/** + * Send a message to the frame and resolve a promise when a response is received. + * + * Supported messages: + * + * 1) { domain: something }. Has the subframe try to set document.domain to the + * given value, and message back 'Done' if that succeeds or an error name if it + * fails. + * + * 2) 'poke-at-parent'. Has the subframe try to synchronously attempt to access + * the parent's DOM, read out a string value, and message it back to the parent. + * Again, sends back the error name if that fails. + * + * 3) { 'poke-at-sibling': name }. Has the subframe try to synchronously + * attempt to access the DOM of the sibling with the given name, read out a + * string value, and message it back to the parent. + */ +function postMessageToFrame(frame, message) { + return new Promise(resolve => { + var c = new MessageChannel(); + c.port1.onmessage = e => { + resolve({ data: e.data, frame: frame }) + }; + frame.contentWindow.postMessage(message, '*', [c.port2]); + }); +} + +/** + * Create a frame that loads document_domain_frame.html and resolves a promise + * when the frame is loaded enough to be sending and receiving messages. + * + * If a "name" argument is provided, that name is used for the iframe, so + * + * If a "hostname" argument is provided, that hostname is used for the load, to + * allow testing details of the behavior when different sorts of hostnames are + * used. + */ +function createFrame(t, name, hostname) { + return new Promise(resolve => { + var i = document.createElement('iframe'); + if (hostname) { + i.src = `//${hostname}:{{location[port]}}/html/browsers/origin/relaxing-the-same-origin-restriction/support/document_domain_frame.html`; + } else { + i.src = "support/document_domain_frame.html"; + } + if (name) { + i.name = name; + } + var listener = m => { + if (m.source == i.contentWindow) + resolve(i); + } + window.addEventListener('message', listener); + t.add_cleanup(() => { + i.remove(); + window.removeEventListener('message', listener); + }); + document.body.appendChild(i); + }); +} + diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/name-attribute.window.js b/tests/wpt/web-platform-tests/html/browsers/the-window-object/name-attribute.window.js new file mode 100644 index 00000000000..f266dd7acb9 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/the-window-object/name-attribute.window.js @@ -0,0 +1,18 @@ +test(() => { + const frame = document.createElement("iframe"), + name = "A", + name2 = "B"; + frame.setAttribute("name", name); + document.body.append(frame); + const frameW = frame.contentWindow; + assert_equals(frameW.name, name); + frameW.name = name2; + assert_equals(frame.getAttribute("name"), name); + assert_equals(frameW.name, name2); + frame.remove(); + assert_equals(frame.getAttribute("name"), name); + assert_equals(frameW.name, ""); + frameW.name = name2; + assert_equals(frame.getAttribute("name"), name); + assert_equals(frameW.name, ""); +}, "Window object's name IDL attribute"); diff --git a/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.rel-setter-01.html b/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.rel-setter-01.html index 83c69de3014..c319266887b 100644 --- a/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.rel-setter-01.html +++ b/tests/wpt/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.rel-setter-01.html @@ -13,8 +13,8 @@ test(function() { var a = document.getElementById("test"); test(function() { - a.rel = "noreferrer" - assert_equals(a.rel, "noreferrer"); + a.rel = "noreferrer"; + assert_equals(a.getAttribute("rel"), "noreferrer"); }, "Test anchor's rel setter"); }); diff --git a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.html b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.html new file mode 100644 index 00000000000..dd4c531070c --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.html @@ -0,0 +1,8 @@ + + + + diff --git a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html new file mode 100644 index 00000000000..5f0dba6bcf7 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html @@ -0,0 +1,21 @@ + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/@std/__dir__.headers b/tests/wpt/web-platform-tests/import-maps/@std/__dir__.headers new file mode 100644 index 00000000000..e7ec0d6699d --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/@std/__dir__.headers @@ -0,0 +1 @@ +Content-Type: text/javascript diff --git a/tests/wpt/web-platform-tests/import-maps/@std/blank b/tests/wpt/web-platform-tests/import-maps/@std/blank new file mode 100644 index 00000000000..38e1891bf7d --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/@std/blank @@ -0,0 +1 @@ +log.push("relative:@std/blank"); diff --git a/tests/wpt/web-platform-tests/import-maps/@std/none b/tests/wpt/web-platform-tests/import-maps/@std/none new file mode 100644 index 00000000000..69e165cce5e --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/@std/none @@ -0,0 +1 @@ +log.push("relative:@std/none"); diff --git a/tests/wpt/web-platform-tests/import-maps/README.md b/tests/wpt/web-platform-tests/import-maps/README.md new file mode 100644 index 00000000000..3803e350c84 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/README.md @@ -0,0 +1,9 @@ +Tests for [Import Maps](https://github.com/WICG/import-maps). + +Because the spec itself is still under development and there are ongoing spec +discussions, the tests are all tentative. + +Also, some tests are based on Chromium's behavior which reflects an older +version of import maps spec ("package name maps" around May 2018), and have +dependency to Chromium's implementation (internals.resolveModuleSpecifier). +These dependencies should be removed, once the spec matures. diff --git a/tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/dynamic-import/success.tentative.html b/tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/dynamic-import/success.tentative.html new file mode 100644 index 00000000000..512cd7fa697 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/dynamic-import/success.tentative.html @@ -0,0 +1,31 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/script-tag/success.tentative.html b/tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/script-tag/success.tentative.html new file mode 100644 index 00000000000..7f319b04758 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/script-tag/success.tentative.html @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/worker-request/success.tentative.html b/tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/worker-request/success.tentative.html new file mode 100644 index 00000000000..ceef4100aad --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/acquire-import-maps-flag/worker-request/success.tentative.html @@ -0,0 +1,25 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/bare.sub.tentative.html b/tests/wpt/web-platform-tests/import-maps/bare.sub.tentative.html new file mode 100644 index 00000000000..5bfb6b52072 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/bare.sub.tentative.html @@ -0,0 +1,70 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/bare/__dir__.headers b/tests/wpt/web-platform-tests/import-maps/bare/__dir__.headers new file mode 100644 index 00000000000..e7ec0d6699d --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/bare/__dir__.headers @@ -0,0 +1 @@ +Content-Type: text/javascript diff --git a/tests/wpt/web-platform-tests/import-maps/bare/bare b/tests/wpt/web-platform-tests/import-maps/bare/bare new file mode 100644 index 00000000000..1011e866b81 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/bare/bare @@ -0,0 +1 @@ +log.push("relative:bare/bare"); diff --git a/tests/wpt/web-platform-tests/import-maps/bare/blank b/tests/wpt/web-platform-tests/import-maps/bare/blank new file mode 100644 index 00000000000..841d433acf7 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/bare/blank @@ -0,0 +1 @@ +log.push("relative:bare/blank"); diff --git a/tests/wpt/web-platform-tests/import-maps/bare/cross-origin-bare b/tests/wpt/web-platform-tests/import-maps/bare/cross-origin-bare new file mode 100644 index 00000000000..64851cc8e24 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/bare/cross-origin-bare @@ -0,0 +1 @@ +log.push("relative:bare/cross-origin-bare"); diff --git a/tests/wpt/web-platform-tests/import-maps/bare/none b/tests/wpt/web-platform-tests/import-maps/bare/none new file mode 100644 index 00000000000..2aec0d72826 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/bare/none @@ -0,0 +1 @@ +log.push("relative:bare/none"); diff --git a/tests/wpt/web-platform-tests/import-maps/bare/std-blank b/tests/wpt/web-platform-tests/import-maps/bare/std-blank new file mode 100644 index 00000000000..5ded98fd382 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/bare/std-blank @@ -0,0 +1 @@ +log.push("relative:bare/std-blank"); diff --git a/tests/wpt/web-platform-tests/import-maps/bare/std-none b/tests/wpt/web-platform-tests/import-maps/bare/std-none new file mode 100644 index 00000000000..1437d9ff1e0 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/bare/std-none @@ -0,0 +1 @@ +log.push("relative:bare/std-none"); diff --git a/tests/wpt/web-platform-tests/import-maps/bare/to-bare b/tests/wpt/web-platform-tests/import-maps/bare/to-bare new file mode 100644 index 00000000000..bdb3791bc94 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/bare/to-bare @@ -0,0 +1 @@ +log.push("relative:bare/to-bare"); diff --git a/tests/wpt/web-platform-tests/import-maps/bare/to-data b/tests/wpt/web-platform-tests/import-maps/bare/to-data new file mode 100644 index 00000000000..6f25c5af124 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/bare/to-data @@ -0,0 +1 @@ +log.push("relative:bare/to-data"); diff --git a/tests/wpt/web-platform-tests/import-maps/builtin-empty.tentative.html b/tests/wpt/web-platform-tests/import-maps/builtin-empty.tentative.html new file mode 100644 index 00000000000..aba28d18e04 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/builtin-empty.tentative.html @@ -0,0 +1,43 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/builtin-import-scheme.tentative.html b/tests/wpt/web-platform-tests/import-maps/builtin-import-scheme.tentative.html new file mode 100644 index 00000000000..6a27ef5aee2 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/builtin-import-scheme.tentative.html @@ -0,0 +1,27 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/builtin.tentative.html b/tests/wpt/web-platform-tests/import-maps/builtin.tentative.html new file mode 100644 index 00000000000..e85289e4d88 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/builtin.tentative.html @@ -0,0 +1,30 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/data.sub.tentative.html b/tests/wpt/web-platform-tests/import-maps/data.sub.tentative.html new file mode 100644 index 00000000000..1c7172bf7c6 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/data.sub.tentative.html @@ -0,0 +1,72 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/fallback-disallowed.sub.tentative.html b/tests/wpt/web-platform-tests/import-maps/fallback-disallowed.sub.tentative.html new file mode 100644 index 00000000000..3f89e8f12df --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/fallback-disallowed.sub.tentative.html @@ -0,0 +1,79 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/fallback.sub.tentative.html b/tests/wpt/web-platform-tests/import-maps/fallback.sub.tentative.html new file mode 100644 index 00000000000..4cf3e18182a --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/fallback.sub.tentative.html @@ -0,0 +1,84 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/http.sub.tentative.html b/tests/wpt/web-platform-tests/import-maps/http.sub.tentative.html new file mode 100644 index 00000000000..bd24f353550 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/http.sub.tentative.html @@ -0,0 +1,72 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/module-map-key.tentative.html b/tests/wpt/web-platform-tests/import-maps/module-map-key.tentative.html new file mode 100644 index 00000000000..13bd122c673 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/module-map-key.tentative.html @@ -0,0 +1,25 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/resolving.tentative.html b/tests/wpt/web-platform-tests/import-maps/resolving.tentative.html new file mode 100644 index 00000000000..f2b09a7ae02 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/resolving.tentative.html @@ -0,0 +1,81 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/import-maps/resources/empty.js b/tests/wpt/web-platform-tests/import-maps/resources/empty.js new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/wpt/web-platform-tests/import-maps/resources/log.js b/tests/wpt/web-platform-tests/import-maps/resources/log.js new file mode 100644 index 00000000000..a024a29bf24 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/resources/log.js @@ -0,0 +1 @@ +log.push("log:{{GET[name]}}"); diff --git a/tests/wpt/web-platform-tests/import-maps/resources/log.js.headers b/tests/wpt/web-platform-tests/import-maps/resources/log.js.headers new file mode 100644 index 00000000000..cb762eff806 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/resources/log.js.headers @@ -0,0 +1 @@ +Access-Control-Allow-Origin: * diff --git a/tests/wpt/web-platform-tests/import-maps/resources/resolving.js b/tests/wpt/web-platform-tests/import-maps/resources/resolving.js new file mode 100644 index 00000000000..ec2645e5991 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/resources/resolving.js @@ -0,0 +1,206 @@ +'use strict'; +const { URL } = require('url'); +const { parseFromString } = require('../lib/parser.js'); +const { resolve } = require('../lib/resolver.js'); + +const mapBaseURL = new URL('https://example.com/app/index.html'); +const scriptURL = new URL('https://example.com/js/app.mjs'); + +function makeResolveUnderTest(mapString) { + const map = parseFromString(mapString, mapBaseURL); + return specifier => resolve(specifier, map, scriptURL); +} + +describe('Unmapped', () => { + const resolveUnderTest = makeResolveUnderTest(`{}`); + + it('should resolve ./ specifiers as URLs', () => { + expect(resolveUnderTest('./foo')).toMatchURL('https://example.com/js/foo'); + expect(resolveUnderTest('./foo/bar')).toMatchURL('https://example.com/js/foo/bar'); + expect(resolveUnderTest('./foo/../bar')).toMatchURL('https://example.com/js/bar'); + expect(resolveUnderTest('./foo/../../bar')).toMatchURL('https://example.com/bar'); + }); + + it('should resolve ../ specifiers as URLs', () => { + expect(resolveUnderTest('../foo')).toMatchURL('https://example.com/foo'); + expect(resolveUnderTest('../foo/bar')).toMatchURL('https://example.com/foo/bar'); + expect(resolveUnderTest('../../../foo/bar')).toMatchURL('https://example.com/foo/bar'); + }); + + it('should resolve / specifiers as URLs', () => { + expect(resolveUnderTest('/foo')).toMatchURL('https://example.com/foo'); + expect(resolveUnderTest('/foo/bar')).toMatchURL('https://example.com/foo/bar'); + expect(resolveUnderTest('/../../foo/bar')).toMatchURL('https://example.com/foo/bar'); + expect(resolveUnderTest('/../foo/../bar')).toMatchURL('https://example.com/bar'); + }); + + it('should parse absolute fetch-scheme URLs', () => { + expect(resolveUnderTest('about:good')).toMatchURL('about:good'); + expect(resolveUnderTest('https://example.net')).toMatchURL('https://example.net/'); + expect(resolveUnderTest('https://ex%41mple.com/')).toMatchURL('https://example.com/'); + expect(resolveUnderTest('https:example.org')).toMatchURL('https://example.org/'); + expect(resolveUnderTest('https://///example.com///')).toMatchURL('https://example.com///'); + }); + + it('should fail for absolute non-fetch-scheme URLs', () => { + expect(() => resolveUnderTest('mailto:bad')).toThrow(TypeError); + expect(() => resolveUnderTest('import:bad')).toThrow(TypeError); + expect(() => resolveUnderTest('javascript:bad')).toThrow(TypeError); + expect(() => resolveUnderTest('wss:bad')).toThrow(TypeError); + }); + + it('should fail for strings not parseable as absolute URLs and not starting with ./ ../ or /', () => { + expect(() => resolveUnderTest('foo')).toThrow(TypeError); + expect(() => resolveUnderTest('\\foo')).toThrow(TypeError); + expect(() => resolveUnderTest(':foo')).toThrow(TypeError); + expect(() => resolveUnderTest('@foo')).toThrow(TypeError); + expect(() => resolveUnderTest('%2E/foo')).toThrow(TypeError); + expect(() => resolveUnderTest('%2E%2E/foo')).toThrow(TypeError); + expect(() => resolveUnderTest('.%2Ffoo')).toThrow(TypeError); + expect(() => resolveUnderTest('https://ex ample.org/')).toThrow(TypeError); + expect(() => resolveUnderTest('https://example.com:demo')).toThrow(TypeError); + expect(() => resolveUnderTest('http://[www.example.com]/')).toThrow(TypeError); + }); +}); + +describe('Mapped using the "imports" key only (no scopes)', () => { + it('should fail when the mapping is to an empty array', () => { + const resolveUnderTest = makeResolveUnderTest(`{ + "imports": { + "moment": null, + "lodash": [] + } + }`); + + expect(() => resolveUnderTest('moment')).toThrow(TypeError); + expect(() => resolveUnderTest('lodash')).toThrow(TypeError); + }); + + describe('Package-like scenarios', () => { + const resolveUnderTest = makeResolveUnderTest(`{ + "imports": { + "moment": "/node_modules/moment/src/moment.js", + "moment/": "/node_modules/moment/src/", + "lodash-dot": "./node_modules/lodash-es/lodash.js", + "lodash-dot/": "./node_modules/lodash-es/", + "lodash-dotdot": "../node_modules/lodash-es/lodash.js", + "lodash-dotdot/": "../node_modules/lodash-es/" + } + }`); + + it('should work for package main modules', () => { + expect(resolveUnderTest('moment')).toMatchURL('https://example.com/node_modules/moment/src/moment.js'); + expect(resolveUnderTest('lodash-dot')).toMatchURL('https://example.com/app/node_modules/lodash-es/lodash.js'); + expect(resolveUnderTest('lodash-dotdot')).toMatchURL('https://example.com/node_modules/lodash-es/lodash.js'); + }); + + it('should work for package submodules', () => { + expect(resolveUnderTest('moment/foo')).toMatchURL('https://example.com/node_modules/moment/src/foo'); + expect(resolveUnderTest('lodash-dot/foo')).toMatchURL('https://example.com/app/node_modules/lodash-es/foo'); + expect(resolveUnderTest('lodash-dotdot/foo')).toMatchURL('https://example.com/node_modules/lodash-es/foo'); + }); + + it('should work for package names that end in a slash by just passing through', () => { + // TODO: is this the right behavior, or should we throw? + expect(resolveUnderTest('moment/')).toMatchURL('https://example.com/node_modules/moment/src/'); + }); + + it('should still fail for package modules that are not declared', () => { + expect(() => resolveUnderTest('underscore/')).toThrow(TypeError); + expect(() => resolveUnderTest('underscore/foo')).toThrow(TypeError); + }); + }); + + describe('Tricky specifiers', () => { + const resolveUnderTest = makeResolveUnderTest(`{ + "imports": { + "package/withslash": "/node_modules/package-with-slash/index.mjs", + "not-a-package": "/lib/not-a-package.mjs", + ".": "/lib/dot.mjs", + "..": "/lib/dotdot.mjs", + "..\\\\": "/lib/dotdotbackslash.mjs", + "%2E": "/lib/percent2e.mjs", + "%2F": "/lib/percent2f.mjs" + } + }`); + + it('should work for explicitly-mapped specifiers that happen to have a slash', () => { + expect(resolveUnderTest('package/withslash')).toMatchURL('https://example.com/node_modules/package-with-slash/index.mjs'); + }); + + it('should work when the specifier has punctuation', () => { + expect(resolveUnderTest('.')).toMatchURL('https://example.com/lib/dot.mjs'); + expect(resolveUnderTest('..')).toMatchURL('https://example.com/lib/dotdot.mjs'); + expect(resolveUnderTest('..\\')).toMatchURL('https://example.com/lib/dotdotbackslash.mjs'); + expect(resolveUnderTest('%2E')).toMatchURL('https://example.com/lib/percent2e.mjs'); + expect(resolveUnderTest('%2F')).toMatchURL('https://example.com/lib/percent2f.mjs'); + }); + + it('should fail for attempting to get a submodule of something not declared with a trailing slash', () => { + expect(() => resolveUnderTest('not-a-package/foo')).toThrow(TypeError); + }); + }); + + describe('URL-like specifiers', () => { + const resolveUnderTest = makeResolveUnderTest(`{ + "imports": { + "/node_modules/als-polyfill/index.mjs": "@std/kv-storage", + + "/lib/foo.mjs": "./more/bar.mjs", + "./dotrelative/foo.mjs": "/lib/dot.mjs", + "../dotdotrelative/foo.mjs": "/lib/dotdot.mjs", + + "/lib/no.mjs": null, + "./dotrelative/no.mjs": [], + + "/": "/lib/slash-only.mjs", + "./": "/lib/dotslash-only.mjs", + + "/test": "/lib/test1.mjs", + "../test": "/lib/test2.mjs" + } + }`); + + it('should remap to built-in modules', () => { + expect(resolveUnderTest('/node_modules/als-polyfill/index.mjs')).toMatchURL('import:@std/kv-storage'); + expect(resolveUnderTest('https://example.com/node_modules/als-polyfill/index.mjs')).toMatchURL('import:@std/kv-storage'); + expect(resolveUnderTest('https://///example.com/node_modules/als-polyfill/index.mjs')).toMatchURL('import:@std/kv-storage'); + }); + + it('should remap to other URLs', () => { + expect(resolveUnderTest('https://example.com/lib/foo.mjs')).toMatchURL('https://example.com/app/more/bar.mjs'); + expect(resolveUnderTest('https://///example.com/lib/foo.mjs')).toMatchURL('https://example.com/app/more/bar.mjs'); + expect(resolveUnderTest('/lib/foo.mjs')).toMatchURL('https://example.com/app/more/bar.mjs'); + + expect(resolveUnderTest('https://example.com/app/dotrelative/foo.mjs')).toMatchURL('https://example.com/lib/dot.mjs'); + expect(resolveUnderTest('../app/dotrelative/foo.mjs')).toMatchURL('https://example.com/lib/dot.mjs'); + + expect(resolveUnderTest('https://example.com/dotdotrelative/foo.mjs')).toMatchURL('https://example.com/lib/dotdot.mjs'); + expect(resolveUnderTest('../dotdotrelative/foo.mjs')).toMatchURL('https://example.com/lib/dotdot.mjs'); + }); + + it('should fail for URLs that remap to empty arrays', () => { + expect(() => resolveUnderTest('https://example.com/lib/no.mjs')).toThrow(TypeError); + expect(() => resolveUnderTest('/lib/no.mjs')).toThrow(TypeError); + expect(() => resolveUnderTest('../lib/no.mjs')).toThrow(TypeError); + + expect(() => resolveUnderTest('https://example.com/app/dotrelative/no.mjs')).toThrow(TypeError); + expect(() => resolveUnderTest('/app/dotrelative/no.mjs')).toThrow(TypeError); + expect(() => resolveUnderTest('../app/dotrelative/no.mjs')).toThrow(TypeError); + }); + + it('should remap URLs that are just composed from / and .', () => { + expect(resolveUnderTest('https://example.com/')).toMatchURL('https://example.com/lib/slash-only.mjs'); + expect(resolveUnderTest('/')).toMatchURL('https://example.com/lib/slash-only.mjs'); + expect(resolveUnderTest('../')).toMatchURL('https://example.com/lib/slash-only.mjs'); + + expect(resolveUnderTest('https://example.com/app/')).toMatchURL('https://example.com/lib/dotslash-only.mjs'); + expect(resolveUnderTest('/app/')).toMatchURL('https://example.com/lib/dotslash-only.mjs'); + expect(resolveUnderTest('../app/')).toMatchURL('https://example.com/lib/dotslash-only.mjs'); + }); + + it('should use the last entry\'s address when URL-like specifiers parse to the same absolute URL', () => { + expect(resolveUnderTest('/test')).toMatchURL('https://example.com/lib/test2.mjs'); + }); + }); +}); diff --git a/tests/wpt/web-platform-tests/import-maps/resources/test-helper.js b/tests/wpt/web-platform-tests/import-maps/resources/test-helper.js new file mode 100644 index 00000000000..2447bfb9435 --- /dev/null +++ b/tests/wpt/web-platform-tests/import-maps/resources/test-helper.js @@ -0,0 +1,205 @@ +let log = []; + +function expect_log(test, expected_log) { + test.step_func_done(() => { + const actual_log = log; + log = []; + assert_array_equals(actual_log, expected_log, 'fallback log'); + })(); +} + +// Results of resolving a specifier using import maps. +const Result = { + // A built-in module (std:blank) is loaded. + BUILTIN: "builtin", + + // A failure considered as a fetch error in a module script tree. + // + + + `; + if (importMapString) { + content += ` + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/animated-occlusion.html b/tests/wpt/web-platform-tests/intersection-observer/v2/animated-occlusion.html new file mode 100644 index 00000000000..c1eafb7fa14 --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/animated-occlusion.html @@ -0,0 +1,72 @@ + + + + + + + +
+
+ + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/blur-filter.html b/tests/wpt/web-platform-tests/intersection-observer/v2/blur-filter.html new file mode 100644 index 00000000000..2f55066e363 --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/blur-filter.html @@ -0,0 +1,64 @@ + + + + + + + +
+
+ + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/box-shadow.html b/tests/wpt/web-platform-tests/intersection-observer/v2/box-shadow.html new file mode 100644 index 00000000000..bcc6980aec3 --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/box-shadow.html @@ -0,0 +1,66 @@ + + + + + + + +
+ + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/cross-origin-effects.sub.html b/tests/wpt/web-platform-tests/intersection-observer/v2/cross-origin-effects.sub.html new file mode 100644 index 00000000000..edb8f023c09 --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/cross-origin-effects.sub.html @@ -0,0 +1,64 @@ + + + + + + + +
+ +
+ + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/cross-origin-occlusion.sub.html b/tests/wpt/web-platform-tests/intersection-observer/v2/cross-origin-occlusion.sub.html new file mode 100644 index 00000000000..6f9fa57fb71 --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/cross-origin-occlusion.sub.html @@ -0,0 +1,68 @@ + + + + + + + + +
+ + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/delay-test.html b/tests/wpt/web-platform-tests/intersection-observer/v2/delay-test.html new file mode 100644 index 00000000000..086301c44d4 --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/delay-test.html @@ -0,0 +1,75 @@ + + + + + + + +
+
+ + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/iframe-target.html b/tests/wpt/web-platform-tests/intersection-observer/v2/iframe-target.html new file mode 100644 index 00000000000..3e53ee5f581 --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/iframe-target.html @@ -0,0 +1,44 @@ + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/simple-effects.html b/tests/wpt/web-platform-tests/intersection-observer/v2/simple-effects.html new file mode 100644 index 00000000000..2b7a83a9c95 --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/simple-effects.html @@ -0,0 +1,71 @@ + + + + + + + +
+
+
+ + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/simple-occlusion-svg-foreign-object.html b/tests/wpt/web-platform-tests/intersection-observer/v2/simple-occlusion-svg-foreign-object.html new file mode 100644 index 00000000000..fcdff67a489 --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/simple-occlusion-svg-foreign-object.html @@ -0,0 +1,70 @@ + + + + + + + +
+ + +
+
+
+ + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/simple-occlusion.html b/tests/wpt/web-platform-tests/intersection-observer/v2/simple-occlusion.html new file mode 100644 index 00000000000..ea1ee31ebe4 --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/simple-occlusion.html @@ -0,0 +1,66 @@ + + + + + + + +
+
+ + diff --git a/tests/wpt/web-platform-tests/intersection-observer/v2/text-shadow.html b/tests/wpt/web-platform-tests/intersection-observer/v2/text-shadow.html new file mode 100644 index 00000000000..c6445c514ee --- /dev/null +++ b/tests/wpt/web-platform-tests/intersection-observer/v2/text-shadow.html @@ -0,0 +1,69 @@ + + + + + + + +
O
+ + diff --git a/tests/wpt/web-platform-tests/layout-stability/buffer-layout-jank.html b/tests/wpt/web-platform-tests/layout-stability/buffer-layout-jank.html new file mode 100644 index 00000000000..f5818cfbc64 --- /dev/null +++ b/tests/wpt/web-platform-tests/layout-stability/buffer-layout-jank.html @@ -0,0 +1,39 @@ + + +Layout Jank: query jank via the performance timeline + + +
+ + + + + + + diff --git a/tests/wpt/web-platform-tests/layout-stability/observe-layoutjank.html b/tests/wpt/web-platform-tests/layout-stability/observe-layoutjank.html new file mode 100644 index 00000000000..1a0533ac703 --- /dev/null +++ b/tests/wpt/web-platform-tests/layout-stability/observe-layoutjank.html @@ -0,0 +1,34 @@ + + +Layout Jank: observe jank fraction via PerformanceObserver + + +
+ + + + + diff --git a/tests/wpt/web-platform-tests/layout-stability/resources/slow-image.py b/tests/wpt/web-platform-tests/layout-stability/resources/slow-image.py new file mode 100644 index 00000000000..ee7988c551f --- /dev/null +++ b/tests/wpt/web-platform-tests/layout-stability/resources/slow-image.py @@ -0,0 +1,6 @@ +import time + +def main(request, response): + # Sleep for 3s to delay onload. + time.sleep(3) + return [], "" \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/layout-stability/supported-layout-type.html b/tests/wpt/web-platform-tests/layout-stability/supported-layout-type.html new file mode 100644 index 00000000000..e3204b52f78 --- /dev/null +++ b/tests/wpt/web-platform-tests/layout-stability/supported-layout-type.html @@ -0,0 +1,17 @@ + + +PerformanceObserver.supportedEntryTypes contains "layoutJank" + + + + + + + diff --git a/tests/wpt/web-platform-tests/lint.whitelist b/tests/wpt/web-platform-tests/lint.whitelist index 64ff0296a46..0d066ac741f 100644 --- a/tests/wpt/web-platform-tests/lint.whitelist +++ b/tests/wpt/web-platform-tests/lint.whitelist @@ -174,6 +174,7 @@ SET TIMEOUT: html/webappapis/scripting/events/event-handler-processing-algorithm SET TIMEOUT: html/webappapis/scripting/processing-model-2/* SET TIMEOUT: IndexedDB/* SET TIMEOUT: infrastructure/* +SET TIMEOUT: intersection-observer/resources/v2-subframe.html SET TIMEOUT: intersection-observer/target-in-different-window.html SET TIMEOUT: media-source/mediasource-util.js SET TIMEOUT: media-source/URL-createObjectURL-revoke.html diff --git a/tests/wpt/web-platform-tests/payment-method-basic-card/empty-data-manual.https.html b/tests/wpt/web-platform-tests/payment-method-basic-card/empty-data-manual.https.html index 2392553ebd3..ba881ee2366 100644 --- a/tests/wpt/web-platform-tests/payment-method-basic-card/empty-data-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-method-basic-card/empty-data-manual.https.html @@ -39,8 +39,8 @@ const visaCredit = { }; async function getCardResponse(data) { - const method = Object.assign({ data }, methodCard); - const response = await new PaymentRequest([method], defaultDetails).show(); + const payMethod = Object.assign({ data }, method); + const response = await new PaymentRequest([payMethod], details).show(); await response.complete("success"); return response.details; } @@ -54,7 +54,7 @@ function runPromiseTest(button, data, expectedCard = visaCredit, expectedAddress promise_test(async () => { const card = await getCardResponse(data); for (const [member, expectedValue] of Object.entries(expectedCard)) { - const msg = `Expected card.${member} to equal ${expectedValue}.`; + const msg = `Expected "card.${member}" to equal "${expectedValue}".`; assert_equals(card[member], expectedValue, msg); } const { billingAddress } = card; @@ -120,6 +120,11 @@ function runPromiseTest(button, data, expectedCard = visaCredit, expectedAddress Returns a card on any network, because zero length supportedNetworks. +
  • + +
  • diff --git a/tests/wpt/web-platform-tests/payment-method-basic-card/payment-request-canmakepayment-method.https.html b/tests/wpt/web-platform-tests/payment-method-basic-card/payment-request-canmakepayment-method.https.html index a89c63b1bbc..f1b0c28abb8 100644 --- a/tests/wpt/web-platform-tests/payment-method-basic-card/payment-request-canmakepayment-method.https.html +++ b/tests/wpt/web-platform-tests/payment-method-basic-card/payment-request-canmakepayment-method.https.html @@ -33,7 +33,7 @@ promise_test(async t => { function* pmiGenerator(howMany = 256) { for (i = 0; i < howMany; i++) { yield { - supportedMethods: `this-is-not-supported-${i}`, + supportedMethods: `this-is-not-supported`, data: { key: "value" }, }; } diff --git a/tests/wpt/web-platform-tests/payment-request/META.yml b/tests/wpt/web-platform-tests/payment-request/META.yml index 227ca551dc2..558db3e088c 100644 --- a/tests/wpt/web-platform-tests/payment-request/META.yml +++ b/tests/wpt/web-platform-tests/payment-request/META.yml @@ -7,3 +7,4 @@ suggested_reviewers: - romandev - edenchuang - aestes + - danyao diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method-manual.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method-manual.https.html deleted file mode 100644 index a24bac864aa..00000000000 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method-manual.https.html +++ /dev/null @@ -1,95 +0,0 @@ - - -Manual tests for PaymentRequest.abort() method - - - - -

    Manual tests for PaymentRequest.abort() method

    -

    - Click on each button in sequence from top to bottom without refreshing the - page. Each button will bring up the Payment Request UI window and then will - close it automatically. (If a payment sheet stays open, the test has failed.) -

    -
      -
    1. - -
    2. -
    3. - -
    4. -
    5. -
    - - If you find a buggy test, please file a bug - and tag one of the suggested reviewers. - diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html index cf16401d0b0..a8a013165ee 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-abort-method.https.html @@ -47,6 +47,46 @@ promise_test(async t => { const promises = new Set([request.abort(), request.abort(), request.abort()]); assert_equals(promises.size, 3, "Must have three unique objects"); }, "Calling abort() multiple times is always a new object."); + +promise_test(async t => { + const request = new PaymentRequest(defaultMethods, defaultDetails); + const [abortPromise, acceptPromise] = await test_driver.bless( + "show payment request", + () => { + const acceptPromise = request.show() + acceptPromise.catch(() => {}); // no-op, just to silence unhandled rejection in devtools. + const abortPromise = request.abort(); + return [abortPromise, acceptPromise]; + }); + + await abortPromise; + await promise_rejects(t, "AbortError", acceptPromise); + // As request is now "closed", trying to show it will fail + await promise_rejects(t, "InvalidStateError", request.show()); +}, "The same request cannot be shown multiple times."); + +promise_test(async t => { + // request is in "created" state. + const request = new PaymentRequest(defaultMethods, defaultDetails); + await promise_rejects(t, "InvalidStateError", request.abort()); + // Call it again, for good measure. + await promise_rejects(t, "InvalidStateError", request.abort()); + // The request's state is "created", so let's show it + // which changes the state to "interactive.". + const [abortPromise, acceptPromise] = await test_driver.bless( + "show payment request", + () => { + const acceptPromise = request.show() + // Let's set request the state to "closed" by calling .abort() + const abortPromise = request.abort(); + return [abortPromise, acceptPromise]; + }); + + await abortPromise; + // The request is now "closed", so... + await promise_rejects(t, "InvalidStateError", request.abort()); + await promise_rejects(t, "AbortError", acceptPromise); +}, "Aborting a request before it is shown doesn't prevent it from being shown later."); If you find a buggy test, please file a bug diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-manual.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-manual.https.html deleted file mode 100644 index fea45500b18..00000000000 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method-manual.https.html +++ /dev/null @@ -1,105 +0,0 @@ - - -Manual tests for PaymentRequest.canMakePayment() method - - - - - -

    Manual tests for PaymentRequest.canMakePayment() method

    -

    - Click on each button in sequence from top to bottom without refreshing the - page. Each button will bring up the Payment Request UI window and then will - close it automatically. (If a payment sheet stays open, the test has failed.) -

    -
      -
    1. - -
    2. -
    3. - -
    4. -
    5. -
    - - If you find a buggy test, please file a bug - and tag one of the suggested reviewers. - diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html index cc8349a4223..5627f337488 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-canmakepayment-method.https.html @@ -7,6 +7,7 @@ diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-hasenrolledinstrument-method-manual.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-hasenrolledinstrument-method-manual.https.html index a4e8028c07f..e6b164f7cc7 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-hasenrolledinstrument-method-manual.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-hasenrolledinstrument-method-manual.https.html @@ -57,45 +57,6 @@ function testHasEnrolledInstrumentAgain() { ); }, `hasEnrolledInstrument() can be called multiple times if the payment method details are identical.`); } - -function testInteractiveState() { - promise_test(async t => { - const request = new PaymentRequest(defaultMethods, defaultDetails); - const acceptPromise = request.show(); // Sets state to "interactive" - const hasEnrolledInstrumentPromise = request.hasEnrolledInstrument(); - try { - const result = await hasEnrolledInstrumentPromise; - assert_true( - false, - "hasEnrolledInstrument() should have thrown InvalidStateError" - ); - } catch(err) { - await promise_rejects(t, "InvalidStateError", hasEnrolledInstrumentPromise); - } finally { - request.abort(); - await promise_rejects(t, "AbortError", acceptPromise); - } - }, `If request.[[state]] is "interactive", then return a promise rejected with an "InvalidStateError" DOMException.`); -} - -function testClosedState() { - promise_test(async t => { - const request = new PaymentRequest(defaultMethods, defaultDetails); - const acceptPromise = request.show(); // Sets state to "interactive" - acceptPromise.catch(() => {}); // no-op, just to handle unhandled rejection in devtools. - await request.abort(); // Sets state to "closed" - const hasEnrolledInstrumentPromise = request.hasEnrolledInstrument(); - try { - const result = await hasEnrolledInstrumentPromise; - assert_true( - false, - "hasEnrolledInstrument() should have thrown InvalidStateError" - ); - } catch(err) { - await promise_rejects(t, "InvalidStateError", hasEnrolledInstrumentPromise); - } - }, `If request.[[state]] is "closed", then return a promise rejected with an "InvalidStateError" DOMException.`); -}

    Manual tests for hasEnrolledInstrument() method

    @@ -124,18 +85,6 @@ function testClosedState() { details are identical. -
  • - -
  • -
  • - -
  • diff --git a/tests/wpt/web-platform-tests/payment-request/payment-request-hasenrolledinstrument-method.https.html b/tests/wpt/web-platform-tests/payment-request/payment-request-hasenrolledinstrument-method.https.html index c5139950d53..c1f7b27a22b 100644 --- a/tests/wpt/web-platform-tests/payment-request/payment-request-hasenrolledinstrument-method.https.html +++ b/tests/wpt/web-platform-tests/payment-request/payment-request-hasenrolledinstrument-method.https.html @@ -7,10 +7,19 @@ diff --git a/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html b/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html index 06c1f7383a0..3c7e85ba970 100644 --- a/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html +++ b/tests/wpt/web-platform-tests/payment-request/rejects_if_not_active.https.html @@ -1,12 +1,11 @@ - PaymentRequest show() rejects if doc is not fully active + - + + + + +

    PaymentRequest show() rejects if doc is not fully active

    +

    + Click on each button in sequence from top to bottom without refreshing the + page. Each button will bring up the Payment Request UI window and then will + close it automatically. (If a payment sheet stays open, the test has failed.) +

    +
      +
    1. + +
    2. +
    3. + +
    4. +
    5. +
    + + If you find a buggy test, please file a bug + and tag one of the suggested reviewers. + diff --git a/tests/wpt/web-platform-tests/picture-in-picture/disable-picture-in-picture.html b/tests/wpt/web-platform-tests/picture-in-picture/disable-picture-in-picture.html index 31e0d12ad77..5075c011632 100644 --- a/tests/wpt/web-platform-tests/picture-in-picture/disable-picture-in-picture.html +++ b/tests/wpt/web-platform-tests/picture-in-picture/disable-picture-in-picture.html @@ -47,7 +47,9 @@ promise_test(async t => { return requestPictureInPictureWithTrustedClick(video) .then(() => { video.disablePictureInPicture = true; - assert_equals(document.pictureInPictureElement, null); + video.addEventListener('leavepictureinpicture', t.step_func(() => { + assert_equals(document.pictureInPictureElement, null); + })); }); }, 'pictureInPictureElement is unset if disablePictureInPicture becomes true'); diff --git a/tests/wpt/web-platform-tests/screen-orientation/lock-basic.html b/tests/wpt/web-platform-tests/screen-orientation/lock-basic.html index 5b30459bf7f..c42aba783e4 100644 --- a/tests/wpt/web-platform-tests/screen-orientation/lock-basic.html +++ b/tests/wpt/web-platform-tests/screen-orientation/lock-basic.html @@ -1,6 +1,8 @@ + + diff --git a/tests/wpt/web-platform-tests/screen-orientation/onchange-event.html b/tests/wpt/web-platform-tests/screen-orientation/onchange-event.html index 538fafc41ec..401af096631 100644 --- a/tests/wpt/web-platform-tests/screen-orientation/onchange-event.html +++ b/tests/wpt/web-platform-tests/screen-orientation/onchange-event.html @@ -3,13 +3,20 @@ diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https.html index caa4f9445d3..83e5f4540d1 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https.html @@ -141,12 +141,12 @@ function client_message_queue_enable_test( earliest_dispatch, description) { - function later_state(state1, state2) { + function assert_state_less_than_equal(state1, state2, explanation) { const states = ['init', 'install', 'start', 'finish', 'loaded']; const index1 = states.indexOf(state1); const index2 = states.indexOf(state2); - const max_index = Math.max(index1, index2); - return states[max_index]; + if (index1 > index2) + assert_unreached(explanation); } client_message_queue_test('enable-client-message-queue.html', async t => { @@ -161,12 +161,13 @@ function client_message_queue_enable_test( // Wait for all messages to get dispatched on the child's // ServiceWorkerContainer and then verify that each message - // was dispatched while the child was in the correct state. + // was dispatched after |earliest_dispatch|. const report = await t.frame.report; ['init', 'install', 'start'].forEach(state => { - const dispatch = later_state(state, earliest_dispatch); - assert_equals(report[state], dispatch, - `Message sent in state '${state}' dispatched in state '${dispatch}'`); + const explanation = `Message sent in state '${state}' was dispatched in '${report[state]}', should be dispatched no earlier than '${earliest_dispatch}'`; + assert_state_less_than_equal(earliest_dispatch, + report[state], + explanation); }); }, description); } diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh b/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh index 7c953940cb3..bb95df83295 100755 --- a/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh +++ b/tests/wpt/web-platform-tests/signed-exchange/resources/generate-test-sxgs.sh @@ -272,4 +272,7 @@ gen-signedexchange \ -miRecordSize 100 \ -ignoreErrors true +# Signed Exchange with payload integrity error. +echo 'garbage' | cat sxg/sxg-location.sxg - >sxg/sxg-merkle-integrity-error.sxg + rm -fr $tmpdir diff --git a/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-merkle-integrity-error.sxg b/tests/wpt/web-platform-tests/signed-exchange/resources/sxg/sxg-merkle-integrity-error.sxg new file mode 100644 index 0000000000000000000000000000000000000000..0c6dce01da270bdacf5d280551d56d1519aff3a3 GIT binary patch literal 999 zcmb7COKTHR6iyKovJ?>)F2*YKIgd;-Hm^xZQZx3O%ww z8(Jxbg5>Fn(##cCa+^z9F`H8&jrd}r>erjuf!IYc32rSdXM5FBq(6uAdSe4?)ofAE zZfp4kyS%0?3`$DW^`$7lnzY@Fml89j?Lm`YuGGY`Tdzs3Je^{8fMseX83a?v#Pu^1u8`3@1A|wW<3j#j*D!LP{_aB z`(rbQeVy~5&8ck{jkt%+=f0HY$UT>T0H=mrr*O4Ud+-a$`By*r+K?K#>WjiAgM&$qidDZilHKZ)2g+ zs3|84ndXN@;WSo}>5)vhZ#tUW=YXauJ9M(LiRpk4O-|SlV{q-o^P|Ia?%|u=$ioYl z$G(5K|M}T@KmU4u>gvnK4>E=hCuW&R7$Bz@Im7IR8Rqzpqvit6a}l8zCY69phm*m3 za4c5^#B`k`qq%C&rf_bQ;tT{kvnO>lgdg8di)Vi^Ki?hQOWe75@bsIQeZPPA=9m3f zpQ6gwGd~c5=oC)?2~r~p6W{6p%W4C)n`CH&;oej#yf-_HX_)3mUg!X|>6GE$QRP*A literal 0 HcmV?d00001 diff --git a/tests/wpt/web-platform-tests/signed-exchange/sxg-merkle-integrity-error.tentative.html b/tests/wpt/web-platform-tests/signed-exchange/sxg-merkle-integrity-error.tentative.html new file mode 100644 index 00000000000..5f923d20542 --- /dev/null +++ b/tests/wpt/web-platform-tests/signed-exchange/sxg-merkle-integrity-error.tentative.html @@ -0,0 +1,24 @@ + +SignedHTTPExchange with payload integrity error + + + + + + + diff --git a/tests/wpt/web-platform-tests/signed-exchange/sxg-prefetch-merkle-integrity-error.tentative.html b/tests/wpt/web-platform-tests/signed-exchange/sxg-prefetch-merkle-integrity-error.tentative.html new file mode 100644 index 00000000000..2086c38545d --- /dev/null +++ b/tests/wpt/web-platform-tests/signed-exchange/sxg-prefetch-merkle-integrity-error.tentative.html @@ -0,0 +1,26 @@ + +Prefetching SignedHTTPExchange with payload integrity error should fail + + + + + + + diff --git a/tests/wpt/web-platform-tests/tools/wpt/browser.py b/tests/wpt/web-platform-tests/tools/wpt/browser.py index 5f711f47580..c4469800608 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/browser.py +++ b/tests/wpt/web-platform-tests/tools/wpt/browser.py @@ -469,7 +469,7 @@ class Chrome(Browser): return None m = re.match(r"Google Chrome (.*)", version_string) if not m: - self.logger.warning("Failed to extract version from: s%", version_string) + self.logger.warning("Failed to extract version from: %s", version_string) return None return m.group(1) self.logger.warning("Unable to extract version from binary on Windows.") @@ -667,7 +667,7 @@ class Safari(Browser): return None m = re.match(r"Included with Safari (.*)", version_string) if not m: - self.logger.warning("Failed to extract version from: s%", version_string) + self.logger.warning("Failed to extract version from: %s", version_string) return None return m.group(1) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py index 1b4c0b93cbe..5791cdae957 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py @@ -511,12 +511,13 @@ class MarionetteProtocol(Protocol): pass def teardown(self): - try: - self.marionette._request_in_app_shutdown() - self.marionette.delete_session(send_request=False) - except Exception: - # This is typically because the session never started - pass + if self.marionette and self.marionette.session_id: + try: + self.marionette._request_in_app_shutdown() + self.marionette.delete_session(send_request=False) + except Exception: + # This is typically because the session never started + pass if self.marionette is not None: del self.marionette super(MarionetteProtocol, self).teardown() @@ -769,9 +770,10 @@ class MarionetteRefTestExecutor(RefTestExecutor): def teardown(self): try: self.implementation.teardown() - handles = self.protocol.marionette.window_handles - if handles: - self.protocol.marionette.switch_to_window(handles[0]) + if self.protocol.marionette and self.protocol.marionette.session_id: + handles = self.protocol.marionette.window_handles + if handles: + self.protocol.marionette.switch_to_window(handles[0]) super(self.__class__, self).teardown() except Exception as e: # Ignore errors during teardown @@ -877,8 +879,9 @@ class InternalRefTestImplementation(object): def teardown(self): try: - self.executor.protocol.marionette._send_message("reftest:teardown", {}) - self.executor.protocol.marionette.set_context(self.executor.protocol.marionette.CONTEXT_CONTENT) + if self.executor.protocol.marionette and self.executor.protocol.marionette.session_id: + self.executor.protocol.marionette._send_message("reftest:teardown", {}) + self.executor.protocol.marionette.set_context(self.executor.protocol.marionette.CONTEXT_CONTENT) except Exception as e: # Ignore errors during teardown self.logger.warning(traceback.format_exc(e)) diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py index 74a7cc4b7fc..aa3565e5726 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py @@ -54,18 +54,11 @@ class Protocol(object): msg = "Post-connection steps failed" self.after_connect() - except IOError: - self.logger.warning("Timed out waiting for browser to start") - self.executor.runner.send_message("init_failed") - return except Exception: if msg is not None: self.logger.warning(msg) - self.logger.error(traceback.format_exc()) - self.executor.runner.send_message("init_failed") - return - else: - self.executor.runner.send_message("init_succeeded") + self.logger.warning(traceback.format_exc()) + raise @abstractmethod def connect(self): diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py index d3a62646278..05b3190a5f4 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py @@ -70,7 +70,13 @@ class TestRunner(object): def setup(self): self.logger.debug("Executor setup") - self.executor.setup(self) + try: + self.executor.setup(self) + except Exception: + # The caller is responsible for logging the exception if required + self.send_message("init_failed") + else: + self.send_message("init_succeeded") self.logger.debug("Executor setup done") def teardown(self):