From 1a24e35f18a311873ee77ffb5f046abea033a341 Mon Sep 17 00:00:00 2001 From: WPT Sync Bot Date: Tue, 16 Jun 2020 08:20:51 +0000 Subject: [PATCH] Update web-platform-tests to revision 4af6af604800559d2c58cf3561621ae43e28aaa8 --- .../url/url-in-tags-revoke.window.js.ini | 2 +- ....html.ini => hit-test-floats-003.html.ini} | 2 +- .../transform-box/cssbox-border-box.html.ini | 2 + .../transform-box/cssbox-content-box.html.ini | 2 + .../transform-box/cssbox-fill-box.html.ini | 2 + .../transform-box/cssbox-initial.html.ini | 2 + .../transform-box/cssbox-stroke-box.html.ini | 2 + .../transform-box/cssbox-view-box.html.ini | 2 + .../transform-box/svgbox-border-box.html.ini | 2 + .../transform-box/svgbox-content-box.html.ini | 2 + .../transform-box/svgbox-fill-box.html.ini | 2 + .../transform-box/svgbox-initial.html.ini | 2 + .../transform-box/svgbox-stroke-box.html.ini | 2 + .../transform-box/svgbox-view-box.html.ini | 2 + .../cssom-view/elementFromPoint-001.html.ini | 4 + .../cssom-view/elementFromPosition.html.ini | 3 + .../fetch/content-type/response.window.js.ini | 19 +- .../fetch/content-type/script.window.js.ini | 3 + .../nosniff/parsing-nosniff.window.js.ini | 3 + .../traverse_the_history_1.html.ini | 4 - .../traverse_the_history_3.html.ini | 4 - .../getter.html.ini | 301 ++++++++++ .../supported-elements.html.ini | 12 +- ...rame_sandbox_popups_nonescaping-1.html.ini | 2 +- ...rame_sandbox_popups_nonescaping-2.html.ini | 1 + .../form-double-submit-3.html.ini | 4 - .../execution-timing/077.html.ini | 4 - .../module-static-import-delayed.html.ini | 4 - .../promise-job-entry.html.ini | 5 +- ...grade-request-to-cross-origin.sub.html.ini | 5 + ...request-to-same-origin.sub.https.html.ini} | 5 +- .../webmessaging/with-ports/017.html.ini | 5 - .../webmessaging/with-ports/018.html.ini | 5 - .../webmessaging/without-ports/017.html.ini | 5 - .../webmessaging/without-ports/018.html.ini | 5 - .../semantics/run-a-worker/003.html.ini | 1 - .../url/url-in-tags-revoke.window.js.ini | 2 +- tests/wpt/metadata/MANIFEST.json | 462 +++++++++++++-- ....html.ini => hit-test-floats-003.html.ini} | 2 +- .../transform-box/cssbox-border-box.html.ini | 2 + .../transform-box/cssbox-content-box.html.ini | 2 + .../transform-box/cssbox-fill-box.html.ini | 2 + .../transform-box/cssbox-initial.html.ini | 2 + .../transform-box/cssbox-stroke-box.html.ini | 2 + .../transform-box/cssbox-view-box.html.ini | 2 + .../transform-box/svgbox-border-box.html.ini | 2 + .../transform-box/svgbox-content-box.html.ini | 2 + .../transform-box/svgbox-fill-box.html.ini | 2 + .../transform-box/svgbox-initial.html.ini | 2 + .../transform-box/svgbox-stroke-box.html.ini | 2 + .../transform-box/svgbox-view-box.html.ini | 2 + .../cssom-view/elementFromPoint-001.html.ini | 4 + .../cssom-view/elementFromPosition.html.ini | 3 + .../fetch/content-type/response.window.js.ini | 19 +- .../fetch/content-type/script.window.js.ini | 3 + .../nosniff/parsing-nosniff.window.js.ini | 3 + .../traverse_the_history_1.html.ini | 4 - .../traverse_the_history_3.html.ini | 4 - .../getter.html.ini | 9 - .../supported-elements.html.ini | 12 +- ...rame_sandbox_popups_nonescaping-1.html.ini | 2 +- ...rame_sandbox_popups_nonescaping-2.html.ini | 1 + .../form-double-submit-3.html.ini | 4 - .../execution-timing/077.html.ini | 4 - .../module-static-import-delayed.html.ini | 4 - .../promise-job-entry.html.ini | 5 +- ...grade-request-to-cross-origin.sub.html.ini | 5 + ...-request-to-same-origin.sub.https.html.ini | 5 + .../webmessaging/with-ports/017.html.ini | 5 - .../webmessaging/with-ports/018.html.ini | 5 - .../webmessaging/without-ports/017.html.ini | 5 - .../webmessaging/without-ports/018.html.ini | 5 - .../semantics/run-a-worker/003.html.ini | 1 - .../beacon/resources/beacon.py | 61 +- .../beacon/resources/content-type.py | 22 +- .../beacon/resources/inspect-header.py | 22 +- ...erflowed-block-with-no-room-after-000.html | 12 + ...erflowed-block-with-no-room-after-001.html | 14 + .../overflowed-block-with-room-after-000.html | 16 + .../overflowed-block-with-room-after-001.html | 15 + .../overflowed-block-with-room-after-002.html | 15 + .../overflowed-block-with-room-after-003.html | 18 + .../overflowed-block-with-room-after-004.html | 18 + .../css/css-contain/counter-scoping-002.html | 2 +- .../parsing/counter-set-computed.html | 23 + .../transform-box/cssbox-border-box.html | 30 + .../transform-box/cssbox-content-box.html | 30 + .../transform-box/cssbox-fill-box.html | 30 + .../transform-box/cssbox-initial.html | 29 + .../transform-box/cssbox-stroke-box.html | 30 + .../transform-box/cssbox-view-box.html | 30 + .../transform-box/reference/cssbox-ref.html | 14 + .../transform-box/reference/svgbox-ref.html | 14 + .../transform-box/svgbox-border-box.html | 28 + .../transform-box/svgbox-content-box.html | 28 + .../transform-box/svgbox-fill-box.html | 28 + .../transform-box/svgbox-initial.html | 27 + .../transform-box/svgbox-stroke-box.html | 28 + .../transform-box/svgbox-view-box.html | 28 + .../Document-getAnimations.tentative.html | 7 +- .../properties/counter-set.html | 24 + .../docs/writing-tests/general-guidelines.md | 2 +- .../docs/writing-tests/lint-tool.md | 38 +- .../docs/writing-tests/testharness-api.md | 43 +- ...es-after-execCommand-delete.tentative.html | 340 +++++++++++ ...r-execCommand-forwarddelete.tentative.html | 356 ++++++++++++ ...execCommand-insertlinebreak.tentative.html | 150 +++++ ...execCommand-insertparagraph.tentative.html | 72 +++ ...fter-execCommand-inserttext.tentative.html | 526 ++++++++++++++++++ .../fetch/api/resources/trickle.py | 8 +- .../none.https.html | 6 +- .../require-corp-about-blank.html | 23 +- .../require-corp-about-srcdoc.html | 22 +- .../require-corp.https.html | 35 +- .../coop-sandbox.https.html | 3 +- ...-origin-non-initial-about-blank.https.html | 12 +- ...quee-adopt-to-inactive-document-crash.html | 9 + tests/wpt/web-platform-tests/lint.ignore | 5 +- ...ic-radical-paint-invalidation-001-ref.html | 125 +++++ ...ynamic-radical-paint-invalidation-001.html | 166 ++++++ ...e-upgrade-request-to-cross-origin.sub.html | 26 + ...e-request-to-cross-origin.sub.html.headers | 1 + ...ade-request-to-same-origin.sub.https.html} | 9 +- ...est-to-same-origin.sub.https.html.headers} | 0 .../generic/iframe-upgrade-request.sub.html | 22 - ...ame-upgrade-request.sub.https.html.headers | 2 - .../generic/resources/referrer.py | 9 +- .../test/tests/functional/step_wait.html | 59 ++ .../test/tests/functional/step_wait_func.html | 50 ++ .../resources/testharness.js | 99 ++++ .../web-platform-tests/tools/wpt/browser.py | 33 +- .../url/urlencoded-parser.any.js | 6 +- .../url/urlsearchparams-constructor.any.js | 22 + .../url/urlsearchparams-stringifier.any.js | 12 + ...ve.html => receiver-track-live.https.html} | 0 .../workers/baseurl/beta/import.py | 2 +- .../workers/baseurl/beta/importScripts.py | 2 +- .../workers/baseurl/beta/sharedworker.py | 2 +- .../workers/baseurl/beta/worker.py | 2 +- .../workers/baseurl/beta/xhr-worker.py | 2 +- .../workers/baseurl/beta/xhr.py | 2 +- .../location/helper-redirect.py | 2 +- .../modules/resources/export-credentials.py | 14 +- .../resources/export-referrer-checker.py | 8 +- .../resources/postmessage-credentials.py | 28 +- .../resources/postmessage-referrer-checker.py | 22 +- .../workers/semantics/encodings/003-1.py | 2 +- .../workers/support/imported_script.py | 2 +- .../workers/support/nosiniff-error-worker.py | 4 +- .../send-data-string-invalid-unicode.any.js | 46 ++ 150 files changed, 3695 insertions(+), 413 deletions(-) rename tests/wpt/metadata-layout-2020/css/CSS2/floats/{hit-test-floats-004.html.ini => hit-test-floats-003.html.ini} (67%) create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-border-box.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-content-box.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-fill-box.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-initial.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-stroke-box.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-view-box.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-border-box.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-content-box.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-fill-box.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-initial.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-stroke-box.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-view-box.html.ini create mode 100644 tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini create mode 100644 tests/wpt/metadata-layout-2020/html/dom/elements/the-innertext-idl-attribute/getter.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/execution-timing/077.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini create mode 100644 tests/wpt/metadata-layout-2020/referrer-policy/generic/iframe-upgrade-request-to-cross-origin.sub.html.ini rename tests/wpt/{metadata/referrer-policy/generic/iframe-upgrade-request.sub.https.html.ini => metadata-layout-2020/referrer-policy/generic/iframe-upgrade-request-to-same-origin.sub.https.html.ini} (61%) delete mode 100644 tests/wpt/metadata-layout-2020/webmessaging/with-ports/017.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/webmessaging/with-ports/018.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini delete mode 100644 tests/wpt/metadata-layout-2020/webmessaging/without-ports/018.html.ini rename tests/wpt/metadata/css/CSS2/floats/{hit-test-floats-004.html.ini => hit-test-floats-003.html.ini} (67%) create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/cssbox-border-box.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/cssbox-content-box.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/cssbox-fill-box.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/cssbox-initial.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/cssbox-stroke-box.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/cssbox-view-box.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/svgbox-border-box.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/svgbox-content-box.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/svgbox-fill-box.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/svgbox-initial.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/svgbox-stroke-box.html.ini create mode 100644 tests/wpt/metadata/css/css-transforms/transform-box/svgbox-view-box.html.ini create mode 100644 tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini delete mode 100644 tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini delete mode 100644 tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini delete mode 100644 tests/wpt/metadata/html/semantics/forms/form-submission-0/form-double-submit-3.html.ini delete mode 100644 tests/wpt/metadata/html/semantics/scripting-1/the-script-element/execution-timing/077.html.ini delete mode 100644 tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini create mode 100644 tests/wpt/metadata/referrer-policy/generic/iframe-upgrade-request-to-cross-origin.sub.html.ini create mode 100644 tests/wpt/metadata/referrer-policy/generic/iframe-upgrade-request-to-same-origin.sub.https.html.ini delete mode 100644 tests/wpt/metadata/webmessaging/with-ports/017.html.ini delete mode 100644 tests/wpt/metadata/webmessaging/with-ports/018.html.ini delete mode 100644 tests/wpt/metadata/webmessaging/without-ports/017.html.ini delete mode 100644 tests/wpt/metadata/webmessaging/without-ports/018.html.ini create mode 100644 tests/wpt/web-platform-tests/css/css-break/overflowed-block-with-no-room-after-000.html create mode 100644 tests/wpt/web-platform-tests/css/css-break/overflowed-block-with-no-room-after-001.html create mode 100644 tests/wpt/web-platform-tests/css/css-break/overflowed-block-with-room-after-000.html create mode 100644 tests/wpt/web-platform-tests/css/css-break/overflowed-block-with-room-after-001.html create mode 100644 tests/wpt/web-platform-tests/css/css-break/overflowed-block-with-room-after-002.html create mode 100644 tests/wpt/web-platform-tests/css/css-break/overflowed-block-with-room-after-003.html create mode 100644 tests/wpt/web-platform-tests/css/css-break/overflowed-block-with-room-after-004.html create mode 100644 tests/wpt/web-platform-tests/css/css-lists/parsing/counter-set-computed.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/cssbox-border-box.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/cssbox-content-box.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/cssbox-fill-box.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/cssbox-initial.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/cssbox-stroke-box.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/cssbox-view-box.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/reference/cssbox-ref.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/reference/svgbox-ref.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/svgbox-border-box.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/svgbox-content-box.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/svgbox-fill-box.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/svgbox-initial.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/svgbox-stroke-box.html create mode 100644 tests/wpt/web-platform-tests/css/css-transforms/transform-box/svgbox-view-box.html create mode 100644 tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/counter-set.html create mode 100644 tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-delete.tentative.html create mode 100644 tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-forwarddelete.tentative.html create mode 100644 tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-insertlinebreak.tentative.html create mode 100644 tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-insertparagraph.tentative.html create mode 100644 tests/wpt/web-platform-tests/editing/other/white-spaces-after-execCommand-inserttext.tentative.html create mode 100644 tests/wpt/web-platform-tests/html/obsolete/requirements-for-implementations/the-marquee-element-0/marquee-adopt-to-inactive-document-crash.html create mode 100644 tests/wpt/web-platform-tests/mathml/presentation-markup/radicals/dynamic-radical-paint-invalidation-001-ref.html create mode 100644 tests/wpt/web-platform-tests/mathml/presentation-markup/radicals/dynamic-radical-paint-invalidation-001.html create mode 100644 tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-cross-origin.sub.html create mode 100644 tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-cross-origin.sub.html.headers rename tests/wpt/web-platform-tests/referrer-policy/generic/{iframe-upgrade-request.sub.https.html => iframe-upgrade-request-to-same-origin.sub.https.html} (75%) rename tests/wpt/web-platform-tests/referrer-policy/generic/{iframe-upgrade-request.sub.html.headers => iframe-upgrade-request-to-same-origin.sub.https.html.headers} (100%) delete mode 100644 tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.html delete mode 100644 tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.https.html.headers create mode 100644 tests/wpt/web-platform-tests/resources/test/tests/functional/step_wait.html create mode 100644 tests/wpt/web-platform-tests/resources/test/tests/functional/step_wait_func.html rename tests/wpt/web-platform-tests/webrtc/{receiver-track-live.html => receiver-track-live.https.html} (100%) create mode 100644 tests/wpt/web-platform-tests/xhr/send-data-string-invalid-unicode.any.js diff --git a/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini index 76b44d9e9cf9..3605e8f3fc99 100644 --- a/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/metadata-layout-2020/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -4,7 +4,7 @@ expected: TIMEOUT [Opening a blob URL in a new window immediately before revoking it works.] - expected: FAIL + expected: TIMEOUT [Fetching a blob URL immediately before revoking it works in an iframe.] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini similarity index 67% rename from tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini rename to tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini index 4bfb0c2053a4..f29da48a2a08 100644 --- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini @@ -1,4 +1,4 @@ -[hit-test-floats-004.html] +[hit-test-floats-003.html] [Miss float below something else] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-border-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-border-box.html.ini new file mode 100644 index 000000000000..709fcddaefb5 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-border-box.html.ini @@ -0,0 +1,2 @@ +[cssbox-border-box.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-content-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-content-box.html.ini new file mode 100644 index 000000000000..39281adef096 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-content-box.html.ini @@ -0,0 +1,2 @@ +[cssbox-content-box.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-fill-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-fill-box.html.ini new file mode 100644 index 000000000000..7331e7a0d1c5 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-fill-box.html.ini @@ -0,0 +1,2 @@ +[cssbox-fill-box.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-initial.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-initial.html.ini new file mode 100644 index 000000000000..5e34c3d474a7 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-initial.html.ini @@ -0,0 +1,2 @@ +[cssbox-initial.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-stroke-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-stroke-box.html.ini new file mode 100644 index 000000000000..7a339b8bc80c --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-stroke-box.html.ini @@ -0,0 +1,2 @@ +[cssbox-stroke-box.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-view-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-view-box.html.ini new file mode 100644 index 000000000000..a54685ae7801 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/cssbox-view-box.html.ini @@ -0,0 +1,2 @@ +[cssbox-view-box.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-border-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-border-box.html.ini new file mode 100644 index 000000000000..8c34a3b478c1 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-border-box.html.ini @@ -0,0 +1,2 @@ +[svgbox-border-box.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-content-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-content-box.html.ini new file mode 100644 index 000000000000..95cc7d4fe16d --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-content-box.html.ini @@ -0,0 +1,2 @@ +[svgbox-content-box.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-fill-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-fill-box.html.ini new file mode 100644 index 000000000000..fe46f80ca70d --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-fill-box.html.ini @@ -0,0 +1,2 @@ +[svgbox-fill-box.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-initial.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-initial.html.ini new file mode 100644 index 000000000000..f26e8f2bf7f0 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-initial.html.ini @@ -0,0 +1,2 @@ +[svgbox-initial.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-stroke-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-stroke-box.html.ini new file mode 100644 index 000000000000..dc663e13f6cf --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-stroke-box.html.ini @@ -0,0 +1,2 @@ +[svgbox-stroke-box.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-view-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-view-box.html.ini new file mode 100644 index 000000000000..2a9e2356590b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-box/svgbox-view-box.html.ini @@ -0,0 +1,2 @@ +[svgbox-view-box.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini new file mode 100644 index 000000000000..e38782d8c85a --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini @@ -0,0 +1,4 @@ +[elementFromPoint-001.html] + [CSSOM View - 5 - extensions to the Document interface] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini index c131078eaceb..23c61ede1a13 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini @@ -17,3 +17,6 @@ [test the top of layer] expected: FAIL + [test some point of the element: top left corner] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini index ef47d932a1ff..7e7bd2ce2870 100644 --- a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini @@ -312,18 +312,27 @@ [Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK] expected: NOTRUN - [ + diff --git a/tests/wpt/web-platform-tests/lint.ignore b/tests/wpt/web-platform-tests/lint.ignore index ae2e266a8ea4..db7f36426b17 100644 --- a/tests/wpt/web-platform-tests/lint.ignore +++ b/tests/wpt/web-platform-tests/lint.ignore @@ -314,6 +314,8 @@ SET TIMEOUT: resources/test/tests/functional/add_cleanup_async.html SET TIMEOUT: resources/test/tests/functional/add_cleanup_async_rejection.html SET TIMEOUT: resources/test/tests/functional/add_cleanup_async_rejection_after_load.html SET TIMEOUT: resources/test/tests/functional/api-tests-1.html +SET TIMEOUT: resources/test/tests/functional/step_wait.html +SET TIMEOUT: resources/test/tests/functional/step_wait_func.html SET TIMEOUT: resources/test/tests/functional/worker.js SET TIMEOUT: resources/test/tests/functional/worker-uncaught-allow.js SET TIMEOUT: resources/test/tests/unit/exceptional-cases.html @@ -765,8 +767,5 @@ TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-under- TESTHARNESS-IN-OTHER-TYPE: svg/extensibility/foreignObject/foreign-object-under-defs-crash.html TESTHARNESS-IN-OTHER-TYPE: svg/svg-in-svg/svg-in-svg-circular-filter-reference-crash.html -TESTHARNESS-PATH: referrer-policy/generic/iframe-upgrade-request.sub.html -TESTHARNESSREPORT-PATH: referrer-policy/generic/iframe-upgrade-request.sub.html - PRINT STATEMENT: webdriver/tests/print/printcmd.py PRINT STATEMENT: webdriver/tests/print/user_prompts.py diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/radicals/dynamic-radical-paint-invalidation-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/radicals/dynamic-radical-paint-invalidation-001-ref.html new file mode 100644 index 000000000000..632d6739db9f --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/radicals/dynamic-radical-paint-invalidation-001-ref.html @@ -0,0 +1,125 @@ + + + + +Dynamic radical: paint invalidation (expectation) + + + +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+ + diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/radicals/dynamic-radical-paint-invalidation-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/radicals/dynamic-radical-paint-invalidation-001.html new file mode 100644 index 000000000000..5ff82f512711 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/radicals/dynamic-radical-paint-invalidation-001.html @@ -0,0 +1,166 @@ + + + + +Dynamic radical: paint invalidation + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+ + + + diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-cross-origin.sub.html b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-cross-origin.sub.html new file mode 100644 index 000000000000..4040072ab9ab --- /dev/null +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-cross-origin.sub.html @@ -0,0 +1,26 @@ + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-cross-origin.sub.html.headers b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-cross-origin.sub.html.headers new file mode 100644 index 000000000000..ad768e632941 --- /dev/null +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-cross-origin.sub.html.headers @@ -0,0 +1 @@ +Referrer-Policy: origin-when-cross-origin diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.https.html b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-same-origin.sub.https.html similarity index 75% rename from tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.https.html rename to tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-same-origin.sub.https.html index 243efb767193..f9163bec546c 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.https.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-same-origin.sub.https.html @@ -10,12 +10,11 @@ const insecure_origin = new URL(location.href).origin.replace("https", "http"); iframe.src = insecure_origin + '/referrer-policy/generic/resources/referrer.py'; - iframe.onload = t.step_func_done(() => { - assert_not_equals(iframe.contentDocument, null, - "The iframe's contentDocument should be accessible"); - assert_equals(iframe.contentDocument.body.textContent, location.href, + addEventListener('message', t.step_func_done(msg => { + const referrer = msg.data; + assert_equals(referrer, location.href, "The referrer header sent for the iframe request should not be redacted"); - }); + })); }, "If an insecure iframe request is upgraded to https to be same-origin, " + "referrer policies that consider same-origin-ness should be applied correctly"); diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.html.headers b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-same-origin.sub.https.html.headers similarity index 100% rename from tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.html.headers rename to tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request-to-same-origin.sub.https.html.headers diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.html b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.html deleted file mode 100644 index 259c14f43e95..000000000000 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.https.html.headers b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.https.html.headers deleted file mode 100644 index fd9ee0f03283..000000000000 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-upgrade-request.sub.https.html.headers +++ /dev/null @@ -1,2 +0,0 @@ -Content-Security-Policy: upgrade-insecure-requests -Referrer-Policy: origin-when-cross-origin diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/resources/referrer.py b/tests/wpt/web-platform-tests/referrer-policy/generic/resources/referrer.py index ada048dc490f..a969b80f54b4 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/resources/referrer.py +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/resources/referrer.py @@ -1,3 +1,10 @@ def main(request, response): response_headers = [(b"Access-Control-Allow-Origin", b"*")] - return (200, response_headers, request.headers.get("referer", "")) + body = """ +

%s

+ + """ % request.headers.get("referer", "") + return (200, response_headers, body) diff --git a/tests/wpt/web-platform-tests/resources/test/tests/functional/step_wait.html b/tests/wpt/web-platform-tests/resources/test/tests/functional/step_wait.html new file mode 100644 index 000000000000..14c41b00d2ac --- /dev/null +++ b/tests/wpt/web-platform-tests/resources/test/tests/functional/step_wait.html @@ -0,0 +1,59 @@ + +Tests for step_wait + + + + +
+ + diff --git a/tests/wpt/web-platform-tests/resources/test/tests/functional/step_wait_func.html b/tests/wpt/web-platform-tests/resources/test/tests/functional/step_wait_func.html new file mode 100644 index 000000000000..b9a488b27f0b --- /dev/null +++ b/tests/wpt/web-platform-tests/resources/test/tests/functional/step_wait_func.html @@ -0,0 +1,50 @@ + +Tests for step_wait_func and step_wait_func_done + + + +
+ + diff --git a/tests/wpt/web-platform-tests/resources/testharness.js b/tests/wpt/web-platform-tests/resources/testharness.js index cf361bac3920..7e2d4600f0f1 100644 --- a/tests/wpt/web-platform-tests/resources/testharness.js +++ b/tests/wpt/web-platform-tests/resources/testharness.js @@ -2035,6 +2035,105 @@ policies and contribution forms [3]. return setTimeout(this.step_func(function() { return f.apply(test_this, args); }), timeout * tests.timeout_multiplier); + }; + + Test.prototype.step_wait_func = function(cond, func, description, + timeout=3000, interval=100) { + /** + * Poll for a function to return true, and call a callback + * function once it does, or assert if a timeout is + * reached. This is preferred over a simple step_timeout + * whenever possible since it allows the timeout to be longer + * to reduce intermittents without compromising test execution + * speed when the condition is quickly met. + * + * @param {Function} cond A function taking no arguments and + * returning a boolean. The callback is called + * when this function returns true. + * @param {Function} func A function taking no arguments to call once + * the condition is met. + * @param {string} description Error message to add to assert in case of + * failure. + * @param {number} timeout Timeout in ms. This is multiplied by the global + * timeout_multiplier + * @param {number} interval Polling interval in ms + * + **/ + + var timeout_full = timeout * tests.timeout_multiplier; + var remaining = Math.ceil(timeout_full / interval); + var test_this = this; + + var wait_for_inner = test_this.step_func(() => { + if (cond()) { + func(); + } else { + if(remaining === 0) { + assert(false, "wait_for", description, + "Timed out waiting on condition"); + } + remaining--; + setTimeout(wait_for_inner, interval); + } + }); + + wait_for_inner(); + }; + + Test.prototype.step_wait_func_done = function(cond, func, description, + timeout=3000, interval=100) { + /** + * Poll for a function to return true, and invoke a callback + * followed this.done() once it does, or assert if a timeout + * is reached. This is preferred over a simple step_timeout + * whenever possible since it allows the timeout to be longer + * to reduce intermittents without compromising test execution speed + * when the condition is quickly met. + * + * @param {Function} cond A function taking no arguments and + * returning a boolean. The callback is called + * when this function returns true. + * @param {Function} func A function taking no arguments to call once + * the condition is met. + * @param {string} description Error message to add to assert in case of + * failure. + * @param {number} timeout Timeout in ms. This is multiplied by the global + * timeout_multiplier + * @param {number} interval Polling interval in ms + * + **/ + + this.step_wait_func(cond, () => { + if (func) { + func(); + } + this.done(); + }, description, timeout, interval); + } + + Test.prototype.step_wait = function(cond, description, timeout=3000, interval=100) { + /** + * Poll for a function to return true, and resolve a promise + * once it does, or assert if a timeout is reached. This is + * preferred over a simple step_timeout whenever possible + * since it allows the timeout to be longer to reduce + * intermittents without compromising test execution speed + * when the condition is quickly met. + * + * @param {Function} cond A function taking no arguments and + * returning a boolean. + * @param {string} description Error message to add to assert in case of + * failure. + * @param {number} timeout Timeout in ms. This is multiplied by the global + * timeout_multiplier + * @param {number} interval Polling interval in ms + * @returns {Promise} Promise resolved once cond is met. + * + **/ + + return new Promise(resolve => { + this.step_wait_func(cond, resolve, description, timeout, interval); + }); } /* diff --git a/tests/wpt/web-platform-tests/tools/wpt/browser.py b/tests/wpt/web-platform-tests/tools/wpt/browser.py index 366dc781d90e..4423afd9c4f7 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/browser.py +++ b/tests/wpt/web-platform-tests/tools/wpt/browser.py @@ -402,23 +402,28 @@ def install_webdriver(self, dest=None, channel=None, browser_binary=None): if dest is None: dest = os.getcwd() + path = None if channel == "nightly": path = self.install_geckodriver_nightly(dest) - if path is not None: - return path - else: + if path is None: self.logger.warning("Nightly webdriver not found; falling back to release") - version = self._latest_geckodriver_version() - format = "zip" if uname[0] == "Windows" else "tar.gz" - self.logger.debug("Latest geckodriver release %s" % version) - url = ("https://github.com/mozilla/geckodriver/releases/download/%s/geckodriver-%s-%s.%s" % - (version, version, self.platform_string_geckodriver(), format)) - if format == "zip": - unzip(get(url).raw, dest=dest) - else: - untar(get(url).raw, dest=dest) - return find_executable(os.path.join(dest, "geckodriver")) + if path is None: + version = self._latest_geckodriver_version() + format = "zip" if uname[0] == "Windows" else "tar.gz" + self.logger.debug("Latest geckodriver release %s" % version) + url = ("https://github.com/mozilla/geckodriver/releases/download/%s/geckodriver-%s-%s.%s" % + (version, version, self.platform_string_geckodriver(), format)) + if format == "zip": + unzip(get(url).raw, dest=dest) + else: + untar(get(url).raw, dest=dest) + path = find_executable(os.path.join(dest, "geckodriver")) + + assert path is not None + self.logger.info("Installed %s" % + subprocess.check_output([path, "--version"]).splitlines()[0]) + return path def install_geckodriver_nightly(self, dest): self.logger.info("Attempting to install webdriver from nightly") @@ -428,7 +433,7 @@ def install_geckodriver_nightly(self, dest): tc_platform = "%s%s" % (self.platform, platform_bits) archive_ext = ".zip" if uname[0] == "Windows" else ".tar.gz" - archive_name = "public/geckodriver%s" % archive_ext + archive_name = "public/build/geckodriver%s" % archive_ext try: resp = get_taskcluster_artifact( diff --git a/tests/wpt/web-platform-tests/url/urlencoded-parser.any.js b/tests/wpt/web-platform-tests/url/urlencoded-parser.any.js index 65e894b94c26..46b932bb0143 100644 --- a/tests/wpt/web-platform-tests/url/urlencoded-parser.any.js +++ b/tests/wpt/web-platform-tests/url/urlencoded-parser.any.js @@ -28,7 +28,11 @@ { "input": '%a=a', "output": [['%a', 'a']] }, { "input": '%a_=a', "output": [['%a_', 'a']] }, { "input": '%61=a', "output": [['a', 'a']] }, - { "input": '%61+%4d%4D=', "output": [['a MM', '']] } + { "input": '%61+%4d%4D=', "output": [['a MM', '']] }, + { "input": "id=0&value=%", "output": [['id', '0'], ['value', '%']] }, + { "input": "b=%2sf%2a", "output": [['b', '%2sf*']]}, + { "input": "b=%2%2af%2a", "output": [['b', '%2*f*']]}, + { "input": "b=%%2a", "output": [['b', '%*']]} ].forEach((val) => { test(() => { let sp = new URLSearchParams(val.input), diff --git a/tests/wpt/web-platform-tests/url/urlsearchparams-constructor.any.js b/tests/wpt/web-platform-tests/url/urlsearchparams-constructor.any.js index 8d855a4fd4d0..1135d5d3dbbf 100644 --- a/tests/wpt/web-platform-tests/url/urlsearchparams-constructor.any.js +++ b/tests/wpt/web-platform-tests/url/urlsearchparams-constructor.any.js @@ -56,6 +56,28 @@ test(function() { assert_false(params.has('c'), 'Search params object did not have the name "c"'); assert_true(params.has(' c'), 'Search params object has name " c"'); assert_true(params.has('møø'), 'Search params object has name "møø"'); + + params = new URLSearchParams('id=0&value=%'); + assert_true(params != null, 'constructor returned non-null value.'); + assert_true(params.has('id'), 'Search params object has name "id"'); + assert_true(params.has('value'), 'Search params object has name "value"'); + assert_equals(params.get('id'), '0'); + assert_equals(params.get('value'), '%'); + + params = new URLSearchParams('b=%2sf%2a'); + assert_true(params != null, 'constructor returned non-null value.'); + assert_true(params.has('b'), 'Search params object has name "b"'); + assert_equals(params.get('b'), '%2sf*'); + + params = new URLSearchParams('b=%2%2af%2a'); + assert_true(params != null, 'constructor returned non-null value.'); + assert_true(params.has('b'), 'Search params object has name "b"'); + assert_equals(params.get('b'), '%2*f*'); + + params = new URLSearchParams('b=%%2a'); + assert_true(params != null, 'constructor returned non-null value.'); + assert_true(params.has('b'), 'Search params object has name "b"'); + assert_equals(params.get('b'), '%*'); }, 'URLSearchParams constructor, string.'); test(function() { diff --git a/tests/wpt/web-platform-tests/url/urlsearchparams-stringifier.any.js b/tests/wpt/web-platform-tests/url/urlsearchparams-stringifier.any.js index ef95c1434c79..bc7bedd533f5 100644 --- a/tests/wpt/web-platform-tests/url/urlsearchparams-stringifier.any.js +++ b/tests/wpt/web-platform-tests/url/urlsearchparams-stringifier.any.js @@ -78,6 +78,9 @@ test(function() { params.delete('a'); params.append('a%b', 'c'); assert_equals(params + '', 'a%25b=c'); + + params = new URLSearchParams('id=0&value=%') + assert_equals(params + '', 'id=0&value=%25') }, 'Serialize %'); test(function() { @@ -107,6 +110,15 @@ test(function() { // The lone '=' _does_ survive the roundtrip. params = new URLSearchParams('a=&a=b'); assert_equals(params.toString(), 'a=&a=b'); + + params = new URLSearchParams('b=%2sf%2a'); + assert_equals(params.toString(), 'b=%252sf*'); + + params = new URLSearchParams('b=%2%2af%2a'); + assert_equals(params.toString(), 'b=%252*f*'); + + params = new URLSearchParams('b=%%2a'); + assert_equals(params.toString(), 'b=%25*'); }, 'URLSearchParams.toString'); test(() => { diff --git a/tests/wpt/web-platform-tests/webrtc/receiver-track-live.html b/tests/wpt/web-platform-tests/webrtc/receiver-track-live.https.html similarity index 100% rename from tests/wpt/web-platform-tests/webrtc/receiver-track-live.html rename to tests/wpt/web-platform-tests/webrtc/receiver-track-live.https.html diff --git a/tests/wpt/web-platform-tests/workers/baseurl/beta/import.py b/tests/wpt/web-platform-tests/workers/baseurl/beta/import.py index db18c830a4e1..cea229dbf371 100644 --- a/tests/wpt/web-platform-tests/workers/baseurl/beta/import.py +++ b/tests/wpt/web-platform-tests/workers/baseurl/beta/import.py @@ -1,3 +1,3 @@ def main(request, response): - return (302, "Moved"), [("Location", "../gamma/import.js")], "postMessage('executed redirecting script');" + return (302, b"Moved"), [(b"Location", b"../gamma/import.js")], u"postMessage('executed redirecting script');" diff --git a/tests/wpt/web-platform-tests/workers/baseurl/beta/importScripts.py b/tests/wpt/web-platform-tests/workers/baseurl/beta/importScripts.py index 75dac194f76d..688427d59da6 100644 --- a/tests/wpt/web-platform-tests/workers/baseurl/beta/importScripts.py +++ b/tests/wpt/web-platform-tests/workers/baseurl/beta/importScripts.py @@ -1,3 +1,3 @@ def main(request, response): - return (302, "Moved"), [("Location", "../gamma/importScripts.js")], "postMessage('executed redirecting script');" + return (302, b"Moved"), [(b"Location", b"../gamma/importScripts.js")], u"postMessage('executed redirecting script');" diff --git a/tests/wpt/web-platform-tests/workers/baseurl/beta/sharedworker.py b/tests/wpt/web-platform-tests/workers/baseurl/beta/sharedworker.py index 875cc9a047ce..bd6f70e7d947 100644 --- a/tests/wpt/web-platform-tests/workers/baseurl/beta/sharedworker.py +++ b/tests/wpt/web-platform-tests/workers/baseurl/beta/sharedworker.py @@ -1,3 +1,3 @@ def main(request, response): - return (302, "Moved"), [("Location", "../gamma/sharedworker.js")], "postMessage('executed redirecting script');" + return (302, b"Moved"), [(b"Location", b"../gamma/sharedworker.js")], u"postMessage('executed redirecting script');" diff --git a/tests/wpt/web-platform-tests/workers/baseurl/beta/worker.py b/tests/wpt/web-platform-tests/workers/baseurl/beta/worker.py index 44baf5203e85..46db05efe5e9 100644 --- a/tests/wpt/web-platform-tests/workers/baseurl/beta/worker.py +++ b/tests/wpt/web-platform-tests/workers/baseurl/beta/worker.py @@ -1,3 +1,3 @@ def main(request, response): - return (302, "Moved"), [("Location", "../gamma/worker.js")], "postMessage('executed redirecting script');" + return (302, b"Moved"), [(b"Location", b"../gamma/worker.js")], u"postMessage('executed redirecting script');" diff --git a/tests/wpt/web-platform-tests/workers/baseurl/beta/xhr-worker.py b/tests/wpt/web-platform-tests/workers/baseurl/beta/xhr-worker.py index 77270536a50d..86c033b985bd 100644 --- a/tests/wpt/web-platform-tests/workers/baseurl/beta/xhr-worker.py +++ b/tests/wpt/web-platform-tests/workers/baseurl/beta/xhr-worker.py @@ -1,2 +1,2 @@ def main(request, response): - return (302, "Moved"), [("Location", "../gamma/xhr-worker.js")], "postMessage('executed redirecting script');" + return (302, b"Moved"), [(b"Location", b"../gamma/xhr-worker.js")], u"postMessage('executed redirecting script');" diff --git a/tests/wpt/web-platform-tests/workers/baseurl/beta/xhr.py b/tests/wpt/web-platform-tests/workers/baseurl/beta/xhr.py index de3f04ed0e21..11d6eb776a4a 100644 --- a/tests/wpt/web-platform-tests/workers/baseurl/beta/xhr.py +++ b/tests/wpt/web-platform-tests/workers/baseurl/beta/xhr.py @@ -1,3 +1,3 @@ def main(request, response): - return (302, "Moved"), [("Location", "../gamma/xhr.js")], "postMessage('executed redirecting script');" + return (302, b"Moved"), [(b"Location", b"../gamma/xhr.js")], u"postMessage('executed redirecting script');" diff --git a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/location/helper-redirect.py b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/location/helper-redirect.py index eb1599a577fb..c8cd3543487b 100644 --- a/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/location/helper-redirect.py +++ b/tests/wpt/web-platform-tests/workers/interfaces/WorkerGlobalScope/location/helper-redirect.py @@ -1,3 +1,3 @@ def main(request, response): response.status = 302 - response.headers.append("Location", "post-location-members.js?a") + response.headers.append(b"Location", b"post-location-members.js?a") diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/export-credentials.py b/tests/wpt/web-platform-tests/workers/modules/resources/export-credentials.py index be6d2ff2fc17..3d0ba778d13d 100644 --- a/tests/wpt/web-platform-tests/workers/modules/resources/export-credentials.py +++ b/tests/wpt/web-platform-tests/workers/modules/resources/export-credentials.py @@ -1,15 +1,15 @@ def main(request, response): - cookie = request.cookies.first("COOKIE_NAME", None) + cookie = request.cookies.first(b"COOKIE_NAME", None) - response_headers = [("Content-Type", "text/javascript"), - ("Access-Control-Allow-Credentials", "true")] + response_headers = [(b"Content-Type", b"text/javascript"), + (b"Access-Control-Allow-Credentials", b"true")] - origin = request.headers.get("Origin", None) + origin = request.headers.get(b"Origin", None) if origin: - response_headers.append(("Access-Control-Allow-Origin", origin)) + response_headers.append((b"Access-Control-Allow-Origin", origin)) - cookie_value = ''; + cookie_value = b''; if cookie: cookie_value = cookie.value; return (200, response_headers, - "export const cookie = '"+cookie_value+"';") + b"export const cookie = '"+cookie_value+b"';") diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/export-referrer-checker.py b/tests/wpt/web-platform-tests/workers/modules/resources/export-referrer-checker.py index 2928d28aff53..3b0fda1aa6a3 100644 --- a/tests/wpt/web-platform-tests/workers/modules/resources/export-referrer-checker.py +++ b/tests/wpt/web-platform-tests/workers/modules/resources/export-referrer-checker.py @@ -1,9 +1,9 @@ # Returns a worker script that posts the request's referrer header. def main(request, response): - referrer = request.headers.get("referer", "") + referrer = request.headers.get(b"referer", b"") - response_headers = [("Content-Type", "text/javascript"), - ("Access-Control-Allow-Origin", "*")] + response_headers = [(b"Content-Type", b"text/javascript"), + (b"Access-Control-Allow-Origin", b"*")] return (200, response_headers, - "export const referrer = '"+referrer+"';") + b"export const referrer = '"+referrer+b"';") diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/postmessage-credentials.py b/tests/wpt/web-platform-tests/workers/modules/resources/postmessage-credentials.py index 8fe46bddc80c..a054a1a923cb 100644 --- a/tests/wpt/web-platform-tests/workers/modules/resources/postmessage-credentials.py +++ b/tests/wpt/web-platform-tests/workers/modules/resources/postmessage-credentials.py @@ -1,22 +1,22 @@ def main(request, response): - cookie = request.cookies.first("COOKIE_NAME", None) + cookie = request.cookies.first(b"COOKIE_NAME", None) - response_headers = [("Content-Type", "text/javascript"), - ("Access-Control-Allow-Credentials", "true")] + response_headers = [(b"Content-Type", b"text/javascript"), + (b"Access-Control-Allow-Credentials", b"true")] - origin = request.headers.get("Origin", None) + origin = request.headers.get(b"Origin", None) if origin: - response_headers.append(("Access-Control-Allow-Origin", origin)) + response_headers.append((b"Access-Control-Allow-Origin", origin)) - cookie_value = ''; + cookie_value = b''; if cookie: cookie_value = cookie.value; return (200, response_headers, - "if ('DedicatedWorkerGlobalScope' in self &&" + - " self instanceof DedicatedWorkerGlobalScope) {" + - " postMessage('"+cookie_value+"');" + - "} else if (" + - " 'SharedWorkerGlobalScope' in self &&" + - " self instanceof SharedWorkerGlobalScope) {" + - " onconnect = e => e.ports[0].postMessage('"+cookie_value+"');" + - "}") + b"if ('DedicatedWorkerGlobalScope' in self &&" + + b" self instanceof DedicatedWorkerGlobalScope) {" + + b" postMessage('"+cookie_value+b"');" + + b"} else if (" + + b" 'SharedWorkerGlobalScope' in self &&" + + b" self instanceof SharedWorkerGlobalScope) {" + + b" onconnect = e => e.ports[0].postMessage('"+cookie_value+b"');" + + b"}") diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/postmessage-referrer-checker.py b/tests/wpt/web-platform-tests/workers/modules/resources/postmessage-referrer-checker.py index f926834ddfc3..699af684a236 100644 --- a/tests/wpt/web-platform-tests/workers/modules/resources/postmessage-referrer-checker.py +++ b/tests/wpt/web-platform-tests/workers/modules/resources/postmessage-referrer-checker.py @@ -1,16 +1,16 @@ # Returns a worker script that posts the request's referrer header. def main(request, response): - referrer = request.headers.get("referer", "") + referrer = request.headers.get(b"referer", b"") - response_headers = [("Content-Type", "text/javascript"), - ("Access-Control-Allow-Origin", "*")] + response_headers = [(b"Content-Type", b"text/javascript"), + (b"Access-Control-Allow-Origin", b"*")] return (200, response_headers, - "if ('DedicatedWorkerGlobalScope' in self &&" + - " self instanceof DedicatedWorkerGlobalScope) {" + - " postMessage('"+referrer+"');" + - "} else if (" + - " 'SharedWorkerGlobalScope' in self &&" + - " self instanceof SharedWorkerGlobalScope) {" + - " onconnect = e => e.ports[0].postMessage('"+referrer+"');" + - "}") + b"if ('DedicatedWorkerGlobalScope' in self &&" + + b" self instanceof DedicatedWorkerGlobalScope) {" + + b" postMessage('"+referrer+b"');" + + b"} else if (" + + b" 'SharedWorkerGlobalScope' in self &&" + + b" self instanceof SharedWorkerGlobalScope) {" + + b" onconnect = e => e.ports[0].postMessage('"+referrer+b"');" + + b"}") diff --git a/tests/wpt/web-platform-tests/workers/semantics/encodings/003-1.py b/tests/wpt/web-platform-tests/workers/semantics/encodings/003-1.py index 1e899aac2714..4f5df2bb10d2 100644 --- a/tests/wpt/web-platform-tests/workers/semantics/encodings/003-1.py +++ b/tests/wpt/web-platform-tests/workers/semantics/encodings/003-1.py @@ -1,4 +1,4 @@ # -*- coding: utf-8 -*- def main(request, response): - return "PASS" if request.GET.first('x') == 'å' else "FAIL" + return u"PASS" if request.GET.first(b'x').decode('utf-8') == u'å' else u"FAIL" diff --git a/tests/wpt/web-platform-tests/workers/support/imported_script.py b/tests/wpt/web-platform-tests/workers/support/imported_script.py index 88cd2285e821..2f9c6a81d9d9 100644 --- a/tests/wpt/web-platform-tests/workers/support/imported_script.py +++ b/tests/wpt/web-platform-tests/workers/support/imported_script.py @@ -1,2 +1,2 @@ def main(request, response): - return [('Content-Type', request.GET['mime'])], "" + return [(b'Content-Type', request.GET[b'mime'])], u"" diff --git a/tests/wpt/web-platform-tests/workers/support/nosiniff-error-worker.py b/tests/wpt/web-platform-tests/workers/support/nosiniff-error-worker.py index 3a2c1b3901c7..e4367ba6e1a0 100644 --- a/tests/wpt/web-platform-tests/workers/support/nosiniff-error-worker.py +++ b/tests/wpt/web-platform-tests/workers/support/nosiniff-error-worker.py @@ -1,3 +1,3 @@ def main(request, response): - return [('Content-Type', 'text/html'), - ('X-Content-Type-Options', 'nosniff')], "" + return [(b'Content-Type', b'text/html'), + (b'X-Content-Type-Options', b'nosniff')], u"" diff --git a/tests/wpt/web-platform-tests/xhr/send-data-string-invalid-unicode.any.js b/tests/wpt/web-platform-tests/xhr/send-data-string-invalid-unicode.any.js new file mode 100644 index 000000000000..d9dc5a6bcf8d --- /dev/null +++ b/tests/wpt/web-platform-tests/xhr/send-data-string-invalid-unicode.any.js @@ -0,0 +1,46 @@ +// META: title=XMLHttpRequest.send(invalidUnicodeString) + +const LEFT_SURROGATE = '\ud83d'; +const RIGHT_SURROGATE = '\udc94'; + +// Unmatched surrogates should be replaced with the unicode replacement +// character, 0xFFFD. '$' in these templates is replaced with one of +// LEFT_SURROGATE or RIGHT_SURROGATE according to the test. +const TEMPLATES = { + '$': [239, 191, 189], + '$ab': [239, 191, 189, 97, 98], + 'a$b': [97, 239, 191, 189, 98], + 'ab$': [97, 98, 239, 191, 189], +}; + +for (const surrogate of [LEFT_SURROGATE, RIGHT_SURROGATE]) { + for (const [template, expected] of Object.entries(TEMPLATES)) { + const invalidString = template.replace('$', surrogate); + const printableString = template.replace( + '$', '\\u{' + surrogate.charCodeAt(0).toString(16) + '}'); + async_test(t => { + xhrSendStringAndCheckResponseBody(t, invalidString, expected); + }, `invalid unicode '${printableString}' should be fixed with ` + + `replacement character`); + } +} + +// For the sake of completeness, verify that matched surrogates work. +async_test(t => { + xhrSendStringAndCheckResponseBody(t, LEFT_SURROGATE + RIGHT_SURROGATE, + [240, 159, 146, 148]); +}, 'valid unicode should be sent correctly'); + +function xhrSendStringAndCheckResponseBody(t, string, expected) { + const xhr = new XMLHttpRequest(); + xhr.responseType = 'arraybuffer'; + xhr.onload = t.step_func(() => { + assert_equals(xhr.status, 200, 'status should be 200'); + const actualBody = new Uint8Array(xhr.response); + assert_array_equals(actualBody, expected, 'content should match'); + t.done(); + }); + xhr.onerror = t.unreached_func('no error should occur'); + xhr.open('POST', 'resources/content.py', true); + xhr.send(string); +}