diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index eebcd72c67f..34e0beec70c 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -152027,6 +152027,18 @@ {} ] ], + "css/css-values-3/calc-in-counter-001.xhtml": [ + [ + "/css/css-values-3/calc-in-counter-001.xhtml", + [ + [ + "/css/css-values-3/calc-in-counter-001-ref.xhtml", + "==" + ] + ], + {} + ] + ], "css/css-values/attr-color-invalid-cast.html": [ [ "/css/css-values/attr-color-invalid-cast.html", @@ -168511,6 +168523,18 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001.xhtml": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001.xhtml", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001-ref.xhtml", + "==" + ] + ], + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-items-center-nested-001.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-items-center-nested-001.html", @@ -168811,6 +168835,18 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005.xhtml": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005.xhtml", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005-ref.xhtml", + "==" + ] + ], + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-anonymous-items-001.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-anonymous-items-001.html", @@ -169891,6 +169927,18 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006.xhtml": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006.xhtml", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006-ref.xhtml", + "==" + ] + ], + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-001a.xhtml": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-001a.xhtml", @@ -169963,6 +170011,30 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006.xhtml": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006.xhtml", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006-ref.xhtml", + "==" + ] + ], + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001.xhtml": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001.xhtml", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001-ref.xhtml", + "==" + ] + ], + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-margin-auto-horiz-001.xhtml": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-margin-auto-horiz-001.xhtml", @@ -186383,6 +186455,30 @@ {} ] ], + "svg/text/reftests/text-complex-001.svg": [ + [ + "/svg/text/reftests/text-complex-001.svg", + [ + [ + "/svg/text/reftests/text-complex-001-ref.svg", + "==" + ] + ], + {} + ] + ], + "svg/text/reftests/text-complex-002.svg": [ + [ + "/svg/text/reftests/text-complex-002.svg", + [ + [ + "/svg/text/reftests/text-complex-002-ref.svg", + "==" + ] + ], + {} + ] + ], "svg/text/reftests/text-inline-size-001.svg": [ [ "/svg/text/reftests/text-inline-size-001.svg", @@ -186515,6 +186611,30 @@ {} ] ], + "svg/text/reftests/text-shape-inside-001.svg": [ + [ + "/svg/text/reftests/text-shape-inside-001.svg", + [ + [ + "/svg/text/reftests/text-shape-inside-001-ref.svg", + "==" + ] + ], + {} + ] + ], + "svg/text/reftests/text-shape-inside-002.svg": [ + [ + "/svg/text/reftests/text-shape-inside-002.svg", + [ + [ + "/svg/text/reftests/text-shape-inside-002-ref.svg", + "==" + ] + ], + {} + ] + ], "svg/text/reftests/textpath-shape-001.svg": [ [ "/svg/text/reftests/textpath-shape-001.svg", @@ -195546,11 +195666,6 @@ {} ] ], - "budget-api/META.yml": [ - [ - {} - ] - ], "check_stability.ini": [ [ {} @@ -263646,6 +263761,11 @@ {} ] ], + "css/css-values-3/calc-in-counter-001-ref.xhtml": [ + [ + {} + ] + ], "css/css-values/META.yml": [ [ {} @@ -271236,6 +271356,11 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001-ref.xhtml": [ + [ + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-items-center-nested-001-ref.html": [ [ {} @@ -271351,6 +271476,11 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005-ref.xhtml": [ + [ + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-anonymous-items-001-ref.html": [ [ {} @@ -271666,6 +271796,11 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006-ref.xhtml": [ + [ + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-001-ref.xhtml": [ [ {} @@ -271691,6 +271826,16 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006-ref.xhtml": [ + [ + {} + ] + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001-ref.xhtml": [ + [ + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-margin-auto-horiz-001-ref.xhtml": [ [ {} @@ -277111,6 +277256,16 @@ {} ] ], + "fetch/api/cors/resources/corspreflight.js": [ + [ + {} + ] + ], + "fetch/api/cors/resources/not-cors-safelisted.json": [ + [ + {} + ] + ], "fetch/api/policies/csp-blocked.html.headers": [ [ {} @@ -277771,6 +277926,16 @@ {} ] ], + "fetch/sec-metadata/report.tentative.https.sub.html.sub.headers": [ + [ + {} + ] + ], + "fetch/sec-metadata/resources/dedicatedWorker.js": [ + [ + {} + ] + ], "fetch/sec-metadata/resources/echo-as-json.py": [ [ {} @@ -277791,6 +277956,21 @@ {} ] ], + "fetch/sec-metadata/resources/record-header.py": [ + [ + {} + ] + ], + "fetch/sec-metadata/resources/sharedWorker.js": [ + [ + {} + ] + ], + "fetch/sec-metadata/resources/xslt-test.sub.xml": [ + [ + {} + ] + ], "fetch/security/support/embedded-credential-window.sub.html": [ [ {} @@ -289311,11 +289491,6 @@ {} ] ], - "interfaces/budget-api.idl": [ - [ - {} - ] - ], "interfaces/clipboard-apis.idl": [ [ {} @@ -289586,6 +289761,11 @@ {} ] ], + "interfaces/mst-content-hint.idl": [ + [ + {} + ] + ], "interfaces/navigation-timing.idl": [ [ {} @@ -291406,6 +291586,11 @@ {} ] ], + "mst-content-hint/META.yml": [ + [ + {} + ] + ], "navigation-timing/META.yml": [ [ {} @@ -295056,16 +295241,6 @@ {} ] ], - "resources/chromium/chooser_service.mojom.js": [ - [ - {} - ] - ], - "resources/chromium/chooser_service.mojom.js.headers": [ - [ - {} - ] - ], "resources/chromium/device.mojom.js": [ [ {} @@ -297731,11 +297906,6 @@ {} ] ], - "service-workers/cache-storage/resources/vary.py": [ - [ - {} - ] - ], "service-workers/cache-storage/script-tests/cache-abort.js": [ [ {} @@ -300511,6 +300681,16 @@ {} ] ], + "svg/text/reftests/text-complex-001-ref.svg": [ + [ + {} + ] + ], + "svg/text/reftests/text-complex-002-ref.svg": [ + [ + {} + ] + ], "svg/text/reftests/text-inline-size-001-ref.svg": [ [ {} @@ -300566,6 +300746,16 @@ {} ] ], + "svg/text/reftests/text-shape-inside-001-ref.svg": [ + [ + {} + ] + ], + "svg/text/reftests/text-shape-inside-002-ref.svg": [ + [ + {} + ] + ], "svg/text/reftests/textpath-shape-001-ref.svg": [ [ {} @@ -323144,16 +323334,6 @@ } ] ], - "budget-api/idlharness.https.any.js": [ - [ - "/budget-api/idlharness.https.any.html", - {} - ], - [ - "/budget-api/idlharness.https.any.worker.html", - {} - ] - ], "clear-site-data/executionContexts.sub.html": [ [ "/clear-site-data/executionContexts.sub.html", @@ -329830,6 +330010,18 @@ {} ] ], + "css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-003.html": [ + [ + "/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-003.html", + {} + ] + ], + "css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-004.html": [ + [ + "/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-004.html", + {} + ] + ], "css/css-grid/layout-algorithm/grid-find-fr-size-gutters-001.html": [ [ "/css/css-grid/layout-algorithm/grid-find-fr-size-gutters-001.html", @@ -349614,6 +349806,16 @@ {} ] ], + "fetch/api/cors/cors-preflight-not-cors-safelisted.any.js": [ + [ + "/fetch/api/cors/cors-preflight-not-cors-safelisted.any.html", + {} + ], + [ + "/fetch/api/cors/cors-preflight-not-cors-safelisted.any.worker.html", + {} + ] + ], "fetch/api/cors/cors-preflight-redirect.any.js": [ [ "/fetch/api/cors/cors-preflight-redirect.any.html", @@ -349760,6 +349962,12 @@ {} ] ], + "fetch/api/headers/headers-no-cors.window.js": [ + [ + "/fetch/api/headers/headers-no-cors.window.html", + {} + ] + ], "fetch/api/headers/headers-normalize.html": [ [ "/fetch/api/headers/headers-normalize.html", @@ -350594,12 +350802,24 @@ {} ] ], + "fetch/sec-metadata/embed.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/embed.tentative.https.sub.html", + {} + ] + ], "fetch/sec-metadata/fetch.tentative.https.sub.html": [ [ "/fetch/sec-metadata/fetch.tentative.https.sub.html", {} ] ], + "fetch/sec-metadata/font.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/font.tentative.https.sub.html", + {} + ] + ], "fetch/sec-metadata/iframe.tentative.https.sub.html": [ [ "/fetch/sec-metadata/iframe.tentative.https.sub.html", @@ -350612,12 +350832,102 @@ {} ] ], + "fetch/sec-metadata/object.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/object.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/redirect/cross-site/cross-site.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/redirect/cross-site/cross-site.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/redirect/cross-site/same-origin.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/redirect/cross-site/same-origin.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/redirect/cross-site/same-site.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/redirect/cross-site/same-site.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/redirect/same-origin/cross-site.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/redirect/same-origin/cross-site.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/redirect/same-origin/same-origin.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/redirect/same-origin/same-origin.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/redirect/same-origin/same-site.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/redirect/same-origin/same-site.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/redirect/same-site/cross-site.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/redirect/same-site/cross-site.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/redirect/same-site/same-origin.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/redirect/same-site/same-origin.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/redirect/same-site/same-site.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/redirect/same-site/same-site.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/report.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/report.tentative.https.sub.html", + {} + ] + ], "fetch/sec-metadata/script.tentative.https.sub.html": [ [ "/fetch/sec-metadata/script.tentative.https.sub.html", {} ] ], + "fetch/sec-metadata/serviceworker.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/serviceworker.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/sharedworker.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/sharedworker.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/style.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/style.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/track.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/track.tentative.https.sub.html", + {} + ] + ], "fetch/sec-metadata/window-open.tentative.https.sub.html": [ [ "/fetch/sec-metadata/window-open.tentative.https.sub.html", @@ -350626,6 +350936,18 @@ } ] ], + "fetch/sec-metadata/worker.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/worker.tentative.https.sub.html", + {} + ] + ], + "fetch/sec-metadata/xslt.tentative.https.sub.html": [ + [ + "/fetch/sec-metadata/xslt.tentative.https.sub.html", + {} + ] + ], "fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html": [ [ "/fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html", @@ -364102,6 +364424,14 @@ {} ] ], + "infrastructure/testdriver/bless.html": [ + [ + "/infrastructure/testdriver/bless.html", + { + "testdriver": true + } + ] + ], "infrastructure/testdriver/click.html": [ [ "/infrastructure/testdriver/click.html", @@ -366894,6 +367224,18 @@ {} ] ], + "mst-content-hint/MediaStreamTrack-contentHint.html": [ + [ + "/mst-content-hint/MediaStreamTrack-contentHint.html", + {} + ] + ], + "mst-content-hint/idlharness.window.js": [ + [ + "/mst-content-hint/idlharness.window.html", + {} + ] + ], "navigation-timing/idlharness.window.js": [ [ "/navigation-timing/idlharness.window.html", @@ -393820,6 +394162,12 @@ {} ] ], + "webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html": [ + [ + "/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html", + {} + ] + ], "webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.html": [ [ "/webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.html", @@ -430984,15 +431332,15 @@ "testharness" ], "background-fetch/fetch.https.window.js": [ - "f146212987a4ebb2e90edc190e9232cbd07210f9", + "843506947f7176761f0d47b9a7fa83ab187322b1", "testharness" ], "background-fetch/get-ids.https.window.js": [ - "28f5bc3132b7209c343ee264fb0699184e7bb47c", + "4c8bf26190719108e65b446a34aafe0aeb1377be", "testharness" ], "background-fetch/get.https.window.js": [ - "0b272dbaa4961b73049325f7826713682b590f8c", + "a0b2acd4a6955274e3e05e9666f0c6182f07404f", "testharness" ], "background-fetch/idlharness.https.any.js": [ @@ -431967,14 +432315,6 @@ "4868127465adfe8ec405d843de9fc115d725c280", "testharness" ], - "budget-api/META.yml": [ - "6cc0000f6ff7547e1b1bc635cbd0cabf0754675a", - "support" - ], - "budget-api/idlharness.https.any.js": [ - "335c7a60a4dc8daecd3a2b28b86438698ac06484", - "testharness" - ], "check_stability.ini": [ "b939328be1cb69c3dcc47495930ba0df28b2bad2", "support" @@ -513456,7 +513796,7 @@ "testharness" ], "css/css-animations/KeyframeEffect-getKeyframes.tentative.html": [ - "62473db7f3a0f2b4a21926c62d857a1ed74cbb1b", + "280f32a4852abaeb847092032fa49c9a6cb9797d", "testharness" ], "css/css-animations/KeyframeEffect-target.tentative.html": [ @@ -534135,6 +534475,14 @@ "14ad64d7a0875af3c2781edd68246d742deb067d", "testharness" ], + "css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-003.html": [ + "2ba9671f24dcd2d94d0cb48e734ee10182bf071a", + "testharness" + ], + "css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-004.html": [ + "e6de4730a6d2fbd92248ecdfeff5d2e1e1daf6a4", + "testharness" + ], "css/css-grid/layout-algorithm/grid-find-fr-size-gutters-001.html": [ "25d236cebc65133a40538982ff040b97a71d8738", "testharness" @@ -557571,6 +557919,14 @@ "50af0313de5fd78476c92155161c5d2b35519e3f", "manual" ], + "css/css-values-3/calc-in-counter-001-ref.xhtml": [ + "5614ec09b2641a580f8c965c339568701e46b612", + "support" + ], + "css/css-values-3/calc-in-counter-001.xhtml": [ + "1a2db830983a89cb7852818e8ba497baa7837726", + "reftest" + ], "css/css-values/META.yml": [ "a22882a9996b14afa942d3403fa1a873f526073a", "support" @@ -571252,27 +571608,35 @@ "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001-ref.xhtml": [ - "c83f5a03ce2112e10c1e9670aa22d25e3832ea68", + "33057bf5f0f8e0182850a0ad272cdddaac66a6a3", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001a.xhtml": [ - "96fc4cd0a4481120bba3383acaf0d339ab50daad", + "bb0a8cda64b19b85c612a0609d35c400eefaa840", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001b.xhtml": [ - "0f2a25426b3a734dc1e2a5077e86bacfe6d71c40", + "a1e192102ea9cbbdc5685085d47dfdd8b81d5023", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001-ref.xhtml": [ - "ab407a42e21e58411ae4fdd396fadf31d6c2b301", + "1bac2bcda1dfc8f919211c26841f55883c249180", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001a.xhtml": [ - "e8319cb75381f88b824378907374050722070064", + "c4236ef0406c48c5aec75d17d207cfb069591793", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001b.xhtml": [ - "a2e7ae6fb8adc2f1e43eddc2f3519dd2a49fb5c2", + "54a8ed31f9637eb9781a5a1fafacec498f402cf9", + "reftest" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001-ref.xhtml": [ + "2902a09c163759bd604b53e0b04a0be8f3bdb8c6", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001.xhtml": [ + "e0c40a72553100dc9e8652fc7e6f7bef17a2b725", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-items-center-nested-001-ref.html": [ @@ -571356,11 +571720,11 @@ "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002-ref.xhtml": [ - "59d13a6454409d5ee7be8feeae0b2d8323241a94", + "bc73fa7f926715b7b813e67bf0558ba041461112", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002.xhtml": [ - "cddd5b4554041b8744d5913a751fbf62ea247f1b", + "d1273d1f55b8284821a8ed47b7cfc617670f8e52", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-003-ref.xhtml": [ @@ -571412,11 +571776,11 @@ "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-002-ref.xhtml": [ - "3a5ad06a5f8d148f23f6011fd71346ccef6ef402", + "14b456e67128e5ffbbaf5d570016ad4670f45871", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-002.xhtml": [ - "c45d737bfbf6f32013630e286776efec35ee40cd", + "2ff89bdf5f52c8e040dd665d53888c0566cafc5d", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-003-ref.xhtml": [ @@ -571467,6 +571831,14 @@ "4f4f49afda37f66b50e6b502bf0244540d1bf84e", "reftest" ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005-ref.xhtml": [ + "b0c46adcb9d786cc5d7fb1455aea7c6e9dcc7d77", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005.xhtml": [ + "420c334c841efb113d7e769deb3062097ff54307", + "reftest" + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-anonymous-items-001-ref.html": [ "8f99ea1d56ae19136b91c460003ebdab1bd821b6", "support" @@ -572079,6 +572451,14 @@ "53cba03fbe579ee64179cb5c90cc9734beab9366", "reftest" ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006-ref.xhtml": [ + "7723b5fa2080af80c15890c7e0b73b16ae25c7fa", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006.xhtml": [ + "dcbe6184c7e8156bad3c87c95af58d8e335fe958", + "reftest" + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-001-ref.xhtml": [ "20f1c5df34e257358ad8c5ace97ee5b0fafb8864", "support" @@ -572123,6 +572503,22 @@ "bb99dd09b45f72c6aeb260ebd8e37782c173c01d", "reftest" ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006-ref.xhtml": [ + "b1a5bf2a9894bd421759a3abdb21fe9181a3672d", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006.xhtml": [ + "38a7f91d783c246a42b2e88c14d0a173142afddf", + "reftest" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001-ref.xhtml": [ + "0b99be2f2538d1cafbaeec4485a9c7dcd4f0cfde", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001.xhtml": [ + "f676c6c1cdc5eceaa0ccb5fb77e7f4650618fb0b", + "reftest" + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-margin-auto-horiz-001-ref.xhtml": [ "1321e5a3878b353f54db7459517539dd9b779ab2", "support" @@ -572656,7 +573052,7 @@ "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list": [ - "d2c5c47b6c931c4d1b6c347c77eb8b66348da6b2", + "b51226706eae57ce44afdbbc24d5fb74e4225d34", "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/support/Ahem.ttf": [ @@ -578544,7 +578940,7 @@ "support" ], "docs/_writing-tests/testdriver.md": [ - "5cbe0bc377b4dafde60bec06c77aba83baebe9db", + "a934e3278f1e2ea3b105b392cdac0e6a895e1b86", "support" ], "docs/_writing-tests/testharness-api.md": [ @@ -578856,7 +579252,7 @@ "testharness" ], "dom/events/event-global-extra.window.js": [ - "f26876966800121622b2d32ef86c955797c0141d", + "0f14961c40a650a911a1d451e216e27d12195eb5", "testharness" ], "dom/events/event-global.html": [ @@ -583727,6 +584123,10 @@ "ce6a169d8146750b183c9210d1b2041fac879248", "testharness" ], + "fetch/api/cors/cors-preflight-not-cors-safelisted.any.js": [ + "b2747ccd5bc09e4174aa4c59244e386c80527b51", + "testharness" + ], "fetch/api/cors/cors-preflight-redirect.any.js": [ "5d4de7ebaad1d45775cdb00bf0233aca1a34f612", "testharness" @@ -583744,7 +584144,7 @@ "testharness" ], "fetch/api/cors/cors-preflight.any.js": [ - "4765c5684cf84ddfad2dadace08e99d609bed6e6", + "7455b9774031c8ead6ebaf65165ee920eb9f4218", "testharness" ], "fetch/api/cors/cors-redirect-credentials.any.js": [ @@ -583759,6 +584159,14 @@ "cdf4097d5669241373dc7a03ad52c1cb974b5258", "testharness" ], + "fetch/api/cors/resources/corspreflight.js": [ + "f85d90d9edd6a345564e2b8144123472fde58e4d", + "support" + ], + "fetch/api/cors/resources/not-cors-safelisted.json": [ + "20a162f92c13b3d7fa8bcefab49c98cdd4b42a4c", + "support" + ], "fetch/api/cors/sandboxed-iframe.html": [ "feb9f1f2e5bd3e2a1d1937103ea13c2fdb32aea6", "testharness" @@ -583795,6 +584203,10 @@ "194ff32f1559f2dd9b5903eb3738c17c061c7172", "testharness" ], + "fetch/api/headers/headers-no-cors.window.js": [ + "aa6562b7d377f4ad74456a87d7e37bf0bd18cb2b", + "testharness" + ], "fetch/api/headers/headers-normalize.html": [ "6dfcf9d8194776479d500a6f6c6a5851424d9efc", "testharness" @@ -584815,40 +585227,136 @@ "c460aa1ecb941118b6999209ba4601eb145a61b9", "support" ], + "fetch/sec-metadata/embed.tentative.https.sub.html": [ + "745ef42d484f5258f46ffc6ee9447fe5d8d3c142", + "testharness" + ], "fetch/sec-metadata/fetch.tentative.https.sub.html": [ - "7a2c223d07112b38dd8053b07f44e7c4ac720161", + "12072476bebb693233a4cbffcb71019b1d1d5a91", + "testharness" + ], + "fetch/sec-metadata/font.tentative.https.sub.html": [ + "65432b5bacf3bddf8d5cbaad74bdbaf5e63fb44e", "testharness" ], "fetch/sec-metadata/iframe.tentative.https.sub.html": [ - "5b56c62ad71316c6c820d2cdfe2023c91c5a9da7", + "8d89cda8936cc33a22e0899a2c8b3560b7ef20bd", "testharness" ], "fetch/sec-metadata/img.tentative.https.sub.html": [ - "7c5cbc34bfd5af975b534e75f3fa2383d6b594aa", + "20701a6514653f86e33b3cdf700ecd0628097d6c", "testharness" ], + "fetch/sec-metadata/object.tentative.https.sub.html": [ + "e1ac53157e023a9c6bc4806feda2e782ef4eefa5", + "testharness" + ], + "fetch/sec-metadata/redirect/cross-site/cross-site.tentative.https.sub.html": [ + "e25fd3f61d5487de6026a0204f107201f491afad", + "testharness" + ], + "fetch/sec-metadata/redirect/cross-site/same-origin.tentative.https.sub.html": [ + "ac5982d8956c96cd638c2464ec9f8cce3f7e3a34", + "testharness" + ], + "fetch/sec-metadata/redirect/cross-site/same-site.tentative.https.sub.html": [ + "5b3b965f5e96d75f93796e55e77cfac94de18a52", + "testharness" + ], + "fetch/sec-metadata/redirect/same-origin/cross-site.tentative.https.sub.html": [ + "ea6b167673f5e64396db4690abde56253e8af914", + "testharness" + ], + "fetch/sec-metadata/redirect/same-origin/same-origin.tentative.https.sub.html": [ + "430990a57c48b858fdc509653c0b689abcedcc6d", + "testharness" + ], + "fetch/sec-metadata/redirect/same-origin/same-site.tentative.https.sub.html": [ + "591cf67d18111592a5e696e346371a88770bdb32", + "testharness" + ], + "fetch/sec-metadata/redirect/same-site/cross-site.tentative.https.sub.html": [ + "8592d02c269b6afc4193f4323238b68d8fc26979", + "testharness" + ], + "fetch/sec-metadata/redirect/same-site/same-origin.tentative.https.sub.html": [ + "191dbaa7f77a3ac569b37e95e2db9f2ac4985a3e", + "testharness" + ], + "fetch/sec-metadata/redirect/same-site/same-site.tentative.https.sub.html": [ + "11d60473981cf056ebc56b15905f27c070dad9c8", + "testharness" + ], + "fetch/sec-metadata/report.tentative.https.sub.html": [ + "279836457ebe72354ec68525bd92bc533b11b0dd", + "testharness" + ], + "fetch/sec-metadata/report.tentative.https.sub.html.sub.headers": [ + "5c8bc58ad472ed9de841491df4e3e9e26e2e1c70", + "support" + ], + "fetch/sec-metadata/resources/dedicatedWorker.js": [ + "18626d3d8458b967829b724fabebc10e939b62a9", + "support" + ], "fetch/sec-metadata/resources/echo-as-json.py": [ - "a45bb68654618fa95f0fa3266be6412612750b57", + "16cc67774f76347e5c71220f590a82a37302cff0", "support" ], "fetch/sec-metadata/resources/echo-as-script.py": [ - "c503822d5c605de0141e7e5316182519b6adc740", + "c1c6a4673acfbda17e2a7045a304a30082288d1d", "support" ], "fetch/sec-metadata/resources/helper.js": [ - "03d2d2d2ebaa8d04d348230a9f751b611ae0dfec", + "cbd96d06863427f34d75d0621839bcfe76c7ad96", "support" ], "fetch/sec-metadata/resources/post-to-owner.py": [ "fe08cd1cbcaa4585fb3be0ce0ee33e7d75759129", "support" ], + "fetch/sec-metadata/resources/record-header.py": [ + "06157e4cd8bd35e54b99c04f09a995185ba5686c", + "support" + ], + "fetch/sec-metadata/resources/sharedWorker.js": [ + "5eb89cb4f68a098154cf3605f53318af2f5e56f1", + "support" + ], + "fetch/sec-metadata/resources/xslt-test.sub.xml": [ + "4beb9af8d282f2672ab08c4c369d1fe0b061e80f", + "support" + ], "fetch/sec-metadata/script.tentative.https.sub.html": [ - "6f86e87c5388bc8962feec80a67f9ab4413b4ff8", + "643e11827f565ad11416589ae601d18cd8008239", + "testharness" + ], + "fetch/sec-metadata/serviceworker.tentative.https.sub.html": [ + "9d1fe2a3449da49b3b4e167f74e63e815ef5cf6c", + "testharness" + ], + "fetch/sec-metadata/sharedworker.tentative.https.sub.html": [ + "aa118e04239691f5488c4d62f3f1cf0ae59e8f1d", + "testharness" + ], + "fetch/sec-metadata/style.tentative.https.sub.html": [ + "78fac567b43f3c48c81897b44237d820a6209d8a", + "testharness" + ], + "fetch/sec-metadata/track.tentative.https.sub.html": [ + "e89d4745ff2db234e3e49ee28dd8af15acbc9731", "testharness" ], "fetch/sec-metadata/window-open.tentative.https.sub.html": [ - "1f9df663f1da911a6683ed54649efba0e8df7c85", + "3cd6190f944816258b29546ef89ec5947faa035d", + "testharness" + ], + "fetch/sec-metadata/worker.tentative.https.sub.html": [ + "eff66fcc7811d9aacced799d6707f8f9edcafa9b", + "testharness" + ], + "fetch/sec-metadata/xslt.tentative.https.sub.html": [ + "dff996679ff900cf3e3fe82381ef29ea5f5889b5", "testharness" ], "fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html": [ @@ -598692,7 +599200,7 @@ "testharness" ], "html/semantics/forms/form-submission-0/constructing-form-data-set.html": [ - "0fe917138693fe2bdd0a2b4d83b5f4c797b61244", + "afd75d87e95a6344bb3cb004c5af9973b63d645e", "testharness" ], "html/semantics/forms/form-submission-0/contains.json": [ @@ -603528,7 +604036,7 @@ "testharness" ], "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js": [ - "5de4b1421b5ef10adecb10a2d5bda0d3a2c2711c", + "43506a22a46da53885a2b5a0888095bc52b460ca", "testharness" ], "html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-events.window.js": [ @@ -604571,6 +605079,10 @@ "ea7973a62e0ee9cdc874879fd844b2309e944e61", "testharness" ], + "infrastructure/testdriver/bless.html": [ + "feb444f89d91088b51e04b610dd642c00814c3b4", + "testharness" + ], "infrastructure/testdriver/click.html": [ "37721ad9ef3df10f8cdc1da74c27a2259d4601f6", "testharness" @@ -604707,10 +605219,6 @@ "c5e3465c59fcfadba79803f7baf1853c2c48e06b", "support" ], - "interfaces/budget-api.idl": [ - "fc86f415aeafd7df596d9607823b934f01e52f7a", - "support" - ], "interfaces/clipboard-apis.idl": [ "e48ca6a5e46330ca75faf8fb38b636358c353dbb", "support" @@ -604927,6 +605435,10 @@ "5bf661e6cc5e2141181fef1f01eafa6e4da82248", "support" ], + "interfaces/mst-content-hint.idl": [ + "15e17cf5364c83fc70bf373cd7f500c13b153b5f", + "support" + ], "interfaces/navigation-timing.idl": [ "7e76a35661734881d4c11432e15668223c788dee", "support" @@ -608367,6 +608879,18 @@ "b0fff36eb94609ac24a76121bf9e201234885db1", "testharness" ], + "mst-content-hint/META.yml": [ + "7f79eccbaa6b9950233ee8968c6b358dd89b5d03", + "support" + ], + "mst-content-hint/MediaStreamTrack-contentHint.html": [ + "98c88e66ea1ec137cdcf794c63a14d9af4b964b1", + "testharness" + ], + "mst-content-hint/idlharness.window.js": [ + "0d9137dc6fb91b1499d922e01d6ad96049f5757b", + "testharness" + ], "navigation-timing/META.yml": [ "c09a6e03fd19f5a405b391c2c4671df6ff04edf1", "support" @@ -625275,14 +625799,6 @@ "b53c6a8c4232dbe9c787b0ea17f0ed1a49f1e386", "support" ], - "resources/chromium/chooser_service.mojom.js": [ - "fd344e71faf7806a8ee687bd2049537b26e89ae2", - "support" - ], - "resources/chromium/chooser_service.mojom.js.headers": [ - "6805c323df5a975231648b830e33ce183c3cbbd3", - "support" - ], "resources/chromium/device.mojom.js": [ "435fc1fc7addabfddb093e003795512c28360357", "support" @@ -625372,7 +625888,7 @@ "support" ], "resources/chromium/web_usb_service.mojom.js": [ - "c283f0e9aea4bee4202352ef91f7d95b6f291f2e", + "d0b93a168bf06fe6b1dac3dd58c9e7d6f2a66d13", "support" ], "resources/chromium/web_usb_service.mojom.js.headers": [ @@ -625380,7 +625896,7 @@ "support" ], "resources/chromium/webusb-test.js": [ - "94db93d31e389aa2aa525d82feb57ff414d0426b", + "9037a109c91610957091f73752074faa031e497b", "support" ], "resources/chromium/webusb-test.js.headers": [ @@ -627687,16 +628203,12 @@ "050ac0b542455ceb53ed36038af5b9b0810977cf", "support" ], - "service-workers/cache-storage/resources/vary.py": [ - "59e39bc2ae730a4cd3e1376dd003c9ffada4ed4a", - "support" - ], "service-workers/cache-storage/script-tests/cache-abort.js": [ "ec4130fded29e0070828092c2546dc46456d8fdc", "support" ], "service-workers/cache-storage/script-tests/cache-add.js": [ - "a482c42eaeb2a902a36b1d6aecd306e8ed4b4ebf", + "c03faeb0e83723eab64e648e600ba0612873d404", "support" ], "service-workers/cache-storage/script-tests/cache-delete.js": [ @@ -628492,7 +629004,7 @@ "support" ], "service-workers/service-worker/navigation-preload/resources/resource-timing-worker.js": [ - "46af6456aec3d368db3527a8331f4c70f5c84550", + "fac0d8de2a7361aa2f55fdcde87b969a952b92d8", "support" ], "service-workers/service-worker/navigation-preload/resources/wait-for-activate-worker.js": [ @@ -634935,6 +635447,22 @@ "51303171f09d28e3958ab74ecdce7f9cf120bd12", "testharness" ], + "svg/text/reftests/text-complex-001-ref.svg": [ + "5ade69dce1de95954861271c0e523767230ae275", + "support" + ], + "svg/text/reftests/text-complex-001.svg": [ + "747737cce7e39fb7336530328e5de7f1d2c07f01", + "reftest" + ], + "svg/text/reftests/text-complex-002-ref.svg": [ + "3d3968fa4923436e760dd80b05af292a615cffcb", + "support" + ], + "svg/text/reftests/text-complex-002.svg": [ + "40b62ac95d66f2914c8a373332f567929e8d2aae", + "reftest" + ], "svg/text/reftests/text-inline-size-001-ref.svg": [ "6abd211584ea3b500e409c0f0fa956182fe131e6", "support" @@ -635023,6 +635551,22 @@ "e52bb770521c1b60a6b3998324882a36153ef243", "reftest" ], + "svg/text/reftests/text-shape-inside-001-ref.svg": [ + "5a2c6c0b472669ce32509bd0bdbd09ba1a195ab2", + "support" + ], + "svg/text/reftests/text-shape-inside-001.svg": [ + "248fe1a44f98099dd678e9ef63f1b97a5c09cfdf", + "reftest" + ], + "svg/text/reftests/text-shape-inside-002-ref.svg": [ + "e75ce485c5cf3fa3fc5acb24bb3d2b2d4b6ef49b", + "support" + ], + "svg/text/reftests/text-shape-inside-002.svg": [ + "64b1307966c4527c0ba6546d7e80730512d8f382", + "reftest" + ], "svg/text/reftests/textpath-shape-001-ref.svg": [ "10827c85810cdf9dc7e70a665c289814d35ed219", "support" @@ -640088,7 +640632,7 @@ "support" ], "tools/wpt/testfiles.py": [ - "c4e714c2640925bda1343b3575f77823144a8b1d", + "35a4b97d7ffaa24f630d70c6877c719d155c2ec7", "support" ], "tools/wpt/tests/latest_mozilla_central.txt": [ @@ -640096,7 +640640,7 @@ "support" ], "tools/wpt/tests/test_wpt.py": [ - "ada7cc7c164d835edcdf081d421bfe2a4daff0bf", + "16d286d382c7179ad36807b47638d82b4b46f286", "support" ], "tools/wpt/tox.ini": [ @@ -640428,7 +640972,7 @@ "support" ], "tools/wptrunner/wptrunner/executors/executormarionette.py": [ - "9df4508c85248231cfb85fad63509608eb43a986", + "70054b57294f8ae50ceda10f95efebbebec34538", "support" ], "tools/wptrunner/wptrunner/executors/executoropera.py": [ @@ -640924,7 +641468,7 @@ "support" ], "tools/wptserve/tests/functional/test_request.py": [ - "de29638f6c11dae97cbb5d26d60d3fd530403e5b", + "97d75eb71289adf643ab073ddc740f1f24cffc76", "support" ], "tools/wptserve/tests/functional/test_response.py": [ @@ -643440,11 +643984,11 @@ "testharness" ], "web-animations/interfaces/KeyframeEffect/composite.html": [ - "82ac633f0a9e817d6101299d995b0f13f5812f86", + "bcca2cad243abb3fe4d43dc2052e08af3e58499d", "testharness" ], "web-animations/interfaces/KeyframeEffect/constructor.html": [ - "250a8c7a836f7bee818781cc15ccc42ed7ec54c2", + "8f16aa18711e596c1c2c604595146e36601a606f", "testharness" ], "web-animations/interfaces/KeyframeEffect/copy-constructor.html": [ @@ -643460,7 +644004,7 @@ "testharness" ], "web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html": [ - "d46cf6752080d7d7bb39d0b8d6fd7557f76e5528", + "5c9ec84e8db79f73ac1423258a84bf0d18d70a5f", "testharness" ], "web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002.html": [ @@ -643484,7 +644028,7 @@ "support" ], "web-animations/resources/keyframe-tests.js": [ - "f32f5ced8e7f58572f70d6bcd68d9a1c822459d9", + "76a0481de9190d4272ca9261676ecea0f8e25ca9", "support" ], "web-animations/resources/keyframe-utils.js": [ @@ -644535,6 +645079,10 @@ "d35b8ec54b61d3c998e90dc0739b97bca4c1b022", "testharness" ], + "webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html": [ + "b0b3a5965e1d0f8e2de211b06ceeca58e417a16f", + "testharness" + ], "webaudio/the-audio-api/the-convolvernode-interface/ctor-convolver.html": [ "cf818330060143078cacbecf77724244eee55cf8", "testharness" @@ -647752,7 +648300,7 @@ "support" ], "webusb/resources/usb-helpers.js": [ - "881ea8b95619393a35e1df05864c3cad2ff0eb60", + "93740920dee8f259fc266cd4927b5972985df77e", "support" ], "webusb/usb-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html": [ diff --git a/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini b/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini deleted file mode 100644 index 26435e28b09..00000000000 --- a/tests/wpt/metadata/css/css-values/vh_not_refreshing_on_chrome.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[vh_not_refreshing_on_chrome.html] - expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/cors/cors-preflight-not-cors-safelisted.any.js.ini b/tests/wpt/metadata/fetch/api/cors/cors-preflight-not-cors-safelisted.any.js.ini new file mode 100644 index 00000000000..c581f51c88e --- /dev/null +++ b/tests/wpt/metadata/fetch/api/cors/cors-preflight-not-cors-safelisted.any.js.ini @@ -0,0 +1,45 @@ +[cors-preflight-not-cors-safelisted.any.html] + [Need CORS-preflight for content-language/@ header] + expected: FAIL + + [Need CORS-preflight for content-language/\x01 header] + expected: FAIL + + [Need CORS-preflight for accept-language/@ header] + expected: FAIL + + [Need CORS-preflight for accept/" header] + expected: FAIL + + [Need CORS-preflight for accept-language/\x01 header] + expected: FAIL + + [Need CORS-preflight for content-type/text/plain; long=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 header] + expected: FAIL + + [Need CORS-preflight for accept/012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 header] + expected: FAIL + + +[cors-preflight-not-cors-safelisted.any.worker.html] + [Need CORS-preflight for content-language/@ header] + expected: FAIL + + [Need CORS-preflight for content-language/\x01 header] + expected: FAIL + + [Need CORS-preflight for accept-language/@ header] + expected: FAIL + + [Need CORS-preflight for accept/" header] + expected: FAIL + + [Need CORS-preflight for accept-language/\x01 header] + expected: FAIL + + [Need CORS-preflight for content-type/text/plain; long=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 header] + expected: FAIL + + [Need CORS-preflight for accept/012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 header] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/headers/headers-no-cors.window.js.ini b/tests/wpt/metadata/fetch/api/headers/headers-no-cors.window.js.ini new file mode 100644 index 00000000000..c303da569b9 --- /dev/null +++ b/tests/wpt/metadata/fetch/api/headers/headers-no-cors.window.js.ini @@ -0,0 +1,22 @@ +[headers-no-cors.window.html] + ["no-cors" Headers object cannot have accept-language/@ as header] + expected: FAIL + + ["no-cors" Headers object cannot have accept-language/\x01 as header] + expected: FAIL + + ["no-cors" Headers object cannot have content-type/text/plain; long=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 as header] + expected: FAIL + + ["no-cors" Headers object cannot have content-language/@ as header] + expected: FAIL + + ["no-cors" Headers object cannot have content-language/\x01 as header] + expected: FAIL + + ["no-cors" Headers object cannot have accept/" as header] + expected: FAIL + + ["no-cors" Headers object cannot have accept/012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 as header] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/embed.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/embed.tentative.https.sub.html.ini new file mode 100644 index 00000000000..19a76dbb7de --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/embed.tentative.https.sub.html.ini @@ -0,0 +1,11 @@ +[embed.tentative.https.sub.html] + expected: TIMEOUT + [Cross-Site embed] + expected: NOTRUN + + [Same-Site embed] + expected: NOTRUN + + [Same-Origin embed] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/fetch/sec-metadata/font.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/font.tentative.https.sub.html.ini new file mode 100644 index 00000000000..39b898e8564 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/font.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[font.tentative.https.sub.html] + [font] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/object.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/object.tentative.https.sub.html.ini new file mode 100644 index 00000000000..8e3bee8e2d6 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/object.tentative.https.sub.html.ini @@ -0,0 +1,11 @@ +[object.tentative.https.sub.html] + expected: TIMEOUT + [Same-Origin object] + expected: TIMEOUT + + [Cross-Site object] + expected: NOTRUN + + [Same-Site object] + expected: NOTRUN + diff --git a/tests/wpt/metadata/fetch/sec-metadata/redirect/cross-site/cross-site.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/redirect/cross-site/cross-site.tentative.https.sub.html.ini new file mode 100644 index 00000000000..4a81532ca09 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/redirect/cross-site/cross-site.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[cross-site.tentative.https.sub.html] + [Cross-Site -> Cross-Site redirect] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/redirect/cross-site/same-origin.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/redirect/cross-site/same-origin.tentative.https.sub.html.ini new file mode 100644 index 00000000000..6dcb9dc347f --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/redirect/cross-site/same-origin.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[same-origin.tentative.https.sub.html] + [Cross-Site -> Same-Origin redirect] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/redirect/cross-site/same-site.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/redirect/cross-site/same-site.tentative.https.sub.html.ini new file mode 100644 index 00000000000..b7fd30ef1a5 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/redirect/cross-site/same-site.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[same-site.tentative.https.sub.html] + [Cross-Site -> Same-Site redirect] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/redirect/same-origin/cross-site.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-origin/cross-site.tentative.https.sub.html.ini new file mode 100644 index 00000000000..a0b0d105a91 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-origin/cross-site.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[cross-site.tentative.https.sub.html] + [Same-Origin -> Cross-Site redirect] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/redirect/same-origin/same-origin.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-origin/same-origin.tentative.https.sub.html.ini new file mode 100644 index 00000000000..cf99b983c94 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-origin/same-origin.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[same-origin.tentative.https.sub.html] + [Same-Origin -> Same-Origin redirect] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/redirect/same-origin/same-site.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-origin/same-site.tentative.https.sub.html.ini new file mode 100644 index 00000000000..33cb8591619 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-origin/same-site.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[same-site.tentative.https.sub.html] + [Same-Origin -> Same-Site redirect] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/redirect/same-site/cross-site.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-site/cross-site.tentative.https.sub.html.ini new file mode 100644 index 00000000000..2d51075f772 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-site/cross-site.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[cross-site.tentative.https.sub.html] + [Same-Site -> Cross-Site redirect] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/redirect/same-site/same-origin.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-site/same-origin.tentative.https.sub.html.ini new file mode 100644 index 00000000000..aa8abf8c443 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-site/same-origin.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[same-origin.tentative.https.sub.html] + [Same-Site -> Same-Origin redirect] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/redirect/same-site/same-site.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-site/same-site.tentative.https.sub.html.ini new file mode 100644 index 00000000000..6894d9ea99e --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/redirect/same-site/same-site.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[same-site.tentative.https.sub.html] + [Same-Site -> Same-Site redirect] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/report.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/report.tentative.https.sub.html.ini new file mode 100644 index 00000000000..6673e91722b --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/report.tentative.https.sub.html.ini @@ -0,0 +1,2 @@ +[report.tentative.https.sub.html] + expected: TIMEOUT diff --git a/tests/wpt/metadata/fetch/sec-metadata/sharedworker.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/sharedworker.tentative.https.sub.html.ini new file mode 100644 index 00000000000..9aa11216376 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/sharedworker.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[sharedworker.tentative.https.sub.html] + [sharedworker] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/style.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/style.tentative.https.sub.html.ini new file mode 100644 index 00000000000..660d71dcc7f --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/style.tentative.https.sub.html.ini @@ -0,0 +1,10 @@ +[style.tentative.https.sub.html] + [Cross-Site style] + expected: FAIL + + [Same-Site style] + expected: FAIL + + [Same-Origin style] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/track.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/track.tentative.https.sub.html.ini new file mode 100644 index 00000000000..15eaec3e714 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/track.tentative.https.sub.html.ini @@ -0,0 +1,11 @@ +[track.tentative.https.sub.html] + expected: TIMEOUT + [Same-Site track] + expected: NOTRUN + + [Same-Origin track] + expected: TIMEOUT + + [Cross-Site track] + expected: NOTRUN + diff --git a/tests/wpt/metadata/fetch/sec-metadata/worker.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/worker.tentative.https.sub.html.ini new file mode 100644 index 00000000000..73e93bdf2e1 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/worker.tentative.https.sub.html.ini @@ -0,0 +1,4 @@ +[worker.tentative.https.sub.html] + [Same-Origin worker] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/sec-metadata/xslt.tentative.https.sub.html.ini b/tests/wpt/metadata/fetch/sec-metadata/xslt.tentative.https.sub.html.ini new file mode 100644 index 00000000000..569ed0b3546 --- /dev/null +++ b/tests/wpt/metadata/fetch/sec-metadata/xslt.tentative.https.sub.html.ini @@ -0,0 +1,2 @@ +[xslt.tentative.https.sub.html] + expected: TIMEOUT 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 deleted file mode 100644 index 385376c7321..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_4.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/constructing-form-data-set.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/constructing-form-data-set.html.ini index 6de08d39d43..d60fb300078 100644 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/constructing-form-data-set.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/constructing-form-data-set.html.ini @@ -5,3 +5,6 @@ [_charset_ control sets the expected encoding name.] expected: FAIL + [The button cannot be setted if it is not a submitter.] + expected: FAIL + diff --git a/tests/wpt/metadata/url/urlencoded-parser.any.js.ini b/tests/wpt/metadata/url/urlencoded-parser.any.js.ini index 073158c046b..3fbb77c0d99 100644 --- a/tests/wpt/metadata/url/urlencoded-parser.any.js.ini +++ b/tests/wpt/metadata/url/urlencoded-parser.any.js.ini @@ -2,10 +2,22 @@ [response.formData() with input: a&b&c] expected: FAIL - [request.formData() with input: _charset_=windows-1252&test=%C2x] + [request.formData() with input: a=b&c=d] expected: FAIL - [request.formData() with input: a=b&c=d] + [request.formData() with input: &&&a=b&&&&c=d&] + expected: FAIL + + [request.formData() with input: a&b&c] + expected: FAIL + + [response.formData() with input: _charset_=windows-1252&test=%C2x] + expected: FAIL + + [response.formData() with input: &&&a=b&&&&c=d&] + expected: FAIL + + [request.formData() with input: a=b&c=d&] expected: FAIL @@ -13,9 +25,6 @@ [request.formData() with input: a&b&c] expected: FAIL - [request.formData() with input: a=b&c=d] - expected: FAIL - [response.formData() with input: a=b&c=d] expected: FAIL @@ -25,3 +34,15 @@ [request.formData() with input: a=b&c=d&] expected: FAIL + [request.formData() with input: &&&a=b&&&&c=d&] + expected: FAIL + + [request.formData() with input: _charset_=windows-1252&test=%C2x] + expected: FAIL + + [response.formData() with input: a=b&c=d&] + expected: FAIL + + [response.formData() with input: _charset_=windows-1252&test=%C2x] + expected: FAIL + diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html.ini new file mode 100644 index 00000000000..27e58e5685b --- /dev/null +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html.ini @@ -0,0 +1,10 @@ +[convolver-upmixing-1-channel-response.html] + [speakers, initially mono] + expected: FAIL + + [discrete] + expected: FAIL + + [speakers, initially stereo] + expected: FAIL + diff --git a/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js b/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js index f146212987a..843506947f7 100644 --- a/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js +++ b/tests/wpt/web-platform-tests/background-fetch/fetch.https.window.js @@ -8,8 +8,8 @@ promise_test(async test => { // 6.3.1.9.2: If |registration|’s active worker is null, then reject promise // with a TypeError and abort these steps. - const script = 'resources/sw.js'; - const scope = 'resources/scope' + location.pathname; + const script = 'service_workers/sw.js'; + const scope = 'service_workers/' + location.pathname; const serviceWorkerRegistration = await service_worker_unregister_and_register(test, script, scope); @@ -21,7 +21,7 @@ promise_test(async test => { await promise_rejects( test, new TypeError(), serviceWorkerRegistration.backgroundFetch.fetch( - uniqueId(), ['resources/sw.js']), + uniqueId(), ['resources/feature-name.txt']), 'fetch() must reject on pending and installing workers'); }, 'Background Fetch requires an activated Service Worker'); @@ -44,7 +44,9 @@ backgroundFetchTest(async (test, backgroundFetch) => { // 6.3.1.7.2: If |internalRequest|’s mode is "no-cors", then return a // promise rejected with a TypeError. { - const request = new Request('resources/sw.js', {mode: 'no-cors'}); + const request = + new Request('resources/feature-name.txt', {mode: 'no-cors'}); + await promise_rejects( test, new TypeError(), backgroundFetch.fetch(uniqueId(), request), 'Requests must not be in no-cors mode'); @@ -56,8 +58,8 @@ backgroundFetchTest(async (test, backgroundFetch) => { // 6.3.1.9.2: If |bgFetchMap[id]| exists, reject |promise| with a TypeError // and abort these steps. return promise_rejects(test, new TypeError(), Promise.all([ - backgroundFetch.fetch('my-id', 'resources/sw.js'), - backgroundFetch.fetch('my-id', 'resources/feature-name.txt') + backgroundFetch.fetch('my-id', 'resources/feature-name.txt?1'), + backgroundFetch.fetch('my-id', 'resources/feature-name.txt?2') ])); }, 'IDs must be unique among active Background Fetch registrations'); diff --git a/tests/wpt/web-platform-tests/background-fetch/get-ids.https.window.js b/tests/wpt/web-platform-tests/background-fetch/get-ids.https.window.js index 28f5bc3132b..4c8bf261907 100644 --- a/tests/wpt/web-platform-tests/background-fetch/get-ids.https.window.js +++ b/tests/wpt/web-platform-tests/background-fetch/get-ids.https.window.js @@ -8,8 +8,8 @@ // https://wicg.github.io/background-fetch/#background-fetch-manager-getIds promise_test(async test => { - const script = 'resources/sw.js'; - const scope = 'resources/scope' + location.pathname; + const script = 'service_workers/sw.js'; + const scope = 'service_workers/' + location.pathname; const serviceWorkerRegistration = await service_worker_unregister_and_register(test, script, scope); diff --git a/tests/wpt/web-platform-tests/background-fetch/get.https.window.js b/tests/wpt/web-platform-tests/background-fetch/get.https.window.js index 0b272dbaa49..a0b2acd4a69 100644 --- a/tests/wpt/web-platform-tests/background-fetch/get.https.window.js +++ b/tests/wpt/web-platform-tests/background-fetch/get.https.window.js @@ -8,8 +8,8 @@ // https://wicg.github.io/background-fetch/#background-fetch-manager-get promise_test(async test => { - const script = 'resources/sw.js'; - const scope = 'resources/scope' + location.pathname; + const script = 'service_workers/sw.js'; + const scope = 'service_workers/' + location.pathname; const serviceWorkerRegistration = await service_worker_unregister_and_register(test, script, scope); diff --git a/tests/wpt/web-platform-tests/budget-api/META.yml b/tests/wpt/web-platform-tests/budget-api/META.yml deleted file mode 100644 index 6cc0000f6ff..00000000000 --- a/tests/wpt/web-platform-tests/budget-api/META.yml +++ /dev/null @@ -1,3 +0,0 @@ -spec: https://wicg.github.io/budget-api/ -suggested_reviewers: - - beverloo diff --git a/tests/wpt/web-platform-tests/budget-api/idlharness.https.any.js b/tests/wpt/web-platform-tests/budget-api/idlharness.https.any.js deleted file mode 100644 index 335c7a60a4d..00000000000 --- a/tests/wpt/web-platform-tests/budget-api/idlharness.https.any.js +++ /dev/null @@ -1,24 +0,0 @@ -// META: script=/resources/WebIDLParser.js -// META: script=/resources/idlharness.js - -'use strict'; - -// See https://wicg.github.io/budget-api/ - -idl_test( - ['budget-api'], - ['html'], - async idl_array => { - idl_array.add_objects({ BudgetService: ['navigator.budget'] }); - if (self.Window) { - idl_array.add_objects({ Navigator: ['navigator'] }); - } else { - idl_array.add_objects({ WorkerNavigator: ['navigator'] }); - } - const budgetStates = await navigator.budget.getBudget(); - if (budgetStates.length) { - self.budgetState = budgetStates[0]; - idl_array.add_objects({ BudgetState: ['budgetState'] }); - } - } -); diff --git a/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html b/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html index 62473db7f3a..280f32a4852 100644 --- a/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html +++ b/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html @@ -229,9 +229,9 @@ test(t => { const expected = [ { offset: 0, computedOffset: 0, easing: "ease", - color: "rgb(0, 0, 0)", composite: null }, + color: "rgb(0, 0, 0)", composite: "auto" }, { offset: 1, computedOffset: 1, easing: "ease", - color: "rgb(255, 255, 255)", composite: null }, + color: "rgb(255, 255, 255)", composite: "auto" }, ]; for (let i = 0; i < frames.length; i++) { @@ -299,10 +299,10 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", marginBottom: "8px", marginLeft: "8px", marginRight: "8px", marginTop: "8px" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", marginBottom: "16px", marginLeft: "16px", marginRight: "16px", marginTop: "16px" }, ]; @@ -323,9 +323,9 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", color: "rgb(0, 0, 255)" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", color: "rgb(255, 255, 255)" }, ]; @@ -345,9 +345,9 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", color: "rgb(255, 255, 255)" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", color: "rgb(0, 0, 255)" }, ]; @@ -367,11 +367,11 @@ test(t => { assert_equals(frames.length, 3, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", color: "rgb(255, 255, 255)" }, - { offset: 0.5, computedOffset: 0.5, easing: "ease", composite: null, + { offset: 0.5, computedOffset: 0.5, easing: "ease", composite: "auto", color: "rgb(0, 0, 255)" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", color: "rgb(255, 255, 255)" }, ]; @@ -391,9 +391,9 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", marginTop: '50px', marginBottom: '100px' }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", marginTop: '250px', marginBottom: '200px' }, ]; @@ -413,13 +413,13 @@ test(t => { assert_equals(frames.length, 4, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", color: "rgb(0, 0, 0)", marginTop: "8px" }, - { offset: 0.25, computedOffset: 0.25, easing: "ease", composite: null, + { offset: 0.25, computedOffset: 0.25, easing: "ease", composite: "auto", color: "rgb(0, 0, 255)" }, - { offset: 0.75, computedOffset: 0.75, easing: "ease", composite: null, + { offset: 0.75, computedOffset: 0.75, easing: "ease", composite: "auto", marginTop: "12px" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", color: "rgb(255, 255, 255)", marginTop: "16px" }, ]; @@ -439,13 +439,13 @@ test(t => { assert_equals(frames.length, 4, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "linear", composite: null, + { offset: 0, computedOffset: 0, easing: "linear", composite: "auto", color: "rgb(0, 0, 0)", marginTop: "8px" }, - { offset: 0.25, computedOffset: 0.25, easing: "steps(1)", composite: null, + { offset: 0.25, computedOffset: 0.25, easing: "steps(1)", composite: "auto", color: "rgb(0, 0, 255)" }, - { offset: 0.75, computedOffset: 0.75, easing: "ease-in", composite: null, + { offset: 0.75, computedOffset: 0.75, easing: "ease-in", composite: "auto", marginTop: "12px" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", color: "rgb(255, 255, 255)", marginTop: "16px" }, ]; @@ -465,9 +465,9 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", color: "rgb(0, 0, 0)", marginTop: "8px" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", color: "rgb(255, 255, 255)", marginTop: "16px" }, ]; @@ -487,11 +487,11 @@ test(t => { assert_equals(frames.length, 3, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "steps(1)", composite: null, + { offset: 0, computedOffset: 0, easing: "steps(1)", composite: "auto", color: "rgb(0, 0, 0)", fontSize: "16px" }, - { offset: 0, computedOffset: 0, easing: "linear", composite: null, + { offset: 0, computedOffset: 0, easing: "linear", composite: "auto", marginTop: "8px", paddingLeft: "2px" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", color: "rgb(255, 255, 255)", fontSize: "32px", marginTop: "16px", paddingLeft: "4px" }, ]; @@ -512,11 +512,11 @@ test(t => { assert_equals(frames.length, 3, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "steps(1)", composite: null, + { offset: 0, computedOffset: 0, easing: "steps(1)", composite: "auto", marginTop: "0px", marginRight: "0px", marginBottom: "0px" }, - { offset: 0.5, computedOffset: 0.5, easing: "steps(1)", composite: null, + { offset: 0.5, computedOffset: 0.5, easing: "steps(1)", composite: "auto", marginTop: "10px", marginRight: "10px", marginBottom: "10px" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", marginTop: "20px", marginRight: "20px", marginBottom: "20px" }, ]; @@ -536,17 +536,17 @@ test(t => { assert_equals(frames.length, 6, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", paddingTop: "30px" }, - { offset: 0.5, computedOffset: 0.5, easing: "ease", composite: null, + { offset: 0.5, computedOffset: 0.5, easing: "ease", composite: "auto", paddingTop: "20px" }, - { offset: 0.75, computedOffset: 0.75, easing: "ease", composite: null, + { offset: 0.75, computedOffset: 0.75, easing: "ease", composite: "auto", paddingTop: "20px" }, - { offset: 0.85, computedOffset: 0.85, easing: "ease", composite: null, + { offset: 0.85, computedOffset: 0.85, easing: "ease", composite: "auto", paddingTop: "30px" }, - { offset: 0.851, computedOffset: 0.851, easing: "ease", composite: null, + { offset: 0.851, computedOffset: 0.851, easing: "ease", composite: "auto", paddingTop: "60px" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", paddingTop: "70px" }, ]; @@ -568,9 +568,9 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", filter: "none" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", filter: "blur(5px) sepia(60%) saturate(30%)" }, ]; @@ -589,9 +589,9 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", filter: "drop-shadow(rgb(0, 255, 0) 10px 10px 10px)" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", filter: "drop-shadow(rgb(255, 0, 0) 50px 30px 10px)" }, ]; @@ -617,11 +617,11 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", textShadow: "rgb(0, 0, 0) 1px 1px 2px," + " rgb(0, 0, 255) 0px 0px 16px," + " rgb(0, 0, 255) 0px 0px 3.2px" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", textShadow: "none" }, ]; @@ -644,9 +644,9 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", backgroundSize: "auto auto" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", backgroundSize: "50% auto, 6px auto, contain" }, ]; @@ -676,9 +676,9 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", transform: "none" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", transform: "translate(100px, 0px)" }, ]; for (let i = 0; i < frames.length; i++) { @@ -696,12 +696,12 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", marginBottom: "0px", marginLeft: "0px", marginRight: "0px", marginTop: "0px" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", marginBottom: "100px", marginLeft: "100px", marginRight: "100px", @@ -722,9 +722,9 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", color: "rgb(0, 0, 0)" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", color: "rgb(0, 255, 0)" }, ]; for (let i = 0; i < frames.length; i++) { @@ -742,9 +742,9 @@ test(t => { assert_equals(frames.length, 2, "number of frames"); const expected = [ - { offset: 0, computedOffset: 0, easing: "ease", composite: null, + { offset: 0, computedOffset: 0, easing: "ease", composite: "auto", transform: "translate(100px, 0px)" }, - { offset: 1, computedOffset: 1, easing: "ease", composite: null, + { offset: 1, computedOffset: 1, easing: "ease", composite: "auto", transform: "none" }, ]; for (let i = 0; i < frames.length; i++) { diff --git a/tests/wpt/web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-003.html b/tests/wpt/web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-003.html new file mode 100644 index 00000000000..2ba9671f24d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-003.html @@ -0,0 +1,39 @@ + + +CSS Grid Layout Test: Content Distribution and the track sizing algorithm + + + + + + + + + + + + + +
+
XXXX XXX
+
XXX
+
+ diff --git a/tests/wpt/web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-004.html b/tests/wpt/web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-004.html new file mode 100644 index 00000000000..e6de4730a6d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/layout-algorithm/grid-content-distribution-must-account-for-track-sizing-004.html @@ -0,0 +1,39 @@ + + +CSS Grid Layout Test: Content Distribution and the track sizing algorithm + + + + + + + + + + + + + +
+
XXXX XXX
+
XXX
+
+ diff --git a/tests/wpt/web-platform-tests/css/css-values-3/calc-in-counter-001-ref.xhtml b/tests/wpt/web-platform-tests/css/css-values-3/calc-in-counter-001-ref.xhtml new file mode 100644 index 00000000000..5614ec09b26 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-values-3/calc-in-counter-001-ref.xhtml @@ -0,0 +1,27 @@ + + + + CSS Test: counter-* properties with a calc() expression + + + + + +

The following two lines should be the same:

+ +
+ 8 + 10 +
+ +
+ 8 + 10 +
+ + + diff --git a/tests/wpt/web-platform-tests/css/css-values-3/calc-in-counter-001.xhtml b/tests/wpt/web-platform-tests/css/css-values-3/calc-in-counter-001.xhtml new file mode 100644 index 00000000000..1a2db830983 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-values-3/calc-in-counter-001.xhtml @@ -0,0 +1,42 @@ + + + + CSS Test: counter-* properties with a calc() expression + + + + + + + + + + + + +

The following two lines should be the same:

+ +
+ + +
+ +
+ 8 + 10 +
+ + + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001-ref.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001-ref.xhtml index c83f5a03ce2..33057bf5f0f 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001-ref.xhtml +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001-ref.xhtml @@ -138,5 +138,33 @@
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001a.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001a.xhtml index 96fc4cd0a44..bb0a8cda64b 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001a.xhtml +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001a.xhtml @@ -147,5 +147,33 @@
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001b.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001b.xhtml index 0f2a25426b3..a1e192102ea 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001b.xhtml +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-horiz-001b.xhtml @@ -148,5 +148,33 @@
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001-ref.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001-ref.xhtml index ab407a42e21..1bac2bcda1d 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001-ref.xhtml +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001-ref.xhtml @@ -141,5 +141,33 @@
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001a.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001a.xhtml index e8319cb7538..c4236ef0406 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001a.xhtml +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001a.xhtml @@ -147,5 +147,33 @@
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001b.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001b.xhtml index a2e7ae6fb8a..54a8ed31f96 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001b.xhtml +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-vert-001b.xhtml @@ -148,5 +148,33 @@
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001-ref.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001-ref.xhtml new file mode 100644 index 00000000000..2902a09c163 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001-ref.xhtml @@ -0,0 +1,173 @@ + + + + + CSS Reftest Reference + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001.xhtml new file mode 100644 index 00000000000..e0c40a72553 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-content-wmvert-001.xhtml @@ -0,0 +1,179 @@ + + + + + + CSS Test: Testing 'align-content' in a vertical writing-mode flex container + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002-ref.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002-ref.xhtml index 59d13a64544..bc73fa7f926 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002-ref.xhtml +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002-ref.xhtml @@ -22,7 +22,7 @@ .flexbox > div { float: left } .flex-start, .flex-end, .center, .baseline, .stretch, - .auto, .unspecified, .initial, .inherit { + .auto, .unspecified, .initial, .inherit, .self-start, .self-end { width: 40px; margin: 1px 2px 3px 4px; border-width: 2px 3px 4px 5px; @@ -53,6 +53,16 @@ .stretch { background: pink; } + .self-start { + background: yellow; + } + .self-end { + background: purple; + } + .wmvertrev { + writing-mode: vertical-lr; + direction: rtl; + } @@ -81,5 +91,12 @@
stretch
a b c d e f
+
+
+
self-start
+
a b c d e f
+
self-end
+
a b c d e f
+
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002.xhtml index cddd5b45540..d1273d1f55b 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002.xhtml +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002.xhtml @@ -57,6 +57,18 @@ background: pink; align-self: stretch; } + .self-start { + background: yellow; + align-self: self-start; + } + .self-end { + background: purple; + align-self: self-end; + } + .wmvertrev { + writing-mode: vertical-lr; + direction: rtl; + } @@ -75,5 +87,12 @@
stretch
a b c d e f
+
+
+
self-start
+
a b c d e f
+
self-end
+
a b c d e f
+
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-002-ref.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-002-ref.xhtml index 3a5ad06a5f8..14b456e6712 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-002-ref.xhtml +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-002-ref.xhtml @@ -18,7 +18,8 @@ font-size: 10px; } - .flex-start, .flex-end, .center, .baseline, .stretch { + .flex-start, .flex-end, .center, .baseline, .stretch, + .self-start, .self-end { clear: both; margin: 1px 2px 3px 4px; border-width: 2px 3px 4px 5px; @@ -58,6 +59,16 @@ .stretch { background: pink; } + .self-start { + background: yellow; + float: right; + text-align: right; + } + .self-end { + background: purple; + float: left; + text-align: right; + } .clearFloats { clear: both } @@ -86,5 +97,11 @@ we use floats or inline-blocks, whose margins don't collapse. -->
a b c d e f
+
+
self-start
+
a b c d e f
+
self-end
+
a b c d e f
+
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-002.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-002.xhtml index c45d737bfbf..2ff89bdf5f5 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-002.xhtml +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-002.xhtml @@ -56,6 +56,17 @@ background: pink; align-self: stretch; } + .self-start { + background: yellow; + align-self: self-start; + } + .self-end { + background: purple; + align-self: self-end; + } + .dirrtl { + direction: rtl; + } @@ -73,5 +84,11 @@
stretch
a b c d e f
+
+
self-start
+
a b c d e f
+
self-end
+
a b c d e f
+
diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005-ref.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005-ref.xhtml new file mode 100644 index 00000000000..b0c46adcb9d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005-ref.xhtml @@ -0,0 +1,105 @@ + + + + + + CSS Reftest Reference + + + + +
+
start
+
a b c d e f
+
end
+
a b c d e f
+
+
+
center
+
+
+
a b c d e f
+
+
+
+
base
+
abc
+
+
stretch
+ +
a b c d e f
+
+
+
self-start
+
a b c d e f
+
self-end
+
a b c d e f
+
+ + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005.xhtml new file mode 100644 index 00000000000..420c334c841 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-vert-rtl-005.xhtml @@ -0,0 +1,92 @@ + + + + + + CSS Test: Testing the behavior of 'align-self' with a vertical flex container, with margin/padding/border on the items and with 'direction:rtl' + + + + + + +
+
start
+
a b c d e f
+
end
+
a b c d e f
+
center
+
a b c d e f
+
+
+
base
+
abc
+
stretch
+
a b c d e f
+
+
+
self-start
+
a b c d e f
+
self-end
+
a b c d e f
+
+ + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006-ref.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006-ref.xhtml new file mode 100644 index 00000000000..7723b5fa208 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006-ref.xhtml @@ -0,0 +1,192 @@ + + + + + CSS Reftest Reference + + + + + + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ +
+
+
+
+ + + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006.xhtml new file mode 100644 index 00000000000..dcbe6184c7e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-006.xhtml @@ -0,0 +1,140 @@ + + + + + + CSS Test: Testing 'justify-content' in an auto-sized reversed horizontal flex container + + + + + + + + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006-ref.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006-ref.xhtml new file mode 100644 index 00000000000..b1a5bf2a989 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006-ref.xhtml @@ -0,0 +1,143 @@ + + + + + CSS Reftest Reference + + + + + + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006.xhtml new file mode 100644 index 00000000000..38a7f91d783 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-vert-006.xhtml @@ -0,0 +1,141 @@ + + + + + + CSS Test: Testing 'justify-content' in a vertical flex container + + + + + + + + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001-ref.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001-ref.xhtml new file mode 100644 index 00000000000..0b99be2f253 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001-ref.xhtml @@ -0,0 +1,143 @@ + + + + + CSS Reftest Reference + + + + + + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001.xhtml b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001.xhtml new file mode 100644 index 00000000000..f676c6c1cdc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-wmvert-001.xhtml @@ -0,0 +1,142 @@ + + + + + + CSS Test: Testing 'justify-content' in a vertical writing mode flex container + + + + + + + + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
+ + + diff --git a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list index d2c5c47b6c9..b51226706ea 100644 --- a/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list +++ b/tests/wpt/web-platform-tests/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/reftest.list @@ -11,6 +11,7 @@ == flexbox-align-content-horiz-001b.xhtml flexbox-align-content-horiz-001-ref.xhtml == flexbox-align-content-vert-001a.xhtml flexbox-align-content-vert-001-ref.xhtml == flexbox-align-content-vert-001b.xhtml flexbox-align-content-vert-001-ref.xhtml +== flexbox-align-content-wmvert-001.xhtml flexbox-align-content-wmvert-001-ref.xhtml # Tests for cross-axis alignment (align-self / align-items properties) == flexbox-align-self-baseline-horiz-001a.xhtml flexbox-align-self-baseline-horiz-001-ref.xhtml @@ -39,6 +40,7 @@ == flexbox-align-self-vert-rtl-002.xhtml flexbox-align-self-vert-rtl-002-ref.xhtml == flexbox-align-self-vert-rtl-003.xhtml flexbox-align-self-vert-rtl-003-ref.xhtml == flexbox-align-self-vert-rtl-004.xhtml flexbox-align-self-vert-rtl-004-ref.xhtml +== flexbox-align-self-vert-rtl-005.xhtml flexbox-align-self-vert-rtl-005-ref.xhtml == flexbox-align-items-center-nested-001.html flexbox-align-items-center-nested-001-ref.html @@ -158,12 +160,15 @@ == flexbox-justify-content-horiz-003.xhtml flexbox-justify-content-horiz-003-ref.xhtml == flexbox-justify-content-horiz-004.xhtml flexbox-justify-content-horiz-004-ref.xhtml == flexbox-justify-content-horiz-005.xhtml flexbox-justify-content-horiz-005-ref.xhtml +== flexbox-justify-content-horiz-006.xhtml flexbox-justify-content-horiz-006-ref.xhtml == flexbox-justify-content-vert-001a.xhtml flexbox-justify-content-vert-001-ref.xhtml == flexbox-justify-content-vert-001b.xhtml flexbox-justify-content-vert-001-ref.xhtml == flexbox-justify-content-vert-002.xhtml flexbox-justify-content-vert-002-ref.xhtml == flexbox-justify-content-vert-003.xhtml flexbox-justify-content-vert-003-ref.xhtml == flexbox-justify-content-vert-004.xhtml flexbox-justify-content-vert-004-ref.xhtml == flexbox-justify-content-vert-005.xhtml flexbox-justify-content-vert-005-ref.xhtml +== flexbox-justify-content-vert-006.xhtml flexbox-justify-content-vert-006-ref.xhtml +== flexbox-justify-content-wmvert-001.xhtml flexbox-justify-content-wmvert-001-ref.xhtml # Tests for flexbox with margin, border, and/or padding on flex items == flexbox-margin-auto-horiz-001.xhtml flexbox-margin-auto-horiz-001-ref.xhtml diff --git a/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md b/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md index 5cbe0bc377b..a934e3278f1 100644 --- a/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md +++ b/tests/wpt/web-platform-tests/docs/_writing-tests/testdriver.md @@ -18,6 +18,32 @@ the global scope. NB: presently, testdriver.js only works in the top-level test browsing context (and not therefore in any frame or window opened from it). +### `test_driver.bless(intent, action)` +#### `intent: a string describing the motivation for this invocation` +#### `action: an optional function` + +This function simulates [activation][activation], allowing tests to +perform privileged operations that require user interaction. For +example, sandboxed iframes with the +`allow-top-navigation-by-user-activation` may only navigate their +parent's browsing context under these circumstances. The `intent` +string is presented to human operators when the test is not run in +automation. + +This method returns a promise which is resolved with the result of +invoking the `action` function. If no such function is provided, the +promise is resolved with the value `undefined`. + +Example: + +```js +var mediaElement = document.createElement('video'); + +test_driver.bless('initiate media playback', function () { + mediaElement.play(); +}); +``` + ### `test_driver.click(element)` #### `element: a DOM Element object` @@ -48,4 +74,5 @@ between the function being called and the promise settling. To send special keys, one must send the respective key's codepoint. Since this uses the WebDriver protocol, you can find a [list for code points to special keys in the spec](https://w3c.github.io/webdriver/webdriver-spec.html#keyboard-actions). For example, to send the tab key you would send "\uE004". +[activation]: https://html.spec.whatwg.org/multipage/interaction.html#activation [testharness]: {{ site.baseurl }}{% link _writing-tests/testharness.md %} diff --git a/tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js b/tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js index f2687696680..0f14961c40a 100644 --- a/tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js +++ b/tests/wpt/web-platform-tests/dom/events/event-global-extra.window.js @@ -56,16 +56,16 @@ test(t => { assert_equals(counter++, 3); })); child.addEventListener("hi", t.step_func(e => { - assert_equals(window.event, e); + assert_equals(window.event, undefined); assert_equals(counter++, 2); })); furtherChild.addEventListener("hi", t.step_func(e => { host.appendChild(child); - assert_equals(window.event, e); + assert_equals(window.event, undefined); assert_equals(counter++, 0); })); furtherChild.addEventListener("hi", t.step_func(e => { - assert_equals(window.event, e); + assert_equals(window.event, undefined); assert_equals(counter++, 1); })); furtherChild.dispatchEvent(new Event("hi", { composed: true, bubbles: true })); @@ -75,7 +75,7 @@ test(t => { async_test(t => { const frame = document.body.appendChild(document.createElement("iframe")); frame.src = "resources/event-global-extra-frame.html"; - frame.onload = t.step_func_done(() => { + frame.onload = t.step_func_done((load_event) => { const event = new Event("hi"); document.addEventListener("hi", frame.contentWindow.listener); // listener intentionally not wrapped in t.step_func document.addEventListener("hi", t.step_func(e => { @@ -85,6 +85,6 @@ async_test(t => { document.dispatchEvent(event); assert_equals(frameState.event, event); assert_equals(frameState.windowEvent, event); - assert_equals(frameState.parentEvent, undefined); + assert_equals(frameState.parentEvent, load_event); }); }, "Listener from a different global"); diff --git a/tests/wpt/web-platform-tests/fetch/api/cors/cors-preflight-not-cors-safelisted.any.js b/tests/wpt/web-platform-tests/fetch/api/cors/cors-preflight-not-cors-safelisted.any.js new file mode 100644 index 00000000000..b2747ccd5bc --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/cors/cors-preflight-not-cors-safelisted.any.js @@ -0,0 +1,19 @@ +// META: script=/common/utils.js +// META: script=../resources/utils.js +// META: script=/common/get-host-info.sub.js +// META: script=resources/corspreflight.js + +const corsURL = get_host_info().HTTP_REMOTE_ORIGIN + dirname(location.pathname) + RESOURCES_DIR + "preflight.py"; + +promise_test(() => fetch("resources/not-cors-safelisted.json").then(res => res.json().then(runTests)), "Loading data…"); + +function runTests(testArray) { + testArray.forEach(testItem => { + const [headerName, headerValue] = testItem; + corsPreflight("Need CORS-preflight for " + headerName + "/" + headerValue + " header", + corsURL, + "GET", + true, + [[headerName, headerValue]]); + }); +} diff --git a/tests/wpt/web-platform-tests/fetch/api/cors/cors-preflight.any.js b/tests/wpt/web-platform-tests/fetch/api/cors/cors-preflight.any.js index 4765c5684cf..7455b977403 100644 --- a/tests/wpt/web-platform-tests/fetch/api/cors/cors-preflight.any.js +++ b/tests/wpt/web-platform-tests/fetch/api/cors/cors-preflight.any.js @@ -1,65 +1,7 @@ // META: script=/common/utils.js // META: script=../resources/utils.js // META: script=/common/get-host-info.sub.js - -function headerNames(headers) -{ - let names = []; - for (let header of headers) - names.push(header[0].toLowerCase()); - return names -} - -/* - Check preflight is done - Control if server allows method and headers and check accordingly - Check control access headers added by UA (for method and headers) -*/ -function corsPreflight(desc, corsUrl, method, allowed, headers, safeHeaders) { - return promise_test(function(test) { - var uuid_token = token(); - return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(response) { - var url = corsUrl + (corsUrl.indexOf("?") === -1 ? "?" : "&"); - var urlParameters = "token=" + uuid_token + "&max_age=0"; - var requestInit = {"mode": "cors", "method": method}; - var requestHeaders = []; - if (headers) - requestHeaders.push.apply(requestHeaders, headers); - if (safeHeaders) - requestHeaders.push.apply(requestHeaders, safeHeaders); - requestInit["headers"] = requestHeaders; - - if (allowed) { - urlParameters += "&allow_methods=" + method + "&control_request_headers"; - if (headers) { - //Make the server allow the headers - urlParameters += "&allow_headers=" + headerNames(headers).join("%20%2C"); - } - return fetch(url + urlParameters, requestInit).then(function(resp) { - assert_equals(resp.status, 200, "Response's status is 200"); - assert_equals(resp.headers.get("x-did-preflight"), "1", "Preflight request has been made"); - if (headers) { - var actualHeaders = resp.headers.get("x-control-request-headers").toLowerCase().split(","); - for (var i in actualHeaders) - actualHeaders[i] = actualHeaders[i].trim(); - for (var header of headers) - assert_in_array(header[0].toLowerCase(), actualHeaders, "Preflight asked permission for header: " + header); - - let accessControlAllowHeaders = headerNames(headers).sort().join(","); - assert_equals(resp.headers.get("x-control-request-headers"), accessControlAllowHeaders, "Access-Control-Allow-Headers value"); - return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token); - } else { - assert_equals(resp.headers.get("x-control-request-headers"), null, "Access-Control-Request-Headers should be omitted") - } - }); - } else { - return promise_rejects(test, new TypeError(), fetch(url + urlParameters, requestInit)).then(function(){ - return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token); - }); - } - }); - }, desc); -} +// META: script=resources/corspreflight.js var corsUrl = get_host_info().HTTP_REMOTE_ORIGIN + dirname(location.pathname) + RESOURCES_DIR + "preflight.py"; diff --git a/tests/wpt/web-platform-tests/fetch/api/cors/resources/corspreflight.js b/tests/wpt/web-platform-tests/fetch/api/cors/resources/corspreflight.js new file mode 100644 index 00000000000..f85d90d9edd --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/cors/resources/corspreflight.js @@ -0,0 +1,58 @@ +function headerNames(headers) { + let names = []; + for (let header of headers) { + names.push(header[0].toLowerCase()); + } + return names; +} + +/* + Check preflight is done + Control if server allows method and headers and check accordingly + Check control access headers added by UA (for method and headers) +*/ +function corsPreflight(desc, corsUrl, method, allowed, headers, safeHeaders) { + return promise_test(function(test) { + var uuid_token = token(); + return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token).then(function(response) { + var url = corsUrl + (corsUrl.indexOf("?") === -1 ? "?" : "&"); + var urlParameters = "token=" + uuid_token + "&max_age=0"; + var requestInit = {"mode": "cors", "method": method}; + var requestHeaders = []; + if (headers) + requestHeaders.push.apply(requestHeaders, headers); + if (safeHeaders) + requestHeaders.push.apply(requestHeaders, safeHeaders); + requestInit["headers"] = requestHeaders; + + if (allowed) { + urlParameters += "&allow_methods=" + method + "&control_request_headers"; + if (headers) { + //Make the server allow the headers + urlParameters += "&allow_headers=" + headerNames(headers).join("%20%2C"); + } + return fetch(url + urlParameters, requestInit).then(function(resp) { + assert_equals(resp.status, 200, "Response's status is 200"); + assert_equals(resp.headers.get("x-did-preflight"), "1", "Preflight request has been made"); + if (headers) { + var actualHeaders = resp.headers.get("x-control-request-headers").toLowerCase().split(","); + for (var i in actualHeaders) + actualHeaders[i] = actualHeaders[i].trim(); + for (var header of headers) + assert_in_array(header[0].toLowerCase(), actualHeaders, "Preflight asked permission for header: " + header); + + let accessControlAllowHeaders = headerNames(headers).sort().join(","); + assert_equals(resp.headers.get("x-control-request-headers"), accessControlAllowHeaders, "Access-Control-Allow-Headers value"); + return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token); + } else { + assert_equals(resp.headers.get("x-control-request-headers"), null, "Access-Control-Request-Headers should be omitted") + } + }); + } else { + return promise_rejects(test, new TypeError(), fetch(url + urlParameters, requestInit)).then(function(){ + return fetch(RESOURCES_DIR + "clean-stash.py?token=" + uuid_token); + }); + } + }); + }, desc); +} diff --git a/tests/wpt/web-platform-tests/fetch/api/cors/resources/not-cors-safelisted.json b/tests/wpt/web-platform-tests/fetch/api/cors/resources/not-cors-safelisted.json new file mode 100644 index 00000000000..20a162f92c1 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/cors/resources/not-cors-safelisted.json @@ -0,0 +1,11 @@ +[ + ["accept", "\""], + ["accept", "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678"], + ["accept-language", "\u0001"], + ["accept-language", "@"], + ["content-language", "\u0001"], + ["content-language", "@"], + ["content-type", "text/html"], + ["content-type", "text/plain; long=0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901"], + ["test", "hi"] +] diff --git a/tests/wpt/web-platform-tests/fetch/api/headers/headers-no-cors.window.js b/tests/wpt/web-platform-tests/fetch/api/headers/headers-no-cors.window.js new file mode 100644 index 00000000000..aa6562b7d37 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/headers/headers-no-cors.window.js @@ -0,0 +1,19 @@ +promise_test(() => fetch("../cors/resources/not-cors-safelisted.json").then(res => res.json().then(runTests)), "Loading data…"); + +function runTests(testArray) { + testArray = testArray.concat([ + ["dpr", "2"], + ["downlink", "1"], // https://wicg.github.io/netinfo/ + ["save-data", "on"], + ["viewport-width", "100"], + ["width", "100"] + ]); + testArray.forEach(testItem => { + const [headerName, headerValue] = testItem; + test(() => { + const noCorsHeaders = new Request("about:blank", { mode: "no-cors" }).headers; + noCorsHeaders.append(headerName, headerValue); + assert_false(noCorsHeaders.has(headerName)); + }, "\"no-cors\" Headers object cannot have " + headerName + "/" + headerValue + " as header"); + }); +} diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html new file mode 100644 index 00000000000..745ef42d484 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/embed.tentative.https.sub.html @@ -0,0 +1,65 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/fetch.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/fetch.tentative.https.sub.html index 7a2c223d071..12072476beb 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/fetch.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/fetch.tentative.https.sub.html @@ -10,7 +10,6 @@ assert_header_equals(j.header, { "cause": undefined, "destination": "", - "target": "subresource", "site": "same-origin" }); }); @@ -23,7 +22,6 @@ assert_header_equals(j.header, { "cause": undefined, "destination": "", - "target": "subresource", "site": "same-site" }); }); @@ -36,7 +34,6 @@ assert_header_equals(j.header, { "cause": undefined, "destination": "", - "target": "subresource", "site": "cross-site" }); }); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/font.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/font.tentative.https.sub.html new file mode 100644 index 00000000000..65432b5bacf --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/font.tentative.https.sub.html @@ -0,0 +1,104 @@ + + + + + + + +
1
+
2
+
3
+ + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.https.sub.html index 5b56c62ad71..8d89cda8936 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/iframe.tentative.https.sub.html @@ -13,8 +13,7 @@ assert_header_equals(e.data, { "cause": "forced", - "destination": "document", - "target": "nested", + "destination": "nested-document", "site": "same-origin" }); t.done(); @@ -32,8 +31,7 @@ assert_header_equals(e.data, { "cause": "forced", - "destination": "document", - "target": "nested", + "destination": "nested-document", "site": "same-site" }); t.done(); @@ -51,8 +49,7 @@ assert_header_equals(e.data, { "cause": "forced", - "destination": "document", - "target": "nested", + "destination": "nested-document", "site": "cross-site" }); t.done(); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/img.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/img.tentative.https.sub.html index 7c5cbc34bfd..20701a65146 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 @@ -14,7 +14,6 @@ assert_header_equals(decodeImageData(extractImageData(img)).headers["sec-metadata"], { "cause": undefined, "destination": "image", - "target": "subresource", "site": "same-origin" }); }), @@ -29,7 +28,6 @@ assert_header_equals(decodeImageData(extractImageData(img)).headers["sec-metadata"], { "cause": undefined, "destination": "image", - "target": "subresource", "site": "same-site" }); }), @@ -44,7 +42,6 @@ assert_header_equals(decodeImageData(extractImageData(img)).headers["sec-metadata"], { "cause": undefined, "destination": "image", - "target": "subresource", "site": "cross-site" }); }), diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html new file mode 100644 index 00000000000..e1ac53157e0 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/object.tentative.https.sub.html @@ -0,0 +1,65 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site/cross-site.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site/cross-site.tentative.https.sub.html new file mode 100644 index 00000000000..e25fd3f61d5 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site/cross-site.tentative.https.sub.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site/same-origin.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site/same-origin.tentative.https.sub.html new file mode 100644 index 00000000000..ac5982d8956 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site/same-origin.tentative.https.sub.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site/same-site.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site/same-site.tentative.https.sub.html new file mode 100644 index 00000000000..5b3b965f5e9 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/cross-site/same-site.tentative.https.sub.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin/cross-site.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin/cross-site.tentative.https.sub.html new file mode 100644 index 00000000000..ea6b167673f --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin/cross-site.tentative.https.sub.html @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin/same-origin.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin/same-origin.tentative.https.sub.html new file mode 100644 index 00000000000..430990a57c4 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin/same-origin.tentative.https.sub.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin/same-site.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin/same-site.tentative.https.sub.html new file mode 100644 index 00000000000..591cf67d181 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-origin/same-site.tentative.https.sub.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site/cross-site.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site/cross-site.tentative.https.sub.html new file mode 100644 index 00000000000..8592d02c269 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site/cross-site.tentative.https.sub.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site/same-origin.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site/same-origin.tentative.https.sub.html new file mode 100644 index 00000000000..191dbaa7f77 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site/same-origin.tentative.https.sub.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site/same-site.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site/same-site.tentative.https.sub.html new file mode 100644 index 00000000000..11d60473981 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/redirect/same-site/same-site.tentative.https.sub.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/report.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/report.tentative.https.sub.html new file mode 100644 index 00000000000..279836457eb --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/report.tentative.https.sub.html @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/report.tentative.https.sub.html.sub.headers b/tests/wpt/web-platform-tests/fetch/sec-metadata/report.tentative.https.sub.html.sub.headers new file mode 100644 index 00000000000..5c8bc58ad47 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/report.tentative.https.sub.html.sub.headers @@ -0,0 +1,3 @@ +Content-Security-Policy: style-src 'self' 'unsafe-inline'; report-uri /fetch/sec-metadata/resources/record-header.py?file=report-same-origin +Content-Security-Policy: style-src 'self' 'unsafe-inline'; report-uri https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=report-same-site +Content-Security-Policy: style-src 'self' 'unsafe-inline'; report-uri https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=report-cross-site diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/dedicatedWorker.js b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/dedicatedWorker.js new file mode 100644 index 00000000000..18626d3d845 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/dedicatedWorker.js @@ -0,0 +1 @@ +self.postMessage("Loaded"); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/echo-as-json.py b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/echo-as-json.py index a45bb686546..16cc67774f7 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/echo-as-json.py +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/echo-as-json.py @@ -8,5 +8,5 @@ def main(request, response): headers.append(("Access-Control-Allow-Origin", request.headers["origin"])) - body = json.dumps({ "header": request.headers["sec-metadata"] }) + body = json.dumps({ "header": request.headers.get("sec-metadata", "") }) return headers, body diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/echo-as-script.py b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/echo-as-script.py index c503822d5c6..c1c6a4673ac 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/echo-as-script.py +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/echo-as-script.py @@ -3,6 +3,6 @@ import json def main(request, response): headers = [("Content-Type", "text/javascript")] - body = "var header = %s;" % json.dumps(request.headers["sec-metadata"]); + body = "var header = %s;" % json.dumps(request.headers.get("sec-metadata", "")); return headers, body diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/helper.js b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/helper.js index 03d2d2d2eba..cbd96d06863 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/helper.js +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/helper.js @@ -9,9 +9,18 @@ function parse_metadata(value) { } function assert_header_equals(value, expected) { + // check that the returned value is an object, not a String + assert_not_equals(value, "", "Empty Sec-Metadata header."); let result = parse_metadata(value); assert_equals(result.cause, expected.cause, "cause"); assert_equals(result.destination, expected.destination, "destination"); assert_equals(result.target, expected.target, "target"); assert_equals(result.site, expected.site, "site"); } + +function verify_response(xhr, test, expected){ + if (xhr.readyState === 4) { + assert_header_equals(xhr.responseText, expected); + test.done(); + } +} diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/record-header.py b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/record-header.py new file mode 100644 index 00000000000..06157e4cd8b --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/record-header.py @@ -0,0 +1,114 @@ +import os +import uuid +import hashlib +import time + +resourcePath = os.getcwd() + "/fetch/sec-metadata/resources/" + +def main(request, response): + + ## Get the query parameter (key) from URL ## + ## Tests will record POST requests (CSP Report) and GET (rest) ## + if request.GET: + key = request.GET['file'] + elif request.POST: + key = request.POST['file'] + + ## Convert the key from String to UUID valid String ## + testId = hashlib.md5(key).hexdigest() + + ## Handle the header retrieval request ## + if 'retrieve' in request.GET: + response.writer.write_status(200) + response.writer.end_headers() + header_value = request.server.stash.take(testId) + if header_value != None: + response.writer.write(header_value) + + response.close_connection = True + + ## Record incoming Sec-Metadata header value + else: + ## Return empty string as a default value ## + header = request.headers.get("Sec-Metadata", "") + try: + request.server.stash.put(testId, header) + except KeyError: + ## The header is already recorded + pass + + ## Prevent the browser from caching returned responses and allow CORS ## + response.headers.set("Access-Control-Allow-Origin", "*") + response.headers.set("Cache-Control", "no-cache, no-store, must-revalidate") + response.headers.set("Pragma", "no-cache") + response.headers.set("Expires", "0") + + ## Add a valid ServiceWorker Content-Type ## + if key.startswith("serviceworker"): + response.headers.set("Content-Type", "application/javascript") + + ## Return a valid .vtt content for the tag ## + if key.startswith("track"): + return "WEBVTT" + + ## Return a valid SharedWorker ## + if key.startswith("sharedworker"): + response.headers.set("Content-Type", "application/javascript") + file = open(resourcePath + "sharedWorker.js", "r") + shared_worker = file.read() + file.close() + return shared_worker + + ## Return a valid font content and Content-Type ## + if key.startswith("font"): + file = open("fonts/Ahem.ttf", "r") + font = file.read() + file.close() + return font + + ## Return a valid audio content and Content-Type ## + if key.startswith("audio"): + response.headers.set("Content-Type", "audio/mpeg") + file = open("media/sound_5.mp3", "r") + audio = file.read() + file.close() + return audio + + ## Return a valid video content and Content-Type ## + if key.startswith("video"): + response.headers.set("Content-Type", "video/mp4") + file = open("media/A4.mp4", "r") + video = file.read() + file.close() + return video + + ## Return a valid style content and Content-Type ## + if key.startswith("style") or key.startswith("embed") or key.startswith("object"): + response.headers.set("Content-Type", "text/html") + return "EMBED!" + + ## Return a valid image content and Content-Type for redirect requests ## + if key.startswith("redirect"): + response.headers.set("Content-Type", "image/jpeg") + file = open("media/1x1-green.png", "r") + image = file.read() + file.close() + return image + + ## Return a valid dedicated worker + if key.startswith("worker"): + response.headers.set("Content-Type", "application/javascript") + return "self.postMessage('loaded');" + + ## Return a valid XSLT + if key.startswith("xslt"): + response.headers.set("Content-Type", "text/xsl") + return """ + + + + + + +""" + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/sharedWorker.js b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/sharedWorker.js new file mode 100644 index 00000000000..5eb89cb4f68 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/sharedWorker.js @@ -0,0 +1,9 @@ +onconnect = function(e) { + var port = e.ports[0]; + + port.addEventListener('message', function(e) { + port.postMessage("Ready"); + }); + + port.start(); +} diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/xslt-test.sub.xml b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/xslt-test.sub.xml new file mode 100644 index 00000000000..4beb9af8d28 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/resources/xslt-test.sub.xml @@ -0,0 +1,13 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.https.sub.html index 6f86e87c538..643e11827f5 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/script.tentative.https.sub.html @@ -12,7 +12,6 @@ assert_header_equals(header, { "cause": undefined, "destination": "script", - "target": "subresource", "site": "same-origin" }); }, "Same-origin script"); @@ -27,7 +26,6 @@ assert_header_equals(header, { "cause": undefined, "destination": "script", - "target": "subresource", "site": "same-site" }); }, "Same-site script"); @@ -42,7 +40,6 @@ assert_header_equals(header, { "cause": undefined, "destination": "script", - "target": "subresource", "site": "cross-site" }); }, "Cross-site script"); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html new file mode 100644 index 00000000000..9d1fe2a3449 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/serviceworker.tentative.https.sub.html @@ -0,0 +1,51 @@ + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html new file mode 100644 index 00000000000..aa118e04239 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/sharedworker.tentative.https.sub.html @@ -0,0 +1,44 @@ + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html new file mode 100644 index 00000000000..78fac567b43 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/style.tentative.https.sub.html @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html new file mode 100644 index 00000000000..e89d4745ff2 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/track.tentative.https.sub.html @@ -0,0 +1,79 @@ + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/window-open.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/window-open.tentative.https.sub.html index 1f9df663f1d..3cd6190f944 100644 --- a/tests/wpt/web-platform-tests/fetch/sec-metadata/window-open.tentative.https.sub.html +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/window-open.tentative.https.sub.html @@ -17,7 +17,6 @@ assert_header_equals(e.data, { "cause": "forced", "destination": "document", - "target": "top-level", "site": "same-origin" }); t.done(); @@ -34,7 +33,6 @@ assert_header_equals(e.data, { "cause": "forced", "destination": "document", - "target": "top-level", "site": "same-site" }); t.done(); @@ -51,7 +49,6 @@ assert_header_equals(e.data, { "cause": "forced", "destination": "document", - "target": "top-level", "site": "cross-site" }); t.done(); @@ -71,7 +68,6 @@ assert_header_equals(e.data, { "cause": "user-activated", "destination": "document", - "target": "top-level", "site": "same-origin" }); t.done(); @@ -93,7 +89,6 @@ assert_header_equals(e.data, { "cause": "user-activated", "destination": "document", - "target": "top-level", "site": "same-site" }); t.done(); @@ -115,7 +110,6 @@ assert_header_equals(e.data, { "cause": "user-activated", "destination": "document", - "target": "top-level", "site": "cross-site" }); t.done(); diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html new file mode 100644 index 00000000000..eff66fcc781 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/worker.tentative.https.sub.html @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/sec-metadata/xslt.tentative.https.sub.html b/tests/wpt/web-platform-tests/fetch/sec-metadata/xslt.tentative.https.sub.html new file mode 100644 index 00000000000..dff996679ff --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/sec-metadata/xslt.tentative.https.sub.html @@ -0,0 +1,38 @@ + + + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set.html b/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set.html index 0fe91713869..afd75d87e95 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/constructing-form-data-set.html @@ -1,32 +1,49 @@ - - - - -
- + + + +
+ + +
+ + + + +
- diff --git a/tests/wpt/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js b/tests/wpt/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js index 5de4b1421b5..43506a22a46 100644 --- a/tests/wpt/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js +++ b/tests/wpt/web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js @@ -1,15 +1,60 @@ -for (const ev of ["unload", "beforeunload", "pagehide"]) { +for (const [ev, target] of [ + ["beforeunload", iframe => iframe.contentWindow], + ["pagehide", iframe => iframe.contentWindow], + ["unload", iframe => iframe.contentWindow], + ["visibilitychange", iframe => iframe.contentDocument], +]) { async_test(t => { const iframe = document.body.appendChild(document.createElement("iframe")); t.add_cleanup(() => iframe.remove()); iframe.src = "/common/blank.html"; iframe.onload = t.step_func(() => { - iframe.contentWindow.addEventListener(ev, t.step_func_done(() => { + target(iframe).addEventListener(ev, t.step_func_done(() => { assert_not_equals(iframe.contentDocument.childNodes.length, 0); assert_equals(iframe.contentDocument.open(), iframe.contentDocument); assert_not_equals(iframe.contentDocument.childNodes.length, 0); })); iframe.src = "about:blank"; }); - }, `document.open should bail out when ignore-opens-during-unload is greater than 0 during ${ev} event`); + }, `document.open should bail out when ignore-opens-during-unload is greater than 0 during ${ev} event (in top-level browsing context)`); + + async_test(t => { + const iframe = document.body.appendChild(document.createElement("iframe")); + t.add_cleanup(() => iframe.remove()); + iframe.src = "/common/blank.html?1"; + iframe.onload = t.step_func(() => { + const doc = iframe.contentDocument; + const innerIframe = doc.body.appendChild(doc.createElement("iframe")); + innerIframe.src = "/common/blank.html?2"; + innerIframe.onload = t.step_func(() => { + // Navigate the parent, listen on the child, and open() the parent. + target(innerIframe).addEventListener(ev, t.step_func_done(() => { + assert_not_equals(iframe.contentDocument.childNodes.length, 0); + iframe.contentDocument.open(); + assert_not_equals(iframe.contentDocument.childNodes.length, 0); + })); + iframe.src = "about:blank"; + }); + }); + }, `document.open should bail out when ignore-opens-during-unload is greater than 0 during ${ev} event (open(parent) while unloading parent and child)`); + + async_test(t => { + const iframe = document.body.appendChild(document.createElement("iframe")); + t.add_cleanup(() => iframe.remove()); + iframe.src = "/common/blank.html?1"; + iframe.onload = t.step_func(() => { + const doc = iframe.contentDocument; + const innerIframe = doc.body.appendChild(doc.createElement("iframe")); + innerIframe.src = "/common/blank.html?2"; + innerIframe.onload = t.step_func(() => { + // Navigate the child, listen on the child, and open() the parent. + target(innerIframe).addEventListener(ev, t.step_func_done(() => { + assert_not_equals(iframe.contentDocument.childNodes.length, 0); + iframe.contentDocument.open(); + assert_equals(iframe.contentDocument.childNodes.length, 0); + })); + innerIframe.src = "about:blank"; + }); + }); + }, `document.open should bail out when ignore-opens-during-unload is greater than 0 during ${ev} event (open(parent) while unloading child only)`); } diff --git a/tests/wpt/web-platform-tests/infrastructure/testdriver/bless.html b/tests/wpt/web-platform-tests/infrastructure/testdriver/bless.html new file mode 100644 index 00000000000..feb444f89d9 --- /dev/null +++ b/tests/wpt/web-platform-tests/infrastructure/testdriver/bless.html @@ -0,0 +1,104 @@ + + + + TestDriver bless method + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/interfaces/budget-api.idl b/tests/wpt/web-platform-tests/interfaces/budget-api.idl deleted file mode 100644 index fc86f415aea..00000000000 --- a/tests/wpt/web-platform-tests/interfaces/budget-api.idl +++ /dev/null @@ -1,32 +0,0 @@ -// GENERATED CONTENT - DO NOT EDIT -// Content was automatically extracted by Reffy into reffy-reports -// (https://github.com/tidoust/reffy-reports) -// Source: Web Budget API (https://wicg.github.io/budget-api/) - -[Exposed=Window] -partial interface Navigator { - [SameObject] readonly attribute BudgetService budget; -}; - -[Exposed=Worker] -partial interface WorkerNavigator { - [SameObject] readonly attribute BudgetService budget; -}; - -[Exposed=(Window,Worker)] -interface BudgetService { - Promise getCost(OperationType operation); - Promise> getBudget(); - - Promise reserve(OperationType operation); -}; - -[Exposed=(Window,Worker)] -interface BudgetState { - readonly attribute double budgetAt; - readonly attribute DOMTimeStamp time; -}; - -enum OperationType { - "silent-push" -}; diff --git a/tests/wpt/web-platform-tests/interfaces/mst-content-hint.idl b/tests/wpt/web-platform-tests/interfaces/mst-content-hint.idl new file mode 100644 index 00000000000..15e17cf5364 --- /dev/null +++ b/tests/wpt/web-platform-tests/interfaces/mst-content-hint.idl @@ -0,0 +1,8 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into reffy-reports +// (https://github.com/tidoust/reffy-reports) +// Source: MediaStreamTrack Content Hints (https://w3c.github.io/mst-content-hint/) + +partial interface MediaStreamTrack { + attribute DOMString contentHint; +}; diff --git a/tests/wpt/web-platform-tests/mst-content-hint/META.yml b/tests/wpt/web-platform-tests/mst-content-hint/META.yml new file mode 100644 index 00000000000..7f79eccbaa6 --- /dev/null +++ b/tests/wpt/web-platform-tests/mst-content-hint/META.yml @@ -0,0 +1,3 @@ +spec: https://w3c.github.io/mst-content-hint/ +suggested_reviewers: + - alvestrand diff --git a/tests/wpt/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html b/tests/wpt/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html new file mode 100644 index 00000000000..98c88e66ea1 --- /dev/null +++ b/tests/wpt/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html @@ -0,0 +1,111 @@ + + + + + + diff --git a/tests/wpt/web-platform-tests/mst-content-hint/idlharness.window.js b/tests/wpt/web-platform-tests/mst-content-hint/idlharness.window.js new file mode 100644 index 00000000000..0d9137dc6fb --- /dev/null +++ b/tests/wpt/web-platform-tests/mst-content-hint/idlharness.window.js @@ -0,0 +1,19 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js +// META: script=/webrtc/RTCPeerConnection-helper.js + +'use strict'; + +idl_test( + ['mst-content-hint'], + ['mediacapture-streams', 'dom'], + async idl_array => { + idl_array.add_objects({ + MediaStreamTrack: ['audioTrack', 'videoTrack'], + }); + + const stream = await getNoiseStream({ audio: true, video: true }); + self.audioTrack = stream.getAudioTracks()[0]; + self.videoTrack = stream.getVideoTracks()[0]; + } +); diff --git a/tests/wpt/web-platform-tests/resources/chromium/chooser_service.mojom.js b/tests/wpt/web-platform-tests/resources/chromium/chooser_service.mojom.js deleted file mode 100644 index fd344e71faf..00000000000 --- a/tests/wpt/web-platform-tests/resources/chromium/chooser_service.mojom.js +++ /dev/null @@ -1,273 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -'use strict'; - -(function() { - var mojomId = 'device/usb/public/mojom/chooser_service.mojom'; - if (mojo.internal.isMojomLoaded(mojomId)) { - console.warn('The following mojom is loaded multiple times: ' + mojomId); - return; - } - mojo.internal.markMojomLoaded(mojomId); - var bindings = mojo; - var associatedBindings = mojo; - var codec = mojo.internal; - var validator = mojo.internal; - - var exports = mojo.internal.exposeNamespace('device.mojom'); - var device$ = - mojo.internal.exposeNamespace('device.mojom'); - if (mojo.config.autoLoadMojomDeps) { - mojo.internal.loadMojomIfNecessary( - 'device/usb/public/mojom/device.mojom', 'device.mojom.js'); - } - var device_manager$ = - mojo.internal.exposeNamespace('device.mojom'); - if (mojo.config.autoLoadMojomDeps) { - mojo.internal.loadMojomIfNecessary( - 'device/usb/public/mojom/device_manager.mojom', 'device_manager.mojom.js'); - } - - - - function UsbChooserService_GetPermission_Params(values) { - this.initDefaults_(); - this.initFields_(values); - } - - - UsbChooserService_GetPermission_Params.prototype.initDefaults_ = function() { - this.deviceFilters = null; - }; - UsbChooserService_GetPermission_Params.prototype.initFields_ = function(fields) { - for(var field in fields) { - if (this.hasOwnProperty(field)) - this[field] = fields[field]; - } - }; - - UsbChooserService_GetPermission_Params.validate = function(messageValidator, offset) { - var err; - err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); - if (err !== validator.validationError.NONE) - return err; - - var kVersionSizes = [ - {version: 0, numBytes: 16} - ]; - err = messageValidator.validateStructVersion(offset, kVersionSizes); - if (err !== validator.validationError.NONE) - return err; - - - // validate UsbChooserService_GetPermission_Params.deviceFilters - err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 0, 8, new codec.PointerTo(device_manager$.UsbDeviceFilter), false, [0], 0); - if (err !== validator.validationError.NONE) - return err; - - return validator.validationError.NONE; - }; - - UsbChooserService_GetPermission_Params.encodedSize = codec.kStructHeaderSize + 8; - - UsbChooserService_GetPermission_Params.decode = function(decoder) { - var packed; - var val = new UsbChooserService_GetPermission_Params(); - var numberOfBytes = decoder.readUint32(); - var version = decoder.readUint32(); - val.deviceFilters = decoder.decodeArrayPointer(new codec.PointerTo(device_manager$.UsbDeviceFilter)); - return val; - }; - - UsbChooserService_GetPermission_Params.encode = function(encoder, val) { - var packed; - encoder.writeUint32(UsbChooserService_GetPermission_Params.encodedSize); - encoder.writeUint32(0); - encoder.encodeArrayPointer(new codec.PointerTo(device_manager$.UsbDeviceFilter), val.deviceFilters); - }; - function UsbChooserService_GetPermission_ResponseParams(values) { - this.initDefaults_(); - this.initFields_(values); - } - - - UsbChooserService_GetPermission_ResponseParams.prototype.initDefaults_ = function() { - this.result = null; - }; - UsbChooserService_GetPermission_ResponseParams.prototype.initFields_ = function(fields) { - for(var field in fields) { - if (this.hasOwnProperty(field)) - this[field] = fields[field]; - } - }; - - UsbChooserService_GetPermission_ResponseParams.validate = function(messageValidator, offset) { - var err; - err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); - if (err !== validator.validationError.NONE) - return err; - - var kVersionSizes = [ - {version: 0, numBytes: 16} - ]; - err = messageValidator.validateStructVersion(offset, kVersionSizes); - if (err !== validator.validationError.NONE) - return err; - - - // validate UsbChooserService_GetPermission_ResponseParams.result - err = messageValidator.validateStructPointer(offset + codec.kStructHeaderSize + 0, device$.UsbDeviceInfo, true); - if (err !== validator.validationError.NONE) - return err; - - return validator.validationError.NONE; - }; - - UsbChooserService_GetPermission_ResponseParams.encodedSize = codec.kStructHeaderSize + 8; - - UsbChooserService_GetPermission_ResponseParams.decode = function(decoder) { - var packed; - var val = new UsbChooserService_GetPermission_ResponseParams(); - var numberOfBytes = decoder.readUint32(); - var version = decoder.readUint32(); - val.result = decoder.decodeStructPointer(device$.UsbDeviceInfo); - return val; - }; - - UsbChooserService_GetPermission_ResponseParams.encode = function(encoder, val) { - var packed; - encoder.writeUint32(UsbChooserService_GetPermission_ResponseParams.encodedSize); - encoder.writeUint32(0); - encoder.encodeStructPointer(device$.UsbDeviceInfo, val.result); - }; - var kUsbChooserService_GetPermission_Name = 0; - - function UsbChooserServicePtr(handleOrPtrInfo) { - this.ptr = new bindings.InterfacePtrController(UsbChooserService, - handleOrPtrInfo); - } - - function UsbChooserServiceAssociatedPtr(associatedInterfacePtrInfo) { - this.ptr = new associatedBindings.AssociatedInterfacePtrController( - UsbChooserService, associatedInterfacePtrInfo); - } - - UsbChooserServiceAssociatedPtr.prototype = - Object.create(UsbChooserServicePtr.prototype); - UsbChooserServiceAssociatedPtr.prototype.constructor = - UsbChooserServiceAssociatedPtr; - - function UsbChooserServiceProxy(receiver) { - this.receiver_ = receiver; - } - UsbChooserServicePtr.prototype.getPermission = function() { - return UsbChooserServiceProxy.prototype.getPermission - .apply(this.ptr.getProxy(), arguments); - }; - - UsbChooserServiceProxy.prototype.getPermission = function(deviceFilters) { - var params = new UsbChooserService_GetPermission_Params(); - params.deviceFilters = deviceFilters; - return new Promise(function(resolve, reject) { - var builder = new codec.MessageV1Builder( - kUsbChooserService_GetPermission_Name, - codec.align(UsbChooserService_GetPermission_Params.encodedSize), - codec.kMessageExpectsResponse, 0); - builder.encodeStruct(UsbChooserService_GetPermission_Params, params); - var message = builder.finish(); - this.receiver_.acceptAndExpectResponse(message).then(function(message) { - var reader = new codec.MessageReader(message); - var responseParams = - reader.decodeStruct(UsbChooserService_GetPermission_ResponseParams); - resolve(responseParams); - }).catch(function(result) { - reject(Error("Connection error: " + result)); - }); - }.bind(this)); - }; - - function UsbChooserServiceStub(delegate) { - this.delegate_ = delegate; - } - UsbChooserServiceStub.prototype.getPermission = function(deviceFilters) { - return this.delegate_ && this.delegate_.getPermission && this.delegate_.getPermission(deviceFilters); - } - - UsbChooserServiceStub.prototype.accept = function(message) { - var reader = new codec.MessageReader(message); - switch (reader.messageName) { - default: - return false; - } - }; - - UsbChooserServiceStub.prototype.acceptWithResponder = - function(message, responder) { - var reader = new codec.MessageReader(message); - switch (reader.messageName) { - case kUsbChooserService_GetPermission_Name: - var params = reader.decodeStruct(UsbChooserService_GetPermission_Params); - this.getPermission(params.deviceFilters).then(function(response) { - var responseParams = - new UsbChooserService_GetPermission_ResponseParams(); - responseParams.result = response.result; - var builder = new codec.MessageV1Builder( - kUsbChooserService_GetPermission_Name, - codec.align(UsbChooserService_GetPermission_ResponseParams.encodedSize), - codec.kMessageIsResponse, reader.requestID); - builder.encodeStruct(UsbChooserService_GetPermission_ResponseParams, - responseParams); - var message = builder.finish(); - responder.accept(message); - }); - return true; - default: - return false; - } - }; - - function validateUsbChooserServiceRequest(messageValidator) { - var message = messageValidator.message; - var paramsClass = null; - switch (message.getName()) { - case kUsbChooserService_GetPermission_Name: - if (message.expectsResponse()) - paramsClass = UsbChooserService_GetPermission_Params; - break; - } - if (paramsClass === null) - return validator.validationError.NONE; - return paramsClass.validate(messageValidator, messageValidator.message.getHeaderNumBytes()); - } - - function validateUsbChooserServiceResponse(messageValidator) { - var message = messageValidator.message; - var paramsClass = null; - switch (message.getName()) { - case kUsbChooserService_GetPermission_Name: - if (message.isResponse()) - paramsClass = UsbChooserService_GetPermission_ResponseParams; - break; - } - if (paramsClass === null) - return validator.validationError.NONE; - return paramsClass.validate(messageValidator, messageValidator.message.getHeaderNumBytes()); - } - - var UsbChooserService = { - name: 'device.mojom.UsbChooserService', - kVersion: 0, - ptrClass: UsbChooserServicePtr, - proxyClass: UsbChooserServiceProxy, - stubClass: UsbChooserServiceStub, - validateRequest: validateUsbChooserServiceRequest, - validateResponse: validateUsbChooserServiceResponse, - }; - UsbChooserServiceStub.prototype.validator = validateUsbChooserServiceRequest; - UsbChooserServiceProxy.prototype.validator = validateUsbChooserServiceResponse; - exports.UsbChooserService = UsbChooserService; - exports.UsbChooserServicePtr = UsbChooserServicePtr; - exports.UsbChooserServiceAssociatedPtr = UsbChooserServiceAssociatedPtr; -})(); diff --git a/tests/wpt/web-platform-tests/resources/chromium/chooser_service.mojom.js.headers b/tests/wpt/web-platform-tests/resources/chromium/chooser_service.mojom.js.headers deleted file mode 100644 index 6805c323df5..00000000000 --- a/tests/wpt/web-platform-tests/resources/chromium/chooser_service.mojom.js.headers +++ /dev/null @@ -1 +0,0 @@ -Content-Type: text/javascript; charset=utf-8 diff --git a/tests/wpt/web-platform-tests/resources/chromium/web_usb_service.mojom.js b/tests/wpt/web-platform-tests/resources/chromium/web_usb_service.mojom.js index c283f0e9aea..d0b93a168bf 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/web_usb_service.mojom.js +++ b/tests/wpt/web-platform-tests/resources/chromium/web_usb_service.mojom.js @@ -282,6 +282,166 @@ encoder.skip(1); encoder.skip(1); }; + function WebUsbService_GetPermission_Params(values) { + this.initDefaults_(); + this.initFields_(values); + } + + + WebUsbService_GetPermission_Params.prototype.initDefaults_ = function() { + this.deviceFilters = null; + }; + WebUsbService_GetPermission_Params.prototype.initFields_ = function(fields) { + for(var field in fields) { + if (this.hasOwnProperty(field)) + this[field] = fields[field]; + } + }; + WebUsbService_GetPermission_Params.generate = function(generator_) { + var generated = new WebUsbService_GetPermission_Params; + generated.deviceFilters = generator_.generateArray(function() { + return generator_.generateStruct(device.mojom.UsbDeviceFilter, false); + }); + return generated; + }; + + WebUsbService_GetPermission_Params.prototype.mutate = function(mutator_) { + if (mutator_.chooseMutateField()) { + this.deviceFilters = mutator_.mutateArray(this.deviceFilters, function(val) { + return mutator_.mutateStruct(val, device.mojom.UsbDeviceFilter, false); + }); + } + return this; + }; + WebUsbService_GetPermission_Params.prototype.getHandleDeps = function() { + var handles = []; + return handles; + }; + + WebUsbService_GetPermission_Params.prototype.setHandles = function() { + this.setHandlesInternal_(arguments, 0); + }; + WebUsbService_GetPermission_Params.prototype.setHandlesInternal_ = function(handles, idx) { + return idx; + }; + + WebUsbService_GetPermission_Params.validate = function(messageValidator, offset) { + var err; + err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); + if (err !== validator.validationError.NONE) + return err; + + var kVersionSizes = [ + {version: 0, numBytes: 16} + ]; + err = messageValidator.validateStructVersion(offset, kVersionSizes); + if (err !== validator.validationError.NONE) + return err; + + + // validate WebUsbService_GetPermission_Params.deviceFilters + err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 0, 8, new codec.PointerTo(device_manager$.UsbDeviceFilter), false, [0], 0); + if (err !== validator.validationError.NONE) + return err; + + return validator.validationError.NONE; + }; + + WebUsbService_GetPermission_Params.encodedSize = codec.kStructHeaderSize + 8; + + WebUsbService_GetPermission_Params.decode = function(decoder) { + var packed; + var val = new WebUsbService_GetPermission_Params(); + var numberOfBytes = decoder.readUint32(); + var version = decoder.readUint32(); + val.deviceFilters = decoder.decodeArrayPointer(new codec.PointerTo(device_manager$.UsbDeviceFilter)); + return val; + }; + + WebUsbService_GetPermission_Params.encode = function(encoder, val) { + var packed; + encoder.writeUint32(WebUsbService_GetPermission_Params.encodedSize); + encoder.writeUint32(0); + encoder.encodeArrayPointer(new codec.PointerTo(device_manager$.UsbDeviceFilter), val.deviceFilters); + }; + function WebUsbService_GetPermission_ResponseParams(values) { + this.initDefaults_(); + this.initFields_(values); + } + + + WebUsbService_GetPermission_ResponseParams.prototype.initDefaults_ = function() { + this.result = null; + }; + WebUsbService_GetPermission_ResponseParams.prototype.initFields_ = function(fields) { + for(var field in fields) { + if (this.hasOwnProperty(field)) + this[field] = fields[field]; + } + }; + WebUsbService_GetPermission_ResponseParams.generate = function(generator_) { + var generated = new WebUsbService_GetPermission_ResponseParams; + generated.result = generator_.generateStruct(device.mojom.UsbDeviceInfo, true); + return generated; + }; + + WebUsbService_GetPermission_ResponseParams.prototype.mutate = function(mutator_) { + if (mutator_.chooseMutateField()) { + this.result = mutator_.mutateStruct(this.result, device.mojom.UsbDeviceInfo, true); + } + return this; + }; + WebUsbService_GetPermission_ResponseParams.prototype.getHandleDeps = function() { + var handles = []; + return handles; + }; + + WebUsbService_GetPermission_ResponseParams.prototype.setHandles = function() { + this.setHandlesInternal_(arguments, 0); + }; + WebUsbService_GetPermission_ResponseParams.prototype.setHandlesInternal_ = function(handles, idx) { + return idx; + }; + + WebUsbService_GetPermission_ResponseParams.validate = function(messageValidator, offset) { + var err; + err = messageValidator.validateStructHeader(offset, codec.kStructHeaderSize); + if (err !== validator.validationError.NONE) + return err; + + var kVersionSizes = [ + {version: 0, numBytes: 16} + ]; + err = messageValidator.validateStructVersion(offset, kVersionSizes); + if (err !== validator.validationError.NONE) + return err; + + + // validate WebUsbService_GetPermission_ResponseParams.result + err = messageValidator.validateStructPointer(offset + codec.kStructHeaderSize + 0, device$.UsbDeviceInfo, true); + if (err !== validator.validationError.NONE) + return err; + + return validator.validationError.NONE; + }; + + WebUsbService_GetPermission_ResponseParams.encodedSize = codec.kStructHeaderSize + 8; + + WebUsbService_GetPermission_ResponseParams.decode = function(decoder) { + var packed; + var val = new WebUsbService_GetPermission_ResponseParams(); + var numberOfBytes = decoder.readUint32(); + var version = decoder.readUint32(); + val.result = decoder.decodeStructPointer(device$.UsbDeviceInfo); + return val; + }; + + WebUsbService_GetPermission_ResponseParams.encode = function(encoder, val) { + var packed; + encoder.writeUint32(WebUsbService_GetPermission_ResponseParams.encodedSize); + encoder.writeUint32(0); + encoder.encodeStructPointer(device$.UsbDeviceInfo, val.result); + }; function WebUsbService_SetClient_Params(values) { this.initDefaults_(); this.initFields_(values); @@ -366,7 +526,8 @@ }; var kWebUsbService_GetDevices_Name = 0; var kWebUsbService_GetDevice_Name = 1; - var kWebUsbService_SetClient_Name = 2; + var kWebUsbService_GetPermission_Name = 2; + var kWebUsbService_SetClient_Name = 3; function WebUsbServicePtr(handleOrPtrInfo) { this.ptr = new bindings.InterfacePtrController(WebUsbService, @@ -426,6 +587,31 @@ var message = builder.finish(); this.receiver_.accept(message); }; + WebUsbServicePtr.prototype.getPermission = function() { + return WebUsbServiceProxy.prototype.getPermission + .apply(this.ptr.getProxy(), arguments); + }; + + WebUsbServiceProxy.prototype.getPermission = function(deviceFilters) { + var params_ = new WebUsbService_GetPermission_Params(); + params_.deviceFilters = deviceFilters; + return new Promise(function(resolve, reject) { + var builder = new codec.MessageV1Builder( + kWebUsbService_GetPermission_Name, + codec.align(WebUsbService_GetPermission_Params.encodedSize), + codec.kMessageExpectsResponse, 0); + builder.encodeStruct(WebUsbService_GetPermission_Params, params_); + var message = builder.finish(); + this.receiver_.acceptAndExpectResponse(message).then(function(message) { + var reader = new codec.MessageReader(message); + var responseParams = + reader.decodeStruct(WebUsbService_GetPermission_ResponseParams); + resolve(responseParams); + }).catch(function(result) { + reject(Error("Connection error: " + result)); + }); + }.bind(this)); + }; WebUsbServicePtr.prototype.setClient = function() { return WebUsbServiceProxy.prototype.setClient .apply(this.ptr.getProxy(), arguments); @@ -451,6 +637,9 @@ WebUsbServiceStub.prototype.getDevice = function(guid, deviceRequestd) { return this.delegate_ && this.delegate_.getDevice && this.delegate_.getDevice(guid, deviceRequestd); } + WebUsbServiceStub.prototype.getPermission = function(deviceFilters) { + return this.delegate_ && this.delegate_.getPermission && this.delegate_.getPermission(deviceFilters); + } WebUsbServiceStub.prototype.setClient = function(client) { return this.delegate_ && this.delegate_.setClient && this.delegate_.setClient(client); } @@ -491,6 +680,22 @@ responder.accept(message); }); return true; + case kWebUsbService_GetPermission_Name: + var params = reader.decodeStruct(WebUsbService_GetPermission_Params); + this.getPermission(params.deviceFilters).then(function(response) { + var responseParams = + new WebUsbService_GetPermission_ResponseParams(); + responseParams.result = response.result; + var builder = new codec.MessageV1Builder( + kWebUsbService_GetPermission_Name, + codec.align(WebUsbService_GetPermission_ResponseParams.encodedSize), + codec.kMessageIsResponse, reader.requestID); + builder.encodeStruct(WebUsbService_GetPermission_ResponseParams, + responseParams); + var message = builder.finish(); + responder.accept(message); + }); + return true; default: return false; } @@ -508,6 +713,10 @@ if (!message.expectsResponse() && !message.isResponse()) paramsClass = WebUsbService_GetDevice_Params; break; + case kWebUsbService_GetPermission_Name: + if (message.expectsResponse()) + paramsClass = WebUsbService_GetPermission_Params; + break; case kWebUsbService_SetClient_Name: if (!message.expectsResponse() && !message.isResponse()) paramsClass = WebUsbService_SetClient_Params; @@ -526,6 +735,10 @@ if (message.isResponse()) paramsClass = WebUsbService_GetDevices_ResponseParams; break; + case kWebUsbService_GetPermission_Name: + if (message.isResponse()) + paramsClass = WebUsbService_GetPermission_ResponseParams; + break; } if (paramsClass === null) return validator.validationError.NONE; @@ -548,6 +761,9 @@ getDevice: { params: WebUsbService_GetDevice_Params, }, + getPermission: { + params: WebUsbService_GetPermission_Params, + }, setClient: { params: WebUsbService_SetClient_Params, }, diff --git a/tests/wpt/web-platform-tests/resources/chromium/webusb-test.js b/tests/wpt/web-platform-tests/resources/chromium/webusb-test.js index 94db93d31e3..9037a109c91 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/webusb-test.js +++ b/tests/wpt/web-platform-tests/resources/chromium/webusb-test.js @@ -13,10 +13,6 @@ let internal = { webUsbService: null, webUsbServiceInterceptor: null, webUsbServiceCrossFrameProxy: null, - - chooser: null, - chooserInterceptor: null, - chooserCrossFrameProxy: null, }; // Converts an ECMAScript String object to an instance of @@ -376,6 +372,17 @@ class FakeWebUsbService { } } + getPermission(deviceFilters) { + return new Promise(resolve => { + if (navigator.usb.test.onrequestdevice) { + navigator.usb.test.onrequestdevice( + new USBDeviceRequestEvent(deviceFilters, resolve)); + } else { + resolve({ result: null }); + } + }); + } + setClient(client) { this.client_ = client; } @@ -403,27 +410,6 @@ class USBDeviceRequestEvent { } } -class FakeChooserService { - constructor() { - this.bindingSet_ = new mojo.BindingSet(device.mojom.UsbChooserService); - } - - addBinding(handle) { - this.bindingSet_.addBinding(this, handle); - } - - getPermission(deviceFilters) { - return new Promise(resolve => { - if (navigator.usb.test.onrequestdevice) { - navigator.usb.test.onrequestdevice( - new USBDeviceRequestEvent(deviceFilters, resolve)); - } else { - resolve({ result: null }); - } - }); - } -} - // Unlike FakeDevice this class is exported to callers of USBTest.addFakeDevice. class FakeUSBDevice { constructor() { @@ -472,15 +458,6 @@ class USBTest { internal.webUsbServiceCrossFrameProxy = new CrossFrameHandleProxy( handle => internal.webUsbService.addBinding(handle)); - internal.chooser = new FakeChooserService(); - internal.chooserInterceptor = - new MojoInterfaceInterceptor(device.mojom.UsbChooserService.name); - internal.chooserInterceptor.oninterfacerequest = - e => internal.chooser.addBinding(e.handle); - internal.chooserInterceptor.start(); - internal.chooserCrossFrameProxy = new CrossFrameHandleProxy( - handle => internal.chooser.addBinding(handle)); - // Wait for a call to GetDevices() to pass between the renderer and the // mock in order to establish that everything is set up. await navigator.usb.getDevices(); @@ -498,13 +475,6 @@ class USBTest { e => internal.webUsbServiceCrossFrameProxy.forwardHandle(e.handle); otherWindow.webUsbServiceInterceptor.start(); - otherWindow.chooserInterceptor = - new otherWindow.MojoInterfaceInterceptor( - device.mojom.UsbChooserService.name); - otherWindow.chooserInterceptor.oninterfacerequest = - e => internal.chooserCrossFrameProxy.forwardHandle(e.handle); - otherWindow.chooserInterceptor.start(); - // Wait for a call to GetDevices() to pass between the renderer and the // mock in order to establish that everything is set up. await otherWindow.navigator.usb.getDevices(); diff --git a/tests/wpt/web-platform-tests/service-workers/cache-storage/resources/vary.py b/tests/wpt/web-platform-tests/service-workers/cache-storage/resources/vary.py deleted file mode 100644 index 59e39bc2ae7..00000000000 --- a/tests/wpt/web-platform-tests/service-workers/cache-storage/resources/vary.py +++ /dev/null @@ -1,25 +0,0 @@ -def main(request, response): - if "clear-vary-value-override-cookie" in request.GET: - response.unset_cookie("vary-value-override") - return "vary cookie cleared" - - set_cookie_vary = request.GET.first("set-vary-value-override-cookie", - default="") - if set_cookie_vary: - response.set_cookie("vary-value-override", set_cookie_vary) - return "vary cookie set" - - # If there is a vary-value-override cookie set, then use its value - # for the VARY header no matter what the query string is set to. This - # override is necessary to test the case when two URLs are identical - # (including query), but differ by VARY header. - cookie_vary = request.cookies.get("vary-value-override"); - if cookie_vary: - response.headers.set("vary", cookie_vary) - else: - # If there is no cookie, then use the query string value, if present. - query_vary = request.GET.first("vary", default="") - if query_vary: - response.headers.set("vary", query_vary) - - return "vary response" diff --git a/tests/wpt/web-platform-tests/service-workers/cache-storage/script-tests/cache-add.js b/tests/wpt/web-platform-tests/service-workers/cache-storage/script-tests/cache-add.js index a482c42eaeb..c03faeb0e83 100644 --- a/tests/wpt/web-platform-tests/service-workers/cache-storage/script-tests/cache-add.js +++ b/tests/wpt/web-platform-tests/service-workers/cache-storage/script-tests/cache-add.js @@ -267,84 +267,4 @@ cache_test(function(cache, test) { 'twice.'); }, 'Cache.addAll called with the same Request object specified twice'); -cache_test(async function(cache, test) { - const url = '../resources/vary.py?vary=x-shape'; - let requests = [ - new Request(url, { headers: { 'x-shape': 'circle' }}), - new Request(url, { headers: { 'x-shape': 'square' }}), - ]; - let result = await cache.addAll(requests); - assert_equals(result, undefined, 'Cache.addAll() should succeed'); - }, 'Cache.addAll should succeed when entries differ by vary header'); - -cache_test(async function(cache, test) { - const url = '../resources/vary.py?vary=x-shape'; - let requests = [ - new Request(url, { headers: { 'x-shape': 'circle' }}), - new Request(url, { headers: { 'x-shape': 'circle' }}), - ]; - await promise_rejects( - test, - 'InvalidStateError', - cache.addAll(requests), - 'Cache.addAll() should reject when entries are duplicate by vary header'); - }, 'Cache.addAll should reject when entries are duplicate by vary header'); - -// VARY header matching is asymmetric. Determining if two entries are duplicate -// depends on which entry's response is used in the comparison. The target -// response's VARY header determines what request headers are examined. This -// test verifies that Cache.addAll() duplicate checking handles this asymmetric -// behavior correctly. -cache_test(async function(cache, test) { - const base_url = '../resources/vary.py'; - - // Define a request URL that sets a VARY header in the - // query string to be echoed back by the server. - const url = base_url + '?vary=x-size'; - - // Set a cookie to override the VARY header of the response - // when the request is made with credentials. This will - // take precedence over the query string vary param. This - // is a bit confusing, but it's necessary to construct a test - // where the URL is the same, but the VARY headers differ. - // - // Note, the test could also pass this information in additional - // request headers. If the cookie approach becomes too unwieldy - // this test could be rewritten to use that technique. - await fetch(base_url + '?set-vary-value-override-cookie=x-shape'); - test.add_cleanup(_ => fetch(base_url + '?clear-vary-value-override-cookie')); - - let requests = [ - // This request will result in a Response with a "Vary: x-shape" - // header. This *will not* result in a duplicate match with the - // other entry. - new Request(url, { headers: { 'x-shape': 'circle', - 'x-size': 'big' }, - credentials: 'same-origin' }), - - // This request will result in a Response with a "Vary: x-size" - // header. This *will* result in a duplicate match with the other - // entry. - new Request(url, { headers: { 'x-shape': 'square', - 'x-size': 'big' }, - credentials: 'omit' }), - ]; - await promise_rejects( - test, - 'InvalidStateError', - cache.addAll(requests), - 'Cache.addAll() should reject when one entry has a vary header ' + - 'matching an earlier entry.'); - - // Test the reverse order now. - await promise_rejects( - test, - 'InvalidStateError', - cache.addAll(requests.reverse()), - 'Cache.addAll() should reject when one entry has a vary header ' + - 'matching a later entry.'); - - }, 'Cache.addAll should reject when one entry has a vary header ' + - 'matching another entry'); - done(); diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/navigation-preload/resources/resource-timing-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/navigation-preload/resources/resource-timing-worker.js index 46af6456aec..fac0d8de2a7 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/navigation-preload/resources/resource-timing-worker.js +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/navigation-preload/resources/resource-timing-worker.js @@ -1,19 +1,37 @@ +async function wait_for_performance_entries(url) { + let entries = performance.getEntriesByName(url); + if (entries.length > 0) { + return entries; + } + return new Promise((resolve) => { + new PerformanceObserver((list) => { + const entries = list.getEntriesByName(url); + if (entries.length > 0) { + resolve(entries); + } + }).observe({ entryTypes: ['resource'] }); + }); +} + self.addEventListener('activate', event => { event.waitUntil(self.registration.navigationPreload.enable()); }); self.addEventListener('fetch', event => { + let headers; event.respondWith( event.preloadResponse .then(response => { - var headers = response.headers; - return response.text().then(text => - new Response( - JSON.stringify({ - decodedBodySize: headers.get('X-Decoded-Body-Size'), - encodedBodySize: headers.get('X-Encoded-Body-Size'), - timingEntries: performance.getEntriesByName(event.request.url) - }), - {headers: {'Content-Type': 'text/html'}})); - })); + headers = response.headers; + return response.text() + }) + .then(_ => wait_for_performance_entries(event.request.url)) + .then(entries => + new Response( + JSON.stringify({ + decodedBodySize: headers.get('X-Decoded-Body-Size'), + encodedBodySize: headers.get('X-Encoded-Body-Size'), + timingEntries: entries + }), + {headers: {'Content-Type': 'text/html'}}))); }); diff --git a/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-001-ref.svg b/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-001-ref.svg new file mode 100644 index 00000000000..5ade69dce1d --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-001-ref.svg @@ -0,0 +1,73 @@ + + + + Text in Shape — 001 + + + + + TOKENS + TEST ASSERTION + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lorem + ipsum + dolor sit amet, + consectetur + adipisicing elit, + sed do eiusmod + tempor + + + + diff --git a/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-001.svg b/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-001.svg new file mode 100755 index 00000000000..747737cce7e --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-001.svg @@ -0,0 +1,69 @@ + + + + Text in Shape — 001 + + + + + + TOKENS + TEST ASSERTION + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + + + diff --git a/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-002-ref.svg b/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-002-ref.svg new file mode 100644 index 00000000000..3d3968fa492 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-002-ref.svg @@ -0,0 +1,74 @@ + + + + Text in Shape — 002 + + + + + TOKENS + TEST ASSERTION + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + لكن + لا بد أن + أوضح لك + أن كل هذه الأفكار + المغلوطة حول + استنكار النشوة + وتمجيد الألم نشأت + بالفعل، + + + + diff --git a/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-002.svg b/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-002.svg new file mode 100644 index 00000000000..40b62ac95d6 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/text/reftests/text-complex-002.svg @@ -0,0 +1,69 @@ + + + + Text in Shape — 002 + + + + + + TOKENS + TEST ASSERTION + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + لكن لا بد أن أوضح لك أن كل هذه الأفكار المغلوطة حول استنكار النشوة وتمجيد الألم نشأت بالفعل، وسأعرض لك التفاصيل + + + diff --git a/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-001-ref.svg b/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-001-ref.svg new file mode 100755 index 00000000000..5a2c6c0b472 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-001-ref.svg @@ -0,0 +1,77 @@ + + + + Text in Shape — 001 + + + + + TOKENS + TEST ASSERTION + + + + + + + + + + + + + + + Lorem ipsum dolor sit amet, consectetur + adipisicing elit, + + + + + + Lorem ipsum dolor sit amet, consectetur + adipisicing elit, + + + + + + Lorem ipsum dolor sit amet, consectetur + adipisicing elit, + + + + + + Lorem + ipsum + dolor + sit + amet, + consectetur + adipisicing elit, + + + + + diff --git a/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-001.svg b/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-001.svg new file mode 100755 index 00000000000..248fe1a44f9 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-001.svg @@ -0,0 +1,61 @@ + + + + Text in Shape — 001 + + + + + + TOKENS + TEST ASSERTION + + + + + + + + + + + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + + + + diff --git a/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-002-ref.svg b/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-002-ref.svg new file mode 100755 index 00000000000..e75ce485c5c --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-002-ref.svg @@ -0,0 +1,76 @@ + + + + Text in Shape — 002 + + + + + TOKENS + TEST ASSERTION + + + + + + + + + + + + + + + Lorem ipsum dolor sit amet, + consectetur adipisicing elit, + + + + + + Lorem ipsum dolor sit amet, + consectetur adipisicing elit, + + + + + + Lorem ipsum dolor sit amet, + consectetur adipisicing elit, + + + + + + Lorem + ipsum + dolor + sit + amet, + consectetur adipisicing elit, + + + + + diff --git a/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-002.svg b/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-002.svg new file mode 100755 index 00000000000..64b1307966c --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/text/reftests/text-shape-inside-002.svg @@ -0,0 +1,61 @@ + + + + Text in Shape — 002 + + + + + + TOKENS + TEST ASSERTION + + + + + + + + + + + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + + + + Lorem ipsum dolor sit amet, consectetur adipisicing elit, + + + + diff --git a/tests/wpt/web-platform-tests/tools/wpt/testfiles.py b/tests/wpt/web-platform-tests/tools/wpt/testfiles.py index c4e714c2640..35a4b97d7ff 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/testfiles.py +++ b/tests/wpt/web-platform-tests/tools/wpt/testfiles.py @@ -301,6 +301,8 @@ def get_parser(): help="Include files in the worktree that are not in version control") parser.add_argument("--show-type", action="store_true", help="Print the test type along with each affected test") + parser.add_argument("--null", action="store_true", + help="Separate items with a null byte") return parser @@ -326,8 +328,11 @@ def run_changed_files(**kwargs): changed, _ = files_changed(revish, kwargs["ignore_rules"], include_uncommitted=kwargs["modified"], include_new=kwargs["new"]) + + separator = "\0" if kwargs["null"] else "\n" + for item in sorted(changed): - print(os.path.relpath(item, wpt_root)) + sys.stdout.write(os.path.relpath(item, wpt_root) + separator) def run_tests_affected(**kwargs): @@ -346,6 +351,9 @@ def run_tests_affected(**kwargs): if kwargs["show_type"]: wpt_manifest = load_manifest(manifest_path) message = "{path}\t{item_type}" + + message += "\0" if kwargs["null"] else "\n" + for item in sorted(tests_changed | dependents): results = { "path": os.path.relpath(item, wpt_root) @@ -355,4 +363,4 @@ def run_tests_affected(**kwargs): if len(item_types) != 1: item_types = [" ".join(item_types)] results["item_type"] = item_types.pop() - print(message.format(**results)) + sys.stdout.write(message.format(**results)) diff --git a/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py b/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py index ada7cc7c164..16d286d382c 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py +++ b/tests/wpt/web-platform-tests/tools/wpt/tests/test_wpt.py @@ -270,6 +270,25 @@ html/browsers/offline/appcache/workers/resources/appcache-worker.py assert err == "" +@pytest.mark.xfail(sys.platform == "win32", + reason="Tests currently don't work on Windows for path reasons") +def test_files_changed_null(capsys): + commit = "9047ac1d9f51b1e9faa4f9fad9c47d109609ab09" + with pytest.raises(SystemExit) as excinfo: + wpt.main(argv=["files-changed", "--null", "%s~..%s" % (commit, commit)]) + assert excinfo.value.code == 0 + out, err = capsys.readouterr() + assert out == "\0".join(["html/browsers/offline/appcache/workers/appcache-worker.html", + "html/browsers/offline/appcache/workers/resources/appcache-dedicated-worker-not-in-cache.js", + "html/browsers/offline/appcache/workers/resources/appcache-shared-worker-not-in-cache.js", + "html/browsers/offline/appcache/workers/resources/appcache-worker-data.py", + "html/browsers/offline/appcache/workers/resources/appcache-worker-import.py", + "html/browsers/offline/appcache/workers/resources/appcache-worker.manifest", + "html/browsers/offline/appcache/workers/resources/appcache-worker.py", + ""]) + assert err == "" + + def test_files_changed_ignore(): from tools.wpt.testfiles import exclude_ignored files = ["resources/testharness.js", "resources/webidl2/index.js", "test/test.js"] @@ -304,6 +323,25 @@ def test_tests_affected(capsys, manifest_dir): assert "infrastructure/reftest-wait.html" in out +@pytest.mark.slow # this updates the manifest +@pytest.mark.xfail(sys.platform == "win32", + reason="Tests currently don't work on Windows for path reasons") +def test_tests_affected_null(capsys, manifest_dir): + # This doesn't really work properly for random commits because we test the files in + # the current working directory for references to the changed files, not the ones at + # that specific commit. But we can at least test it returns something sensible. + # The test will fail if the file we assert is renamed, so we choose a stable one. + commit = "9bf1daa3d8b4425f2354c3ca92c4cf0398d329dd" + with pytest.raises(SystemExit) as excinfo: + wpt.main(argv=["tests-affected", "--null", "--metadata", manifest_dir, "%s~..%s" % (commit, commit)]) + assert excinfo.value.code == 0 + out, err = capsys.readouterr() + + tests = out.split("\0") + assert "dom/interfaces.html" in tests + assert "html/dom/interfaces.https.html" in tests + + @pytest.mark.slow @pytest.mark.xfail(sys.platform == "win32", reason="Tests currently don't work on Windows for path reasons") diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py index 9df4508c852..70054b57294 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py @@ -817,11 +817,12 @@ class InternalRefTestImplementation(object): def run_test(self, test): references = self.get_references(test) + timeout = (test.timeout * 1000) * self.timeout_multiplier rv = self.executor.protocol.marionette._send_message("reftest:run", {"test": self.executor.test_url(test), "references": references, "expected": test.expected(), - "timeout": test.timeout * 1000})["value"] + "timeout": timeout})["value"] return rv def get_references(self, node): diff --git a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py index de29638f6c1..97d75eb7128 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/tests/functional/test_request.py @@ -64,25 +64,23 @@ class TestInputFile(TestUsingServer): finally: InputFile.max_buffer_size = old_max_buf - @pytest.mark.xfail(sys.version_info >= (3,), reason="wptserve only works on Py2") def test_iter(self): @wptserve.handlers.handler def handler(request, response): f = request.raw_input - return " ".join(line for line in f) + return b" ".join(line for line in f) route = ("POST", "/test/test_iter", handler) self.server.router.register(*route) - resp = self.request(route[1], method="POST", body="12345\nabcdef\r\nzyxwv") + resp = self.request(route[1], method="POST", body=b"12345\nabcdef\r\nzyxwv") self.assertEqual(200, resp.getcode()) - self.assertEqual(["12345\n", "abcdef\r\n", "zyxwv"], resp.read().split(" ")) + self.assertEqual([b"12345\n", b"abcdef\r\n", b"zyxwv"], resp.read().split(b" ")) - @pytest.mark.xfail(sys.version_info >= (3,), reason="wptserve only works on Py2") def test_iter_input_longer_than_buffer(self): @wptserve.handlers.handler def handler(request, response): f = request.raw_input - return " ".join(line for line in f) + return b" ".join(line for line in f) route = ("POST", "/test/test_iter", handler) self.server.router.register(*route) @@ -90,15 +88,14 @@ class TestInputFile(TestUsingServer): old_max_buf = InputFile.max_buffer_size InputFile.max_buffer_size = 10 try: - resp = self.request(route[1], method="POST", body="12345\nabcdef\r\nzyxwv") + resp = self.request(route[1], method="POST", body=b"12345\nabcdef\r\nzyxwv") self.assertEqual(200, resp.getcode()) - self.assertEqual(["12345\n", "abcdef\r\n", "zyxwv"], resp.read().split(" ")) + self.assertEqual([b"12345\n", b"abcdef\r\n", b"zyxwv"], resp.read().split(b" ")) finally: InputFile.max_buffer_size = old_max_buf class TestRequest(TestUsingServer): - @pytest.mark.xfail(sys.version_info >= (3,), reason="wptserve only works on Py2") def test_body(self): @wptserve.handlers.handler def handler(request, response): @@ -107,10 +104,9 @@ class TestRequest(TestUsingServer): route = ("POST", "/test/test_body", handler) self.server.router.register(*route) - resp = self.request(route[1], method="POST", body="12345ab\ncdef") - self.assertEqual("12345ab\ncdef", resp.read()) + resp = self.request(route[1], method="POST", body=b"12345ab\ncdef") + self.assertEqual(b"12345ab\ncdef", resp.read()) - @pytest.mark.xfail(sys.version_info >= (3,), reason="wptserve only works on Py2") def test_route_match(self): @wptserve.handlers.handler def handler(request, response): @@ -119,7 +115,7 @@ class TestRequest(TestUsingServer): route = ("GET", "/test/{match}_*", handler) self.server.router.register(*route) resp = self.request("/test/some_route") - self.assertEqual("some route", resp.read()) + self.assertEqual(b"some route", resp.read()) class TestAuth(TestUsingServer): diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/composite.html b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/composite.html index 82ac633f0a9..bcca2cad243 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/composite.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/composite.html @@ -29,8 +29,8 @@ test(t => { anim.effect.composite = 'add'; const keyframes = anim.effect.getKeyframes(); - assert_equals(keyframes[0].composite, null, - 'unspecified keyframe composite value should be null even ' + + assert_equals(keyframes[0].composite, 'auto', + 'unspecified keyframe composite value should be auto even ' + 'if effect composite is set'); }, 'Unspecified keyframe composite value when setting effect composite'); diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor.html b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor.html index 250a8c7a836..8f16aa18711 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/constructor.html @@ -88,7 +88,7 @@ test(t => { const effect = new KeyframeEffect(target, { left: ['10px', '20px'] }, { composite }); - assert_equals(effect.getKeyframes()[0].composite, null, + assert_equals(effect.getKeyframes()[0].composite, 'auto', `resulting composite for '${composite}'`); } for (const composite of gBadOptionsCompositeValueTests) { @@ -98,7 +98,7 @@ test(t => { }, { composite: composite }); }); } -}, 'composite value is null if the composite operation specified on the ' + +}, 'composite value is auto if the composite operation specified on the ' + 'keyframe effect is being used'); for (const subtest of gKeyframesTests) { diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html index d46cf675208..5c9ec84e8db 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html @@ -193,21 +193,21 @@ test(() => { computedOffset: 0, easing: 'linear', left: '100px', - composite: null, + composite: 'auto', }, { offset: null, computedOffset: 0.5, easing: 'linear', left: '300px', - composite: null, + composite: 'auto', }, { offset: null, computedOffset: 1, easing: 'linear', left: '200px', - composite: null, + composite: 'auto', }, ]); }, 'Keyframes are read from a custom iterator'); @@ -228,21 +228,21 @@ test(() => { computedOffset: 0, easing: 'linear', left: '100px', - composite: null, + composite: 'auto', }, { offset: null, computedOffset: 0.5, easing: 'linear', left: '300px', - composite: null, + composite: 'auto', }, { offset: null, computedOffset: 1, easing: 'linear', left: '200px', - composite: null, + composite: 'auto', }, ]); }, '\'easing\' and \'offset\' are ignored on iterable objects'); @@ -261,14 +261,14 @@ test(() => { easing: 'linear', left: '100px', top: '200px', - composite: null, + composite: 'auto', }, { offset: null, computedOffset: 0.5, easing: 'linear', left: '300px', - composite: null, + composite: 'auto', }, { offset: null, @@ -276,7 +276,7 @@ test(() => { easing: 'linear', left: '200px', top: '100px', - composite: null, + composite: 'auto', }, ]); }, 'Keyframes are read from a custom iterator with multiple properties' @@ -295,21 +295,21 @@ test(() => { computedOffset: 0, easing: 'linear', left: '100px', - composite: null, + composite: 'auto', }, { offset: 0.75, computedOffset: 0.75, easing: 'linear', left: '250px', - composite: null, + composite: 'auto', }, { offset: null, computedOffset: 1, easing: 'linear', left: '200px', - composite: null, + composite: 'auto', }, ]); }, 'Keyframes are read from a custom iterator with where an offset is' @@ -349,9 +349,9 @@ test(() => { { done: true }, ])); assert_frame_lists_equal(effect.getKeyframes(), [ - { left: '100px', offset: null, computedOffset: 0, easing: 'linear', composite: null }, - { offset: null, computedOffset: 0.5, easing: 'linear', composite: null }, - { left: '200px', offset: null, computedOffset: 1, easing: 'linear', composite: null }, + { left: '100px', offset: null, computedOffset: 0, easing: 'linear', composite: 'auto' }, + { offset: null, computedOffset: 0.5, easing: 'linear', composite: 'auto' }, + { left: '200px', offset: null, computedOffset: 1, easing: 'linear', composite: 'auto' }, ]); }, 'An undefined keyframe returned from a custom iterator should be treated as a' + ' default keyframe'); @@ -364,9 +364,9 @@ test(() => { { done: true }, ])); assert_frame_lists_equal(effect.getKeyframes(), [ - { left: '100px', offset: null, computedOffset: 0, easing: 'linear', composite: null }, - { offset: null, computedOffset: 0.5, easing: 'linear', composite: null }, - { left: '200px', offset: null, computedOffset: 1, easing: 'linear', composite: null }, + { left: '100px', offset: null, computedOffset: 0, easing: 'linear', composite: 'auto' }, + { offset: null, computedOffset: 0.5, easing: 'linear', composite: 'auto' }, + { left: '200px', offset: null, computedOffset: 1, easing: 'linear', composite: 'auto' }, ]); }, 'A null keyframe returned from a custom iterator should be treated as a' + ' default keyframe'); @@ -377,7 +377,7 @@ test(() => { { done: true }, ])); assert_frame_lists_equal(effect.getKeyframes(), [ - { offset: null, computedOffset: 1, easing: 'linear', composite: null } + { offset: null, computedOffset: 1, easing: 'linear', composite: 'auto' } ]); }, 'A list of values returned from a custom iterator should be ignored'); @@ -437,14 +437,14 @@ test(() => { computedOffset: 0, easing: 'linear', height: '100px', - composite: null, + composite: 'auto', }, { offset: null, computedOffset: 1, easing: 'linear', height: '200px', - composite: null, + composite: 'auto', }, ]); }, 'Only enumerable properties on keyframes are read'); @@ -468,14 +468,14 @@ test(() => { computedOffset: 0, easing: 'linear', top: '100px', - composite: null, + composite: 'auto', }, { offset: null, computedOffset: 1, easing: 'linear', top: '200px', - composite: null, + composite: 'auto', }, ]); }, 'Only properties defined directly on keyframes are read'); @@ -496,14 +496,14 @@ test(() => { computedOffset: 0, easing: 'linear', height: '100px', - composite: null, + composite: 'auto', }, { offset: null, computedOffset: 1, easing: 'linear', height: '200px', - composite: null, + composite: 'auto', }, ]); }, 'Only enumerable properties on property-indexed keyframes are read'); @@ -527,14 +527,14 @@ test(() => { computedOffset: 0, easing: 'linear', top: '100px', - composite: null, + composite: 'auto', }, { offset: null, computedOffset: 1, easing: 'linear', top: '200px', - composite: null, + composite: 'auto', }, ]); }, 'Only properties defined directly on property-indexed keyframes are read'); diff --git a/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js b/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js index f32f5ced8e7..76a0481de91 100644 --- a/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js +++ b/tests/wpt/web-platform-tests/web-animations/resources/keyframe-tests.js @@ -12,11 +12,11 @@ // ------------------------------ const gGoodKeyframeCompositeValueTests = [ - 'replace', 'add', 'accumulate', null + 'replace', 'add', 'accumulate', 'auto' ]; const gBadKeyframeCompositeValueTests = [ - 'unrecognised', 'replace ', 'Replace' + 'unrecognised', 'replace ', 'Replace', null ]; const gGoodOptionsCompositeValueTests = [ @@ -54,7 +54,7 @@ const keyframe = (offset, props, easing='linear', composite) => { // Object.assign instead. const result = {}; Object.assign(result, offset, props, { easing }); - result.composite = composite || null; + result.composite = composite || 'auto'; return result; }; diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html new file mode 100644 index 00000000000..b0b3a5965e1 --- /dev/null +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html @@ -0,0 +1,143 @@ + +Test that up-mixing signals in ConvolverNode processing is linear + + + diff --git a/tests/wpt/web-platform-tests/webusb/resources/usb-helpers.js b/tests/wpt/web-platform-tests/webusb/resources/usb-helpers.js index 881ea8b9561..93740920dee 100644 --- a/tests/wpt/web-platform-tests/webusb/resources/usb-helpers.js +++ b/tests/wpt/web-platform-tests/webusb/resources/usb-helpers.js @@ -21,7 +21,6 @@ let loadChromiumResources = Promise.resolve().then(() => { '/resources/chromium/string16.mojom.js', '/resources/chromium/device.mojom.js', '/resources/chromium/device_manager.mojom.js', - '/resources/chromium/chooser_service.mojom.js', '/resources/chromium/web_usb_service.mojom.js', '/resources/chromium/webusb-test.js', ].forEach(path => {