diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-04-03 07:17:10 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-03 07:17:10 -0400 |
commit | 6fa1853bb1e9bc80271c5259a8d2ed7799a0d6ff (patch) | |
tree | 3ff9bf6bd5dc9040d64afbc430f180a922bd0ed1 | |
parent | b9b729caa06229695e25bde8d5a735e713003c3d (diff) | |
parent | 01b82f5e685d134546afcac1e18f421d914fa69c (diff) | |
download | servo-6fa1853bb1e9bc80271c5259a8d2ed7799a0d6ff.tar.gz servo-6fa1853bb1e9bc80271c5259a8d2ed7799a0d6ff.zip |
Auto merge of #23156 - servo-wpt-sync:wpt_update_03-04-2019, r=jdm
Sync WPT with upstream (03-04-2019)
Automated downstream sync of changes from upstream as of 03-04-2019.
[no-wpt-sync]
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23156)
<!-- Reviewable:end -->
105 files changed, 1197 insertions, 769 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 9860287c707..c75740964c8 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -112723,6 +112723,18 @@ {} ] ], + "css/css-contain/contain-size-flexbox-002.html": [ + [ + "css/css-contain/contain-size-flexbox-002.html", + [ + [ + "/css/css-contain/reference/contain-size-flexbox-002-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-contain/contain-size-grid-001.html": [ [ "css/css-contain/contain-size-grid-001.html", @@ -138273,6 +138285,18 @@ {} ] ], + "css/css-tables/border-collapse-rowspan-cell.html": [ + [ + "css/css-tables/border-collapse-rowspan-cell.html", + [ + [ + "/css/css-tables/border-collapse-rowspan-cell-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-tables/border-conflict-resolution.html": [ [ "css/css-tables/border-conflict-resolution.html", @@ -208053,6 +208077,116 @@ {} ] ], + "common/security-features/subresource/__init__.py": [ + [ + {} + ] + ], + "common/security-features/subresource/audio.py": [ + [ + {} + ] + ], + "common/security-features/subresource/document.py": [ + [ + {} + ] + ], + "common/security-features/subresource/empty.py": [ + [ + {} + ] + ], + "common/security-features/subresource/font.py": [ + [ + {} + ] + ], + "common/security-features/subresource/image.py": [ + [ + {} + ] + ], + "common/security-features/subresource/script.py": [ + [ + {} + ] + ], + "common/security-features/subresource/shared-worker.py": [ + [ + {} + ] + ], + "common/security-features/subresource/stylesheet.py": [ + [ + {} + ] + ], + "common/security-features/subresource/subresource.py": [ + [ + {} + ] + ], + "common/security-features/subresource/svg.py": [ + [ + {} + ] + ], + "common/security-features/subresource/template/document.html.template": [ + [ + {} + ] + ], + "common/security-features/subresource/template/font.css.template": [ + [ + {} + ] + ], + "common/security-features/subresource/template/image.css.template": [ + [ + {} + ] + ], + "common/security-features/subresource/template/script.js.template": [ + [ + {} + ] + ], + "common/security-features/subresource/template/shared-worker.js.template": [ + [ + {} + ] + ], + "common/security-features/subresource/template/svg.css.template": [ + [ + {} + ] + ], + "common/security-features/subresource/template/svg.embedded.template": [ + [ + {} + ] + ], + "common/security-features/subresource/template/worker.js.template": [ + [ + {} + ] + ], + "common/security-features/subresource/video.py": [ + [ + {} + ] + ], + "common/security-features/subresource/worker.py": [ + [ + {} + ] + ], + "common/security-features/subresource/xhr.py": [ + [ + {} + ] + ], "common/sleep.py": [ [ {} @@ -257958,6 +258092,11 @@ {} ] ], + "css/css-contain/reference/contain-size-flexbox-002-ref.html": [ + [ + {} + ] + ], "css/css-contain/reference/contain-size-grid-001-ref.html": [ [ {} @@ -273243,6 +273382,11 @@ {} ] ], + "css/css-tables/border-collapse-rowspan-cell-ref.html": [ + [ + {} + ] + ], "css/css-tables/border-conflict-resolution-ref.html": [ [ {} @@ -306804,11 +306948,6 @@ {} ] ], - "mixed-content/generic/expect.py": [ - [ - {} - ] - ], "mixed-content/generic/mixed-content-test-case.js": [ [ {} @@ -306819,11 +306958,6 @@ {} ] ], - "mixed-content/generic/script.js": [ - [ - {} - ] - ], "mixed-content/generic/template/disclaimer.template": [ [ {} @@ -306884,11 +307018,6 @@ {} ] ], - "mixed-content/generic/worker.js": [ - [ - {} - ] - ], "mixed-content/img-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html.headers": [ [ {} @@ -308834,106 +308963,16 @@ {} ] ], - "referrer-policy/generic/subresource/__init__.py": [ - [ - {} - ] - ], - "referrer-policy/generic/subresource/document.py": [ - [ - {} - ] - ], - "referrer-policy/generic/subresource/font.py": [ - [ - {} - ] - ], - "referrer-policy/generic/subresource/image.py": [ - [ - {} - ] - ], - "referrer-policy/generic/subresource/script.py": [ - [ - {} - ] - ], - "referrer-policy/generic/subresource/shared-worker.py": [ - [ - {} - ] - ], - "referrer-policy/generic/subresource/stylesheet.py": [ - [ - {} - ] - ], - "referrer-policy/generic/subresource/subresource.py": [ - [ - {} - ] - ], - "referrer-policy/generic/subresource/svg.py": [ - [ - {} - ] - ], - "referrer-policy/generic/subresource/worker.py": [ - [ - {} - ] - ], - "referrer-policy/generic/subresource/xhr.py": [ - [ - {} - ] - ], "referrer-policy/generic/template/disclaimer.template": [ [ {} ] ], - "referrer-policy/generic/template/document.html.template": [ - [ - {} - ] - ], - "referrer-policy/generic/template/font.css.template": [ - [ - {} - ] - ], - "referrer-policy/generic/template/image.css.template": [ - [ - {} - ] - ], - "referrer-policy/generic/template/script.js.template": [ - [ - {} - ] - ], - "referrer-policy/generic/template/shared-worker.js.template": [ - [ - {} - ] - ], "referrer-policy/generic/template/spec_json.js.template": [ [ {} ] ], - "referrer-policy/generic/template/svg.css.template": [ - [ - {} - ] - ], - "referrer-policy/generic/template/svg.embedded.template": [ - [ - {} - ] - ], "referrer-policy/generic/template/test.debug.html.template": [ [ {} @@ -308954,11 +308993,6 @@ {} ] ], - "referrer-policy/generic/template/worker.js.template": [ - [ - {} - ] - ], "referrer-policy/generic/tools/__init__.py": [ [ {} @@ -318179,11 +318213,6 @@ {} ] ], - "tools/ci/action_manifest_build.sh": [ - [ - {} - ] - ], "tools/ci/azure/README.md": [ [ {} @@ -318269,11 +318298,6 @@ {} ] ], - "tools/ci/ci_lint.sh": [ - [ - {} - ] - ], "tools/ci/ci_resources_unittest.sh": [ [ {} @@ -318309,12 +318333,12 @@ {} ] ], - "tools/ci/run_tc.py": [ + "tools/ci/manifest_build.py": [ [ {} ] ], - "tools/ci/tag_master.py": [ + "tools/ci/run_tc.py": [ [ {} ] @@ -389179,6 +389203,12 @@ {} ] ], + "html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html": [ + [ + "html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html", + {} + ] + ], "html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-to-other-document.html": [ [ "html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-to-other-document.html", @@ -432843,6 +432873,10 @@ [ "script", "../resources/test-utils.js" + ], + [ + "script", + "../resources/recording-streams.js" ] ] } @@ -432863,6 +432897,10 @@ [ "script", "../resources/test-utils.js" + ], + [ + "script", + "../resources/recording-streams.js" ] ] } @@ -432882,6 +432920,10 @@ [ "script", "../resources/test-utils.js" + ], + [ + "script", + "../resources/recording-streams.js" ] ] } @@ -432901,6 +432943,10 @@ [ "script", "../resources/test-utils.js" + ], + [ + "script", + "../resources/recording-streams.js" ] ] } @@ -432920,6 +432966,10 @@ [ "script", "../resources/test-utils.js" + ], + [ + "script", + "../resources/recording-streams.js" ] ] } @@ -473944,7 +473994,7 @@ "support" ], ".github/main.workflow": [ - "b1b61554f91aa0256fbd4a58e0cbbe16ecdb1c6e", + "4ff7845b9d23ad55724b78950bc94d7d5a7a9e5e", "support" ], ".gitignore": [ @@ -473964,7 +474014,7 @@ "support" ], ".taskcluster.yml": [ - "6ad97f7e104d04278cf4b2087e107bcdb849ab7d", + "89e51c8c71c540899852d34ab0e0f48e1f9f4fb1", "support" ], ".well-known/README.md": [ @@ -485503,6 +485553,94 @@ "678d2a0d8fa7001e5dcd2204b6f2b548d0b913c1", "support" ], + "common/security-features/subresource/__init__.py": [ + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "support" + ], + "common/security-features/subresource/audio.py": [ + "eb95045e0315ab5c24a826325e1e16a6cd45827d", + "support" + ], + "common/security-features/subresource/document.py": [ + "59e0dcd7bc6cd3904b1aa8079ea161a24d2f51e6", + "support" + ], + "common/security-features/subresource/empty.py": [ + "132e85ddeec9119c03a11e030c3e6f09c32735c4", + "support" + ], + "common/security-features/subresource/font.py": [ + "26311a9f079080e7fc11995e8c180b12a6201b16", + "support" + ], + "common/security-features/subresource/image.py": [ + "d132889412372e7f764fe98159897fcacc009bbb", + "support" + ], + "common/security-features/subresource/script.py": [ + "9d7cd0469f0ef9d2da9c322db4257cbdfbf310e8", + "support" + ], + "common/security-features/subresource/shared-worker.py": [ + "d8fd6876449ee844a758b2b1028588d866746d9e", + "support" + ], + "common/security-features/subresource/stylesheet.py": [ + "ec62a8cd5f282130f66c1bdfe47240ca4cc625af", + "support" + ], + "common/security-features/subresource/subresource.py": [ + "f11f3250568b662118d658388a2e4725357d7fd4", + "support" + ], + "common/security-features/subresource/svg.py": [ + "6353079bb89e190d1851a153109f5c9d2cfeb654", + "support" + ], + "common/security-features/subresource/template/document.html.template": [ + "141711c1483fd13e87e95f151fe6f3191704d7c7", + "support" + ], + "common/security-features/subresource/template/font.css.template": [ + "9d1e9c421cc7fb7cc701b7cbf4ba23b76519dcd7", + "support" + ], + "common/security-features/subresource/template/image.css.template": [ + "dfe41f1bf169b017308da7d4d89c182dcd3511a1", + "support" + ], + "common/security-features/subresource/template/script.js.template": [ + "e2edf21819dff6afc8a4f5816a0be58f987341ff", + "support" + ], + "common/security-features/subresource/template/shared-worker.js.template": [ + "c3f109e4a90edd65cfa26d14dbe4e4252087b37c", + "support" + ], + "common/security-features/subresource/template/svg.css.template": [ + "c2e509cc3b81c55072390d387502fc1949b917ae", + "support" + ], + "common/security-features/subresource/template/svg.embedded.template": [ + "5986c4800a7add03db721f2bf116fe405e5d56cf", + "support" + ], + "common/security-features/subresource/template/worker.js.template": [ + "817dd8c87ac81e1a13bbee7691d69fb2a021f527", + "support" + ], + "common/security-features/subresource/video.py": [ + "c8d8548ac3eaef9122347de6ef05cd7a230c6f96", + "support" + ], + "common/security-features/subresource/worker.py": [ + "85c1f67a9675a992e9d00ed70feafea0e8b0eb30", + "support" + ], + "common/security-features/subresource/xhr.py": [ + "82a4cb0b657956cb20efcfb0142ad4040875eabe", + "support" + ], "common/sleep.py": [ "2e803b1b262423e219be592fab548ada982bc439", "support" @@ -574507,6 +574645,10 @@ "16ba62eda041abe11424f63c65d6dfd46aa82570", "reftest" ], + "css/css-contain/contain-size-flexbox-002.html": [ + "531af691afe80364c43e0055ef90306ceeaca00f", + "reftest" + ], "css/css-contain/contain-size-grid-001.html": [ "4510c1e55368aeea38a79ba66059acd4d7660ddb", "reftest" @@ -574815,6 +574957,10 @@ "70f408643007d8338f401ef947f7bb24f1eaedc9", "support" ], + "css/css-contain/reference/contain-size-flexbox-002-ref.html": [ + "a75fa26c9ff0b91717b03badce4fb891c0ce3452", + "support" + ], "css/css-contain/reference/contain-size-grid-001-ref.html": [ "cf4f8076650928dfd0cefc18665ef1e8ab52d7b6", "support" @@ -601279,6 +601425,14 @@ "f7a00756e8154300ebdf3073f9b2e0945cb07eb0", "reftest" ], + "css/css-tables/border-collapse-rowspan-cell-ref.html": [ + "53774da48a30f60eae0750e989c2e19db8bd97cc", + "support" + ], + "css/css-tables/border-collapse-rowspan-cell.html": [ + "8a4bdede0ea4edafffbb5bb6c7f93684f1265368", + "reftest" + ], "css/css-tables/border-conflict-resolution-ref.html": [ "f19032171b8a0d8e33a78c1f53388a19c79b757d", "support" @@ -646688,7 +646842,7 @@ "reftest" ], "fetch/corb/img-mime-types-coverage.tentative.sub.html": [ - "223a0a375c333511b72bcc3e276edee6519bf615", + "6d7fd60f449ac78f8ff7c07265acb2101b15bd39", "testharness" ], "fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub-ref.html": [ @@ -647132,7 +647286,7 @@ "testharness" ], "fetch/sec-metadata/img.tentative.https.sub.html": [ - "717e385bd040be4b75f1049de05f48726e382d96", + "b9fc1af2f3bfcc09b7e9989fd755f3c82d6f24d9", "testharness" ], "fetch/sec-metadata/navigation.https.sub.html": [ @@ -658887,6 +659041,10 @@ "817615c5cb543fd5331f9838b1cc37cded5b21cf", "testharness" ], + "html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html": [ + "03a9b5d454473872f0d321b74524518438372fac", + "testharness" + ], "html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-to-other-document.html": [ "77b4a288d899444b5152ce23c1022faa9483ce2f", "testharness" @@ -669048,7 +669206,7 @@ "support" ], "interfaces/wake-lock.idl": [ - "7ef19dc64754f3ab060035163bd3854dce32aaef", + "202dc6b09f7e6aa56289b62bb810ed0fb2e289d0", "support" ], "interfaces/wasm-js-api.idl": [ @@ -669120,7 +669278,7 @@ "support" ], "interfaces/webxr.idl": [ - "7594489a36d130864e553a3c8125aa2488895b2e", + "8a3264073e8268282c3db6a891b860d57bfcdb28", "support" ], "interfaces/worklets.idl": [ @@ -671783,22 +671941,14 @@ "704042109cce25f023b753bc49cc0a5ff2d93b2f", "testharness" ], - "mixed-content/generic/expect.py": [ - "2c360c1d9315db12f3463c2d005a111b02b3818a", - "support" - ], "mixed-content/generic/mixed-content-test-case.js": [ - "b2c0bcdea1eea2603d0cc76f626f4dff3ace00bd", + "a50b61c7e76503abe001ddc714da81036b6c254a", "support" ], "mixed-content/generic/sanity-checker.js": [ "55a103adf0f29c615d40bc47943be1aec25c8f1e", "support" ], - "mixed-content/generic/script.js": [ - "2d1cdf0a4bbdb465c45a47cf676c8e6d23f1ddc0", - "support" - ], "mixed-content/generic/template/disclaimer.template": [ "66c43ed6f21324d44b1596c09a02fecf53f41323", "support" @@ -671847,10 +671997,6 @@ "686579ece5797abfdb5441e080db85758fe1b220", "support" ], - "mixed-content/generic/worker.js": [ - "7e2168bcc06e0dd0832f42c28ef9ba3f7c2d84bf", - "support" - ], "mixed-content/imageset.https.sub.html": [ "1f3d0471fbd2b38649894619494750ef221d72c9", "testharness" @@ -683172,75 +683318,75 @@ "support" ], "referrer-policy/README.md": [ - "58eff1a0ca385896ae0b6adbf4c607748089c634", + "ea158fe539468ddf5fd0840b87a4b57b79fb68f2", "support" ], "referrer-policy/css-integration/README.md": [ - "14da25c4d9702f0dcfb87aca255e0ea5df9063a6", + "150b0e652638b0a76e3c0cace6a6acae8b629064", "support" ], "referrer-policy/css-integration/child-css/external-import-stylesheet.html": [ - "9245ff39c6eafe272e70d3f208eb6f18876f2c62", + "3ced0f4998335d34385f9f843ed9d96414d375e5", "testharness" ], "referrer-policy/css-integration/child-css/internal-import-stylesheet.html": [ - "c25b99926a0a12bf2f1a2d60bf1a9cc9c58fae22", + "df835c45e106ebf57dd0671d70d4d09d32f3cdc9", "testharness" ], "referrer-policy/css-integration/child-css/processing-instruction.html": [ - "36d8bbc0216df9536aa8e9ffeb5b7ff673c31174", + "1a0d9ebdda2c6d852dd570e4548c69b807f49c21", "testharness" ], "referrer-policy/css-integration/css-test-helper.js": [ - "0afa9e1b87ca7dca7ad4fae541cf68d80c62ec91", + "dc97ccc063bd4075a4dac6c3890428982c53a79a", "support" ], "referrer-policy/css-integration/font-face/external-import-stylesheet.html": [ - "6bd0554ccdfdd9054ea984a1d95799de838954d3", + "db655fbb7260a2971d27780f1bbdca1d962fdd72", "testharness" ], "referrer-policy/css-integration/font-face/external-stylesheet.html": [ - "8773664625c4472f7ce75c5aba76be83573bd5dd", + "cc99b1f3ddcadc9ffc804b09851abc5ba7fc58a2", "testharness" ], "referrer-policy/css-integration/font-face/internal-import-stylesheet.html": [ - "6dcf6be3e7d705aa6694342abc9cc86eab97c966", + "969db95179ef8976a6f44918efd486c591666df1", "testharness" ], "referrer-policy/css-integration/font-face/internal-stylesheet.html": [ - "0d54bb766f771fedaca6676ccee539ed7429133c", + "40eb09357b98b92e8773211c0fc312f194a91c10", "testharness" ], "referrer-policy/css-integration/font-face/processing-instruction.html": [ - "26203a822681b81b0a5192461d1d99decb54ddc6", + "25b0ed13473654418ceea7c21fce6bb2d54bb7ef", "testharness" ], "referrer-policy/css-integration/image/external-import-stylesheet.html": [ - "7c5a8c3d70941adaf679a83c8073b36f3b09a5e9", + "370bc44b6c197dd29c7ece8c5eeeeedc452afa9e", "testharness" ], "referrer-policy/css-integration/image/external-stylesheet.html": [ - "72a807bec6ba56b92ea62c8fbc1c20a9d8fd980e", + "eb1b019c988e549699e8745f56c85a3a483016c3", "testharness" ], "referrer-policy/css-integration/image/inline-style.html": [ - "7e3d8879a4ae243fd75ae33c6a308f20983636f4", + "d6ff26e7bcc0c9d426b24a1b65c79768bb81aa4e", "testharness" ], "referrer-policy/css-integration/image/internal-import-stylesheet.html": [ - "e94218d419e6dae751c757f915cc5d4d1133fcbc", + "e96b25a9712f6ec610c2927006d07ab68b520dcb", "testharness" ], "referrer-policy/css-integration/image/internal-stylesheet.html": [ - "a6107cb3a995d7808312f0029afce11d209ece69", + "29a8517e117b092b648b2603de67eca52e7dfd4d", "testharness" ], "referrer-policy/css-integration/image/presentation-attribute.html": [ - "ee70f15885c7145d7d235a9efd146856f4fca47b", + "95d3b11a42aae6b314f414352b73c5f35d1bff53", "testharness" ], "referrer-policy/css-integration/image/processing-instruction.html": [ - "c2b31be889938de3402611f02fffc6b6404429c7", + "e52d9b65097f37a0dfd73b9b9b851d7d0df8b3a9", "testharness" ], "referrer-policy/css-integration/svg/external-stylesheet.html": [ @@ -683264,15 +683410,15 @@ "testharness" ], "referrer-policy/generic/iframe-inheritance.html": [ - "3bab0979dd91afb0c6bc09baca8ce1eafe07ba5f", + "ca17e03933a933f19fe4b69328f1b7df3740d3a2", "testharness" ], "referrer-policy/generic/link-rel-prefetch.html": [ - "0f78596fa2d78e066d8152cbee56815d4bc7b5d3", + "c8e367079bd36f04bc9cf8fbbb87c0647b2303e8", "testharness" ], "referrer-policy/generic/multiple-headers-and-values.html": [ - "d6b9408c1536b7526f101ea27473b9461534aaf4", + "ac7f37006ec748c754040119970f6aba326cd757", "testharness" ], "referrer-policy/generic/multiple-headers-and-values.html.headers": [ @@ -683280,7 +683426,7 @@ "support" ], "referrer-policy/generic/multiple-headers-combined.html": [ - "0b36aeee94c33de08f38491bde31519acc504527", + "0e99cd4ea8e822325180b4e94e03a38ddcfe66f5", "testharness" ], "referrer-policy/generic/multiple-headers-combined.html.headers": [ @@ -683288,7 +683434,7 @@ "support" ], "referrer-policy/generic/multiple-headers-one-invalid.html": [ - "599ffdccc3ead1b56b75e30f5f41a857ecb50eaa", + "3c2bf21a62b2fd37b5ede60b2dbe01ca01104ce8", "testharness" ], "referrer-policy/generic/multiple-headers-one-invalid.html.headers": [ @@ -683296,7 +683442,7 @@ "support" ], "referrer-policy/generic/multiple-headers-one-unknown-token.html": [ - "cf9a792162621e905873c5deff774f6aeedc880c", + "2c13376b14cea31b6d014d20835b02dae4a88484", "testharness" ], "referrer-policy/generic/multiple-headers-one-unknown-token.html.headers": [ @@ -683304,7 +683450,7 @@ "support" ], "referrer-policy/generic/multiple-headers.html": [ - "418044a14cdc4fc5d8cbfd54648a7c24981b9cbe", + "e727acd588ee7d7817be8bcf0ffaf6b77ea7fbbf", "testharness" ], "referrer-policy/generic/multiple-headers.html.headers": [ @@ -683312,11 +683458,11 @@ "support" ], "referrer-policy/generic/referrer-policy-test-case.js": [ - "1345e71d31f7afb1a5e2109ef3739267e27740b6", + "6b5ae7f70f1441038f61b26bc2b29d7cdfe78f4e", "support" ], "referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html": [ - "103627b21df00b578ac61bb3acc021254820ba66", + "da3455cb2a88e97b96b9da84c2ed4aa0d619ac3b", "testharness" ], "referrer-policy/generic/sanity-checker.js": [ @@ -683324,7 +683470,7 @@ "support" ], "referrer-policy/generic/subresource-test/area-navigate.html": [ - "b7f05be9892b1766820d10154a733c80126ee8e7", + "936e2ef0f50cf0ee5d9a47094ce6fdf86fa5e387", "testharness" ], "referrer-policy/generic/subresource-test/attr-referrer-invalid-value.html": [ @@ -683332,113 +683478,41 @@ "testharness" ], "referrer-policy/generic/subresource-test/fetch-messaging.html": [ - "2c12ae45510c7b1d226dd7d9878fc3dca9e3dadd", + "cc17b3d8de9846482a9af083ac4c5585bdb38287", "testharness" ], "referrer-policy/generic/subresource-test/iframe-messaging.html": [ - "3bfada318f2a2b76bfdfb79f53950881474c437a", + "45c5abc86441bd723acc4093bbd1500de129246b", "testharness" ], "referrer-policy/generic/subresource-test/image-decoding.html": [ - "807344dab9f14221f37bb7d731a8022fe9db9869", + "a9eec617d44d18c293af1b0c1bf180f5c9470f5e", "testharness" ], "referrer-policy/generic/subresource-test/link-navigate.html": [ - "8c5d2c8386608dd5b8eafbda88f15e0045b3f837", + "966547c3580a01933321f78e1a2ae05348412237", "testharness" ], "referrer-policy/generic/subresource-test/script-messaging.html": [ - "cdeb1a03ed3c3145c6c927cd851435aeac176640", + "0a93266e2c58021102abaebd335317c40a3dfbdc", "testharness" ], "referrer-policy/generic/subresource-test/worker-messaging.html": [ - "7ef9b381ae4f151ae409495b28bf7cee8db99a0e", + "c85cfca5c39fed22d708bd002ee668d4a1de8742", "testharness" ], "referrer-policy/generic/subresource-test/xhr-messaging.html": [ - "1bd1b4c724ea6da41cf3d42b30189649628d211e", + "dd48dec8e6ba24932fbb930006143124e3c7790f", "testharness" ], - "referrer-policy/generic/subresource/__init__.py": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", - "support" - ], - "referrer-policy/generic/subresource/document.py": [ - "b2d6c4dfabeafcf1d22a94141d52d04b669f5721", - "support" - ], - "referrer-policy/generic/subresource/font.py": [ - "50a5bd2f3996133d4b5904166dc5672e5ae36031", - "support" - ], - "referrer-policy/generic/subresource/image.py": [ - "7bc9c657e6b35528d63b6f2d72d73391dedfdf5b", - "support" - ], - "referrer-policy/generic/subresource/script.py": [ - "efa1a955d466ef14e95f62734f2a2a7841fd67ed", - "support" - ], - "referrer-policy/generic/subresource/shared-worker.py": [ - "66b6e66c6e30294da0bec0dffdd9025ae8fba9ac", - "support" - ], - "referrer-policy/generic/subresource/stylesheet.py": [ - "54378216774e49ba564e393b4d1f879ae2d14763", - "support" - ], - "referrer-policy/generic/subresource/subresource.py": [ - "9ba839a133d96d7373a707aa9c71e01b1569297e", - "support" - ], - "referrer-policy/generic/subresource/svg.py": [ - "8618875c79f062205c57bac20a322b207914feea", - "support" - ], - "referrer-policy/generic/subresource/worker.py": [ - "895bc0d84d12a99c146ba02776138248318b9c1d", - "support" - ], - "referrer-policy/generic/subresource/xhr.py": [ - "45f38159c2ec56a3f447be33720aa545bbb78edb", - "support" - ], "referrer-policy/generic/template/disclaimer.template": [ "66c43ed6f21324d44b1596c09a02fecf53f41323", "support" ], - "referrer-policy/generic/template/document.html.template": [ - "141711c1483fd13e87e95f151fe6f3191704d7c7", - "support" - ], - "referrer-policy/generic/template/font.css.template": [ - "9b19df3cf1f54556f3c2409495d8b6abdd10d2fc", - "support" - ], - "referrer-policy/generic/template/image.css.template": [ - "0eebd0a45264aa00b5072a8b489a84a85b778a54", - "support" - ], - "referrer-policy/generic/template/script.js.template": [ - "e2edf21819dff6afc8a4f5816a0be58f987341ff", - "support" - ], - "referrer-policy/generic/template/shared-worker.js.template": [ - "c3f109e4a90edd65cfa26d14dbe4e4252087b37c", - "support" - ], "referrer-policy/generic/template/spec_json.js.template": [ "e4cbd03425968819d773460335404584d9d375fc", "support" ], - "referrer-policy/generic/template/svg.css.template": [ - "ffaefed4aa42aa62ca9d3dd9ff5bf989e75cbe01", - "support" - ], - "referrer-policy/generic/template/svg.embedded.template": [ - "5986c4800a7add03db721f2bf116fe405e5d56cf", - "support" - ], "referrer-policy/generic/template/test.debug.html.template": [ "ce7761b949df343162767f64612ec713805fbf10", "support" @@ -683455,10 +683529,6 @@ "fbc80bb25af678657dc5f417bb9a930496ca4875", "support" ], - "referrer-policy/generic/template/worker.js.template": [ - "817dd8c87ac81e1a13bbee7691d69fb2a021f527", - "support" - ], "referrer-policy/generic/tools/__init__.py": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", "support" @@ -683484,7 +683554,7 @@ "support" ], "referrer-policy/generic/unsupported-csp-referrer-directive.html": [ - "f639ead4d4387c412734e3375569413f99cacf81", + "6c03a48e1c1a27667d14cd47c6117636eebd3a8b", "testharness" ], "referrer-policy/no-referrer-when-downgrade/attr-referrer/cross-origin/http-http/a-tag/no-redirect/insecure-protocol.http.html": [ @@ -697540,7 +697610,7 @@ "testharness" ], "service-workers/service-worker/skip-waiting-using-registration.https.html": [ - "fe80a03846e8255108b11cd53170f8b10b915558", + "412ee2a4438e2328f69337893465c4a66c671ce6", "testharness" ], "service-workers/service-worker/skip-waiting-without-client.https.html": [ @@ -697548,7 +697618,7 @@ "testharness" ], "service-workers/service-worker/skip-waiting-without-using-registration.https.html": [ - "b6362e6c317ca45202c2769f82ab9325a958cef2", + "ced64e5f67fb667e5c233055ad920dbda0336336", "testharness" ], "service-workers/service-worker/skip-waiting.https.html": [ @@ -698400,7 +698470,7 @@ "testharness" ], "shape-detection/detection-options.html": [ - "31475575e3f42e1b63723c08031dd7833bb30bc8", + "704faf729294d78e1df7821e99baaf734d2ca59e", "testharness" ], "shape-detection/detection-security-test.html": [ @@ -699192,7 +699262,7 @@ "testharness" ], "streams/readable-streams/tee.any.js": [ - "ba7813642b7d2ae164347608a34a7539fb246255", + "4a07f0f2bfb62c84eaf92d8b49ea5549ef653eb8", "testharness" ], "streams/readable-streams/templated.any.js": [ @@ -703487,10 +703557,6 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", "support" ], - "tools/ci/action_manifest_build.sh": [ - "ad6a4cb16e7b24cf6c67d52e50b9248c64b8e754", - "support" - ], "tools/ci/azure/README.md": [ "afe5021efcad78a13d1767fb423d846557b92ee0", "support" @@ -703559,10 +703625,6 @@ "709cc2aa7e6867f548d4efdd62d74abc185e657b", "support" ], - "tools/ci/ci_lint.sh": [ - "bf98f209eba1330c9a69d13ed0ca9380e3ec24a2", - "support" - ], "tools/ci/ci_resources_unittest.sh": [ "11190fc58d64491bae719f9ac91adb1e879886fb", "support" @@ -703591,12 +703653,12 @@ "d0a80ab46c7a86b476776d2dff0fcd23776dfc9e", "support" ], - "tools/ci/run_tc.py": [ - "32eef7cb69cf0d4450d3d177e891740cb42b4fd7", + "tools/ci/manifest_build.py": [ + "98e7ce75e512c1568f3d7fa6ca94fa58e0c10835", "support" ], - "tools/ci/tag_master.py": [ - "d672d13fe2339ed6ae85324147cdf108fdccc8a4", + "tools/ci/run_tc.py": [ + "1cfb41fcaaba55d9e1ee7d4722bb6c56aabeb459", "support" ], "tools/ci/taskcluster-run.py": [ @@ -708460,7 +708522,7 @@ "support" ], "tools/wptrunner/requirements.txt": [ - "f2a336875f0ed137c40d79e3bab7f64e69b99d40", + "887068b34d28bdf875e42f440cedac478b9f411a", "support" ], "tools/wptrunner/requirements_chrome.txt": [ @@ -708912,7 +708974,7 @@ "support" ], "tools/wptrunner/wptrunner/tests/test_products.py": [ - "d6a16a192cfa8c55265996ee393bdb81a83ffe29", + "5d2bcf075d0f572e8972eba5fdb4a5bd36b5db75", "support" ], "tools/wptrunner/wptrunner/tests/test_stability.py": [ @@ -708996,7 +709058,7 @@ "support" ], "tools/wptrunner/wptrunner/wptmanifest/parser.py": [ - "e6c2e5b5ca28162e5df41c51a0b96dfcf6b3eabe", + "b16d96a42d4a5038b80a8807b3eb19fbfe17815e", "support" ], "tools/wptrunner/wptrunner/wptmanifest/serializer.py": [ @@ -709024,7 +709086,7 @@ "support" ], "tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py": [ - "b7c62c0041496be4f55f06699eabf9a3cf77d654", + "40a8acc6cabddd39b7c2d6711a53eb2dda1bd560", "support" ], "tools/wptrunner/wptrunner/wptrunner.py": [ @@ -711644,7 +711706,7 @@ "support" ], "wake-lock/idlharness.https.any.js": [ - "5e3ae75064c5f9c2be1b96ce763868066352889b", + "fa47bd9b1e007518fb4c91328bf305e3afead449", "testharness" ], "wake-lock/wakelock-applicability-manual.https.html": [ @@ -713724,7 +713786,7 @@ "support" ], "webauthn/idlharness.https.window.js": [ - "a228644b8cab9c348a7345a6eb481ced75ded2e5", + "fa5e812eeee1632488e0ad77d8d97c0e115ae021", "testharness" ], "webauthn/securecontext.http.html": [ diff --git a/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini b/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini index 0cb0bf5dbeb..9c9a4ae75f9 100644 --- a/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini +++ b/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini @@ -5,9 +5,6 @@ [Descriptor mathcing priority: Stretch has higher priority than weight] expected: FAIL - [Matching font-weight: '400' should prefer '450 460' over '500'] - expected: FAIL - [Matching font-weight: '400' should prefer '500' over '350 399'] expected: FAIL @@ -38,21 +35,12 @@ [Matching font-weight: '500' should prefer '501 550' over '502 560'] expected: FAIL - [Matching font-weight: '501' should prefer '502 510' over '503 520'] - expected: FAIL - - [Matching font-weight: '501' should prefer '503 520' over '500'] - expected: FAIL - [Matching font-weight: '399' should prefer '200 300' over '400'] expected: FAIL [Matching font-weight: '399' should prefer '400' over '450 460'] expected: FAIL - [Matching font-weight: '399' should prefer '450 460' over '500 501'] - expected: FAIL - [Matching font-style: 'normal' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'] expected: FAIL @@ -149,9 +137,6 @@ [Matching font-stretch: '110%' should prefer '50% 80%' over '60% 70%'] expected: FAIL - [Matching font-stretch: '90%' should prefer '90% 100%' over '50% 80%'] - expected: FAIL - [Matching font-stretch: '90%' should prefer '50% 80%' over '60% 70%'] expected: FAIL @@ -296,9 +281,36 @@ [Matching font-weight: '501' should prefer '501' over '502 510'] expected: FAIL - [Matching font-style: 'oblique 20deg' should prefer 'oblique 40deg 50deg' over 'oblique 10deg'] + [Matching font-style: 'italic' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'] expected: FAIL - [Matching font-style: 'italic' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'] + [Matching font-style: 'italic' should prefer 'oblique 5deg' over 'normal'] + expected: FAIL + + [Matching font-style: 'oblique 20deg' should prefer 'oblique 20deg' over 'oblique 30deg 60deg'] + expected: FAIL + + [Matching font-style: 'oblique -10deg' should prefer 'oblique -60deg -30deg' over 'oblique -50deg -40deg'] + expected: FAIL + + [Matching font-style: 'normal' should prefer 'oblique 10deg 40deg' over 'oblique 20deg 30deg'] + expected: FAIL + + [Matching font-stretch: '100%' should prefer '110% 120%' over '115% 116%'] + expected: FAIL + + [Matching font-weight: '501' should prefer '450 460' over '390 410'] + expected: FAIL + + [Matching font-style: 'oblique -21deg' should prefer 'oblique -10deg' over 'italic'] + expected: FAIL + + [Matching font-style: 'oblique 21deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg'] + expected: FAIL + + [Matching font-style: 'oblique -10deg' should prefer 'oblique -1deg 0deg' over 'oblique -20deg -15deg'] + expected: FAIL + + [Matching font-style: 'oblique 0deg' should prefer 'italic' over 'oblique -50deg -20deg'] expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini index 8850ec200da..1c8f983cd37 100644 --- a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini +++ b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini @@ -74,3 +74,6 @@ [opacity end] expected: FAIL + [outline-width end] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini index ff5b07adb77..e89282b04a1 100644 --- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini @@ -1,5 +1,5 @@ [elementsFromPoint-iframes.html] - expected: TIMEOUT + expected: CRASH [elementsFromPoint on the root document for points in iframe elements] expected: FAIL diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 43c9d36c8fd..b57d51b415b 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -1,7 +1,7 @@ [response.window.html] expected: TIMEOUT [fetch(): combined response Content-Type: text/plain ] - expected: FAIL + expected: NOTRUN [Response: combined response Content-Type: text/plain;charset=gbk text/plain;charset=windows-1252] expected: NOTRUN @@ -22,7 +22,7 @@ expected: NOTRUN [<iframe>: combined response Content-Type: text/plain */*;charset=gbk] - expected: FAIL + expected: TIMEOUT [fetch(): separate response Content-Type: text/html;x=" text/plain] expected: NOTRUN @@ -64,7 +64,7 @@ expected: NOTRUN [fetch(): combined response Content-Type: text/html text/plain] - expected: FAIL + expected: NOTRUN [Request: combined response Content-Type: text/html;charset=gbk text/plain text/html] expected: NOTRUN @@ -76,19 +76,19 @@ expected: NOTRUN [Response: combined response Content-Type: text/plain ] - expected: FAIL + expected: NOTRUN [fetch(): combined response Content-Type: text/plain;charset=gbk text/plain] expected: NOTRUN [Request: combined response Content-Type: text/html text/plain] - expected: FAIL + expected: NOTRUN [<iframe>: separate response Content-Type: text/plain */*] - expected: FAIL + expected: TIMEOUT [<iframe>: combined response Content-Type: text/plain;charset=gbk text/html;charset=windows-1254] - expected: FAIL + expected: TIMEOUT [Request: combined response Content-Type: text/plain */*] expected: NOTRUN @@ -118,13 +118,13 @@ expected: NOTRUN [Response: combined response Content-Type: text/html text/plain] - expected: TIMEOUT + expected: NOTRUN [fetch(): separate response Content-Type: text/plain ] - expected: FAIL + expected: TIMEOUT [<iframe>: combined response Content-Type: text/plain;charset=gbk text/plain] - expected: FAIL + expected: TIMEOUT [fetch(): combined response Content-Type: text/html;" \\" text/plain] expected: NOTRUN @@ -142,7 +142,7 @@ expected: NOTRUN [<iframe>: separate response Content-Type: text/plain;charset=gbk text/plain] - expected: FAIL + expected: TIMEOUT [Response: combined response Content-Type: text/plain] expected: FAIL @@ -163,7 +163,7 @@ expected: NOTRUN [<iframe>: combined response Content-Type: text/html;" " text/plain] - expected: FAIL + expected: TIMEOUT [Request: combined response Content-Type: text/plain;charset=gbk;x=foo text/plain] expected: NOTRUN @@ -172,13 +172,13 @@ expected: NOTRUN [<iframe>: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK] - expected: FAIL + expected: TIMEOUT [Response: combined response Content-Type: text/html;x=" text/plain] expected: NOTRUN [<iframe>: combined response Content-Type: text/html;charset=gbk text/html;x=",text/plain] - expected: FAIL + expected: TIMEOUT [fetch(): separate response Content-Type: text/plain;charset=gbk text/plain] expected: NOTRUN @@ -202,7 +202,7 @@ expected: NOTRUN [<iframe>: separate response Content-Type: text/html;" " text/plain] - expected: FAIL + expected: TIMEOUT [fetch(): separate response Content-Type: text/plain */*;charset=gbk] expected: NOTRUN @@ -214,7 +214,7 @@ expected: NOTRUN [<iframe>: combined response Content-Type: text/plain;charset=gbk;x=foo text/plain] - expected: FAIL + expected: TIMEOUT [Request: combined response Content-Type: text/plain;charset=gbk text/html] expected: NOTRUN @@ -238,10 +238,10 @@ expected: NOTRUN [<iframe>: separate response Content-Type: text/plain;charset=gbk;x=foo text/plain] - expected: FAIL + expected: TIMEOUT [Request: combined response Content-Type: text/plain ] - expected: FAIL + expected: NOTRUN [Response: combined response Content-Type: text/html */*;charset=gbk] expected: NOTRUN @@ -259,7 +259,7 @@ expected: NOTRUN [<iframe>: separate response Content-Type: text/html;charset=gbk text/html;x=",text/plain] - expected: FAIL + expected: TIMEOUT [fetch(): separate response Content-Type: text/plain;charset=gbk text/html;charset=windows-1254] expected: NOTRUN @@ -277,16 +277,16 @@ expected: NOTRUN [<iframe>: combined response Content-Type: text/plain */*] - expected: FAIL + expected: TIMEOUT [fetch(): separate response Content-Type: text/html text/plain] - expected: FAIL + expected: NOTRUN [Request: combined response Content-Type: text/html;" text/plain] expected: NOTRUN [<iframe>: separate response Content-Type: text/html;" \\" text/plain ";charset=GBK] - expected: FAIL + expected: TIMEOUT [fetch(): combined response Content-Type: text/html;" " text/plain] expected: NOTRUN @@ -295,7 +295,7 @@ expected: NOTRUN [<iframe>: separate response Content-Type: text/plain;charset=gbk text/plain;charset=windows-1252] - expected: FAIL + expected: TIMEOUT [Response: combined response Content-Type: text/plain */*;charset=gbk] expected: NOTRUN @@ -310,8 +310,47 @@ expected: NOTRUN [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] - expected: FAIL + expected: TIMEOUT [<iframe>: separate response Content-Type: text/html;" text/plain] - expected: FAIL + expected: TIMEOUT + + [<iframe>: combined response Content-Type: text/html;" text/plain] + expected: TIMEOUT + + [<iframe>: combined response Content-Type: */* text/html] + expected: TIMEOUT + + [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] + expected: TIMEOUT + + [<iframe>: combined response Content-Type: text/html */*] + expected: TIMEOUT + + [<iframe>: separate response Content-Type: text/html */*;charset=gbk] + expected: TIMEOUT + + [<iframe>: separate response Content-Type: text/html */*] + expected: TIMEOUT + + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] + expected: TIMEOUT + + [<iframe>: separate response Content-Type: text/html;charset=gbk text/plain text/html] + expected: TIMEOUT + + [<iframe>: separate response Content-Type: */* text/html] + expected: TIMEOUT + + [<iframe>: separate response Content-Type: text/html;x=" text/plain] + expected: TIMEOUT + + [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + expected: TIMEOUT + + [<iframe>: separate response Content-Type: text/html;" \\" text/plain] + expected: TIMEOUT + + [<iframe>: combined response Content-Type: text/html;x=" text/plain] + expected: TIMEOUT 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 new file mode 100644 index 00000000000..78879bad5f1 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-abort/javascript-url-abort-return-value-undefined.tentative.html.ini @@ -0,0 +1,5 @@ +[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_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini new file mode 100644 index 00000000000..75d75b4cda2 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_2.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini new file mode 100644 index 00000000000..385376c7321 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_4.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + 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 new file mode 100644 index 00000000000..dc2e45516de --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_5.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/the-window-object/closed-attribute.window.js.ini b/tests/wpt/metadata/html/browsers/the-window-object/closed-attribute.window.js.ini index ede7a979848..0a61dc7e11e 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/closed-attribute.window.js.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/closed-attribute.window.js.ini @@ -1,5 +1,4 @@ [closed-attribute.window.html] - expected: CRASH [closed and cross-site nested browsing context] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html.ini new file mode 100644 index 00000000000..2e0a6add6fc --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html.ini @@ -0,0 +1,4 @@ +[loop-from-ended.tentative.html] + [Test looping edge case to verify http://crbug.com/364442.] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini deleted file mode 100644 index 178680e5d14..00000000000 --- a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[script-onerror-insertion-point-2.html] - expected: TIMEOUT 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 new file mode 100644 index 00000000000..6cf9d13975c --- /dev/null +++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html.ini @@ -0,0 +1,4 @@ +[iframe_005.html] + [document.write external script into iframe write back into parent] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini index f584fce5df1..268949ced5c 100644 --- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini +++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini @@ -1,5 +1,4 @@ [005.html] - expected: ERROR [dedicated worker in shared worker in dedicated worker] expected: FAIL diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini deleted file mode 100644 index dbea4f293ad..00000000000 --- a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[transition_calc_implicit.html] - expected: TIMEOUT diff --git a/tests/wpt/web-platform-tests/.github/main.workflow b/tests/wpt/web-platform-tests/.github/main.workflow index b1b61554f91..4ff7845b9d2 100644 --- a/tests/wpt/web-platform-tests/.github/main.workflow +++ b/tests/wpt/web-platform-tests/.github/main.workflow @@ -1,16 +1,10 @@ workflow "Build & Release Manifest" { on = "push" - resolves = ["tag-master"] + resolves = ["manifest-build-and-tag"] } -action "build-manifest" { +action "manifest-build-and-tag" { uses = "./tools/docker/github" - runs = ["bash", "-c", "tools/ci/action_manifest_build.sh"] -} - -action "tag-master" { - needs = "build-manifest" - uses = "./tools/docker/github" - runs = ["python", "tools/ci/tag_master.py"] + runs = ["python", "tools/ci/manifest_build.py"] secrets = ["GITHUB_TOKEN"] } diff --git a/tests/wpt/web-platform-tests/.taskcluster.yml b/tests/wpt/web-platform-tests/.taskcluster.yml index 6ad97f7e104..89e51c8c71c 100644 --- a/tests/wpt/web-platform-tests/.taskcluster.yml +++ b/tests/wpt/web-platform-tests/.taskcluster.yml @@ -198,14 +198,22 @@ tasks: - name: lint description: >- Lint for wpt-specific requirements - script: ./tools/ci/run_tc.py --no-hosts lint tools/ci/ci_lint.sh + script: >- + ./tools/ci/run_tc.py \ + --no-hosts \ + lint \ + ./wpt lint --all conditions: push pull-request - name: update built tests description: >- Ensure test suites that require a build step are updated - script: ./tools/ci/run_tc.py --no-hosts update_built tools/ci/ci_built_diff.sh + script: >- + ./tools/ci/run_tc.py \ + --no-hosts \ + update_built \ + tools/ci/ci_built_diff.sh conditions: pull-request - name: tools/ unittests (Python 2) diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/__init__.py b/tests/wpt/web-platform-tests/common/security-features/subresource/__init__.py index e69de29bb2d..e69de29bb2d 100755 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/__init__.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/__init__.py diff --git a/tests/wpt/web-platform-tests/common/security-features/subresource/audio.py b/tests/wpt/web-platform-tests/common/security-features/subresource/audio.py new file mode 100644 index 00000000000..eb95045e031 --- /dev/null +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/audio.py @@ -0,0 +1,18 @@ +import os, sys +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import subresource + +def generate_payload(request, server_data): + file = os.path.join(request.doc_root, "webaudio", "resources", + "sin_440Hz_-6dBFS_1s.wav") + return open(file, "rb").read() + + +def main(request, response): + handler = lambda data: generate_payload(request, data) + subresource.respond(request, + response, + payload_generator = handler, + access_control_allow_origin = "*", + content_type = "audio/wav") + diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/document.py b/tests/wpt/web-platform-tests/common/security-features/subresource/document.py index b2d6c4dfabe..59e0dcd7bc6 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/document.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/document.py @@ -1,6 +1,5 @@ -import os, json, sys +import os, sys sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) - import subresource def generate_payload(server_data): diff --git a/tests/wpt/web-platform-tests/common/security-features/subresource/empty.py b/tests/wpt/web-platform-tests/common/security-features/subresource/empty.py new file mode 100644 index 00000000000..132e85ddeec --- /dev/null +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/empty.py @@ -0,0 +1,14 @@ +import os, sys +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import subresource + +def generate_payload(server_data): + return '' + +def main(request, response): + subresource.respond(request, + response, + payload_generator = generate_payload, + access_control_allow_origin = "*", + content_type = "text/plain") + diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/font.py b/tests/wpt/web-platform-tests/common/security-features/subresource/font.py index 50a5bd2f399..26311a9f079 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/font.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/font.py @@ -1,4 +1,4 @@ -import os, sys, json, base64 +import os, sys, base64 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) import subresource diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/image.py b/tests/wpt/web-platform-tests/common/security-features/subresource/image.py index 7bc9c657e6b..d1328894123 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/image.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/image.py @@ -1,4 +1,4 @@ -import os, sys, array, json, math, StringIO +import os, sys, array, math, StringIO sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) import subresource diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/script.py b/tests/wpt/web-platform-tests/common/security-features/subresource/script.py index efa1a955d46..9d7cd0469f0 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/script.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/script.py @@ -1,4 +1,4 @@ -import os, sys, json +import os, sys sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) import subresource diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/shared-worker.py b/tests/wpt/web-platform-tests/common/security-features/subresource/shared-worker.py index 66b6e66c6e3..d8fd6876449 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/shared-worker.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/shared-worker.py @@ -1,4 +1,4 @@ -import os, sys, json +import os, sys sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) import subresource diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/stylesheet.py b/tests/wpt/web-platform-tests/common/security-features/subresource/stylesheet.py index 54378216774..ec62a8cd5f2 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/stylesheet.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/stylesheet.py @@ -1,4 +1,4 @@ -import os, sys, json +import os, sys sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) import subresource @@ -23,23 +23,9 @@ def generate_payload(request, server_data): "property": request.GET["property"]} def generate_import_rule(request, server_data): - type = 'image' - property = None; - if "type" in request.GET: - type = request.GET["type"] - if type == "svg" and "property" in request.GET: - property = request.GET["property"] - if property is None: - return "@import url('%(url)s?id=%(id)s&type=%(type)s');" % { - "id": request.GET["id"], - "url": subresource.create_redirect_url(request, cross_origin = True), - "type": type - } - return "@import url('%(url)s?id=%(id)s&type=%(type)s&property=%(property)s');" % { - "id": request.GET["id"], - "url": subresource.create_redirect_url(request, cross_origin = True), - "type": type, - "property": property + return "@import url('%(url)s');" % { + "url": subresource.create_url(request, swap_origin=True, + query_parameter_to_remove="import-rule") } def generate_report_headers_payload(request, server_data): diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/subresource.py b/tests/wpt/web-platform-tests/common/security-features/subresource/subresource.py index 9ba839a133d..f11f3250568 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/subresource.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/subresource.py @@ -1,48 +1,68 @@ -import os, sys, json, urlparse, urllib +import os, json, urllib, urlparse def get_template(template_basename): script_directory = os.path.dirname(os.path.abspath(__file__)) template_directory = os.path.abspath(os.path.join(script_directory, - "..", "template")) template_filename = os.path.join(template_directory, template_basename); with open(template_filename, "r") as f: return f.read() + +def redirect(url, response): + response.add_required_headers = False + response.writer.write_status(301) + response.writer.write_header("access-control-allow-origin", "*") + response.writer.write_header("location", url) + response.writer.end_headers() + response.writer.write("") + + # TODO(kristijanburnik): subdomain_prefix is a hardcoded value aligned with # referrer-policy-test-case.js. The prefix should be configured in one place. -def get_swapped_origin_netloc(netloc, subdomain_prefix = "www1."): +def __get_swapped_origin_netloc(netloc, subdomain_prefix = "www1."): if netloc.startswith(subdomain_prefix): return netloc[len(subdomain_prefix):] else: return subdomain_prefix + netloc -def create_redirect_url(request, cross_origin = False): + +# Creates a URL (typically a redirect target URL) that is the same as the +# current request URL `request.url`, except for: +# - When `swap_scheme` or `swap_origin` is True, its scheme/origin is changed +# to the other one. (http <-> https, ws <-> wss, etc.) +# - `query_parameter_to_remove` parameter is removed from query part. +# Its default is "redirection" to avoid redirect loops. +def create_url(request, swap_scheme = False, swap_origin = False, + query_parameter_to_remove = "redirection"): parsed = urlparse.urlsplit(request.url) destination_netloc = parsed.netloc - if cross_origin: - destination_netloc = get_swapped_origin_netloc(parsed.netloc) + + scheme = parsed.scheme + if swap_scheme: + scheme = "http" if parsed.scheme == "https" else "https" + hostname = parsed.netloc.split(':')[0] + port = request.server.config["ports"][scheme][0] + destination_netloc = ":".join([hostname, str(port)]) + + if swap_origin: + destination_netloc = __get_swapped_origin_netloc(destination_netloc) + + parsed_query = urlparse.parse_qsl(parsed.query, keep_blank_values=True) + parsed_query = filter(lambda x: x[0] != query_parameter_to_remove, + parsed_query) destination_url = urlparse.urlunsplit(urlparse.SplitResult( - scheme = parsed.scheme, + scheme = scheme, netloc = destination_netloc, path = parsed.path, - query = None, + query = urllib.urlencode(parsed_query), fragment = None)) return destination_url -def redirect(url, response): - response.add_required_headers = False - response.writer.write_status(301) - response.writer.write_header("access-control-allow-origin", "*") - response.writer.write_header("location", url) - response.writer.end_headers() - response.writer.write("") - - def preprocess_redirection(request, response): if "redirection" not in request.GET: return False @@ -51,10 +71,14 @@ def preprocess_redirection(request, response): if redirection == "no-redirect": return False + elif redirection == "keep-scheme-redirect": + redirect_url = create_url(request, swap_scheme=False) + elif redirection == "swap-scheme-redirect": + redirect_url = create_url(request, swap_scheme=True) elif redirection == "keep-origin-redirect": - redirect_url = create_redirect_url(request, cross_origin = False) + redirect_url = create_url(request, swap_origin=False) elif redirection == "swap-origin-redirect": - redirect_url = create_redirect_url(request, cross_origin = True) + redirect_url = create_url(request, swap_origin=True) else: raise ValueError("Invalid redirection type '%s'" % redirection) @@ -62,6 +86,43 @@ def preprocess_redirection(request, response): return True +def preprocess_stash_action(request, response): + if "action" not in request.GET: + return False + + action = request.GET["action"] + + key = request.GET["key"] + stash = request.server.stash + path = request.GET.get("path", request.url.split('?'))[0] + + if action == "put": + value = request.GET["value"] + stash.take(key=key, path=path) + stash.put(key=key, value=value, path=path) + response_data = json.dumps({"status": "success", "result": key}) + elif action == "purge": + value = stash.take(key=key, path=path) + return False + elif action == "take": + value = stash.take(key=key, path=path) + if value is None: + status = "allowed" + else: + status = "blocked" + response_data = json.dumps({"status": status, "result": value}) + else: + return False + + response.add_required_headers = False + response.writer.write_status(200) + response.writer.write_header("content-type", "text/javascript") + response.writer.write_header("cache-control", "no-cache; must-revalidate") + response.writer.end_headers() + response.writer.write(response_data) + return True + + def __noop(request, response): return "" @@ -77,6 +138,9 @@ def respond(request, if preprocess_redirection(request, response): return + if preprocess_stash_action(request, response): + return + response.add_required_headers = False response.writer.write_status(status_code) diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/svg.py b/tests/wpt/web-platform-tests/common/security-features/subresource/svg.py index 8618875c79f..6353079bb89 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/svg.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/svg.py @@ -1,4 +1,4 @@ -import os, sys, json +import os, sys sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) import subresource diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/template/document.html.template b/tests/wpt/web-platform-tests/common/security-features/subresource/template/document.html.template index 141711c1483..141711c1483 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/template/document.html.template +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/template/document.html.template diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/template/font.css.template b/tests/wpt/web-platform-tests/common/security-features/subresource/template/font.css.template index 9b19df3cf1f..9d1e9c421cc 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/template/font.css.template +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/template/font.css.template @@ -2,7 +2,7 @@ font-family: 'wpt'; font-style: normal; font-weight: normal; - src: url(/referrer-policy/generic/subresource/font.py?id=%(id)s) format('truetype'); + src: url(/common/security-features/subresource/font.py?id=%(id)s) format('truetype'); } body { font-family: 'wpt'; diff --git a/tests/wpt/web-platform-tests/common/security-features/subresource/template/image.css.template b/tests/wpt/web-platform-tests/common/security-features/subresource/template/image.css.template new file mode 100644 index 00000000000..dfe41f1bf16 --- /dev/null +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/template/image.css.template @@ -0,0 +1,3 @@ +div.styled::before { + content:url(/common/security-features/subresource/image.py?id=%(id)s) +} diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/template/script.js.template b/tests/wpt/web-platform-tests/common/security-features/subresource/template/script.js.template index e2edf21819d..e2edf21819d 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/template/script.js.template +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/template/script.js.template diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/template/shared-worker.js.template b/tests/wpt/web-platform-tests/common/security-features/subresource/template/shared-worker.js.template index c3f109e4a90..c3f109e4a90 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/template/shared-worker.js.template +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/template/shared-worker.js.template diff --git a/tests/wpt/web-platform-tests/common/security-features/subresource/template/svg.css.template b/tests/wpt/web-platform-tests/common/security-features/subresource/template/svg.css.template new file mode 100644 index 00000000000..c2e509cc3b8 --- /dev/null +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/template/svg.css.template @@ -0,0 +1,3 @@ +path { + %(property)s: url(/common/security-features/subresource/svg.py?id=%(id)s#invalidFragment); +} diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/template/svg.embedded.template b/tests/wpt/web-platform-tests/common/security-features/subresource/template/svg.embedded.template index 5986c4800a7..5986c4800a7 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/template/svg.embedded.template +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/template/svg.embedded.template diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/template/worker.js.template b/tests/wpt/web-platform-tests/common/security-features/subresource/template/worker.js.template index 817dd8c87ac..817dd8c87ac 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/template/worker.js.template +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/template/worker.js.template diff --git a/tests/wpt/web-platform-tests/common/security-features/subresource/video.py b/tests/wpt/web-platform-tests/common/security-features/subresource/video.py new file mode 100644 index 00000000000..c8d8548ac3e --- /dev/null +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/video.py @@ -0,0 +1,17 @@ +import os, sys +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +import subresource + +def generate_payload(request, server_data): + file = os.path.join(request.doc_root, "media", "movie_5.ogv") + return open(file, "rb").read() + + +def main(request, response): + handler = lambda data: generate_payload(request, data) + subresource.respond(request, + response, + payload_generator = handler, + access_control_allow_origin = "*", + content_type = "video/ogg") + diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/worker.py b/tests/wpt/web-platform-tests/common/security-features/subresource/worker.py index 895bc0d84d1..85c1f67a967 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/worker.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/worker.py @@ -1,4 +1,4 @@ -import os, sys, json +import os, sys sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) import subresource diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/xhr.py b/tests/wpt/web-platform-tests/common/security-features/subresource/xhr.py index 45f38159c2e..82a4cb0b657 100755 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource/xhr.py +++ b/tests/wpt/web-platform-tests/common/security-features/subresource/xhr.py @@ -1,4 +1,4 @@ -import os, sys, json +import os, sys sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) import subresource diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-size-flexbox-002.html b/tests/wpt/web-platform-tests/css/css-contain/contain-size-flexbox-002.html new file mode 100644 index 00000000000..531af691afe --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/contain-size-flexbox-002.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<title>Tests that scrollbars are handled correctly in a flex item with contains:size</title> +<link rel="author" title="Google LLC" href="https://www.google.com"> +<link rel="help" href="https://www.w3.org/TR/css-contain-1/#containment-size"> +<link rel="match" href="reference/contain-size-flexbox-002-ref.html"> + +<style> +div > div { + vertical-align: top; + display: inline-block; + contain: size; + overflow: scroll; + border: 1px solid; +} +</style> + +<p>Test passes if the two lines below look the same.</p> + +<div style="display: flex; line-height: 1.0;"> + <div></div> +</div> + +<div style="line-height: 1.0;"> + <div></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-flexbox-002-ref.html b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-flexbox-002-ref.html new file mode 100644 index 00000000000..a75fa26c9ff --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-size-flexbox-002-ref.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<title>Tests that scrollbars are handled correctly in a flex item with contains:size</title> +<link rel="author" title="Google LLC" href="https://www.google.com"> + +<style> +div > div { + vertical-align: top; + display: inline-block; + contain: size; + overflow: scroll; + border: 1px solid; +} +</style> + +<p>Test passes if the two lines below look the same.</p> + +<div style="line-height: 1.0;"> + <div></div> +</div> + +<div style="line-height: 1.0;"> + <div></div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-tables/border-collapse-rowspan-cell-ref.html b/tests/wpt/web-platform-tests/css/css-tables/border-collapse-rowspan-cell-ref.html new file mode 100644 index 00000000000..53774da48a3 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/border-collapse-rowspan-cell-ref.html @@ -0,0 +1,22 @@ +<!doctype HTML> +<title>CSS Reference</title> +<style> + table { + border-collapse: collapse; + } + + td { + border: 1px solid red; + } +</style> +<table> + <tr> + <td id=target rowspan="2"> + Needs border + </td> + </tr> + <tr> + <td> + </td> + </tr> +</table> diff --git a/tests/wpt/web-platform-tests/css/css-tables/border-collapse-rowspan-cell.html b/tests/wpt/web-platform-tests/css/css-tables/border-collapse-rowspan-cell.html new file mode 100644 index 00000000000..8a4bdede0ea --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-tables/border-collapse-rowspan-cell.html @@ -0,0 +1,26 @@ +<!doctype HTML> +<title>CSS Test: collapsed borders of row-spanning cells should paint correctly.</title> +<link rel="author" title="Chris Harrelson" href="chrishtr@chromium.org"> +<link rel="match" href="border-collapse-rowspan-cell-ref.html"> +<link rel="help" href="https://drafts.csswg.org/css-tables/#slot"> +<style> + table { + border-collapse: collapse; + } + + td { + border: 1px solid red; + position: relative; + } +</style> +<table> + <tr> + <td rowspan="2"> + Needs border + </td> + </tr> + <tr> + <td> + </td> + </tr> +</table> diff --git a/tests/wpt/web-platform-tests/fetch/corb/img-mime-types-coverage.tentative.sub.html b/tests/wpt/web-platform-tests/fetch/corb/img-mime-types-coverage.tentative.sub.html index 223a0a375c3..6d7fd60f449 100644 --- a/tests/wpt/web-platform-tests/fetch/corb/img-mime-types-coverage.tentative.sub.html +++ b/tests/wpt/web-platform-tests/fetch/corb/img-mime-types-coverage.tentative.sub.html @@ -19,6 +19,7 @@ // MIME-types not protected by CORB "image/gif", "image/png", "image/png;blah", "image/svg+xml", "application/javascript", "application/jsonp", + "application/dash+xml", // video format "image/gif;HI=THERE", // MIME types that may seem to be JSON or XML, but really aren't - i.e. 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 717e385bd04..b9fc1af2f3b 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 @@ -9,7 +9,7 @@ // encode their request headers in their pixels. Fun stuff! promise_test(() => loadImageInWindow( - "https://{{host}}:{{ports[https][0]}}/referrer-policy/generic/subresource/image.py", + "https://{{host}}:{{ports[https][0]}}/common/security-features/subresource/image.py", [], window) .then(img => { @@ -33,7 +33,7 @@ promise_test(() => loadImageInWindow( - "https://{{hosts[][www]}}:{{ports[https][0]}}/referrer-policy/generic/subresource/image.py", + "https://{{hosts[][www]}}:{{ports[https][0]}}/common/security-features/subresource/image.py", [], window) .then(img => { @@ -57,7 +57,7 @@ promise_test(() => loadImageInWindow( - "https://{{hosts[alt][www]}}:{{ports[https][0]}}/referrer-policy/generic/subresource/image.py", + "https://{{hosts[alt][www]}}:{{ports[https][0]}}/common/security-features/subresource/image.py", [], window) .then(img => { diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html new file mode 100644 index 00000000000..03a9b5d4544 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html @@ -0,0 +1,55 @@ +<!DOCTYPE html> +<title>Test looping edge case to verify http://crbug.com/364442.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/common/media.js"></script> +<video></video> +<script> +// Seek towards end of video (for faster testing). +// Play video to end with "loop" set to false. +// Once ended, set "loop" to true. Call play. +// Verify that "seeked" event fires, seeking back to the beginning. +// Pause video and end test. +async_test(function(t) { + var video = document.querySelector("video"); + + video.onloadedmetadata = t.step_func(function() { + // Video is initially paused and "loop" unset. + assert_true(video.paused, "paused initially "); + assert_false(video.loop, "loop initially"); + // Seek to just before the end of the video and play. + video.currentTime = video.duration - 0.5; + video.onended = t.step_func(function() { + // Verify played to end and stopped. + assert_true(video.ended, "ended at ended event"); + assert_true(video.paused, "paused at ended event"); + assert_equals(video.currentTime, video.duration, "currentTime at ended event"); + + // With playback ended, set "loop" attribute. This will cause ended == false. + // looping video cannot be "ended", only paused. + assert_false(video.loop, "loop at ended event"); + video.loop = true; + assert_true(video.loop, "loop after seek"); + assert_false(video.ended, "ended after seek"); + assert_true(video.paused, "paused after seek"); + + video.onseeked = t.step_func_done(function() { + // Observed seek. Verify current time decreased and still playing. + assert_true(video.loop, "loop at seeked event") + assert_false(video.paused, "paused at seeked event"); + assert_false(video.ended, "ended at seeked event"); + assert_less_than(video.currentTime, video.duration, "currentTime at seeked event"); + // Pausing now that test is over to prevent additional unwanted looping. + video.pause(); + }); + + // Play video with "loop" set. Expect seek back to start. + video.play(); + }); + + video.play(); + }); + + video.src = getVideoURI("/media/movie_5"); +}); +</script> diff --git a/tests/wpt/web-platform-tests/interfaces/wake-lock.idl b/tests/wpt/web-platform-tests/interfaces/wake-lock.idl index 7ef19dc6475..202dc6b09f7 100644 --- a/tests/wpt/web-platform-tests/interfaces/wake-lock.idl +++ b/tests/wpt/web-platform-tests/interfaces/wake-lock.idl @@ -11,6 +11,7 @@ enum WakeLockType { "screen", "system" }; [Constructor(WakeLockType type), SecureContext, Exposed=(DedicatedWorker,Window)] interface WakeLock : EventTarget { + [Exposed=Window] static Promise<PermissionState> requestPermission(WakeLockType type); readonly attribute WakeLockType type; readonly attribute boolean active; attribute EventHandler onactivechange; diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl index 7594489a36d..8a3264073e8 100644 --- a/tests/wpt/web-platform-tests/interfaces/webxr.idl +++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl @@ -149,8 +149,7 @@ interface XRRigidTransform { readonly attribute DOMPointReadOnly position; readonly attribute DOMPointReadOnly orientation; readonly attribute Float32Array matrix; - - XRRigidTransform inverse(); + readonly attribute XRRigidTransform inverse; }; [SecureContext, Exposed=Window, diff --git a/tests/wpt/web-platform-tests/mixed-content/generic/expect.py b/tests/wpt/web-platform-tests/mixed-content/generic/expect.py deleted file mode 100644 index 2c360c1d931..00000000000 --- a/tests/wpt/web-platform-tests/mixed-content/generic/expect.py +++ /dev/null @@ -1,106 +0,0 @@ -import json, os, urllib, urlparse - -def redirect(url, response): - response.add_required_headers = False - response.writer.write_status(301) - response.writer.write_header("access-control-allow-origin", "*") - response.writer.write_header("location", url) - response.writer.end_headers() - response.writer.write("") - -def create_redirect_url(request, swap_scheme = False): - parsed = urlparse.urlsplit(request.url) - destination_netloc = parsed.netloc - scheme = parsed.scheme - - if swap_scheme: - scheme = "http" if parsed.scheme == "https" else "https" - hostname = parsed.netloc.split(':')[0] - port = request.server.config["ports"][scheme][0] - destination_netloc = ":".join([hostname, str(port)]) - - # Remove "redirection" from query to avoid redirect loops. - parsed_query = dict(urlparse.parse_qsl(parsed.query)) - assert "redirection" in parsed_query - del parsed_query["redirection"] - - destination_url = urlparse.urlunsplit(urlparse.SplitResult( - scheme = scheme, - netloc = destination_netloc, - path = parsed.path, - query = urllib.urlencode(parsed_query), - fragment = None)) - - return destination_url - -def main(request, response): - if "redirection" in request.GET: - redirection = request.GET["redirection"] - if redirection == "no-redirect": - pass - elif redirection == "keep-scheme-redirect": - redirect(create_redirect_url(request, swap_scheme=False), response) - return - elif redirection == "swap-scheme-redirect": - redirect(create_redirect_url(request, swap_scheme=True), response) - return - else: - raise ValueError ("Invalid redirect type: %s" % redirection) - - content_type = "text/plain" - response_data = "" - - if "action" in request.GET: - action = request.GET["action"] - - if "content_type" in request.GET: - content_type = request.GET["content_type"] - - key = request.GET["key"] - stash = request.server.stash - path = request.GET.get("path", request.url.split('?'))[0] - - if action == "put": - value = request.GET["value"] - stash.take(key=key, path=path) - stash.put(key=key, value=value, path=path) - response_data = json.dumps({"status": "success", "result": key}) - elif action == "purge": - value = stash.take(key=key, path=path) - if content_type == "image/png": - response_data = open(os.path.join(request.doc_root, - "images", - "smiley.png"), "rb").read() - elif content_type == "audio/wav": - response_data = open(os.path.join(request.doc_root, - "webaudio", "resources", "sin_440Hz_-6dBFS_1s.wav"), "rb").read() - elif content_type == "video/ogg": - response_data = open(os.path.join(request.doc_root, - "media", - "movie_5.ogv"), "rb").read() - elif content_type == "application/javascript": - response_data = open(os.path.join(request.doc_root, - "mixed-content", - "generic", - "worker.js"), "rb").read() - elif content_type == "text/javascript": - response_data = open(os.path.join(request.doc_root, - "mixed-content", - "generic", - "script.js"), "rb").read() - else: - response_data = "/* purged */" - elif action == "take": - value = stash.take(key=key, path=path) - if value is None: - status = "allowed" - else: - status = "blocked" - response_data = json.dumps({"status": status, "result": value}) - - response.add_required_headers = False - response.writer.write_status(200) - response.writer.write_header("content-type", content_type) - response.writer.write_header("cache-control", "no-cache; must-revalidate") - response.writer.end_headers() - response.writer.write(response_data) diff --git a/tests/wpt/web-platform-tests/mixed-content/generic/mixed-content-test-case.js b/tests/wpt/web-platform-tests/mixed-content/generic/mixed-content-test-case.js index b2c0bcdea1e..a50b61c7e76 100644 --- a/tests/wpt/web-platform-tests/mixed-content/generic/mixed-content-test-case.js +++ b/tests/wpt/web-platform-tests/mixed-content/generic/mixed-content-test-case.js @@ -21,43 +21,33 @@ function wrapResult(server_data) { * @return {object} Object wrapping the start method used to run the test. */ function MixedContentTestCase(scenario, description, sanityChecker) { - var httpProtocol = "http"; - var httpsProtocol = "https"; - var wsProtocol = "ws"; - var wssProtocol = "wss"; + const subresourcePath = { + "a-tag": "/common/security-features/subresource/document.py", + "area-tag": "/common/security-features/subresource/document.py", + "beacon-request": "/common/security-features/subresource/empty.py", + "fetch-request": "/common/security-features/subresource/xhr.py", + "form-tag": "/common/security-features/subresource/empty.py", + "iframe-tag": "/common/security-features/subresource/document.py", + "img-tag": "/common/security-features/subresource/image.py", + "picture-tag": "/common/security-features/subresource/image.py", + "script-tag": "/common/security-features/subresource/script.py", - var sameOriginHost = location.hostname; - var crossOriginHost = "{{domains[www1]}}"; + "worker-request": "/common/security-features/subresource/worker.py", + "module-worker-top-level": "/common/security-features/subresource/worker.py", + "module-data-worker-import": "/common/security-features/subresource/worker.py", - // These values can evaluate to either empty strings or a ":port" string. - var httpPort = getNormalizedPort(parseInt("{{ports[http][0]}}", 10)); - var httpsPort = getNormalizedPort(parseInt("{{ports[https][0]}}", 10)); - var wsPort = getNormalizedPort(parseInt("{{ports[ws][0]}}", 10)); - var wssPort = getNormalizedPort(parseInt("{{ports[wss][0]}}", 10)); + "object-tag": "/common/security-features/subresource/empty.py", - var resourcePath = "/mixed-content/generic/expect.py"; - var wsResourcePath = "/stash_responder"; + "link-css-tag": "/common/security-features/subresource/empty.py", + "link-prefetch-tag": "/common/security-features/subresource/empty.py", + "classic-data-worker-fetch": "/common/security-features/subresource/empty.py", - // Map all endpoints to scenario for use in the test. - var endpoint = { - "same-origin": - location.origin + resourcePath, - "same-host-https": - httpsProtocol + "://" + sameOriginHost + httpsPort + resourcePath, - "same-host-http": - httpProtocol + "://" + sameOriginHost + httpPort + resourcePath, - "cross-origin-https": - httpsProtocol + "://" + crossOriginHost + httpsPort + resourcePath, - "cross-origin-http": - httpProtocol + "://" + crossOriginHost + httpPort + resourcePath, - "same-host-wss": - wssProtocol + "://" + sameOriginHost + wssPort + wsResourcePath, - "same-host-ws": - wsProtocol + "://" + sameOriginHost + wsPort + wsResourcePath, - "cross-origin-wss": - wssProtocol + "://" + crossOriginHost + wssPort + wsResourcePath, - "cross-origin-ws": - wsProtocol + "://" + crossOriginHost + wsPort + wsResourcePath + "xhr-request": "/common/security-features/subresource/xhr.py", + + "audio-tag": "/common/security-features/subresource/audio.py", + "video-tag": "/common/security-features/subresource/video.py", + + "websocket-request": "/stash_responder" }; // Mapping all the resource requesting methods to the scenario. @@ -88,44 +78,56 @@ function MixedContentTestCase(scenario, description, sanityChecker) { "websocket-request": requestViaWebSocket }; - // Mapping all expected MIME types to the scenario. - var contentType = { - "a-tag": "text/html", - "area-tag": "text/html", - "beacon-request": "text/plain", - "fetch-request": "application/json", - "form-tag": "text/html", - "iframe-tag": "text/html", - "img-tag": "image/png", - "script-tag": "text/javascript", - - "worker-request": "application/javascript", - "module-worker-top-level": "application/javascript", - "module-data-worker-import": "application/javascript", - "classic-data-worker-fetch": "application/javascript", - - "xhr-request": "application/json", - "audio-tag": "audio/wav", - "video-tag": "video/ogg", - "picture-tag": "image/png", - "object-tag": "text/html", - "link-css-tag": "text/css", - "link-prefetch-tag": "text/html", - "websocket-request": "application/json" - }; - for (const workletType of ['animation', 'audio', 'layout', 'paint']) { resourceMap[`worklet-${workletType}-top-level`] = url => requestViaWorklet(workletType, url); - contentType[`worklet-${workletType}-top-level`] = - "application/javascript"; + subresourcePath[`worklet-${workletType}-top-level`] = + "/common/security-features/subresource/worker.py"; resourceMap[`worklet-${workletType}-data-import`] = url => requestViaWorklet(workletType, workerUrlThatImports(url)); - contentType[`worklet-${workletType}-data-import`] = - "application/javascript"; + subresourcePath[`worklet-${workletType}-data-import`] = + "/common/security-features/subresource/worker.py"; } + var httpProtocol = "http"; + var httpsProtocol = "https"; + var wsProtocol = "ws"; + var wssProtocol = "wss"; + + var sameOriginHost = location.hostname; + var crossOriginHost = "{{domains[www1]}}"; + + // These values can evaluate to either empty strings or a ":port" string. + var httpPort = getNormalizedPort(parseInt("{{ports[http][0]}}", 10)); + var httpsPort = getNormalizedPort(parseInt("{{ports[https][0]}}", 10)); + var wsPort = getNormalizedPort(parseInt("{{ports[ws][0]}}", 10)); + var wssPort = getNormalizedPort(parseInt("{{ports[wss][0]}}", 10)); + + const resourcePath = subresourcePath[scenario.subresource]; + + // Map all endpoints to scenario for use in the test. + var endpoint = { + "same-origin": + location.origin + resourcePath, + "same-host-https": + httpsProtocol + "://" + sameOriginHost + httpsPort + resourcePath, + "same-host-http": + httpProtocol + "://" + sameOriginHost + httpPort + resourcePath, + "cross-origin-https": + httpsProtocol + "://" + crossOriginHost + httpsPort + resourcePath, + "cross-origin-http": + httpProtocol + "://" + crossOriginHost + httpPort + resourcePath, + "same-host-wss": + wssProtocol + "://" + sameOriginHost + wssPort + resourcePath, + "same-host-ws": + wsProtocol + "://" + sameOriginHost + wsPort + resourcePath, + "cross-origin-wss": + wssProtocol + "://" + crossOriginHost + wssPort + resourcePath, + "cross-origin-ws": + wsProtocol + "://" + crossOriginHost + wsPort + resourcePath + }; + sanityChecker.checkScenario(scenario, resourceMap); var mixed_content_test = async_test(description); @@ -137,17 +139,14 @@ function MixedContentTestCase(scenario, description, sanityChecker) { var value = guid(); // We use the same path for both HTTP/S and WS/S stash requests. var stash_path = encodeURIComponent("/mixed-content"); - var announceResourceRequestUrl = endpoint['same-origin'] + - "?action=put&key=" + key + - "&value=" + value + - "&path=" + stash_path; - var assertResourceRequestUrl = endpoint['same-origin'] + - "?action=take&key=" + key + - "&path=" + stash_path; - var resourceRequestUrl = endpoint[scenario.origin] + "?redirection=" + + const stashEndpoint = "/common/security-features/subresource/xhr.py?key=" + + key + "&path=" + stash_path; + const announceResourceRequestUrl = stashEndpoint + "&action=put&value=" + + value; + const assertResourceRequestUrl = stashEndpoint + "&action=take"; + const resourceRequestUrl = endpoint[scenario.origin] + "?redirection=" + scenario.redirection + "&action=purge&key=" + key + - "&path=" + stash_path + "&content_type=" + - contentType[scenario.subresource]; + "&path=" + stash_path; xhrRequest(announceResourceRequestUrl) .then(mixed_content_test.step_func(_ => { diff --git a/tests/wpt/web-platform-tests/mixed-content/generic/script.js b/tests/wpt/web-platform-tests/mixed-content/generic/script.js deleted file mode 100644 index 2d1cdf0a4bb..00000000000 --- a/tests/wpt/web-platform-tests/mixed-content/generic/script.js +++ /dev/null @@ -1 +0,0 @@ -postMessage("", "*"); diff --git a/tests/wpt/web-platform-tests/mixed-content/generic/worker.js b/tests/wpt/web-platform-tests/mixed-content/generic/worker.js deleted file mode 100644 index 7e2168bcc06..00000000000 --- a/tests/wpt/web-platform-tests/mixed-content/generic/worker.js +++ /dev/null @@ -1 +0,0 @@ -postMessage('done'); diff --git a/tests/wpt/web-platform-tests/referrer-policy/README.md b/tests/wpt/web-platform-tests/referrer-policy/README.md index 58eff1a0ca3..ea158fe5394 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/README.md +++ b/tests/wpt/web-platform-tests/referrer-policy/README.md @@ -223,7 +223,6 @@ var scenario = { "source_protocol": "http", "target_protocol": "http", "subresource": "iframe-tag", - "subresource_path": "/referrer-policy/generic/subresource/document.py", "referrer_url": "origin" }; ``` diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/README.md b/tests/wpt/web-platform-tests/referrer-policy/css-integration/README.md index 14da25c4d97..150b0e65263 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/README.md +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/README.md @@ -1,7 +1,7 @@ These tests exercise different ways to fetch a resource (image, font-face, svg references), generated via the sub-resource python script in ```./generic/subresource/``` (for example, loading an image: -```/referrer-policy/generic/subresource/image.py?id=<UUID>```) and later verify +```/common/security-features/subresource/image.py?id=<UUID>```) and later verify the headers used to fetch the resource. Since there is no way to wait for a resource referenced from CSS to be loaded, @@ -11,4 +11,4 @@ after the resource (hopefully) was loaded. Since there is also no way to retrieve headers (or other information) from resources loaded via CSS, we store the headers with the given ```UUID``` as key on the server, and retrieve them later via an XHR, for example: -```/referrer-policy/generic/subresource/image.py?id=<UUID>&report-headers```. +```/common/security-features/subresource/image.py?id=<UUID>&report-headers```. diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/external-import-stylesheet.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/external-import-stylesheet.html index 9245ff39c6e..3ced0f49983 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/external-import-stylesheet.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/external-import-stylesheet.html @@ -21,9 +21,9 @@ let id = token(); let url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port; let css_url = url_prefix + - "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + + "/common/security-features/subresource/stylesheet.py?id=" + id + "&import-rule" + "&referrer-policy=no-referrer"; - let check_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py" + + let check_url = url_prefix + "/common/security-features/subresource/stylesheet.py" + "?id=" + id + "&report-headers"; return new Promise(resolve => { diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/internal-import-stylesheet.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/internal-import-stylesheet.html index c25b99926a0..df835c45e10 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/internal-import-stylesheet.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/internal-import-stylesheet.html @@ -20,8 +20,8 @@ promise_test(function(css_test) { let id = token(); let url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port; - let css_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + "&import-rule"; - let check_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py" + + let css_url = url_prefix + "/common/security-features/subresource/stylesheet.py?id=" + id + "&import-rule"; + let check_url = url_prefix + "/common/security-features/subresource/stylesheet.py" + "?id=" + id + "&report-headers"; let style = document.createElement("style"); diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/processing-instruction.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/processing-instruction.html index 36d8bbc0216..1a0d9ebdda2 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/processing-instruction.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/child-css/processing-instruction.html @@ -20,7 +20,7 @@ let id = token(); let url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port + - "/referrer-policy/generic/subresource/stylesheet.py?id=" + + "/common/security-features/subresource/stylesheet.py?id=" + id; let css_url = url_prefix + "&import-rule"; let expected = url_prefix + "&import-rule"; diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/css-test-helper.js b/tests/wpt/web-platform-tests/referrer-policy/css-integration/css-test-helper.js index 0afa9e1b87c..dc97ccc063b 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/css-test-helper.js +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/css-test-helper.js @@ -1,6 +1,6 @@ var svg_ns = "http://www.w3.org/2000/svg"; var url_prefix = location.protocol + "//" + location.hostname + ":" + - location.port + "/referrer-policy/generic/subresource/"; + location.port + "/common/security-features/subresource/"; var svg_test_properties = [ 'fill', diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/external-import-stylesheet.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/external-import-stylesheet.html index 6bd0554ccdf..db655fbb726 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/external-import-stylesheet.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/external-import-stylesheet.html @@ -22,12 +22,12 @@ let id = token(); let css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + - "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + + "/common/security-features/subresource/stylesheet.py?id=" + id + "&import-rule" + "&type=font"; let url_prefix = location.protocol + "//" + location.hostname + ":" + location.port; let css_referrer = url_prefix + - "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + "&type=font"; - let font_url = url_prefix + "/referrer-policy/generic/subresource/font.py" + + "/common/security-features/subresource/stylesheet.py?id=" + id + "&type=font"; + let font_url = url_prefix + "/common/security-features/subresource/font.py" + "?id=" + id + "&report-headers" + "&type=font"; return new Promise(resolve => { diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/external-stylesheet.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/external-stylesheet.html index 8773664625c..cc99b1f3ddc 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/external-stylesheet.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/external-stylesheet.html @@ -20,8 +20,8 @@ promise_test(function(css_test) { let id = token(); let url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port; - let css_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + "&type=font"; - let font_url = url_prefix + "/referrer-policy/generic/subresource/font.py" + + let css_url = url_prefix + "/common/security-features/subresource/stylesheet.py?id=" + id + "&type=font"; + let font_url = url_prefix + "/common/security-features/subresource/font.py" + "?id=" + id + "&report-headers"; return new Promise(resolve => { diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/internal-import-stylesheet.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/internal-import-stylesheet.html index 6dcf6be3e7d..969db95179e 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/internal-import-stylesheet.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/internal-import-stylesheet.html @@ -21,7 +21,7 @@ promise_test(function(css_test) { let id = token(); let url_prefix = location.protocol + "//www1." + location.hostname + ":" + - location.port + "/referrer-policy/generic/subresource/"; + location.port + "/common/security-features/subresource/"; let css_url = url_prefix + "stylesheet.py?id=" + id + "&type=font"; let font_url = url_prefix + "font.py?report-headers&id=" + id; diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/internal-stylesheet.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/internal-stylesheet.html index 0d54bb766f7..40eb09357b9 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/internal-stylesheet.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/internal-stylesheet.html @@ -21,7 +21,7 @@ let id = token(); let css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + - "/referrer-policy/generic/subresource/font.py" + "?id=" + + "/common/security-features/subresource/font.py" + "?id=" + id + "&type=font"; let font_url = css_url + "&report-headers"; diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/processing-instruction.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/processing-instruction.html index 26203a82268..25b0ed13473 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/processing-instruction.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/font-face/processing-instruction.html @@ -22,12 +22,12 @@ let id = token(); let url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port; let css_url = url_prefix + - "/referrer-policy/generic/subresource/stylesheet.py?id=" + + "/common/security-features/subresource/stylesheet.py?id=" + id + "&type=font"; let expected = url_prefix + - "/referrer-policy/generic/subresource/stylesheet.py?id=" + + "/common/security-features/subresource/stylesheet.py?id=" + id + "&type=font"; - let font_url = url_prefix + "/referrer-policy/generic/subresource/font.py" + + let font_url = url_prefix + "/common/security-features/subresource/font.py" + "?id=" + id + "&report-headers"; let processingInstruction = diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/external-import-stylesheet.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/external-import-stylesheet.html index 7c5a8c3d709..370bc44b6c1 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/external-import-stylesheet.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/external-import-stylesheet.html @@ -21,13 +21,13 @@ promise_test(function(css_test) { var id = token(); var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + - "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + + "/common/security-features/subresource/stylesheet.py?id=" + id + "&import-rule" + "&type=image"; var url_prefix = location.protocol + "//" + location.hostname + ":" + location.port; var css_referrer = url_prefix + - "/referrer-policy/generic/subresource/stylesheet.py?id=" + id + + "/common/security-features/subresource/stylesheet.py?id=" + id + "&type=image"; - var img_url = url_prefix + "/referrer-policy/generic/subresource/image.py" + + var img_url = url_prefix + "/common/security-features/subresource/image.py" + "?id=" + id + "&report-headers"; return new Promise(resolve => { diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/external-stylesheet.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/external-stylesheet.html index 72a807bec6b..eb1b019c988 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/external-stylesheet.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/external-stylesheet.html @@ -20,8 +20,8 @@ promise_test(function(css_test) { var id = token(); var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port; - var css_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id; - var img_url = url_prefix + "/referrer-policy/generic/subresource/image.py" + + var css_url = url_prefix + "/common/security-features/subresource/stylesheet.py?id=" + id; + var img_url = url_prefix + "/common/security-features/subresource/image.py" + "?id=" + id + "&report-headers"; return new Promise(resolve => { diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/inline-style.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/inline-style.html index 7e3d8879a4a..d6ff26e7bcc 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/inline-style.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/inline-style.html @@ -19,7 +19,7 @@ <script> promise_test(function(css_test) { var id = token(); - var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + "/referrer-policy/generic/subresource/image.py" + "?id=" + id; + var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + "/common/security-features/subresource/image.py" + "?id=" + id; var img_url = css_url + "&report-headers"; var div = document.querySelector("div.styled"); diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/internal-import-stylesheet.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/internal-import-stylesheet.html index e94218d419e..e96b25a9712 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/internal-import-stylesheet.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/internal-import-stylesheet.html @@ -20,7 +20,7 @@ <script> promise_test(function(css_test) { var id = token(); - var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port + "/referrer-policy/generic/subresource/"; + var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port + "/common/security-features/subresource/"; var css_url = url_prefix + "stylesheet.py?id=" + id; var img_url = url_prefix + "image.py?report-headers&id=" + id; diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/internal-stylesheet.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/internal-stylesheet.html index a6107cb3a99..29a8517e117 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/internal-stylesheet.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/internal-stylesheet.html @@ -19,7 +19,7 @@ <script> promise_test(function(css_test) { var id = token(); - var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + "/referrer-policy/generic/subresource/image.py" + "?id=" + id; + var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + "/common/security-features/subresource/image.py" + "?id=" + id; var img_url = css_url + "&report-headers"; var style = document.createElement("style"); diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/presentation-attribute.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/presentation-attribute.html index ee70f15885c..95d3b11a42a 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/presentation-attribute.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/presentation-attribute.html @@ -17,7 +17,7 @@ <script> promise_test(function(css_test) { var id = token(); - var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + "/referrer-policy/generic/subresource/image.py" + "?id=" + id; + var css_url = location.protocol + "//www1." + location.hostname + ":" + location.port + "/common/security-features/subresource/image.py" + "?id=" + id; var img_url = css_url + "&report-headers"; document.body.background = css_url; diff --git a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/processing-instruction.html b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/processing-instruction.html index c2b31be8899..e52d9b65097 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/processing-instruction.html +++ b/tests/wpt/web-platform-tests/referrer-policy/css-integration/image/processing-instruction.html @@ -21,8 +21,8 @@ promise_test(function(css_test) { var id = token(); var url_prefix = location.protocol + "//www1." + location.hostname + ":" + location.port; - var css_url = url_prefix + "/referrer-policy/generic/subresource/stylesheet.py?id=" + id; - var img_url = url_prefix + "/referrer-policy/generic/subresource/image.py" + + var css_url = url_prefix + "/common/security-features/subresource/stylesheet.py?id=" + id; + var img_url = url_prefix + "/common/security-features/subresource/image.py" + "?id=" + id + "&report-headers"; var processingInstruction = document.createProcessingInstruction("xml-stylesheet", "href=\"" + css_url + "\" type=\"text/css\""); diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-inheritance.html b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-inheritance.html index 3bab0979dd9..ca17e03933a 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-inheritance.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/iframe-inheritance.html @@ -28,7 +28,7 @@ <script src = "/common/security-features/resources/common.js"></` + `script> <script src = "/referrer-policy/generic/referrer-policy-test-case.js"></` + `script> <script> - var urlPath = "/referrer-policy/generic/subresource/xhr.py"; + var urlPath = "/common/security-features/subresource/xhr.py"; var url = "${location.protocol}//www1.${location.hostname}:${location.port}" + urlPath; requestViaXhr(url).then((msg) => { parent.postMessage({referrer: msg.referrer}, "*")}) diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/link-rel-prefetch.html b/tests/wpt/web-platform-tests/referrer-policy/generic/link-rel-prefetch.html index 0f78596fa2d..c8e367079bd 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/link-rel-prefetch.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/link-rel-prefetch.html @@ -7,14 +7,14 @@ <!-- Common global functions for referrer-policy tests. --> <script src="/common/security-features/resources/common.js"></script> <meta name="referrer" content="origin"> - <link rel="prefetch" href="/referrer-policy/generic/subresource/image.py"> + <link rel="prefetch" href="/common/security-features/subresource/image.py"> </head> <body> <p>Check that resources loaded via link rel prefetch use the referrer and referrer policy from the document.</p> <script> - var img_url = "/referrer-policy/generic/subresource/image.py"; + var img_url = "/common/security-features/subresource/image.py"; promise_test((t) => timeoutPromise(t, 1000) .then(() => loadImageInWindow(img_url, null, window)) .then(function (img) { diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-and-values.html b/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-and-values.html index d6b9408c153..ac7f37006ec 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-and-values.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-and-values.html @@ -16,7 +16,7 @@ <script> promise_test(() => { - var urlPath = '/referrer-policy/generic/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); + var urlPath = '/common/security-features/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaImageForReferrerPolicy(url, null, 'no-referrer') diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-combined.html b/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-combined.html index 0b36aeee94c..0e99cd4ea8e 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-combined.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-combined.html @@ -16,7 +16,7 @@ <script> promise_test(() => { - var urlPath = '/referrer-policy/generic/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); + var urlPath = '/common/security-features/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaImageForReferrerPolicy(url, null, 'no-referrer') diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-one-invalid.html b/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-one-invalid.html index 599ffdccc3e..3c2bf21a62b 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-one-invalid.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-one-invalid.html @@ -16,7 +16,7 @@ <script> promise_test(() => { - var urlPath = '/referrer-policy/generic/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); + var urlPath = '/common/security-features/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaImageForReferrerPolicy(url, null, 'no-referrer') diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-one-unknown-token.html b/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-one-unknown-token.html index cf9a7921626..2c13376b14c 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-one-unknown-token.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers-one-unknown-token.html @@ -16,7 +16,7 @@ <script> promise_test(() => { - var urlPath = '/referrer-policy/generic/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); + var urlPath = '/common/security-features/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaImageForReferrerPolicy(url, null, 'no-referrer') diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers.html b/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers.html index 418044a14cd..e727acd588e 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/multiple-headers.html @@ -16,7 +16,7 @@ <script> promise_test(() => { - var urlPath = '/referrer-policy/generic/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); + var urlPath = '/common/security-features/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaImageForReferrerPolicy(url, null, 'no-referrer') diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/referrer-policy-test-case.js b/tests/wpt/web-platform-tests/referrer-policy/generic/referrer-policy-test-case.js index 1345e71d31f..6b5ae7f70f1 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/referrer-policy-test-case.js +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/referrer-policy-test-case.js @@ -51,16 +51,16 @@ function ReferrerPolicyTestCase(scenario, testDescription, sanityChecker) { }; const subresourcePath = { - "a-tag": "/referrer-policy/generic/subresource/document.py", - "area-tag": "/referrer-policy/generic/subresource/document.py", - "fetch-request": "/referrer-policy/generic/subresource/xhr.py", - "iframe-tag": "/referrer-policy/generic/subresource/document.py", - "img-tag": "/referrer-policy/generic/subresource/image.py", - "script-tag": "/referrer-policy/generic/subresource/script.py", - "worker-request": "/referrer-policy/generic/subresource/worker.py", - "module-worker": "/referrer-policy/generic/subresource/worker.py", - "shared-worker": "/referrer-policy/generic/subresource/shared-worker.py", - "xhr-request": "/referrer-policy/generic/subresource/xhr.py" + "a-tag": "/common/security-features/subresource/document.py", + "area-tag": "/common/security-features/subresource/document.py", + "fetch-request": "/common/security-features/subresource/xhr.py", + "iframe-tag": "/common/security-features/subresource/document.py", + "img-tag": "/common/security-features/subresource/image.py", + "script-tag": "/common/security-features/subresource/script.py", + "worker-request": "/common/security-features/subresource/worker.py", + "module-worker": "/common/security-features/subresource/worker.py", + "shared-worker": "/common/security-features/subresource/shared-worker.py", + "xhr-request": "/common/security-features/subresource/xhr.py" }; var referrerUrlResolver = { diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html b/tests/wpt/web-platform-tests/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html index 103627b21df..da3455cb2a8 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/sandboxed-iframe-with-opaque-origin.html @@ -29,7 +29,7 @@ <script src = "/common/security-features/resources/common.js"></` + `script> <script src = "/referrer-policy/generic/referrer-policy-test-case.js"></` + `script> <script> - var urlPath = "/referrer-policy/generic/subresource/xhr.py"; + var urlPath = "/common/security-features/subresource/xhr.py"; var url = "${location.protocol}//www1.${location.hostname}:${location.port}" + urlPath; requestViaXhr(url).then((msg) => { parent.postMessage({referrer: msg.referrer, description: "${description}"}, "*") diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/area-navigate.html b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/area-navigate.html index b7f05be9892..936e2ef0f50 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/area-navigate.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/area-navigate.html @@ -18,7 +18,7 @@ <script> promise_test(function() { - var urlPath = '/referrer-policy/generic/subresource/document.py'; + var urlPath = '/common/security-features/subresource/document.py'; var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaArea(url) diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/fetch-messaging.html b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/fetch-messaging.html index 2c12ae45510..cc17b3d8de9 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/fetch-messaging.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/fetch-messaging.html @@ -22,7 +22,7 @@ }, "Fetch is supported by the browser."); promise_test(function() { - var urlPath = '/referrer-policy/generic/subresource/xhr.py'; + var urlPath = '/common/security-features/subresource/xhr.py'; var url = location.protocol + "//" + location.hostname + ":" + location.port + urlPath; return requestViaFetch(url) diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/iframe-messaging.html b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/iframe-messaging.html index 3bfada318f2..45c5abc8644 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/iframe-messaging.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/iframe-messaging.html @@ -18,7 +18,7 @@ <script> promise_test(function() { - var urlPath = '/referrer-policy/generic/subresource/document.py'; + var urlPath = '/common/security-features/subresource/document.py'; var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaIframe(url) diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/image-decoding.html b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/image-decoding.html index 807344dab9f..a9eec617d44 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/image-decoding.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/image-decoding.html @@ -18,7 +18,7 @@ <script> promise_test(function() { - var urlPath = '/referrer-policy/generic/subresource/image.py'; + var urlPath = '/common/security-features/subresource/image.py'; var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath + "?cache_destroyer=" + (new Date()).getTime(); return requestViaImageForReferrerPolicy(url, undefined, "always") diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/link-navigate.html b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/link-navigate.html index 8c5d2c83866..966547c3580 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/link-navigate.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/link-navigate.html @@ -18,7 +18,7 @@ <script> promise_test(function() { - var urlPath = '/referrer-policy/generic/subresource/document.py'; + var urlPath = '/common/security-features/subresource/document.py'; var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaAnchor(url) diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/script-messaging.html b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/script-messaging.html index cdeb1a03ed3..0a93266e2c5 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/script-messaging.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/script-messaging.html @@ -18,7 +18,7 @@ <script> promise_test(function() { - var urlPath = '/referrer-policy/generic/subresource/script.py'; + var urlPath = '/common/security-features/subresource/script.py'; var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaScript(url) diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/worker-messaging.html b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/worker-messaging.html index 7ef9b381ae4..c85cfca5c39 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/worker-messaging.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/worker-messaging.html @@ -18,7 +18,7 @@ <script> promise_test(function() { - var urlPath = '/referrer-policy/generic/subresource/worker.py'; + var urlPath = '/common/security-features/subresource/worker.py'; var url = location.protocol + "//" + location.hostname + ":" + location.port + urlPath; return requestViaDedicatedWorker(url, {}) diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/xhr-messaging.html b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/xhr-messaging.html index 1bd1b4c724e..dd48dec8e6b 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/xhr-messaging.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/subresource-test/xhr-messaging.html @@ -18,7 +18,7 @@ <script> promise_test(function() { - var urlPath = '/referrer-policy/generic/subresource/xhr.py'; + var urlPath = '/common/security-features/subresource/xhr.py'; var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaXhr(url) diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/template/image.css.template b/tests/wpt/web-platform-tests/referrer-policy/generic/template/image.css.template deleted file mode 100644 index 0eebd0a4526..00000000000 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/template/image.css.template +++ /dev/null @@ -1,3 +0,0 @@ -div.styled::before { - content:url(/referrer-policy/generic/subresource/image.py?id=%(id)s) -} diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/template/svg.css.template b/tests/wpt/web-platform-tests/referrer-policy/generic/template/svg.css.template deleted file mode 100644 index ffaefed4aa4..00000000000 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/template/svg.css.template +++ /dev/null @@ -1,3 +0,0 @@ -path { - %(property)s: url(/referrer-policy/generic/subresource/svg.py?id=%(id)s#invalidFragment); -} diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/unsupported-csp-referrer-directive.html b/tests/wpt/web-platform-tests/referrer-policy/generic/unsupported-csp-referrer-directive.html index f639ead4d43..6c03a48e1c1 100644 --- a/tests/wpt/web-platform-tests/referrer-policy/generic/unsupported-csp-referrer-directive.html +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/unsupported-csp-referrer-directive.html @@ -17,7 +17,7 @@ <script> promise_test(function() { - var urlPath = '/referrer-policy/generic/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); + var urlPath = '/common/security-features/subresource/image.py?cache_destroyer=' + (new Date()).getTime(); var url = location.protocol + "//www1." + location.hostname + ":" + location.port + urlPath; return requestViaImageForReferrerPolicy(url, null, 'always') diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https.html index fe80a03846e..412ee2a4438 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https.html @@ -59,7 +59,7 @@ promise_test(function(t) { .then(function() { assert_not_equals(sw_registration.active, null, 'Registration active worker should not be null'); - fetch_tests_from_worker(sw_registration.active); + return fetch_tests_from_worker(sw_registration.active); }); }, 'Test skipWaiting while a client is using the registration'); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https.html index b6362e6c317..ced64e5f67f 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https.html @@ -37,7 +37,7 @@ promise_test(function(t) { 'Document controller should still be null'); assert_not_equals(sw_registration.active, null, 'Registration active worker should not be null'); - fetch_tests_from_worker(sw_registration.active); + return fetch_tests_from_worker(sw_registration.active); }); }, 'Test skipWaiting while a client is not being controlled'); diff --git a/tests/wpt/web-platform-tests/shape-detection/detection-options.html b/tests/wpt/web-platform-tests/shape-detection/detection-options.html index 31475575e3f..704faf72929 100644 --- a/tests/wpt/web-platform-tests/shape-detection/detection-options.html +++ b/tests/wpt/web-platform-tests/shape-detection/detection-options.html @@ -23,4 +23,44 @@ detection_test("FaceDetectionTest", async (t, detectionTest) => { assert_equals(mock.getFastMode(), true, "maxDetectedFaces"); }, "Test that FaceDetectionOptions are correctly propagated"); +detection_test("BarcodeDetectionTest", async (t, detectionTest) => { + const img = document.getElementById("img"); + const mock = detectionTest.MockBarcodeDetectionProvider(); + + const detectorWithNoOptions = new BarcodeDetector(); + let barcodeDetectionResult = await detectorWithNoOptions.detect(img); + assert_array_equals(mock.getFormats(), [], "formats"); + + const detectorWithOptions = new BarcodeDetector({ + formats: ["code_128", "qr_code"]}); + barcodeDetectionResult = await detectorWithOptions.detect(img); + assert_array_equals( + mock.getFormats(), + [shapeDetection.mojom.BarcodeFormat.CODE_128, + shapeDetection.mojom.BarcodeFormat.QR_CODE], + "formats"); + + try { + new BarcodeDetector({formats: []}); + assert_unreached("providing hint option that is empty should fail"); + } catch (error) { + assert_equals(error.name, "TypeError"); + } + + try { + new BarcodeDetector({formats: ["unknown"]}); + assert_unreached("providing \"unknown\" as a hint option should fail"); + } catch (error) { + assert_equals(error.name, "TypeError"); + } + + try { + new BarcodeDetector({formats: ["foo", "bar"]}); + assert_unreached( + "providing hint option with unrecognized formats should fail"); + } catch (error) { + assert_equals(error.name, "TypeError"); + } +}, "Test that BarcodeDetectorOptions are correctly propagated"); + </script> diff --git a/tests/wpt/web-platform-tests/streams/readable-streams/tee.any.js b/tests/wpt/web-platform-tests/streams/readable-streams/tee.any.js index ba7813642b7..4a07f0f2bfb 100644 --- a/tests/wpt/web-platform-tests/streams/readable-streams/tee.any.js +++ b/tests/wpt/web-platform-tests/streams/readable-streams/tee.any.js @@ -1,6 +1,7 @@ // META: global=worker,jsshell // META: script=../resources/rs-utils.js // META: script=../resources/test-utils.js +// META: script=../resources/recording-streams.js 'use strict'; test(() => { @@ -158,7 +159,7 @@ promise_test(() => { }) ]); -}, 'ReadableStream teeing: canceling branch2 should not impact branch2'); +}, 'ReadableStream teeing: canceling branch2 should not impact branch1'); promise_test(() => { @@ -340,3 +341,111 @@ test(t => { assert_not_equals(getReader.call(rs2), undefined, 'getReader should work on rs2'); }, 'ReadableStreamTee should not use a modified ReadableStream constructor from the global object'); + +promise_test(t => { + + const rs = recordingReadableStream({}, { highWaterMark: 0 }); + + // Create two branches, each with a HWM of 1. This should result in one + // chunk being pulled, not two. + rs.tee(); + return flushAsyncEvents().then(() => { + assert_array_equals(rs.events, ['pull'], 'pull should only be called once'); + }); + +}, 'ReadableStreamTee should not pull more chunks than can fit in the branch queue'); + +promise_test(t => { + + const rs = recordingReadableStream({ + pull(controller) { + controller.enqueue('a'); + } + }, { highWaterMark: 0 }); + + const [reader1, reader2] = rs.tee().map(branch => branch.getReader()); + return Promise.all([reader1.read(), reader2.read()]) + .then(() => { + assert_array_equals(rs.events, ['pull', 'pull'], 'pull should be called twice'); + }); + +}, 'ReadableStreamTee should only pull enough to fill the emptiest queue'); + +promise_test(t => { + + const rs = recordingReadableStream({}, { highWaterMark: 0 }); + const theError = { name: 'boo!' }; + + rs.controller.error(theError); + + const [reader1, reader2] = rs.tee().map(branch => branch.getReader()); + + return flushAsyncEvents().then(() => { + assert_array_equals(rs.events, [], 'pull should not be called'); + + return Promise.all([ + promise_rejects(t, theError, reader1.closed), + promise_rejects(t, theError, reader2.closed) + ]); + }); + +}, 'ReadableStreamTee should not pull when original is already errored'); + +for (const branch of [1, 2]) { + promise_test(t => { + + const rs = recordingReadableStream({}, { highWaterMark: 0 }); + const theError = { name: 'boo!' }; + + const [reader1, reader2] = rs.tee().map(branch => branch.getReader()); + + return flushAsyncEvents().then(() => { + assert_array_equals(rs.events, ['pull'], 'pull should be called once'); + + rs.controller.enqueue('a'); + + const reader = (branch === 1) ? reader1 : reader2; + return reader.read(); + }).then(() => flushAsyncEvents()).then(() => { + assert_array_equals(rs.events, ['pull', 'pull'], 'pull should be called twice'); + + rs.controller.error(theError); + + return Promise.all([ + promise_rejects(t, theError, reader1.closed), + promise_rejects(t, theError, reader2.closed) + ]); + }).then(() => flushAsyncEvents()).then(() => { + assert_array_equals(rs.events, ['pull', 'pull'], 'pull should be called twice'); + }); + + }, `ReadableStreamTee stops pulling when original stream errors while branch ${branch} is reading`); +} + +promise_test(t => { + + const rs = recordingReadableStream({}, { highWaterMark: 0 }); + const theError = { name: 'boo!' }; + + const [reader1, reader2] = rs.tee().map(branch => branch.getReader()); + + return flushAsyncEvents().then(() => { + assert_array_equals(rs.events, ['pull'], 'pull should be called once'); + + rs.controller.enqueue('a'); + + return Promise.all([reader1.read(), reader2.read()]); + }).then(() => flushAsyncEvents()).then(() => { + assert_array_equals(rs.events, ['pull', 'pull'], 'pull should be called twice'); + + rs.controller.error(theError); + + return Promise.all([ + promise_rejects(t, theError, reader1.closed), + promise_rejects(t, theError, reader2.closed) + ]); + }).then(() => flushAsyncEvents()).then(() => { + assert_array_equals(rs.events, ['pull', 'pull'], 'pull should be called twice'); + }); + +}, 'ReadableStreamTee stops pulling when original stream errors while both branches are reading'); diff --git a/tests/wpt/web-platform-tests/tools/ci/action_manifest_build.sh b/tests/wpt/web-platform-tests/tools/ci/action_manifest_build.sh deleted file mode 100755 index ad6a4cb16e7..00000000000 --- a/tests/wpt/web-platform-tests/tools/ci/action_manifest_build.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash -set -ex - -mkdir -p ~/meta - -WPT_MANIFEST_FILE=~/meta/MANIFEST.json - -./wpt manifest -p $WPT_MANIFEST_FILE -gzip -k -f --best $WPT_MANIFEST_FILE -bzip2 -k -f --best $WPT_MANIFEST_FILE -zstd -k -f --ultra -22 $WPT_MANIFEST_FILE diff --git a/tests/wpt/web-platform-tests/tools/ci/ci_lint.sh b/tests/wpt/web-platform-tests/tools/ci/ci_lint.sh deleted file mode 100755 index bf98f209eba..00000000000 --- a/tests/wpt/web-platform-tests/tools/ci/ci_lint.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -ex - -SCRIPT_DIR=$(cd $(dirname "$0") && pwd -P) -WPT_ROOT=$SCRIPT_DIR/../.. -cd $WPT_ROOT - -mkdir -p ~/meta -./wpt manifest -p ~/meta/MANIFEST.json -./wpt lint --all diff --git a/tests/wpt/web-platform-tests/tools/ci/tag_master.py b/tests/wpt/web-platform-tests/tools/ci/manifest_build.py index d672d13fe23..98e7ce75e51 100644 --- a/tests/wpt/web-platform-tests/tools/ci/tag_master.py +++ b/tests/wpt/web-platform-tests/tools/ci/manifest_build.py @@ -1,6 +1,7 @@ import json import logging import os +import subprocess import sys import requests @@ -17,6 +18,32 @@ logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) +class Status(object): + SUCCESS = 0 + FAIL = 1 + NEUTRAL = 78 + + +def run(cmd, return_stdout=False, **kwargs): + logger.info(" ".join(cmd)) + if return_stdout: + f = subprocess.check_output + else: + f = subprocess.check_call + return f(cmd, **kwargs) + + +def create_manifest(path): + run(["./wpt", "manifest", "-p", path]) + + +def compress_manifest(path): + for args in [["gzip", "-k", "-f", "--best"], + ["bzip2", "-k", "-f", "--best"], + ["zstd", "-k", "-f", "--ultra", "-22"]]: + run(args + [path]) + + def request(url, desc, data=None, json_data=None, params=None, headers=None): github_token = os.environ.get("GITHUB_TOKEN") default_headers = { @@ -92,7 +119,7 @@ def tag(owner, repo, sha, tag): return True -def create_release(owner, repo, sha, tag, summary, body): +def create_release(manifest_path, owner, repo, sha, tag, summary, body): if body: body = "%s\n%s" % (summary, body) else: @@ -117,7 +144,7 @@ def create_release(owner, repo, sha, tag, summary, body): params = {"name": upload_filename, "label": "MANIFEST.json%s" % upload_ext} - with open(os.path.expanduser("~/meta/MANIFEST.json%s" % upload_ext), "rb") as f: + with open("%s%s" % (manifest_path, upload_ext), "rb") as f: upload_data = f.read() logger.info("Uploading %s bytes" % len(upload_data)) @@ -148,7 +175,7 @@ def main(): repo_key = "GITHUB_REPOSITORY" if not should_run_action(): - return + return Status.NEUTRAL owner, repo = os.environ[repo_key].split("/", 1) @@ -162,16 +189,28 @@ def main(): else: tag_name = "merge_pr_%s" % pr + manifest_path = os.path.expanduser(os.path.join("~", "meta", "MANIFEST.json")) + + os.makedirs(os.path.dirname(manifest_path)) + + create_manifest(manifest_path) + + compress_manifest(manifest_path) + tagged = tag(owner, repo, head_rev, tag_name) if not tagged: - sys.exit(1) + return Status.FAIL summary = git("show", "--no-patch", '--format="%s"', "HEAD") body = git("show", "--no-patch", '--format="%b"', "HEAD") - if not create_release(owner, repo, head_rev, tag_name, summary, body): - sys.exit(1) + if not create_release(manifest_path, owner, repo, head_rev, tag_name, summary, body): + return Status.FAIL + + return Status.SUCCESS if __name__ == "__main__": - main() + code = main() + assert isinstance(code, int) + sys.exit(code) diff --git a/tests/wpt/web-platform-tests/tools/ci/run_tc.py b/tests/wpt/web-platform-tests/tools/ci/run_tc.py index 32eef7cb69c..1cfb41fcaab 100755 --- a/tests/wpt/web-platform-tests/tools/ci/run_tc.py +++ b/tests/wpt/web-platform-tests/tools/ci/run_tc.py @@ -223,7 +223,7 @@ def setup_environment(args): def setup_repository(): if os.environ.get("GITHUB_PULL_REQUEST", "false") != "false": - parents = run(["git", "show", "--format=%P", "task_head"], return_stdout=True).strip().split() + parents = run(["git", "show", "--no-patch", "--format=%P", "task_head"], return_stdout=True).strip().split() if len(parents) == 2: base_head = parents[0] pr_head = parents[1] @@ -233,6 +233,9 @@ def setup_repository(): else: print("ERROR: Pull request HEAD wasn't a 2-parent merge commit; " "expected to test the merge of PR into the base") + commit = run(["git", "show", "--no-patch", "--format=%H", "task_head"], return_stdout=True).strip() + print("HEAD: %s" % commit) + print("Parents: %s" % ", ".join(parents)) sys.exit(1) branch = os.environ.get("GITHUB_BRANCH") @@ -260,6 +263,8 @@ def main(): job = args.job + print("Job %s" % job) + run_if = [(lambda: job == "all", "job set to 'all'"), (lambda:"all" in extra_jobs, "Manually specified jobs includes 'all'"), (lambda:job in extra_jobs, "Manually specified jobs includes '%s'" % job), diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt index f2a336875f0..887068b34d2 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt +++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt @@ -1,8 +1,8 @@ html5lib==1.0.1 -mozinfo==0.10 +mozinfo==1.1.0 mozlog==4.0 mozdebug==0.1.1 -pillow==5.4.1 +pillow==6.0.0 urllib3[secure]==1.24.1 requests==2.21.0 six>=1.8 diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_products.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_products.py index d6a16a192cf..5d2bcf075d0 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_products.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/tests/test_products.py @@ -2,7 +2,6 @@ from os.path import join, dirname import mock import pytest -import sys from .base import all_products, active_products from .. import environment @@ -19,9 +18,7 @@ def test_load_active_product(product): # test passes if it doesn't throw -@all_products("product", marks={ - "firefox": pytest.mark.xfail(sys.version[0] == "3", reason="mozinfo 0.10 doesn't support py3"), -}) +@all_products("product") def test_load_all_products(product): """test every product either loads or throws ImportError""" try: diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/parser.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/parser.py index e6c2e5b5ca2..b16d96a42d4 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/parser.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/parser.py @@ -14,7 +14,7 @@ from __future__ import unicode_literals -from six.moves import cStringIO as StringIO +from six import binary_type, text_type, BytesIO from .node import (AtomNode, BinaryExpressionNode, BinaryOperatorNode, ConditionalNode, DataNode, IndexNode, KeyValueNode, ListNode, @@ -49,7 +49,7 @@ atoms = {"True": True, "Reset": object()} def decode(s): - assert isinstance(s, unicode) + assert isinstance(s, text_type) return s @@ -77,9 +77,9 @@ class Tokenizer(object): def tokenize(self, stream): self.reset() - assert not isinstance(stream, unicode) - if isinstance(stream, str): - stream = StringIO(stream) + assert not isinstance(stream, text_type) + if isinstance(stream, bytes): + stream = BytesIO(stream) if not hasattr(stream, "name"): self.filename = "" else: @@ -87,7 +87,7 @@ class Tokenizer(object): self.next_line_state = self.line_start_state for i, line in enumerate(stream): - assert isinstance(line, str) + assert isinstance(line, binary_type) self.state = self.next_line_state assert self.state is not None states = [] @@ -95,7 +95,7 @@ class Tokenizer(object): self.line_number = i + 1 self.index = 0 self.line = line.decode('utf-8').rstrip() - assert isinstance(self.line, unicode) + assert isinstance(self.line, text_type) while self.state != self.eol_state: states.append(self.state) tokens = self.state() diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py index b7c62c00414..40a8acc6cab 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptmanifest/tests/test_tokenizer.py @@ -1,22 +1,15 @@ -import sys -import pytest import unittest -from six.moves import cStringIO as StringIO - from .. import parser from ..parser import token_types - -@pytest.mark.xfail(sys.version[0] == "3", - reason="Tokenizer doesn't support py3") class TokenizerTest(unittest.TestCase): def setUp(self): self.tokenizer = parser.Tokenizer() def tokenize(self, input_str): rv = [] - for item in self.tokenizer.tokenize(StringIO(input_str)): + for item in self.tokenizer.tokenize(input_str): rv.append(item) if item[0] == token_types.eof: break @@ -25,128 +18,128 @@ class TokenizerTest(unittest.TestCase): def compare(self, input_text, expected): expected = expected + [(token_types.eof, None)] actual = self.tokenize(input_text) - self.assertEquals(actual, expected) + self.assertEqual(actual, expected) def test_heading_0(self): - self.compare("""[Heading text]""", + self.compare(b"""[Heading text]""", [(token_types.paren, "["), (token_types.string, "Heading text"), (token_types.paren, "]")]) def test_heading_1(self): - self.compare("""[Heading [text\]]""", + self.compare(b"""[Heading [text\]]""", [(token_types.paren, "["), (token_types.string, "Heading [text]"), (token_types.paren, "]")]) def test_heading_2(self): - self.compare("""[Heading #text]""", + self.compare(b"""[Heading #text]""", [(token_types.paren, "["), (token_types.string, "Heading #text"), (token_types.paren, "]")]) def test_heading_3(self): - self.compare("""[Heading [\]text]""", + self.compare(b"""[Heading [\]text]""", [(token_types.paren, "["), (token_types.string, "Heading []text"), (token_types.paren, "]")]) def test_heading_4(self): with self.assertRaises(parser.ParseError): - self.tokenize("[Heading") + self.tokenize(b"[Heading") def test_heading_5(self): - self.compare("""[Heading [\]text] #comment""", + self.compare(b"""[Heading [\]text] #comment""", [(token_types.paren, "["), (token_types.string, "Heading []text"), (token_types.paren, "]")]) def test_heading_6(self): - self.compare(r"""[Heading \ttext]""", + self.compare(br"""[Heading \ttext]""", [(token_types.paren, "["), (token_types.string, "Heading \ttext"), (token_types.paren, "]")]) def test_key_0(self): - self.compare("""key:value""", + self.compare(b"""key:value""", [(token_types.string, "key"), (token_types.separator, ":"), (token_types.string, "value")]) def test_key_1(self): - self.compare("""key : value""", + self.compare(b"""key : value""", [(token_types.string, "key"), (token_types.separator, ":"), (token_types.string, "value")]) def test_key_2(self): - self.compare("""key : val ue""", + self.compare(b"""key : val ue""", [(token_types.string, "key"), (token_types.separator, ":"), (token_types.string, "val ue")]) def test_key_3(self): - self.compare("""key: value#comment""", + self.compare(b"""key: value#comment""", [(token_types.string, "key"), (token_types.separator, ":"), (token_types.string, "value")]) def test_key_4(self): with self.assertRaises(parser.ParseError): - self.tokenize("""ke y: value""") + self.tokenize(b"""ke y: value""") def test_key_5(self): with self.assertRaises(parser.ParseError): - self.tokenize("""key""") + self.tokenize(b"""key""") def test_key_6(self): - self.compare("""key: "value\"""", + self.compare(b"""key: "value\"""", [(token_types.string, "key"), (token_types.separator, ":"), (token_types.string, "value")]) def test_key_7(self): - self.compare("""key: 'value'""", + self.compare(b"""key: 'value'""", [(token_types.string, "key"), (token_types.separator, ":"), (token_types.string, "value")]) def test_key_8(self): - self.compare("""key: "#value\"""", + self.compare(b"""key: "#value\"""", [(token_types.string, "key"), (token_types.separator, ":"), (token_types.string, "#value")]) def test_key_9(self): - self.compare("""key: '#value\'""", + self.compare(b"""key: '#value\'""", [(token_types.string, "key"), (token_types.separator, ":"), (token_types.string, "#value")]) def test_key_10(self): with self.assertRaises(parser.ParseError): - self.tokenize("""key: "value""") + self.tokenize(b"""key: "value""") def test_key_11(self): with self.assertRaises(parser.ParseError): - self.tokenize("""key: 'value""") + self.tokenize(b"""key: 'value""") def test_key_12(self): with self.assertRaises(parser.ParseError): - self.tokenize("""key: 'value""") + self.tokenize(b"""key: 'value""") def test_key_13(self): with self.assertRaises(parser.ParseError): - self.tokenize("""key: 'value' abc""") + self.tokenize(b"""key: 'value' abc""") def test_key_14(self): - self.compare(r"""key: \\nb""", + self.compare(br"""key: \\nb""", [(token_types.string, "key"), (token_types.separator, ":"), (token_types.string, r"\nb")]) def test_list_0(self): - self.compare(""" + self.compare(b""" key: []""", [(token_types.string, "key"), (token_types.separator, ":"), @@ -154,7 +147,7 @@ key: []""", (token_types.list_end, "]")]) def test_list_1(self): - self.compare(""" + self.compare(b""" key: [a, "b"]""", [(token_types.string, "key"), (token_types.separator, ":"), @@ -164,7 +157,7 @@ key: [a, "b"]""", (token_types.list_end, "]")]) def test_list_2(self): - self.compare(""" + self.compare(b""" key: [a, b]""", [(token_types.string, "key"), @@ -175,7 +168,7 @@ key: [a, (token_types.list_end, "]")]) def test_list_3(self): - self.compare(""" + self.compare(b""" key: [a, #b] c]""", [(token_types.string, "key"), @@ -187,16 +180,16 @@ key: [a, #b] def test_list_4(self): with self.assertRaises(parser.ParseError): - self.tokenize("""key: [a #b] + self.tokenize(b"""key: [a #b] c]""") def test_list_5(self): with self.assertRaises(parser.ParseError): - self.tokenize("""key: [a \\ + self.tokenize(b"""key: [a \\ c]""") def test_list_6(self): - self.compare("""key: [a , b]""", + self.compare(b"""key: [a , b]""", [(token_types.string, "key"), (token_types.separator, ":"), (token_types.list_start, "["), @@ -205,7 +198,7 @@ key: [a, #b] (token_types.list_end, "]")]) def test_expr_0(self): - self.compare(""" + self.compare(b""" key: if cond == 1: value""", [(token_types.string, "key"), @@ -219,7 +212,7 @@ key: (token_types.string, "value")]) def test_expr_1(self): - self.compare(""" + self.compare(b""" key: if cond == 1: value1 value2""", @@ -235,7 +228,7 @@ key: (token_types.string, "value2")]) def test_expr_2(self): - self.compare(""" + self.compare(b""" key: if cond=="1": value""", [(token_types.string, "key"), @@ -249,7 +242,7 @@ key: (token_types.string, "value")]) def test_expr_3(self): - self.compare(""" + self.compare(b""" key: if cond==1.1: value""", [(token_types.string, "key"), @@ -263,7 +256,7 @@ key: (token_types.string, "value")]) def test_expr_4(self): - self.compare(""" + self.compare(b""" key: if cond==1.1 and cond2 == "a": value""", [(token_types.string, "key"), @@ -281,7 +274,7 @@ key: (token_types.string, "value")]) def test_expr_5(self): - self.compare(""" + self.compare(b""" key: if (cond==1.1 ): value""", [(token_types.string, "key"), @@ -297,7 +290,7 @@ key: (token_types.string, "value")]) def test_expr_6(self): - self.compare(""" + self.compare(b""" key: if "\\ttest": value""", [(token_types.string, "key"), @@ -310,27 +303,24 @@ key: def test_expr_7(self): with self.assertRaises(parser.ParseError): - self.tokenize( - """ + self.tokenize(b""" key: if 1A: value""") def test_expr_8(self): with self.assertRaises(parser.ParseError): - self.tokenize( - """ + self.tokenize(b""" key: if 1a: value""") def test_expr_9(self): with self.assertRaises(parser.ParseError): - self.tokenize( - """ + self.tokenize(b""" key: if 1.1.1: value""") def test_expr_10(self): - self.compare(""" + self.compare(b""" key: if 1.: value""", [(token_types.string, "key"), diff --git a/tests/wpt/web-platform-tests/wake-lock/idlharness.https.any.js b/tests/wpt/web-platform-tests/wake-lock/idlharness.https.any.js index 5e3ae75064c..fa47bd9b1e0 100644 --- a/tests/wpt/web-platform-tests/wake-lock/idlharness.https.any.js +++ b/tests/wpt/web-platform-tests/wake-lock/idlharness.https.any.js @@ -7,7 +7,7 @@ idl_test( ['wake-lock'], - ['dom', 'html'], + ['dom', 'html', 'permissions'], idl_array => { idl_array.add_objects({ WakeLock: ['new WakeLock("screen")'] diff --git a/tests/wpt/web-platform-tests/webauthn/idlharness.https.window.js b/tests/wpt/web-platform-tests/webauthn/idlharness.https.window.js index a228644b8ca..fa5e812eeee 100644 --- a/tests/wpt/web-platform-tests/webauthn/idlharness.https.window.js +++ b/tests/wpt/web-platform-tests/webauthn/idlharness.https.window.js @@ -7,24 +7,22 @@ 'use strict'; -promise_test(() => { - const execute_test = () => idl_test( - ['webauthn'], - ['credential-management'], - idlArray => { - idlArray.add_untested_idls("[Exposed=(Window,Worker)] interface ArrayBuffer {};"); - idlArray.add_objects({ - WebAuthentication: ['navigator.authentication'], - PublicKeyCredential: ['cred'], - AuthenticatorAssertionResponse: ['assertionResponse'] - }); - } - ); +idl_test( + ['webauthn'], + ['credential-management'], + async idlArray => { + idlArray.add_untested_idls("[Exposed=(Window,Worker)] interface ArrayBuffer {};"); + idlArray.add_objects({ + WebAuthentication: ['navigator.authentication'], + PublicKeyCredential: ['cred', 'assertion'], + AuthenticatorAttestationResponse: ['cred.response'], + AuthenticatorAssertionResponse: ['assertion.response'] + }); - let challengeBytes = new Uint8Array(16); - window.crypto.getRandomValues(challengeBytes); + const challengeBytes = new Uint8Array(16); + window.crypto.getRandomValues(challengeBytes); - return createCredential({ + self.cred = await createCredential({ options: { publicKey: { timeout: 3000, @@ -33,27 +31,18 @@ promise_test(() => { }, } } - }) - .then(cred => { - self.cred = cred; - return navigator.credentials.get({ - publicKey: { - timeout: 3000, - allowCredentials: [{ - id: cred.rawId, - transports: ["usb", "nfc", "ble"], - type: "public-key" - }], - challenge: challengeBytes, - } - }); - }) - .then(assertion => { - self.assertionResponse = assertion.response; - }) - .then(execute_test) - .catch(reason => { - execute_test(); - return Promise.reject(reason); }); -}); + + self.assertion = await navigator.credentials.get({ + publicKey: { + timeout: 3000, + allowCredentials: [{ + id: cred.rawId, + transports: ["usb", "nfc", "ble"], + type: "public-key" + }], + challenge: challengeBytes, + } + }); + } +); diff --git a/tests/wpt/webgl/meta/conformance/textures/misc/texture-upload-size.html.ini b/tests/wpt/webgl/meta/conformance/textures/misc/texture-upload-size.html.ini index 4d0bf200612..f43c95153a6 100644 --- a/tests/wpt/webgl/meta/conformance/textures/misc/texture-upload-size.html.ini +++ b/tests/wpt/webgl/meta/conformance/textures/misc/texture-upload-size.html.ini @@ -29,3 +29,6 @@ [WebGL test #116: could not create image (SVG)] expected: FAIL + [WebGL test #172: could not create image (SVG)] + expected: FAIL + |