diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index dcc2794799f..03a39838f47 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -110727,6 +110727,18 @@
{}
]
],
+ "css/css-flexbox/flexbox_flex-none-wrappable-content.html": [
+ [
+ "/css/css-flexbox/flexbox_flex-none-wrappable-content.html",
+ [
+ [
+ "/css/css-flexbox/flexbox_flex-none-wrappable-content-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-flexbox/flexbox_flex-none.html": [
[
"/css/css-flexbox/flexbox_flex-none.html",
@@ -112523,6 +112535,30 @@
{}
]
],
+ "css/css-fonts/font-variant-05.xht": [
+ [
+ "/css/css-fonts/font-variant-05.xht",
+ [
+ [
+ "/css/css-fonts/font-variant-05-ref.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-fonts/font-variant-06.xht": [
+ [
+ "/css/css-fonts/font-variant-06.xht",
+ [
+ [
+ "/css/css-fonts/font-variant-06-ref.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-fonts/font-variant-alternates-01.html": [
[
"/css/css-fonts/font-variant-alternates-01.html",
@@ -175407,6 +175443,42 @@
{}
]
],
+ "fetch/corb/img-html-correctly-labeled.sub.html": [
+ [
+ "/fetch/corb/img-html-correctly-labeled.sub.html",
+ [
+ [
+ "/fetch/corb/img-png-mislabeled-as-html.sub-expected.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html": [
+ [
+ "/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html",
+ [
+ [
+ "/fetch/corb/img-png-mislabeled-as-html.sub-expected.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "fetch/corb/img-png-mislabeled-as-html.sub.html": [
+ [
+ "/fetch/corb/img-png-mislabeled-as-html.sub.html",
+ [
+ [
+ "/fetch/corb/img-png-mislabeled-as-html.sub-expected.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"html/browsers/sandboxing/sandbox-parse-noscript.html": [
[
"/html/browsers/sandboxing/sandbox-parse-noscript.html",
@@ -179607,6 +179679,18 @@
{}
]
],
+ "svg/shapes/line-dasharray.svg": [
+ [
+ "/svg/shapes/line-dasharray.svg",
+ [
+ [
+ "/svg/shapes/line-dasharray-ref.svg",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"svg/shapes/rect-01.svg": [
[
"/svg/shapes/rect-01.svg",
@@ -236411,6 +236495,11 @@
{}
]
],
+ "css/css-flexbox/flexbox_flex-none-wrappable-content-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-flexbox/flexbox_flex-unitless-basis-ref.html": [
[
{}
@@ -237281,6 +237370,16 @@
{}
]
],
+ "css/css-fonts/font-variant-05-ref.xht": [
+ [
+ {}
+ ]
+ ],
+ "css/css-fonts/font-variant-06-ref.xht": [
+ [
+ {}
+ ]
+ ],
"css/css-fonts/font-variant-alternates-01-ref.html": [
[
{}
@@ -269496,6 +269595,11 @@
{}
]
],
+ "fetch/api/redirect/redirect-empty-location.js": [
+ [
+ {}
+ ]
+ ],
"fetch/api/redirect/redirect-location.js": [
[
{}
@@ -269691,6 +269795,11 @@
{}
]
],
+ "fetch/api/resources/redirect-empty-location.py": [
+ [
+ {}
+ ]
+ ],
"fetch/api/resources/redirect.py": [
[
{}
@@ -269756,11 +269865,96 @@
{}
]
],
+ "fetch/corb/img-html-correctly-labeled.sub-expected.html": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub-expected.html": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/img-png-mislabeled-as-html.sub-expected.html": [
+ [
+ {}
+ ]
+ ],
"fetch/corb/resources/css-with-json-parser-breaker.css": [
[
{}
]
],
+ "fetch/corb/resources/empty-labeled-as-png.png": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/empty-labeled-as-png.png.headers": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/html-correctly-labeled.html": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/html-correctly-labeled.html.headers": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/js-mislabeled-as-html-nosniff.js": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/js-mislabeled-as-html-nosniff.js.headers": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/js-mislabeled-as-html.js": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/js-mislabeled-as-html.js.headers": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/png-correctly-labeled.png": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/png-correctly-labeled.png.headers": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/png-mislabeled-as-html-nosniff.png": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/png-mislabeled-as-html-nosniff.png.headers": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/png-mislabeled-as-html.png": [
+ [
+ {}
+ ]
+ ],
+ "fetch/corb/resources/png-mislabeled-as-html.png.headers": [
+ [
+ {}
+ ]
+ ],
"fetch/data-urls/README.md": [
[
{}
@@ -290991,6 +291185,11 @@
{}
]
],
+ "svg/shapes/line-dasharray-ref.svg": [
+ [
+ {}
+ ]
+ ],
"svg/shapes/rect-01-ref.html": [
[
{}
@@ -313481,15 +313680,111 @@
{}
]
],
+ "css/css-typed-om/the-stylepropertymap/properties/animation-direction.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/animation-direction.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/background-image.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/background-image.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/border-style.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/border-style.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/border-width.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/border-width.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/bottom.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/bottom.html",
+ {}
+ ]
+ ],
"css/css-typed-om/the-stylepropertymap/properties/display.html": [
[
"/css/css-typed-om/the-stylepropertymap/properties/display.html",
{}
]
],
- "css/css-typed-om/the-stylepropertymap/properties/margin-top.html": [
+ "css/css-typed-om/the-stylepropertymap/properties/height.html": [
[
- "/css/css-typed-om/the-stylepropertymap/properties/margin-top.html",
+ "/css/css-typed-om/the-stylepropertymap/properties/height.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/left.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/left.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/margin.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/margin.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/object-position.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/object-position.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/padding.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/padding.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/position.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/position.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/right.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/right.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/text-align.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/text-align.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/text-decoration-style.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/text-decoration-style.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/top.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/top.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/transform.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/transform.html",
+ {}
+ ]
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/width.html": [
+ [
+ "/css/css-typed-om/the-stylepropertymap/properties/width.html",
{}
]
],
@@ -315695,6 +315990,12 @@
{}
]
],
+ "custom-elements/parser/serializing-html-fragments.html": [
+ [
+ "/custom-elements/parser/serializing-html-fragments.html",
+ {}
+ ]
+ ],
"custom-elements/pseudo-class-defined.html": [
[
"/custom-elements/pseudo-class-defined.html",
@@ -320861,6 +321162,18 @@
}
]
],
+ "fetch/api/redirect/redirect-empty-location-worker.html": [
+ [
+ "/fetch/api/redirect/redirect-empty-location-worker.html",
+ {}
+ ]
+ ],
+ "fetch/api/redirect/redirect-empty-location.html": [
+ [
+ "/fetch/api/redirect/redirect-empty-location.html",
+ {}
+ ]
+ ],
"fetch/api/redirect/redirect-location-worker.html": [
[
"/fetch/api/redirect/redirect-location-worker.html",
@@ -321229,6 +321542,24 @@
{}
]
],
+ "fetch/corb/script-html-correctly-labeled.tentative.sub.html": [
+ [
+ "/fetch/corb/script-html-correctly-labeled.tentative.sub.html",
+ {}
+ ]
+ ],
+ "fetch/corb/script-js-mislabeled-as-html-nosniff.sub.html": [
+ [
+ "/fetch/corb/script-js-mislabeled-as-html-nosniff.sub.html",
+ {}
+ ]
+ ],
+ "fetch/corb/script-js-mislabeled-as-html.sub.html": [
+ [
+ "/fetch/corb/script-js-mislabeled-as-html.sub.html",
+ {}
+ ]
+ ],
"fetch/data-urls/base64.any.js": [
[
"/fetch/data-urls/base64.any.html",
@@ -326551,6 +326882,12 @@
{}
]
],
+ "html/semantics/embedded-content/media-elements/track/track-element/src-empty-string.html": [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/src-empty-string.html",
+ {}
+ ]
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/track-active-cues.html": [
[
"/html/semantics/embedded-content/media-elements/track/track-element/track-active-cues.html",
@@ -334953,6 +335290,12 @@
{}
]
],
+ "mediacapture-streams/MediaStreamTrack-getCapabilities.https.html": [
+ [
+ "/mediacapture-streams/MediaStreamTrack-getCapabilities.https.html",
+ {}
+ ]
+ ],
"mediacapture-streams/MediaStreamTrack-getSettings.https.html": [
[
"/mediacapture-streams/MediaStreamTrack-getSettings.https.html",
@@ -358475,6 +358818,18 @@
{}
]
],
+ "svg/shapes/line-getPointAtLength.svg": [
+ [
+ "/svg/shapes/line-getPointAtLength.svg",
+ {}
+ ]
+ ],
+ "svg/shapes/line-pathLength.svg": [
+ [
+ "/svg/shapes/line-pathLength.svg",
+ {}
+ ]
+ ],
"svg/struct/UnknownElement/interface.svg": [
[
"/svg/struct/UnknownElement/interface.svg",
@@ -484798,6 +485153,14 @@
"9e6b4d11350f15489db6a454f94d9a1118849f99",
"support"
],
+ "css/css-flexbox/flexbox_flex-none-wrappable-content-ref.html": [
+ "2b25e256bb4caad2a246bdfb10d04bf37cbb313c",
+ "support"
+ ],
+ "css/css-flexbox/flexbox_flex-none-wrappable-content.html": [
+ "9311950e6319a66bcf5202e1bedbef723e63f17a",
+ "reftest"
+ ],
"css/css-flexbox/flexbox_flex-none.html": [
"97e73494da7313ed921bb6321f40974cbd310450",
"reftest"
@@ -486439,7 +486802,7 @@
"support"
],
"css/css-fonts/font-feature-settings-serialization-001.html": [
- "d1032e08aee1e9a7d1309ad94bd5633535ce9315",
+ "bf557e7f93663a36dab3ea358401b16c2e88811a",
"testharness"
],
"css/css-fonts/font-features-across-space-1-ref.html": [
@@ -486674,6 +487037,22 @@
"b5417f15f571c21e754df033a597193384cf8610",
"reftest"
],
+ "css/css-fonts/font-variant-05-ref.xht": [
+ "62d82d51077bb2c104b0d70b2d866ab40debe8d1",
+ "support"
+ ],
+ "css/css-fonts/font-variant-05.xht": [
+ "b83b63950f36fcfff48b395a6bfe97d7b600f5ce",
+ "reftest"
+ ],
+ "css/css-fonts/font-variant-06-ref.xht": [
+ "faa93a08f03137f79c128a0a2e166a6b12e75e27",
+ "support"
+ ],
+ "css/css-fonts/font-variant-06.xht": [
+ "2452e37602f11bfb2711e371206588d9dfd403ac",
+ "reftest"
+ ],
"css/css-fonts/font-variant-alternates-01-ref.html": [
"2d7df070714d9efa07d70e434666ff4f780b55be",
"support"
@@ -516050,18 +516429,82 @@
"197b30d860a97f20a8c25a5357f5b2e096c7b2fd",
"testharness"
],
- "css/css-typed-om/the-stylepropertymap/properties/display.html": [
- "344c75e256cf3284d6582c2cd3c9f726d6d7f443",
+ "css/css-typed-om/the-stylepropertymap/properties/animation-direction.html": [
+ "05e0be2c67fd695d693f2a639acf88ff78d8fd04",
"testharness"
],
- "css/css-typed-om/the-stylepropertymap/properties/margin-top.html": [
- "3a6cb963dd8ff07522ade6839f8de5493fd49414",
+ "css/css-typed-om/the-stylepropertymap/properties/background-image.html": [
+ "1255fea8e74561e14720ccf422fd841e1d3e32fa",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/border-style.html": [
+ "5d258827fb6a26d07efbdf5b47a440300f0aa307",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/border-width.html": [
+ "9a3cb4f96aa14f9a63261434ec46331447821965",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/bottom.html": [
+ "e710943711544b28d07676df15966950c0d76efa",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/display.html": [
+ "26ba44d8d5146b9d606a1668659ee16876b371c5",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/height.html": [
+ "aa7fdef188168368bbf8d867c96712bb9c77d857",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/left.html": [
+ "354512fcb071a863f11305f36cf3605ceef733b8",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/margin.html": [
+ "b475a6446e769e44237bb9d99176069dae10b4fb",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/object-position.html": [
+ "c3040ca9284c50c2149dc09502fde5f20d0a4baa",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/padding.html": [
+ "45d4a9a76054d2f867c28e7cda8f006d90551770",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/position.html": [
+ "4e3eccee58cec470febe4cd9a9149f4b4436487e",
"testharness"
],
"css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js": [
- "c399dc2c73ebcabbcbc2bb6716558b71bfd487b5",
+ "44d21574cfeaa42e292a5c7add83a85fd3ed6975",
"support"
],
+ "css/css-typed-om/the-stylepropertymap/properties/right.html": [
+ "68a2611eaf9eecb7393c2b0db0f4378ebe285f22",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/text-align.html": [
+ "88a1f5866a767c25dec2ef75728c68c5631d371f",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/text-decoration-style.html": [
+ "aa9698c5b4cb896fc43c58794df84ec0bbb0e3e9",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/top.html": [
+ "218b50f6b7d8209514bca8d0a8121263b07ab1e2",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/transform.html": [
+ "2723b6d3e9a213a1b33e9ecfafd5fd42eb8bca33",
+ "testharness"
+ ],
+ "css/css-typed-om/the-stylepropertymap/properties/width.html": [
+ "b6f2104ac9a5a4e288b83e5d4db6077ba72a0bad",
+ "testharness"
+ ],
"css/css-ui/OWNERS": [
"beeb8a77d396e48731fd1e69a922b6e2c84c2caa",
"support"
@@ -538202,6 +538645,10 @@
"a62669ffcc75d54df38b65e33463566238c8644c",
"testharness"
],
+ "custom-elements/parser/serializing-html-fragments.html": [
+ "cee443e8fbf77d347a7d97fdbdf497af2181d2c1",
+ "testharness"
+ ],
"custom-elements/pseudo-class-defined.html": [
"cf29756830dc12e60390c08486bbb3170c9c9c71",
"testharness"
@@ -543267,7 +543714,7 @@
"testharness"
],
"fetch/api/abort/general.any.js": [
- "784c14c7fd5a605d380584aeefb35392579f21d9",
+ "a0b775a19b3046336c45289f5a87ea57e476f084",
"testharness"
],
"fetch/api/abort/serviceworker-intercepted.https.html": [
@@ -543686,6 +544133,18 @@
"2c01e28adc2334a1405fc2f53481584be89dd5d5",
"support"
],
+ "fetch/api/redirect/redirect-empty-location-worker.html": [
+ "12efb427d7507bb712dfe8734c0c3af25fbfb34d",
+ "testharness"
+ ],
+ "fetch/api/redirect/redirect-empty-location.html": [
+ "1fcd9a1d5e05204da9e6bdc9b7794e887c857950",
+ "testharness"
+ ],
+ "fetch/api/redirect/redirect-empty-location.js": [
+ "1b3e1c6ea531f0e313c6a41ed4d4b16df27022d4",
+ "support"
+ ],
"fetch/api/redirect/redirect-location-worker.html": [
"f3c0991345e839954459801454d22fe81df8d72d",
"testharness"
@@ -544006,6 +544465,10 @@
"de99c8990074a9f248989cebe7cf1adb0f4ec84b",
"support"
],
+ "fetch/api/resources/redirect-empty-location.py": [
+ "cbf1d7b4ee75f79144114c3444337d4c1fc30402",
+ "support"
+ ],
"fetch/api/resources/redirect.py": [
"79c8b1bcad05e05a7b628edb22fdaedbdf2c3bc5",
"support"
@@ -544131,17 +544594,109 @@
"testharness"
],
"fetch/corb/README.md": [
- "5107a057d88964121d276f1f3b3a7c0f694c9485",
+ "5dd841770382cd2f6f1a09dca1103ef146bc912a",
"support"
],
"fetch/corb/css-with-json-parser-breaker.sub.html": [
- "20b9663300023edef5a62029e74d5100be1239fd",
+ "f8d39858fe81759e62e431e06f05b759ab3b5d77",
"testharness"
],
+ "fetch/corb/img-html-correctly-labeled.sub-expected.html": [
+ "a252054121e7f50a3bcb949ae5a40f278c842c04",
+ "support"
+ ],
+ "fetch/corb/img-html-correctly-labeled.sub.html": [
+ "699a8b2c8bb1f089f3ef1827bf8cfe1873849bf8",
+ "reftest"
+ ],
+ "fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub-expected.html": [
+ "1980633a4167993d90636be2ebba2aa8d72299b7",
+ "support"
+ ],
+ "fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html": [
+ "7169e4ebe99797d15f006f6787e84093780fbaa6",
+ "reftest"
+ ],
+ "fetch/corb/img-png-mislabeled-as-html.sub-expected.html": [
+ "730878950e0b7a4097d42e7eaaae79304fe05106",
+ "support"
+ ],
+ "fetch/corb/img-png-mislabeled-as-html.sub.html": [
+ "a7775fb534d38a5d5b5827a27f0c16e1268f4d0b",
+ "reftest"
+ ],
"fetch/corb/resources/css-with-json-parser-breaker.css": [
"dfcdf2ea931e4eeaaed36c471bad6b80f2c0115d",
"support"
],
+ "fetch/corb/resources/empty-labeled-as-png.png": [
+ "da39a3ee5e6b4b0d3255bfef95601890afd80709",
+ "support"
+ ],
+ "fetch/corb/resources/empty-labeled-as-png.png.headers": [
+ "4b4c62250186abda4150724d10904b350d82cec0",
+ "support"
+ ],
+ "fetch/corb/resources/html-correctly-labeled.html": [
+ "3f89c5d2069c30b9d7108fd69ed8e65f4ade2e9c",
+ "support"
+ ],
+ "fetch/corb/resources/html-correctly-labeled.html.headers": [
+ "41e260e7df49e0e4ddb1fc5df11913dbda15edd7",
+ "support"
+ ],
+ "fetch/corb/resources/js-mislabeled-as-html-nosniff.js": [
+ "ec322736e35e0649e1f3cd4d5b88e2f211436e2b",
+ "support"
+ ],
+ "fetch/corb/resources/js-mislabeled-as-html-nosniff.js.headers": [
+ "1bea535d497ae73eb7a84d3a14a5276e9d0ccc34",
+ "support"
+ ],
+ "fetch/corb/resources/js-mislabeled-as-html.js": [
+ "ec322736e35e0649e1f3cd4d5b88e2f211436e2b",
+ "support"
+ ],
+ "fetch/corb/resources/js-mislabeled-as-html.js.headers": [
+ "41e260e7df49e0e4ddb1fc5df11913dbda15edd7",
+ "support"
+ ],
+ "fetch/corb/resources/png-correctly-labeled.png": [
+ "99949c515749e66f471c3589ee7a0ef518aaccb5",
+ "support"
+ ],
+ "fetch/corb/resources/png-correctly-labeled.png.headers": [
+ "4b4c62250186abda4150724d10904b350d82cec0",
+ "support"
+ ],
+ "fetch/corb/resources/png-mislabeled-as-html-nosniff.png": [
+ "99949c515749e66f471c3589ee7a0ef518aaccb5",
+ "support"
+ ],
+ "fetch/corb/resources/png-mislabeled-as-html-nosniff.png.headers": [
+ "1bea535d497ae73eb7a84d3a14a5276e9d0ccc34",
+ "support"
+ ],
+ "fetch/corb/resources/png-mislabeled-as-html.png": [
+ "99949c515749e66f471c3589ee7a0ef518aaccb5",
+ "support"
+ ],
+ "fetch/corb/resources/png-mislabeled-as-html.png.headers": [
+ "41e260e7df49e0e4ddb1fc5df11913dbda15edd7",
+ "support"
+ ],
+ "fetch/corb/script-html-correctly-labeled.tentative.sub.html": [
+ "71cb97517821177aa1c1d116f830cd2315963d18",
+ "testharness"
+ ],
+ "fetch/corb/script-js-mislabeled-as-html-nosniff.sub.html": [
+ "ff421a4a827db6c8eeec97d2a7ee7010fd8fd686",
+ "testharness"
+ ],
+ "fetch/corb/script-js-mislabeled-as-html.sub.html": [
+ "f629f76593a03c769ca4a66b8cd9e5b1d2d20bfe",
+ "testharness"
+ ],
"fetch/data-urls/README.md": [
"83d54a0532dd87ab1fa9f5f9b7e01d9a43d91eae",
"support"
@@ -544215,7 +544770,7 @@
"testharness"
],
"fetch/nosniff/importscripts.js": [
- "e7c02b40c457cc5347acb5a13d0ce14268b8187d",
+ "625178211adedea920694a0ed2687b9eea77f20e",
"support"
],
"fetch/nosniff/parsing-nosniff.html": [
@@ -544263,15 +544818,15 @@
"support"
],
"fetch/nosniff/script.html": [
- "762b6033a5b75465417f9921f7d06781ad036cbe",
+ "cfbd6d0996251d5f311a70d889af3a11552eb844",
"testharness"
],
"fetch/nosniff/stylesheet.html": [
- "2c5801cbf150010da8ef42a1f9e37b93540a8f04",
+ "32dd5cdbc638ac7c141036633e136137854c3bb4",
"testharness"
],
"fetch/nosniff/worker.html": [
- "94af02c5ca5146386acd4fae5856f89cd244bed1",
+ "a9e0f5b9b70917aabbff3ad5dd03a5d5dccfa9f0",
"testharness"
],
"fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html": [
@@ -556822,6 +557377,10 @@
"9e5b2fa642544c20e04d542d9a8f701d1fa2d165",
"testharness"
],
+ "html/semantics/embedded-content/media-elements/track/track-element/src-empty-string.html": [
+ "7ecc926df96bf76a9e35355699edd1530e713570",
+ "testharness"
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/track-active-cues.html": [
"ee900652dced5cb21fde825760c7ee3450ffba00",
"testharness"
@@ -564467,7 +565026,7 @@
"support"
],
"innerText/getter.html": [
- "644b5b18359d26db9cd4d037b075ca016e2337b5",
+ "28fc321d84fac1173da328bdfb65b052000fcb4d",
"testharness"
],
"innerText/multiple-text-nodes.window.js": [
@@ -566102,6 +566661,10 @@
"6511203b417168722d1e05d90e58364ebce145ea",
"manual"
],
+ "mediacapture-streams/MediaStreamTrack-getCapabilities.https.html": [
+ "06662744434126b87eb1934504b53953419825cb",
+ "testharness"
+ ],
"mediacapture-streams/MediaStreamTrack-getSettings.https.html": [
"013d31ba196d5a6f1506ceb8eab088e629dfd59b",
"testharness"
@@ -586199,7 +586762,7 @@
"testharness"
],
"service-workers/service-worker/webvtt-cross-origin.https.html": [
- "a2d74b1653b4b6f4768d2cc571e1e5ad3bfbb44c",
+ "996d69509c5b63ab919a123cc7bf872bcce21c06",
"testharness"
],
"service-workers/service-worker/windowclient-navigate.https.html": [
@@ -590678,6 +591241,22 @@
"b85e9086b134478e4c4b468cb19cc4e57aca06ae",
"support"
],
+ "svg/shapes/line-dasharray-ref.svg": [
+ "1703bd2fa544c3b2a0cd9a2ff3ff329089f19e6a",
+ "support"
+ ],
+ "svg/shapes/line-dasharray.svg": [
+ "871c635c20ed0d6fb5466d706488bb0e9b846cf0",
+ "reftest"
+ ],
+ "svg/shapes/line-getPointAtLength.svg": [
+ "33812f7122653c9d6c90a04c30cc77a4e160a0b3",
+ "testharness"
+ ],
+ "svg/shapes/line-pathLength.svg": [
+ "639fd788d2a53a43811a69ac17199f005d7510ab",
+ "testharness"
+ ],
"svg/shapes/rect-01-ref.html": [
"f22176bd9807ed4a8cb38ce8481e1aaaecd6bb9b",
"support"
diff --git a/tests/wpt/metadata/css/css-fonts/font-feature-settings-serialization-001.html.ini b/tests/wpt/metadata/css/css-fonts/font-feature-settings-serialization-001.html.ini
index c35d38b9e91..ce22aa97bc6 100644
--- a/tests/wpt/metadata/css/css-fonts/font-feature-settings-serialization-001.html.ini
+++ b/tests/wpt/metadata/css/css-fonts/font-feature-settings-serialization-001.html.ini
@@ -5,3 +5,6 @@
[font-feature-settings should be serialized with double quotes, and the default value of 1 should be omitted]
expected: FAIL
+ [font-feature-settings should serialize 0 instead of off, given it's shorter]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/custom-elements/parser/serializing-html-fragments.html.ini b/tests/wpt/metadata/custom-elements/parser/serializing-html-fragments.html.ini
new file mode 100644
index 00000000000..42d99dad314
--- /dev/null
+++ b/tests/wpt/metadata/custom-elements/parser/serializing-html-fragments.html.ini
@@ -0,0 +1,7 @@
+[serializing-html-fragments.html]
+ ["is" value should be serialized if the custom element has no "is" content attribute]
+ expected: FAIL
+
+ ["is" value should be serialized even for an undefined element]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-empty-location-worker.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-empty-location-worker.html.ini
new file mode 100644
index 00000000000..e8f9df8334e
--- /dev/null
+++ b/tests/wpt/metadata/fetch/api/redirect/redirect-empty-location-worker.html.ini
@@ -0,0 +1,7 @@
+[redirect-empty-location-worker.html]
+ [redirect response with empty Location, follow mode]
+ expected: FAIL
+
+ [redirect response with empty Location, manual mode]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/api/redirect/redirect-empty-location.html.ini b/tests/wpt/metadata/fetch/api/redirect/redirect-empty-location.html.ini
new file mode 100644
index 00000000000..ee7d4a20660
--- /dev/null
+++ b/tests/wpt/metadata/fetch/api/redirect/redirect-empty-location.html.ini
@@ -0,0 +1,7 @@
+[redirect-empty-location.html]
+ [redirect response with empty Location, follow mode]
+ expected: FAIL
+
+ [redirect response with empty Location, manual mode]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/corb/script-html-correctly-labeled.tentative.sub.html.ini b/tests/wpt/metadata/fetch/corb/script-html-correctly-labeled.tentative.sub.html.ini
new file mode 100644
index 00000000000..d4cfb2bb961
--- /dev/null
+++ b/tests/wpt/metadata/fetch/corb/script-html-correctly-labeled.tentative.sub.html.ini
@@ -0,0 +1,4 @@
+[script-html-correctly-labeled.tentative.sub.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/corb/script-js-mislabeled-as-html-nosniff.sub.html.ini b/tests/wpt/metadata/fetch/corb/script-js-mislabeled-as-html-nosniff.sub.html.ini
new file mode 100644
index 00000000000..a6ea8a4802c
--- /dev/null
+++ b/tests/wpt/metadata/fetch/corb/script-js-mislabeled-as-html-nosniff.sub.html.ini
@@ -0,0 +1,4 @@
+[script-js-mislabeled-as-html-nosniff.sub.html]
+ [Untitled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/nosniff/stylesheet.html.ini b/tests/wpt/metadata/fetch/nosniff/stylesheet.html.ini
new file mode 100644
index 00000000000..c87f89ee811
--- /dev/null
+++ b/tests/wpt/metadata/fetch/nosniff/stylesheet.html.ini
@@ -0,0 +1,13 @@
+[stylesheet.html]
+ [URL query: text/html]
+ expected: FAIL
+
+ [URL query: text/json]
+ expected: FAIL
+
+ [Revalidated URL query: text/html]
+ expected: FAIL
+
+ [Revalidated URL query: text/json]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/xhr/xmlhttprequest-sync-default-feature-policy.sub.html.ini b/tests/wpt/metadata/xhr/xmlhttprequest-sync-default-feature-policy.sub.html.ini
index b1e3d945142..52e7f0fcea5 100644
--- a/tests/wpt/metadata/xhr/xmlhttprequest-sync-default-feature-policy.sub.html.ini
+++ b/tests/wpt/metadata/xhr/xmlhttprequest-sync-default-feature-policy.sub.html.ini
@@ -1,5 +1,5 @@
[xmlhttprequest-sync-default-feature-policy.sub.html]
- expected: ERROR
+ expected: TIMEOUT
[Default "sync-xhr" feature policy ["*"\] allows same-origin iframes.]
expected: TIMEOUT
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flexbox_flex-none-wrappable-content-ref.html b/tests/wpt/web-platform-tests/css/css-flexbox/flexbox_flex-none-wrappable-content-ref.html
new file mode 100644
index 00000000000..fb693581d51
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flexbox_flex-none-wrappable-content-ref.html
@@ -0,0 +1,13 @@
+
+
Reference for specifying flex:none on wrappable content should give content its full width
+
+
+
+XXX XXX XXX
+
+You should see three green rectangles above, all on the same line.
diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flexbox_flex-none-wrappable-content.html b/tests/wpt/web-platform-tests/css/css-flexbox/flexbox_flex-none-wrappable-content.html
new file mode 100644
index 00000000000..de00ff446ec
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-flexbox/flexbox_flex-none-wrappable-content.html
@@ -0,0 +1,20 @@
+
+Specifying flex:none on wrappable content should give content its full width
+
+
+
+
+
+
+
+
+You should see three green rectangles above, all on the same line.
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-feature-settings-serialization-001.html b/tests/wpt/web-platform-tests/css/css-fonts/font-feature-settings-serialization-001.html
index bccc3cf202f..031dd7d3300 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-feature-settings-serialization-001.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-feature-settings-serialization-001.html
@@ -13,14 +13,22 @@
#test1 {
font-feature-settings: 'vert' 1;
}
+ #test2 {
+ font-feature-settings: "vert" off;
+ }
+
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-05-ref.xht b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-05-ref.xht
new file mode 100644
index 00000000000..f3c2d5f9fc9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-05-ref.xht
@@ -0,0 +1,31 @@
+
+
+
+
+CSS Test: font-variant: none; low level equivalence
+
+
+
+
+Test passes if the six lines below are identical, with five check marks.
+
+ AAAAA
+ AAAAA
+ AAAAA
+ AAAAA
+ AAAAA
+ AAAAA
+
+
+
\ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-05.xht b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-05.xht
new file mode 100644
index 00000000000..a90bdecb2b5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-05.xht
@@ -0,0 +1,69 @@
+
+
+
+
+CSS Test: font-variant in @font-face rule is overriden by equivalent style rules
+
+
+
+
+
+
+
+
+Test passes if the six lines below are identical, with five check marks.
+
+ AAAFE
+ CDGFE
+ CDGFE
+ CDGFE
+ CDGFE
+ AAAAA
+
+
+
\ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-06-ref.xht b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-06-ref.xht
new file mode 100644
index 00000000000..a85f80aa6ea
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-06-ref.xht
@@ -0,0 +1,34 @@
+
+
+
+
+CSS Test: font-variant in @font-face rule is overriden by equivalent style rules
+
+
+
+
+
+Test passes if there are nine check marks below and no red visible.
+
+ A
+ A
+ A
+ A
+ A
+ A
+ A
+ A
+ A
+
+
+
\ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-variant-06.xht b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-06.xht
new file mode 100644
index 00000000000..339cfe28260
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-fonts/font-variant-06.xht
@@ -0,0 +1,82 @@
+
+
+
+
+CSS Test: font-variant in @font-face rule is overriden by equivalent style rules
+
+
+
+
+
+
+
+
+Test passes if there are nine check marks below and no red visible.
+
+ A
+ A
+ A
+ A
+ A
+ A
+ A
+ A
+ A
+
+
+ Q
+ Q
+ Q
+ Q
+ Q
+ Q
+ Q
+ Q
+ Q
+
+
+
\ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-direction.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-direction.html
new file mode 100644
index 00000000000..8ab03635042
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/animation-direction.html
@@ -0,0 +1,24 @@
+
+
+'animation-direction' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/margin-top.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-image.html
similarity index 71%
rename from tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/margin-top.html
rename to tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-image.html
index 0698880854c..d584a0ff3e4 100644
--- a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/margin-top.html
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/background-image.html
@@ -1,6 +1,6 @@
-'margin-top' property
+'background-image' property
@@ -9,15 +9,14 @@
-
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-style.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-style.html
new file mode 100644
index 00000000000..1328ab1dc7a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-style.html
@@ -0,0 +1,24 @@
+
+
+
border style properties
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-width.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-width.html
new file mode 100644
index 00000000000..d1fe0b0a716
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/border-width.html
@@ -0,0 +1,31 @@
+
+
+
border width properties
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/bottom.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/bottom.html
new file mode 100644
index 00000000000..36fe5145d4c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/bottom.html
@@ -0,0 +1,22 @@
+
+
+
'bottom' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/display.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/display.html
index c90457029ef..51f35323103 100644
--- a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/display.html
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/display.html
@@ -9,15 +9,14 @@
-
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/height.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/height.html
new file mode 100644
index 00000000000..7d126ecf10c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/height.html
@@ -0,0 +1,22 @@
+
+
+
'height' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/left.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/left.html
new file mode 100644
index 00000000000..6e82d2eeb7d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/left.html
@@ -0,0 +1,22 @@
+
+
+
'left' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/margin.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/margin.html
new file mode 100644
index 00000000000..679fb4a8256
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/margin.html
@@ -0,0 +1,30 @@
+
+
+
margin properties
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/object-position.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/object-position.html
new file mode 100644
index 00000000000..0dd30e90158
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/object-position.html
@@ -0,0 +1,20 @@
+
+
+
'object-position' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/padding.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/padding.html
new file mode 100644
index 00000000000..c740ae7f406
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/padding.html
@@ -0,0 +1,23 @@
+
+
+
padding properties
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/position.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/position.html
new file mode 100644
index 00000000000..4b36ec7bb21
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/position.html
@@ -0,0 +1,22 @@
+
+
+
'position' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
index 42cd2b08900..f7f3bd81fc2 100644
--- a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js
@@ -1,115 +1,208 @@
-const gTestSyntax = {
- '0': {
- description: 'unitless zero',
- set: true,
- examples: [
- new CSSUnitValue(0, 'number'),
- ],
- },
+const gTestSyntaxExamples = {
'
': {
description: 'a length',
- get: true,
- set: true,
examples: [
- new CSSUnitValue(0, 'px'),
- new CSSUnitValue(-3.14, 'em'),
- new CSSUnitValue(3.14, 'cm'),
+ {
+ description: "zero px",
+ input: new CSSUnitValue(0, 'px')
+ },
+ {
+ description: "a negative em",
+ input: new CSSUnitValue(-3.14, 'em'),
+ defaultComputed: value => {
+ // 'ems' are relative units, so just check that it computes to px
+ assert_class_string(value, 'CSSUnitValue',
+ '"em" lengths must compute to a CSSUnitValue');
+ assert_equals(value.unit, 'px', 'unit');
+ }
+ },
+ {
+ description: "a positive cm",
+ input: new CSSUnitValue(3.14, 'cm'),
+ defaultComputed: value => {
+ // 'cms' are relative units, so just check that it computes to px
+ assert_class_string(value, 'CSSUnitValue',
+ '"cm" lengths must compute to a CSSUnitValue');
+ assert_equals(value.unit, 'px', 'unit');
+ }
+ },
],
},
'': {
description: 'a percent',
- get: true,
- set: true,
examples: [
- new CSSUnitValue(0, 'percent'),
- new CSSUnitValue(-3.14, 'percent'),
- new CSSUnitValue(3.14, 'percent'),
+ {
+ description: "zero percent",
+ input: new CSSUnitValue(0, 'percent')
+ },
+ {
+ description: "a negative percent",
+ input: new CSSUnitValue(-3.14, 'percent')
+ },
+ {
+ description: "a positive percent",
+ input: new CSSUnitValue(3.14, 'percent')
+ },
],
},
'': {
description: 'a time',
- get: true,
- set: true,
examples: [
- new CSSUnitValue(0, 's'),
- new CSSUnitValue(-3.14, 'ms'),
- new CSSUnitValue(3.14, 's'),
+ {
+ description: "zero seconds",
+ input: new CSSUnitValue(0, 's')
+ },
+ {
+ description: "negative milliseconds",
+ input: new CSSUnitValue(-3.14, 'ms')
+ },
+ {
+ description: "positive seconds",
+ input: new CSSUnitValue(3.14, 's')
+ },
],
},
- '': {
- description: 'a CSSKeywordValue',
- set: true,
- get: true,
- // user-specified examples
- examples: null,
+ '': {
+ description: 'a position',
+ examples: [
+ {
+ decription: "origin position",
+ input: new CSSPositionValue(new CSSUnitValue(0, 'px'), new CSSUnitValue(0, 'px'))
+ }
+ ],
+ },
+ '': {
+ description: 'an image',
+ examples: [
+ {
+ description: "a PNG image",
+ input: new CSSURLImageValue('/media/1x1.png'),
+ defaultComputed: result => {
+ // URLs compute to absolute URLs
+ assert_true(result instanceof CSSURLImageValue,
+ 'Computed value should be a CSSURLImageValue');
+ assert_true(result.url.endsWith('/media/1x1.png'),
+ 'Computed value should be an absolute URL');
+ }
+ }
+ ],
+ },
+ '': {
+ description: 'a transform',
+ examples: [
+ {
+ description: 'a transform containing only a translate',
+ input: new CSSTransformValue([
+ new CSSTranslate(
+ new CSSUnitValue(0, 'px'),
+ new CSSUnitValue(1, 'px'),
+ new CSSUnitValue(2, 'px'),
+ )
+ ]),
+ }
+ ],
},
};
-function testGet(propertyName, values, description) {
+// Test setting a value in a style map and then getting it from the inline and
+// computed styles.
+function testPropertyValid(propertyName, examples, specified, computed, description) {
test(t => {
let element = createDivWithStyle(t);
- let styleMap = element.attributeStyleMap;
- for (const styleValue of values) {
- element.style[propertyName] = styleValue.toString();
+ for (const example of examples) {
+ element.attributeStyleMap.set(propertyName, example.input);
- getComputedStyle(element); // Force a style recalc.
- const result = styleMap.get(propertyName);
- assert_style_value_equals(result, styleValue);
- }
- }, `Can get ${description} from '${propertyName}'`);
-}
+ // specified style
+ const specifiedResult = element.attributeStyleMap.get(propertyName);
+ if (specified || example.defaultSpecified) {
+ (specified || example.defaultSpecified)(specifiedResult);
+ } else {
+ assert_not_equals(specifiedResult, null,
+ 'Specified value must not be null');
+ assert_true(specifiedResult instanceof CSSStyleValue,
+ 'Specified value must be a CSSStyleValue');
+ assert_style_value_equals(specifiedResult, example.input,
+ `Setting ${example.description} and getting its specified value`);
+ }
-function testSet(propertyName, values, description) {
- test(t => {
- let element = createDivWithStyle(t);
- let styleMap = element.attributeStyleMap;
-
- for (const styleValue of values) {
- styleMap.set(propertyName, styleValue);
-
- getComputedStyle(element); // Force a style recalc.
- assert_equals(element.style[propertyName], styleValue.toString());
+ // computed style
+ const computedResult = element.computedStyleMap().get(propertyName);
+ if (computed || example.defaultComputed) {
+ (computed || example.defaultComputed)(computedResult);
+ } else {
+ assert_not_equals(computedResult, null,
+ 'Computed value must not be null');
+ assert_true(computedResult instanceof CSSStyleValue,
+ 'Computed value must be a CSSStyleValue');
+ assert_style_value_equals(computedResult, example.input,
+ `Setting ${example.description} and getting its computed value`);
+ }
}
}, `Can set '${propertyName}' to ${description}`);
}
-function testSetInvalid(propertyName, values, description) {
+// Test that styleMap.set throws for invalid values
+function testPropertyInvalid(propertyName, examples, description) {
test(t => {
- let element = createDivWithStyle(t);
- let styleMap = element.attributeStyleMap;
-
- for (const styleValue of values) {
- assert_throws(new TypeError(), () => styleMap.set(propertyName, styleValue));
+ let styleMap = createInlineStyleMap(t);
+ for (const example of examples) {
+ assert_throws(new TypeError(), () => styleMap.set(propertyName, example.input));
}
}, `Setting '${propertyName}' to ${description} throws TypeError`);
}
+function createKeywordExample(keyword) {
+ return {
+ description: `the '${keyword}' keyword`,
+ examples: [ { input: new CSSKeywordValue(keyword) } ]
+ };
+}
+
+// Run a battery of StylePropertyMap tests on |propertyName|.
+// Second argument is a list of test cases. A test case has the form:
+//
+// {
+// syntax: "",
+// specified: /* a callback */ (optional)
+// computed: /* a callback */ (optional)
+// }
+//
+// If a callback is passed to |specified|, then the callback will be passed
+// the result of calling get() on the inline style map (specified values).
+// The callback should check if the result is expected using assert_* functions.
+// If no callback is passed, then we assert that the result is the same as
+// the input.
+//
+// Same goes for |computed|, but with the computed style map (computed values).
function runPropertyTests(propertyName, testCases) {
- let productionsTested = new Set();
+ let syntaxTested = new Set();
for (const testCase of testCases) {
- const syntax = gTestSyntax[testCase.specified];
- if (!syntax)
- throw new Error(`'${testCase.specified}' is not a valid production`);
+ // Retrieve test examples for this test case's syntax. If the syntax
+ // looks like a keyword, then create an example on the fly.
+ const syntaxExamples = testCase.syntax.match(/^[a-z\-]+$/) ?
+ createKeywordExample(testCase.syntax) :
+ gTestSyntaxExamples[testCase.syntax];
- const examples = testCase.examples || syntax.examples;
- if (!examples)
- throw new Error(`'${testCase.specified}' tests require explicit examples`);
+ if (!syntaxExamples)
+ throw new Error(`'${testCase.syntax}' is not a valid CSS component`);
- if (syntax.get)
- testGet(propertyName, examples, syntax.description);
- if (syntax.set)
- testSet(propertyName, examples, syntax.description);
+ testPropertyValid(propertyName,
+ syntaxExamples.examples,
+ testCase.specified,
+ testCase.computed,
+ syntaxExamples.description);
- productionsTested.add(testCase.specified);
+ syntaxTested.add(testCase.syntax);
}
// Also test that styleMap.set rejects invalid CSSStyleValues.
- for (const [production, syntax] of Object.entries(gTestSyntax)) {
- if (!productionsTested.has(production)) {
- if (syntax.set && syntax.examples)
- testSetInvalid(propertyName, syntax.examples, syntax.description);
+ for (const [syntax, syntaxExamples] of Object.entries(gTestSyntaxExamples)) {
+ if (!syntaxTested.has(syntax)) {
+ testPropertyInvalid(propertyName,
+ syntaxExamples.examples,
+ syntaxExamples.description);
}
}
}
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/right.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/right.html
new file mode 100644
index 00000000000..17488dfb022
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/right.html
@@ -0,0 +1,22 @@
+
+
+'right' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-align.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-align.html
new file mode 100644
index 00000000000..c3d7f2e8e57
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-align.html
@@ -0,0 +1,22 @@
+
+
+'text-align' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-style.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-style.html
new file mode 100644
index 00000000000..6bed8b625a4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/text-decoration-style.html
@@ -0,0 +1,22 @@
+
+
+'text-decoration-style' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/top.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/top.html
new file mode 100644
index 00000000000..f12a76b2863
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/top.html
@@ -0,0 +1,22 @@
+
+
+'top' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transform.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transform.html
new file mode 100644
index 00000000000..7a852545a74
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/transform.html
@@ -0,0 +1,21 @@
+
+
+'transform' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/width.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/width.html
new file mode 100644
index 00000000000..021a87fb5d2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/width.html
@@ -0,0 +1,22 @@
+
+
+'width' property
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/custom-elements/parser/serializing-html-fragments.html b/tests/wpt/web-platform-tests/custom-elements/parser/serializing-html-fragments.html
new file mode 100644
index 00000000000..6992dd6df6a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/custom-elements/parser/serializing-html-fragments.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/api/abort/general.any.js b/tests/wpt/web-platform-tests/fetch/api/abort/general.any.js
index e2c6e8deeb4..eb5979756fe 100644
--- a/tests/wpt/web-platform-tests/fetch/api/abort/general.any.js
+++ b/tests/wpt/web-platform-tests/fetch/api/abort/general.any.js
@@ -78,6 +78,7 @@ promise_test(async t => {
assert_true(Boolean(request.signal), "Signal member is present & truthy");
assert_equals(request.signal.constructor, AbortSignal);
assert_not_equals(request.signal, signal, 'Request has a new signal, not a reference');
+ assert_true(request.signal.aborted, `Request's signal has aborted`);
const fetchPromise = fetch(request);
diff --git a/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-empty-location-worker.html b/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-empty-location-worker.html
new file mode 100644
index 00000000000..7dce98cad0c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-empty-location-worker.html
@@ -0,0 +1,15 @@
+
+
+
+
+ Fetch in worker: handling empty Location header during redirection
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-empty-location.html b/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-empty-location.html
new file mode 100644
index 00000000000..afb033bdf9d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-empty-location.html
@@ -0,0 +1,14 @@
+
+
+
+
+ Fetch: handling empty Location header during redirection
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-empty-location.js b/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-empty-location.js
new file mode 100644
index 00000000000..a9d03c5ca6e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/api/redirect/redirect-empty-location.js
@@ -0,0 +1,23 @@
+// Tests receiving a redirect response with a Location header with an empty
+// value.
+
+if (this.document === undefined) {
+ importScripts("/resources/testharness.js");
+ importScripts("../resources/utils.js");
+}
+
+const url = RESOURCES_DIR + 'redirect-empty-location.py';
+
+promise_test(t => {
+ return promise_rejects(t, new TypeError(), fetch(url, {redirect:'follow'}));
+}, 'redirect response with empty Location, follow mode');
+
+promise_test(t => {
+ return fetch(url, {redirect:'manual'})
+ .then(resp => {
+ assert_equals(resp.type, 'opaqueredirect');
+ assert_equals(resp.status, 0);
+ });
+}, 'redirect response with empty Location, manual mode');
+
+done();
diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/redirect-empty-location.py b/tests/wpt/web-platform-tests/fetch/api/resources/redirect-empty-location.py
new file mode 100644
index 00000000000..2baabae03b0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/api/resources/redirect-empty-location.py
@@ -0,0 +1,3 @@
+def main(request, response):
+ headers = [("Location", "")]
+ return 302, headers, ""
diff --git a/tests/wpt/web-platform-tests/fetch/corb/README.md b/tests/wpt/web-platform-tests/fetch/corb/README.md
index 00e8c1648c1..9808292b145 100644
--- a/tests/wpt/web-platform-tests/fetch/corb/README.md
+++ b/tests/wpt/web-platform-tests/fetch/corb/README.md
@@ -1,7 +1,8 @@
# Tests related to Cross-Origin Resource Blocking (CORB).
This directory contains tests related to the
-[Cross-Origin Resource Blocking (CORB)](https://chromium.googlesource.com/chromium/src/+/master/content/browser/loader/cross_origin_read_blocking_explainer.md) algorithm.
+[Cross-Origin Resource Blocking (CORB)](https://chromium.googlesource.com/chromium/src/+/master/content/browser/loader/cross_origin_read_blocking_explainer.md)
+algorithm.
Note that CORB is currently in very early stages of standardization path. At
the same time, some tests in this directory (e.g.
@@ -13,7 +14,21 @@ Tests that cover behavior that is changed by CORB have to be marked as
[tentative](http://web-platform-tests.org/writing-tests/file-names.html)
(using `.tentative` substring in their filename) until CORB
is included in the official
-[Fetch spec](https://fetch.spec.whatwg.org/).
+[Fetch spec](https://fetch.spec.whatwg.org/). Such tests may fail unless
+CORB is enabled. In practice this means that:
+* Such tests will fail in default Chromium and have to be listed
+ in `third_party/WebKit/LayoutTests/TestExpectations` and associated
+ with https://crbug.com/802835.
+* Such tests will pass in Chromium when either
+ 1) CORB is explicitly, manually enabled by passing extra cmdline flags to
+ `run-webkit-tests`:
+ `--additional-driver-flag=--enable-features=CrossSiteDocumentBlockingAlways` and
+ `--additional-expectations=third_party/WebKit/LayoutTests/FlagExpectations/site-per-process`.
+ 2) CORB is implicitly enabled via Site Isolation (e.g. in
+ `site_per_process_webkit_layout_tests` step on the test bots). The
+ expectations that the tests pass in this mode is controlled by the
+ `third_party/WebKit/LayoutTests/FlagExpectations/site-per-process` file.
+* Such tests may fail in other browsers.
The tests in this directory interact with various, random features,
but the tests have been grouped together into the `fetch/corb` directory,
diff --git a/tests/wpt/web-platform-tests/fetch/corb/css-with-json-parser-breaker.sub.html b/tests/wpt/web-platform-tests/fetch/corb/css-with-json-parser-breaker.sub.html
index 9d930f9b8a8..7e059e723d4 100644
--- a/tests/wpt/web-platform-tests/fetch/corb/css-with-json-parser-breaker.sub.html
+++ b/tests/wpt/web-platform-tests/fetch/corb/css-with-json-parser-breaker.sub.html
@@ -1,17 +1,20 @@
CORB should not block text/css with a JSON parser breaker
-
+
+
+
+
Paragraph body
+
diff --git a/tests/wpt/web-platform-tests/fetch/corb/img-html-correctly-labeled.sub-expected.html b/tests/wpt/web-platform-tests/fetch/corb/img-html-correctly-labeled.sub-expected.html
new file mode 100644
index 00000000000..0e755969523
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/img-html-correctly-labeled.sub-expected.html
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/corb/img-html-correctly-labeled.sub.html b/tests/wpt/web-platform-tests/fetch/corb/img-html-correctly-labeled.sub.html
new file mode 100644
index 00000000000..b2612b43293
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/img-html-correctly-labeled.sub.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub-expected.html b/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub-expected.html
new file mode 100644
index 00000000000..a771ed6a653
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub-expected.html
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html b/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html
new file mode 100644
index 00000000000..19d29b20488
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html-nosniff.tentative.sub.html
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html.sub-expected.html b/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html.sub-expected.html
new file mode 100644
index 00000000000..ebb337dba80
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html.sub-expected.html
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html.sub.html b/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html.sub.html
new file mode 100644
index 00000000000..85d444d7999
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/img-png-mislabeled-as-html.sub.html
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/empty-labeled-as-png.png b/tests/wpt/web-platform-tests/fetch/corb/resources/empty-labeled-as-png.png
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/empty-labeled-as-png.png.headers b/tests/wpt/web-platform-tests/fetch/corb/resources/empty-labeled-as-png.png.headers
new file mode 100644
index 00000000000..e7be84a714b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/resources/empty-labeled-as-png.png.headers
@@ -0,0 +1 @@
+Content-Type: image/png
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/html-correctly-labeled.html b/tests/wpt/web-platform-tests/fetch/corb/resources/html-correctly-labeled.html
new file mode 100644
index 00000000000..7bad71bfbd8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/resources/html-correctly-labeled.html
@@ -0,0 +1,10 @@
+
+
+
+
+ Page Title
+
+
+ Page body
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/html-correctly-labeled.html.headers b/tests/wpt/web-platform-tests/fetch/corb/resources/html-correctly-labeled.html.headers
new file mode 100644
index 00000000000..156209f9c81
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/resources/html-correctly-labeled.html.headers
@@ -0,0 +1 @@
+Content-Type: text/html
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html-nosniff.js b/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html-nosniff.js
new file mode 100644
index 00000000000..a880a5bc724
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html-nosniff.js
@@ -0,0 +1 @@
+window.has_executed_script = true;
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html-nosniff.js.headers b/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html-nosniff.js.headers
new file mode 100644
index 00000000000..0f228f94ecb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html-nosniff.js.headers
@@ -0,0 +1,2 @@
+Content-Type: text/html
+X-Content-Type-Options: nosniff
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html.js b/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html.js
new file mode 100644
index 00000000000..a880a5bc724
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html.js
@@ -0,0 +1 @@
+window.has_executed_script = true;
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html.js.headers b/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html.js.headers
new file mode 100644
index 00000000000..156209f9c81
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/resources/js-mislabeled-as-html.js.headers
@@ -0,0 +1 @@
+Content-Type: text/html
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/png-correctly-labeled.png b/tests/wpt/web-platform-tests/fetch/corb/resources/png-correctly-labeled.png
new file mode 100644
index 00000000000..820f8cace21
Binary files /dev/null and b/tests/wpt/web-platform-tests/fetch/corb/resources/png-correctly-labeled.png differ
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/png-correctly-labeled.png.headers b/tests/wpt/web-platform-tests/fetch/corb/resources/png-correctly-labeled.png.headers
new file mode 100644
index 00000000000..e7be84a714b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/resources/png-correctly-labeled.png.headers
@@ -0,0 +1 @@
+Content-Type: image/png
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html-nosniff.png b/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html-nosniff.png
new file mode 100644
index 00000000000..820f8cace21
Binary files /dev/null and b/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html-nosniff.png differ
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html-nosniff.png.headers b/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html-nosniff.png.headers
new file mode 100644
index 00000000000..0f228f94ecb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html-nosniff.png.headers
@@ -0,0 +1,2 @@
+Content-Type: text/html
+X-Content-Type-Options: nosniff
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html.png b/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html.png
new file mode 100644
index 00000000000..820f8cace21
Binary files /dev/null and b/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html.png differ
diff --git a/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html.png.headers b/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html.png.headers
new file mode 100644
index 00000000000..156209f9c81
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/resources/png-mislabeled-as-html.png.headers
@@ -0,0 +1 @@
+Content-Type: text/html
diff --git a/tests/wpt/web-platform-tests/fetch/corb/script-html-correctly-labeled.tentative.sub.html b/tests/wpt/web-platform-tests/fetch/corb/script-html-correctly-labeled.tentative.sub.html
new file mode 100644
index 00000000000..76a8fadd335
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/script-html-correctly-labeled.tentative.sub.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/corb/script-js-mislabeled-as-html-nosniff.sub.html b/tests/wpt/web-platform-tests/fetch/corb/script-js-mislabeled-as-html-nosniff.sub.html
new file mode 100644
index 00000000000..f155deff090
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/script-js-mislabeled-as-html-nosniff.sub.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/corb/script-js-mislabeled-as-html.sub.html b/tests/wpt/web-platform-tests/fetch/corb/script-js-mislabeled-as-html.sub.html
new file mode 100644
index 00000000000..3a923e66356
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fetch/corb/script-js-mislabeled-as-html.sub.html
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/fetch/nosniff/importscripts.js b/tests/wpt/web-platform-tests/fetch/nosniff/importscripts.js
index d7b121316af..18952805bb7 100644
--- a/tests/wpt/web-platform-tests/fetch/nosniff/importscripts.js
+++ b/tests/wpt/web-platform-tests/fetch/nosniff/importscripts.js
@@ -14,7 +14,7 @@ const get_url = (mime, outcome) => {
return url
}
-[null, "", "x", "x/x"].forEach(function(mime) {
+[null, "", "x", "x/x", "text/html", "text/json"].forEach(function(mime) {
try {
importScripts(get_url(mime))
} catch(e) {
diff --git a/tests/wpt/web-platform-tests/fetch/nosniff/script.html b/tests/wpt/web-platform-tests/fetch/nosniff/script.html
index aec5a0886f5..6532e3db62f 100644
--- a/tests/wpt/web-platform-tests/fetch/nosniff/script.html
+++ b/tests/wpt/web-platform-tests/fetch/nosniff/script.html
@@ -4,7 +4,7 @@
+
+
+
diff --git a/tests/wpt/web-platform-tests/innerText/getter.html b/tests/wpt/web-platform-tests/innerText/getter.html
index e6ba0db64b7..7a517db3d14 100644
--- a/tests/wpt/web-platform-tests/innerText/getter.html
+++ b/tests/wpt/web-platform-tests/innerText/getter.html
@@ -15,6 +15,8 @@
+
+
diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/webvtt-cross-origin.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/webvtt-cross-origin.https.html
index 0f980607bab..a2b741b161c 100644
--- a/tests/wpt/web-platform-tests/service-workers/service-worker/webvtt-cross-origin.https.html
+++ b/tests/wpt/web-platform-tests/service-workers/service-worker/webvtt-cross-origin.https.html
@@ -57,7 +57,7 @@ promise_test(t => {
promise_test(t => {
let url = '/media/foo.vtt';
- // Add '?url' and tell the service worker to return a same-origin URL.
+ // Add '?url' and tell the service worker to fetch a same-origin URL.
url += '?url=' + host_info.HTTPS_ORIGIN + '/media/foo.vtt';
return load_track(url)
.then(result => {
@@ -67,7 +67,7 @@ promise_test(t => {
promise_test(t => {
let url = '/media/foo.vtt';
- // Add '?url' and tell the service worker to return a cross-origin URL.
+ // Add '?url' and tell the service worker to fetch a cross-origin URL.
url += '?url=' + get_host_info().HTTPS_REMOTE_ORIGIN + '/media/foo.vtt';
return load_track(url)
.then(result => {
@@ -77,7 +77,7 @@ promise_test(t => {
promise_test(t => {
let url = '/media/foo.vtt';
- // Add '?url' and tell the service worker to return a cross-origin URL that
+ // Add '?url' and tell the service worker to fetch a cross-origin URL that
// doesn't support CORS.
url += '?url=' + get_host_info().HTTPS_REMOTE_ORIGIN +
'/media/foo-no-cors.vtt';
@@ -91,16 +91,82 @@ promise_test(t => {
promise_test(t => {
let url = '/media/foo.vtt';
- // Add '?url' and tell the service worker to return a cross-origin URL.
+ // Add '?url' and tell the service worker to fetch a cross-origin URL.
url += '?url=' + get_host_info().HTTPS_REMOTE_ORIGIN + '/media/foo.vtt';
// Add '&mode' to tell the service worker to do a CORS request.
url += '&mode=cors';
- // Add '&credentials=anonymous' to allow Access-Control-Allow-Origin=*.
+ // Add '&credentials=anonymous' to allow Access-Control-Allow-Origin=* so
+ // that CORS will succeed if the service approves it.
url += '&credentials=anonymous';
return load_track(url)
.then(result => {
assert_equals(result, 'load event');
});
}, 'cross-origin text track with approved cors request should load');
+
+// Redirect tests.
+
+promise_test(t => {
+ let url = '/media/foo.vtt';
+ // Add '?url' and tell the service worker to fetch a same-origin URL that redirects...
+ redirector_url = host_info.HTTPS_ORIGIN + base_path() + 'resources/redirect.py?Redirect=';
+ // ... to a same-origin URL.
+ redirect_target = host_info.HTTPS_ORIGIN + '/media/foo.vtt';
+ url += '?url=' + encodeURIComponent(redirector_url + encodeURIComponent(redirect_target));
+ return load_track(url)
+ .then(result => {
+ assert_equals(result, 'load event');
+ });
+ }, 'same-origin text track that redirects same-origin should load');
+
+promise_test(t => {
+ let url = '/media/foo.vtt';
+ // Add '?url' and tell the service worker to fetch a same-origin URL that redirects...
+ redirector_url = host_info.HTTPS_ORIGIN + base_path() + 'resources/redirect.py?Redirect=';
+ // ... to a cross-origin URL.
+ redirect_target = host_info.HTTPS_REMOTE_ORIGIN + '/media/foo.vtt';
+ url += '?url=' + encodeURIComponent(redirector_url + encodeURIComponent(redirect_target));
+ return load_track(url)
+ .then(result => {
+ assert_equals(result, 'error event');
+ });
+ }, 'same-origin text track that redirects cross-origin should not load');
+
+
+promise_test(t => {
+ let url = '/media/foo.vtt';
+ // Add '?url' and tell the service worker to fetch a same-origin URL that redirects...
+ redirector_url = host_info.HTTPS_ORIGIN + base_path() + 'resources/redirect.py?Redirect=';
+ // ... to a cross-origin URL.
+ redirect_target = host_info.HTTPS_REMOTE_ORIGIN + '/media/foo-no-cors.vtt';
+ url += '?url=' + encodeURIComponent(redirector_url + encodeURIComponent(redirect_target));
+ // Add '&mode' to tell the service worker to do a CORS request.
+ url += '&mode=cors';
+ // Add '&credentials=anonymous' to allow Access-Control-Allow-Origin=* so
+ // that CORS will succeed if the server approves it.
+ url += '&credentials=anonymous';
+ return load_track(url)
+ .then(result => {
+ assert_equals(result, 'error event');
+ });
+ }, 'same-origin text track that redirects to a cross-origin text track with rejected cors should not load');
+
+promise_test(t => {
+ let url = '/media/foo.vtt';
+ // Add '?url' and tell the service worker to fetch a same-origin URL that redirects...
+ redirector_url = host_info.HTTPS_ORIGIN + base_path() + 'resources/redirect.py?Redirect=';
+ // ... to a cross-origin URL.
+ redirect_target = host_info.HTTPS_REMOTE_ORIGIN + '/media/foo.vtt';
+ url += '?url=' + encodeURIComponent(redirector_url + encodeURIComponent(redirect_target));
+ // Add '&mode' to tell the service worker to do a CORS request.
+ url += '&mode=cors';
+ // Add '&credentials=anonymous' to allow Access-Control-Allow-Origin=* so
+ // that CORS will succeed if the server approves it.
+ url += '&credentials=anonymous';
+ return load_track(url)
+ .then(result => {
+ assert_equals(result, 'load event');
+ });
+ }, 'same-origin text track that redirects to a cross-origin text track with approved cors should load');
diff --git a/tests/wpt/web-platform-tests/svg/shapes/line-dasharray-ref.svg b/tests/wpt/web-platform-tests/svg/shapes/line-dasharray-ref.svg
new file mode 100644
index 00000000000..5b1caaa8bc7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/shapes/line-dasharray-ref.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/svg/shapes/line-dasharray.svg b/tests/wpt/web-platform-tests/svg/shapes/line-dasharray.svg
new file mode 100644
index 00000000000..3ac8b19b1c3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/shapes/line-dasharray.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/svg/shapes/line-getPointAtLength.svg b/tests/wpt/web-platform-tests/svg/shapes/line-getPointAtLength.svg
new file mode 100644
index 00000000000..51b12cac06d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/shapes/line-getPointAtLength.svg
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/svg/shapes/line-pathLength.svg b/tests/wpt/web-platform-tests/svg/shapes/line-pathLength.svg
new file mode 100644
index 00000000000..f2f43540275
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/shapes/line-pathLength.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+