diff options
123 files changed, 2915 insertions, 219 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 6935c84d7bb..0609c7b29a9 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -129813,6 +129813,342 @@ {} ] ], + "css/css-images/image-orientation/image-orientation-default.html": [ + [ + "css/css-images/image-orientation/image-orientation-default.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-default-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html": [ + [ + "css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-from-image-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html": [ + [ + "css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-none-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-from-image-composited.html": [ + [ + "css/css-images/image-orientation/image-orientation-from-image-composited.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-from-image-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-from-image-content-images.html": [ + [ + "css/css-images/image-orientation/image-orientation-from-image-content-images.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-from-image-content-images-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-from-image-dynamic1.html": [ + [ + "css/css-images/image-orientation/image-orientation-from-image-dynamic1.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-from-image-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-from-image-dynamic2.html": [ + [ + "css/css-images/image-orientation/image-orientation-from-image-dynamic2.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-none-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-from-image-image-document.html": [ + [ + "css/css-images/image-orientation/image-orientation-from-image-image-document.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-from-image-image-document-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-from-image.html": [ + [ + "css/css-images/image-orientation/image-orientation-from-image.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-from-image-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-none-content-images.html": [ + [ + "css/css-images/image-orientation/image-orientation-none-content-images.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-none-content-images-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-none-image-document.html": [ + [ + "css/css-images/image-orientation/image-orientation-none-image-document.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-none-image-document-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], + "css/css-images/image-orientation/image-orientation-none.html": [ + [ + "css/css-images/image-orientation/image-orientation-none.html", + [ + [ + "/css/css-images/image-orientation/reference/image-orientation-none-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 10, + 10 + ], + [ + 100, + 100 + ] + ] + ] + ] + } + ] + ], "css/css-images/infinite-radial-gradient-refcrash.html": [ [ "css/css-images/infinite-radial-gradient-refcrash.html", @@ -134421,6 +134757,18 @@ {} ] ], + "css/css-multicol/intrinsic-width-change-column-count.html": [ + [ + "css/css-multicol/intrinsic-width-change-column-count.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css/css-multicol/large-actual-column-count.html": [ [ "css/css-multicol/large-actual-column-count.html", @@ -140613,6 +140961,30 @@ {} ] ], + "css/css-pseudo/marker-content-017.html": [ + [ + "css/css-pseudo/marker-content-017.html", + [ + [ + "/css/css-pseudo/marker-content-017-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-pseudo/marker-content-018.html": [ + [ + "css/css-pseudo/marker-content-018.html", + [ + [ + "/css/css-pseudo/marker-content-018-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-pseudo/marker-display-dynamic-001.html": [ [ "css/css-pseudo/marker-display-dynamic-001.html", @@ -143389,6 +143761,18 @@ {} ] ], + "css/css-ruby/ruby-bidi-003.html": [ + [ + "css/css-ruby/ruby-bidi-003.html", + [ + [ + "/css/css-ruby/ruby-bidi-003-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-ruby/ruby-box-generation-001.html": [ [ "css/css-ruby/ruby-box-generation-001.html", @@ -203303,6 +203687,18 @@ {} ] ], + "dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html": [ + [ + "dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html", + [ + [ + "/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe-ref.html", + "==" + ] + ], + {} + ] + ], "encoding/eof-shift_jis.html": [ [ "encoding/eof-shift_jis.html", @@ -206447,6 +206843,18 @@ {} ] ], + "html/semantics/document-metadata/the-link-element/link-type-attribute.html": [ + [ + "html/semantics/document-metadata/the-link-element/link-type-attribute.html", + [ + [ + "/html/semantics/document-metadata/the-link-element/link-type-attribute-ref.html", + "==" + ] + ], + {} + ] + ], "html/semantics/document-metadata/the-link-element/stylesheet-change-href.html": [ [ "html/semantics/document-metadata/the-link-element/stylesheet-change-href.html", @@ -254972,6 +255380,81 @@ "css/css-images/gradients-with-transparent-ref.html": [ [] ], + "css/css-images/image-orientation/reference/image-orientation-default-ref.html": [ + [] + ], + "css/css-images/image-orientation/reference/image-orientation-from-image-content-images-ref.html": [ + [] + ], + "css/css-images/image-orientation/reference/image-orientation-from-image-image-document-ref.html": [ + [] + ], + "css/css-images/image-orientation/reference/image-orientation-from-image-ref.html": [ + [] + ], + "css/css-images/image-orientation/reference/image-orientation-none-content-images-ref.html": [ + [] + ], + "css/css-images/image-orientation/reference/image-orientation-none-image-document-ref.html": [ + [] + ], + "css/css-images/image-orientation/reference/image-orientation-none-ref.html": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-1-ul-pre-rotated.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-1-ul.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-2-ur-pre-rotated.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-2-ur.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-3-lr-pre-rotated.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-3-lr.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-4-lol-pre-rotated.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-4-lol.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-5-lu-pre-rotated.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-5-lu.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-6-ru-pre-rotated.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-6-ru.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-7-rl-pre-rotated.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-7-rl.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-8-llo-pre-rotated.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-8-llo.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-9-u-pre-rotated.jpg": [ + [] + ], + "css/css-images/image-orientation/support/exif-orientation-9-u.jpg": [ + [] + ], "css/css-images/infinite-radial-gradient-crash-ref.html": [ [] ], @@ -256871,6 +257354,12 @@ "css/css-pseudo/marker-content-016-ref.html": [ [] ], + "css/css-pseudo/marker-content-017-ref.html": [ + [] + ], + "css/css-pseudo/marker-content-018-ref.html": [ + [] + ], "css/css-pseudo/marker-font-properties-ref.html": [ [] ], @@ -257609,6 +258098,9 @@ "css/css-ruby/ruby-bidi-002-ref.html": [ [] ], + "css/css-ruby/ruby-bidi-003-ref.html": [ + [] + ], "css/css-ruby/ruby-box-generation-001-ref.html": [ [] ], @@ -268997,6 +269489,9 @@ "dom/nodes/query-target-in-load-event.part.html": [ [] ], + "dom/nodes/remove-from-shadow-host-and-adopt-into-iframe-ref.html": [ + [] + ], "dom/nodes/selectors.js": [ [] ], @@ -270959,6 +271454,18 @@ "fetch/data-urls/resources/data-urls.json": [ [] ], + "fetch/h1-parsing/resources/README.md": [ + [] + ], + "fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asis": [ + [] + ], + "fetch/h1-parsing/resources/document-with-0x00-in-header.py": [ + [] + ], + "fetch/h1-parsing/resources/script-with-0x00-in-header.py": [ + [] + ], "fetch/http-cache/README.md": [ [] ], @@ -272411,6 +272918,9 @@ "html/browsers/origin/cross-origin-objects/frame.html": [ [] ], + "html/browsers/origin/cross-origin-objects/resources/cross-origin-due-to-document-domain-only-helper.html": [ + [] + ], "html/browsers/origin/cross-origin-objects/win-documentdomain.sub.html": [ [] ], @@ -276287,6 +276797,9 @@ "html/semantics/document-metadata/the-link-element/link-rel-attribute-ascii-case-insensitive-notref.html": [ [] ], + "html/semantics/document-metadata/the-link-element/link-type-attribute-ref.html": [ + [] + ], "html/semantics/document-metadata/the-link-element/resources/bad.css": [ [] ], @@ -281543,6 +282056,9 @@ "portals/resources/postmessage-referrer.sub.html": [ [] ], + "portals/resources/predecessor-fires-unload-watch-unload.html": [ + [] + ], "portals/resources/simple-portal-adopts-and-activates-predecessor.html": [ [] ], @@ -294929,6 +295445,9 @@ "webxr/resources/webxr_test_constants.js": [ [] ], + "webxr/resources/webxr_test_constants_fake_world.js": [ + [] + ], "webxr/resources/webxr_util.js": [ [] ], @@ -326497,6 +327016,18 @@ {} ] ], + "css/css-images/image-orientation/image-orientation-from-image-computed-style.html": [ + [ + "css/css-images/image-orientation/image-orientation-from-image-computed-style.html", + {} + ] + ], + "css/css-images/image-orientation/image-orientation-none-computed-style.html": [ + [ + "css/css-images/image-orientation/image-orientation-none-computed-style.html", + {} + ] + ], "css/css-images/inheritance.html": [ [ "css/css-images/inheritance.html", @@ -329571,6 +330102,12 @@ {} ] ], + "css/css-shadow-parts/style-sharing.html": [ + [ + "css/css-shadow-parts/style-sharing.html", + {} + ] + ], "css/css-shapes/animation/shape-image-threshold-interpolation.html": [ [ "css/css-shapes/animation/shape-image-threshold-interpolation.html", @@ -357590,6 +358127,12 @@ {} ] ], + "fetch/h1-parsing/resources-with-0x00-in-header.window.js": [ + [ + "fetch/h1-parsing/resources-with-0x00-in-header.window.html", + {} + ] + ], "fetch/http-cache/304-update.html": [ [ "fetch/http-cache/304-update.html", @@ -360001,6 +360544,12 @@ {} ] ], + "html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html": [ + [ + "html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html", + {} + ] + ], "html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html": [ [ "html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html", @@ -393536,6 +394085,12 @@ {} ] ], + "portals/predecessor-fires-unload.html": [ + [ + "portals/predecessor-fires-unload.html", + {} + ] + ], "preload/avoid-delaying-onload-link-preload.html": [ [ "preload/avoid-delaying-onload-link-preload.html", @@ -432477,6 +433032,14 @@ } ] ], + "webrtc/RTCDataChannel-close.html": [ + [ + "webrtc/RTCDataChannel-close.html", + { + "timeout": "long" + } + ] + ], "webrtc/RTCDataChannel-id.html": [ [ "webrtc/RTCDataChannel-id.html", @@ -432583,6 +433146,12 @@ {} ] ], + "webrtc/RTCPeerConnection-close.html": [ + [ + "webrtc/RTCPeerConnection-close.html", + {} + ] + ], "webrtc/RTCPeerConnection-connectionState.https.html": [ [ "webrtc/RTCPeerConnection-connectionState.https.html", @@ -475579,7 +476148,7 @@ "support" ], "common/security-features/README.md": [ - "98afe1af1be8d6329f9ae687320d4bd4797ca2c8", + "c19874653a7cac4d314fd9dd0bf921082c6f8d70", "support" ], "common/security-features/resources/common.sub.js": [ @@ -584446,6 +585015,162 @@ "6947515f7e4634fc3f240ffda91c6f5bdac862ce", "visual" ], + "css/css-images/image-orientation/image-orientation-default.html": [ + "36fb1a665ffa858f716195f0cafd04d4d7388c85", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html": [ + "26db7da18453817947a5e974f993222ec4c92b17", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html": [ + "f6474afaa0ab942a3574433ac93492f7ee20bac6", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-from-image-composited.html": [ + "596e497ed3e2b86dfea3e191951b4c3483b0abc4", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-from-image-computed-style.html": [ + "32933244c384063016d4880bc7da2a590275b54b", + "testharness" + ], + "css/css-images/image-orientation/image-orientation-from-image-content-images.html": [ + "36a2a343168ddbec199fe41bc887e2c7719248af", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-from-image-dynamic1.html": [ + "15e05884cf5594702c172b81587ea578714aa4e0", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-from-image-dynamic2.html": [ + "c0df221337e036cd6ebf5dc306b2bc6a00e204ff", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-from-image-image-document.html": [ + "793fc017e6f91746c23078f9f766d04dd1aae22d", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-from-image.html": [ + "f1343e9f23fa0c5eeae8134cff269cfc6e7308d7", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-none-computed-style.html": [ + "49919288b552b760ed5230adcad09eb255a6546b", + "testharness" + ], + "css/css-images/image-orientation/image-orientation-none-content-images.html": [ + "7bcb5ce3394d32678eb9c7e014931cfc62b99b2b", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-none-image-document.html": [ + "29ec30f1431590ce374ab223aa852553de76be57", + "reftest" + ], + "css/css-images/image-orientation/image-orientation-none.html": [ + "03c46c620a028492e6b364c9e6cf96d3c615c4ba", + "reftest" + ], + "css/css-images/image-orientation/reference/image-orientation-default-ref.html": [ + "aa8bede601460a0ed59495af6eb5a11ea0cd807d", + "support" + ], + "css/css-images/image-orientation/reference/image-orientation-from-image-content-images-ref.html": [ + "21fed5fbb66bfa3bc04d0e708204827b355db591", + "support" + ], + "css/css-images/image-orientation/reference/image-orientation-from-image-image-document-ref.html": [ + "d2c7e6916bc1bf07eef4bc400f760a89babd08a8", + "support" + ], + "css/css-images/image-orientation/reference/image-orientation-from-image-ref.html": [ + "d731e837778db1e0ba68745b23a6b453f2ac3230", + "support" + ], + "css/css-images/image-orientation/reference/image-orientation-none-content-images-ref.html": [ + "d73c554f3290b3451c88e1bfd2b4c9928763c1a7", + "support" + ], + "css/css-images/image-orientation/reference/image-orientation-none-image-document-ref.html": [ + "db84d0e23cf7c727cb989db409d661667bd9ab18", + "support" + ], + "css/css-images/image-orientation/reference/image-orientation-none-ref.html": [ + "8293d6e003d9b55de2b5c1082d875ba54417607c", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-1-ul-pre-rotated.jpg": [ + "d9acd656f92567e31487d6c03b59d2201c1b9756", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-1-ul.jpg": [ + "7c13bf7dc4f4b7cefcbeb20df9fff79ee5d5bd90", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-2-ur-pre-rotated.jpg": [ + "1d06bf3d2f4f3e097428ce9c8561653eb674eadb", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-2-ur.jpg": [ + "2387b05feef33054621217d56c9031d8c368852d", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-3-lr-pre-rotated.jpg": [ + "1c5ce1a8f6f4f4337765f16d6cad65b1891187dc", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-3-lr.jpg": [ + "cb1a82dab1682f6ff24436e8c42de30e3b7bb0f0", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-4-lol-pre-rotated.jpg": [ + "cf71c6a1444ceeec4a0c8afb44deedba274289a0", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-4-lol.jpg": [ + "8f93096803013123ee81f413a36c7d8ccdbfcdb6", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-5-lu-pre-rotated.jpg": [ + "62ddea22e44fa65461ca4a9bd4948d67ee8ac3af", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-5-lu.jpg": [ + "e65d2eb5cc293014e821fecdde6a0c6cc84cbc45", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-6-ru-pre-rotated.jpg": [ + "3d21ec96ec54ee22a6626e00c8d535627177c8d7", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-6-ru.jpg": [ + "6f487dae1358c2c8a399784e835b006502cb0595", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-7-rl-pre-rotated.jpg": [ + "7d49d4f20cca13b2ac943aa7ef15b305b17f39b7", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-7-rl.jpg": [ + "769be7df85388ccbc1cd1a23372576c9b3e44a01", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-8-llo-pre-rotated.jpg": [ + "e88b00c38b6edd14fd833684a37497b74aa5f713", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-8-llo.jpg": [ + "c4a51ed3ff698006649df4c905e2b4bb6102d6dc", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-9-u-pre-rotated.jpg": [ + "b6b517f6b72561ed93b70cd45103a693ae28928c", + "support" + ], + "css/css-images/image-orientation/support/exif-orientation-9-u.jpg": [ + "1003bfb7c21401063b8460904281299f3ccab7c2", + "support" + ], "css/css-images/infinite-radial-gradient-crash-ref.html": [ "a80236dcf75c22ecd8e43935d004f1fddf0550cb", "support" @@ -587618,6 +588343,10 @@ "ce8011b17f82407599ea28a2eaf543ec9d45a98b", "reftest" ], + "css/css-multicol/intrinsic-width-change-column-count.html": [ + "30e7671e41c3879ceef30627b3d5b65dc8c0ff86", + "reftest" + ], "css/css-multicol/large-actual-column-count.html": [ "615e3f2f0598973d66518b7abbabe2fbf2f76bda", "reftest" @@ -592098,6 +592827,22 @@ "9a0585db72206768e2a7ed77f9245f67103d587b", "reftest" ], + "css/css-pseudo/marker-content-017-ref.html": [ + "9628123611d0bfb9dd90ac621ba39177982e8075", + "support" + ], + "css/css-pseudo/marker-content-017.html": [ + "267e519feee6541596f11310e2075419e13cffc2", + "reftest" + ], + "css/css-pseudo/marker-content-018-ref.html": [ + "8107d4297d7349c0b40cfe368da74190a9924433", + "support" + ], + "css/css-pseudo/marker-content-018.html": [ + "0a4a73cd5056415084f9579a2323318c58f1a167", + "reftest" + ], "css/css-pseudo/marker-default-styles.html": [ "05da6f89a9e2f858eadfdfb63e5194feda5ce3fc", "testharness" @@ -592119,7 +592864,7 @@ "reftest" ], "css/css-pseudo/marker-font-variant-numeric-default-ref.html": [ - "3d10621121931859c15ec7552172c7a02fc1cceb", + "be932213b0f1657524df67788130c09f3602cf80", "reftest" ], "css/css-pseudo/marker-font-variant-numeric-default.html": [ @@ -592127,7 +592872,7 @@ "reftest" ], "css/css-pseudo/marker-font-variant-numeric-normal-ref.html": [ - "45ab55d14b86c7f4dc1fc510b1e213cc51bcc0c9", + "b730a24e55a46d307afc0fe41d4517d65e44046f", "reftest" ], "css/css-pseudo/marker-font-variant-numeric-normal.html": [ @@ -594546,6 +595291,14 @@ "d6692a333aefd75d600a136545addb100dcc9676", "reftest" ], + "css/css-ruby/ruby-bidi-003-ref.html": [ + "ec00293d861112fa8feef5aa6e3b5a36e55e4344", + "support" + ], + "css/css-ruby/ruby-bidi-003.html": [ + "2510408ec22524069588b8280913fa781c4ec2da", + "reftest" + ], "css/css-ruby/ruby-box-generation-001-ref.html": [ "8d836fe23c830d0aa815dc2291033615a62a0c81", "support" @@ -595830,6 +596583,10 @@ "a7f17d9670b137995b0dfc6f43221e16b988376d", "testharness" ], + "css/css-shadow-parts/style-sharing.html": [ + "4af1260b5e992af7816cdbe96056495a9ad7e216", + "testharness" + ], "css/css-shadow-parts/support/shadow-helper.js": [ "94accd6b1f9b095fda0079f7b86b866d88ffee01", "support" @@ -641682,6 +642439,14 @@ "d37015ec9f923bfc74319631723defa0b222654d", "testharness" ], + "dom/nodes/remove-from-shadow-host-and-adopt-into-iframe-ref.html": [ + "98de2b688369099806c525034a6bfc9e63d20a72", + "support" + ], + "dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html": [ + "612aed637df48d19f3050844ed418f3e35d8fa91", + "reftest" + ], "dom/nodes/remove-unscopable.html": [ "0238b0fa97a40dd9e5058d4153d1483553552033", "testharness" @@ -647810,6 +648575,26 @@ "be1d1e74cf5f5105619a574c3caa7f2c0a39e7f6", "support" ], + "fetch/h1-parsing/resources-with-0x00-in-header.window.js": [ + "f1afeeb740b1d77bd392e23afb1c5abdf5687302", + "testharness" + ], + "fetch/h1-parsing/resources/README.md": [ + "2175d274088bdaeb2ee636765cc31a2fa6f3b132", + "support" + ], + "fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asis": [ + "102340a6313feb75c1cad7f15b4d5a31e9c67568", + "support" + ], + "fetch/h1-parsing/resources/document-with-0x00-in-header.py": [ + "6e8db6195910ef4c85dced8b24541ecde83c5405", + "support" + ], + "fetch/h1-parsing/resources/script-with-0x00-in-header.py": [ + "f4a016a369831ee5dcdb3563468ccf8dd0b0982b", + "support" + ], "fetch/http-cache/304-update.html": [ "d6d8481e87427816113397bbed49f30b3e43c336", "testharness" @@ -651738,6 +652523,10 @@ "a5d8e59406e870c7be80dfe57ef404ddc7b288a4", "manual" ], + "html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html": [ + "919a05ed2a2a5c40f56ce46e1597e8bd763b0921", + "testharness" + ], "html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window.html": [ "3ad0de6a3a3fd7fb2304154d602226e9d5299724", "testharness" @@ -651754,6 +652543,10 @@ "ca2dd8ebf829d6f677fdf57b4a6db029a4aa457d", "support" ], + "html/browsers/origin/cross-origin-objects/resources/cross-origin-due-to-document-domain-only-helper.html": [ + "10ac8ece0e174b9a180c904c5bcdf6cc514c3a92", + "support" + ], "html/browsers/origin/cross-origin-objects/win-documentdomain.sub.html": [ "a315e21208728ed38155fa0e13c5f4d58dbea496", "support" @@ -660102,6 +660895,14 @@ "ae2efa415ee51e4b2b54df2f3f90965746b43ed3", "testharness" ], + "html/semantics/document-metadata/the-link-element/link-type-attribute-ref.html": [ + "f32472105d543a456e1a5ea469f932b8d643c06d", + "support" + ], + "html/semantics/document-metadata/the-link-element/link-type-attribute.html": [ + "80acb9f3dcc2d312fd8a8051b92e6e70ca343bb3", + "reftest" + ], "html/semantics/document-metadata/the-link-element/resources/bad.css": [ "4e1fe36165c52792e3a3816962c36e6090f04f67", "support" @@ -663731,7 +664532,7 @@ "testharness" ], "html/semantics/forms/constraints/support/validator.js": [ - "9b28b32309e349a87a5ee6b5b8cced2c501dd6a1", + "48c3a5b40e6bbe06b18dde7f473188a827b7de6a", "support" ], "html/semantics/forms/constraints/tooLong-input-email-delete-manual.html": [ @@ -670959,23 +671760,23 @@ "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini": [ - "d97432ed39c5f161c4e6feeac5b954e63f17e73d", + "c7b3482c786fc4532488f388b802930ccea8dc0e", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseFirstPoint.html.ini": [ - "3adcbe6885645fbf3b8cb08e0133de836a3357f0", + "68ccafcec2a1dd55184d234071c809ce1fcc73d8", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html.ini": [ - "d01525b3cfa16083b00a07060935fe93450028fa", + "5d714dd77733edd0199535f0f1cb20a46237d6dd", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html.ini": [ - "a87d9f936fdbf5a9d1ac97352ee1417a06bc678a", + "40626b8193ecc99e3e5ec5fe181f5553bfd8473a", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini": [ - "fe1bf469f4f07575469878ccfb9bedcad32fdca8", + "4f1939a431ae272024f62a4169bf8431efc2c5bb", "support" ], "infrastructure/metadata/infrastructure/testdriver/actions/pause.html.ini": [ @@ -672631,11 +673432,11 @@ "testharness" ], "layout-instability/shift-into-viewport.html": [ - "6ace93ad54c2f6b173df060e39be097eca4b6867", + "61267a32648e0389dc32b8166fd1e8d2c1df2320", "testharness" ], "layout-instability/shift-outside-viewport.html": [ - "49242913760a76d124eac0eeb3de8bb4e8eb8a19", + "2d92835b88928fd6586fff00adb16c46308558e1", "testharness" ], "layout-instability/shift-while-scrolled.html": [ @@ -672719,7 +673520,7 @@ "testharness" ], "lint.whitelist": [ - "d06f4c59bca28d01632cf693062a7d30ecbd5cc8", + "b5a8f80687044b596e449e357f7e731895b3a94d", "support" ], "loading/lazyload/META.yml": [ @@ -678087,11 +678888,11 @@ "support" ], "native-file-system/resources/native-fs-test-helpers.js": [ - "5ad8c04724b7a2e7743b43a84efaa05b7e6b703d", + "bcdfd484cf2b8b12632c964e2b60a390c03c4225", "support" ], "native-file-system/resources/opaque-origin-sandbox.html": [ - "937a6c385de2fc16d4afa1fecb762e38f4e2131b", + "07301af1cfaf250e0da67de4021a86f12c7e42e8", "support" ], "native-file-system/resources/sandboxed-fs-test-helpers.js": [ @@ -686894,6 +687695,10 @@ "70a16436a67f254372be5f861d83d9e9b66f895f", "testharness" ], + "portals/predecessor-fires-unload.html": [ + "6512195eaf613ad556a148d9136425aa20915648", + "testharness" + ], "portals/references/portals-rendering.html": [ "4a8414ab5656593811772c3728e4ee83eb034457", "support" @@ -687018,6 +687823,10 @@ "92aef00380ae4a6180039ad0b10169c81a190441", "support" ], + "portals/resources/predecessor-fires-unload-watch-unload.html": [ + "ada5a64967e9b169209b5cfede256c60ac3f8acc", + "support" + ], "portals/resources/simple-portal-adopts-and-activates-predecessor.html": [ "56bfd10f647fb63597dbc5ec902a8c2b90257b18", "support" @@ -700823,7 +701632,7 @@ "support" ], "resources/chromium/webxr-test.js": [ - "a819a3b425be2aabb83696acb6b26b69211c33dd", + "b45ff20dbc4ec9cf9fbcd36b8e3b7887ba512947", "support" ], "resources/chromium/webxr-test.js.headers": [ @@ -717275,7 +718084,7 @@ "support" ], "tools/wptrunner/wptrunner/testloader.py": [ - "f16cc14ceada70f781a2aaabb1c2f547cb9d61d1", + "8fcf66d64ed9cec5979ae2ef3b02320d5782b818", "support" ], "tools/wptrunner/wptrunner/testrunner.py": [ @@ -717723,7 +718532,7 @@ "support" ], "tools/wptserve/wptserve/handlers.py": [ - "ca5118009cfc9c4763f99e2a6296d784a6539216", + "efc1a16a93225d033574a22f7ba81e7d3d50bfd9", "support" ], "tools/wptserve/wptserve/logger.py": [ @@ -717731,7 +718540,7 @@ "support" ], "tools/wptserve/wptserve/pipes.py": [ - "ceb34cc3f4f994ed049915c7784f7c69c712abca", + "e5d6e1c96db9c18020ed2b8aee23d41dd503509a", "support" ], "tools/wptserve/wptserve/ranges.py": [ @@ -723583,7 +724392,7 @@ "support" ], "web-animations/timing-model/animations/reverse-running-animation.html": [ - "c5179a72c9dc83ce1c4426b5a844d61a039e250b", + "65f89b3e04c0b7ff6af221a100685fa71bcf7591", "reftest" ], "web-animations/timing-model/animations/reversing-an-animation.html": [ @@ -723791,7 +724600,7 @@ "support" ], "web-nfc/NDEFMessage_constructor.https.html": [ - "1c842f5c7b61c35d09e2cd41014e1b8e04839624", + "4e53828c310976b5b37657f84a89f03c48e7bc59", "testharness" ], "web-nfc/NDEFReader-document-hidden-manual.https.html": [ @@ -723811,11 +724620,11 @@ "testharness" ], "web-nfc/NDEFReadingEvent_constructor.https.html": [ - "cc56f8a18bdc6f7a0cde3f9f7246330f8e867dd6", + "5427b75ae2b6d0fa6c45b24af51b02a8737ffd0b", "testharness" ], "web-nfc/NDEFRecord_constructor.https.html": [ - "c62ea7b0d620b6f38f589c751329b40be096e557", + "2da7ca91078aa5ec8232f5347fb276618dad3c3c", "testharness" ], "web-nfc/NDEFWriter-document-hidden-manual.https.html": [ @@ -723823,7 +724632,7 @@ "manual" ], "web-nfc/NDEFWriter_push.https.html": [ - "1bdbf0bb50b38b2e385a5938a79c7bf679805b2b", + "4ff0af8fb0b3947595bdf48015ebabce165003ba", "testharness" ], "web-nfc/README.md": [ @@ -727046,6 +727855,10 @@ "89f6b1b4d7a425f2d05688d14315227454a3d4be", "testharness" ], + "webrtc/RTCDataChannel-close.html": [ + "9f43dc93c5ba7917c327d642fa6883ff19d74cac", + "testharness" + ], "webrtc/RTCDataChannel-id.html": [ "0cf01976ff0eeb66c51ded321e777123f063b02c", "testharness" @@ -727071,7 +727884,7 @@ "testharness" ], "webrtc/RTCError.html": [ - "4d0726093c19c2828e59e7f61d2f65954c8075fc", + "9c7227521edeb8e9db1c744ce3f6a145bc66314b", "testharness" ], "webrtc/RTCIceCandidate-constructor.html": [ @@ -727118,8 +727931,12 @@ "09ad67751a73a6482415a6ff6c2dac70e049c82c", "testharness" ], + "webrtc/RTCPeerConnection-close.html": [ + "74f816bf3fc0c8970582216e82e9eedc3227def1", + "testharness" + ], "webrtc/RTCPeerConnection-connectionState.https.html": [ - "9ed5808727a6a293eedc705f40abdc7dc62f8eb4", + "a054a1e8cccbd02cc7b55f96ff483219846cf997", "testharness" ], "webrtc/RTCPeerConnection-constructor.html": [ @@ -732247,13 +733064,17 @@ "support" ], "webxr/resources/webxr_test_asserts.js": [ - "863b994572441d0efdbe92dbd8aec29f9152069f", + "38f1364ce03ce96890cda97dcc226b8e472dd332", "support" ], "webxr/resources/webxr_test_constants.js": [ "3d9bfa2082baa90670131774920805a7f16cd5a2", "support" ], + "webxr/resources/webxr_test_constants_fake_world.js": [ + "0601f54fce994d027ae17dc958cee6d746440c35", + "support" + ], "webxr/resources/webxr_util.js": [ "85821d4d3d5d7fd953cace5e7ea7bacc9d3b7dab", "support" @@ -732379,7 +733200,7 @@ "testharness" ], "webxr/xrRigidTransform_inverse.https.html": [ - "a314f6b55a21b03abe5fb4ae0b32bc5c458e09f6", + "3098fb64936349e58aa6a919a8ec97d6334e5e02", "testharness" ], "webxr/xrRigidTransform_matrix.https.html": [ @@ -735587,7 +736408,7 @@ "support" ], "xhr/resources/parse-headers.py": [ - "fdc626539e842f6660f533a3684da72e719cef09", + "c661f22c3e9eb6eb8ded5c7160111221dc4ac319", "support" ], "xhr/resources/pass.txt": [ diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-default.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-default.html.ini new file mode 100644 index 00000000000..057dabc0515 --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-default.html.ini @@ -0,0 +1,2 @@ +[image-orientation-default.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html.ini new file mode 100644 index 00000000000..aa1989bb77c --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html.ini @@ -0,0 +1,2 @@ +[image-orientation-from-image-composited-dynamic1.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html.ini new file mode 100644 index 00000000000..5394b8fab7b --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html.ini @@ -0,0 +1,2 @@ +[image-orientation-from-image-composited-dynamic2.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited.html.ini new file mode 100644 index 00000000000..8a34587ad95 --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited.html.ini @@ -0,0 +1,2 @@ +[image-orientation-from-image-composited.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-computed-style.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-computed-style.html.ini new file mode 100644 index 00000000000..57324a9b0df --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-computed-style.html.ini @@ -0,0 +1,4 @@ +[image-orientation-from-image-computed-style.html] + [image-orientation:from-image computed style reports correct values] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-content-images.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-content-images.html.ini new file mode 100644 index 00000000000..35dbe9c5b2c --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-content-images.html.ini @@ -0,0 +1,2 @@ +[image-orientation-from-image-content-images.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-dynamic1.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-dynamic1.html.ini new file mode 100644 index 00000000000..ce44e995bf5 --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-dynamic1.html.ini @@ -0,0 +1,2 @@ +[image-orientation-from-image-dynamic1.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-dynamic2.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-dynamic2.html.ini new file mode 100644 index 00000000000..f7ee1605d04 --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-dynamic2.html.ini @@ -0,0 +1,2 @@ +[image-orientation-from-image-dynamic2.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-image-document.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-image-document.html.ini new file mode 100644 index 00000000000..4b8e7851463 --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-image-document.html.ini @@ -0,0 +1,2 @@ +[image-orientation-from-image-image-document.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image.html.ini new file mode 100644 index 00000000000..341fd5a2699 --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image.html.ini @@ -0,0 +1,2 @@ +[image-orientation-from-image.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-computed-style.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-computed-style.html.ini new file mode 100644 index 00000000000..f0c6302697b --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-computed-style.html.ini @@ -0,0 +1,4 @@ +[image-orientation-none-computed-style.html] + [image-orientation:none computed style reports correct values] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-content-images.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-content-images.html.ini new file mode 100644 index 00000000000..8545087eb40 --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-content-images.html.ini @@ -0,0 +1,2 @@ +[image-orientation-none-content-images.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-image-document.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-image-document.html.ini new file mode 100644 index 00000000000..dfbaa35f28c --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-image-document.html.ini @@ -0,0 +1,2 @@ +[image-orientation-none-image-document.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none.html.ini b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none.html.ini new file mode 100644 index 00000000000..262691575b2 --- /dev/null +++ b/tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none.html.ini @@ -0,0 +1,2 @@ +[image-orientation-none.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini index 7bc6ba992af..9997350495a 100644 --- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini +++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini @@ -9,6 +9,3 @@ [throws if handleEvent is thruthy and not callable] expected: NOTRUN - [looks up handleEvent method on every event dispatch] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini deleted file mode 100644 index e38782d8c85..00000000000 --- a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[elementFromPoint-001.html] - [CSSOM View - 5 - extensions to the Document interface] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini deleted file mode 100644 index e181af5397f..00000000000 --- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[elementsFromPoint-invalid-cases.html] - [The root element is the last element returned for otherwise empty queries within the viewport] - expected: FAIL - diff --git a/tests/wpt/metadata/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html.ini b/tests/wpt/metadata/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html.ini new file mode 100644 index 00000000000..8ab70585687 --- /dev/null +++ b/tests/wpt/metadata/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html.ini @@ -0,0 +1,2 @@ +[remove-from-shadow-host-and-adopt-into-iframe.html] + expected: TIMEOUT diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 1fb9808a893..9fdb1aa8bf6 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -1,7 +1,7 @@ [response.window.html] expected: TIMEOUT [fetch(): combined response Content-Type: text/plain ] - expected: FAIL + expected: NOTRUN [Response: combined response Content-Type: text/plain;charset=gbk text/plain;charset=windows-1252] expected: NOTRUN @@ -64,7 +64,7 @@ expected: NOTRUN [fetch(): combined response Content-Type: text/html text/plain] - expected: FAIL + expected: NOTRUN [Request: combined response Content-Type: text/html;charset=gbk text/plain text/html] expected: NOTRUN @@ -76,13 +76,13 @@ expected: NOTRUN [Response: combined response Content-Type: text/plain ] - expected: FAIL + expected: NOTRUN [fetch(): combined response Content-Type: text/plain;charset=gbk text/plain] expected: NOTRUN [Request: combined response Content-Type: text/html text/plain] - expected: FAIL + expected: NOTRUN [<iframe>: combined response Content-Type: text/plain;charset=gbk text/html;charset=windows-1254] expected: FAIL @@ -115,7 +115,7 @@ expected: NOTRUN [Response: combined response Content-Type: text/html text/plain] - expected: TIMEOUT + expected: NOTRUN [<iframe>: combined response Content-Type: text/plain;charset=gbk text/plain] expected: FAIL @@ -139,7 +139,7 @@ expected: FAIL [Response: combined response Content-Type: text/plain] - expected: FAIL + expected: TIMEOUT [<iframe>: combined response Content-Type: text/plain;charset=gbk text/plain;charset=windows-1252] expected: FAIL @@ -235,7 +235,7 @@ expected: FAIL [Request: combined response Content-Type: text/plain ] - expected: FAIL + expected: NOTRUN [Response: combined response Content-Type: text/html */*;charset=gbk] expected: NOTRUN @@ -271,7 +271,7 @@ expected: FAIL [fetch(): separate response Content-Type: text/html text/plain] - expected: FAIL + expected: NOTRUN [Request: combined response Content-Type: text/html;" text/plain] expected: NOTRUN @@ -309,18 +309,30 @@ [<iframe>: separate response Content-Type: */* text/html] expected: FAIL - [<iframe>: combined response Content-Type: */* text/html] - expected: FAIL - [<iframe>: separate response Content-Type: text/html;" text/plain] expected: FAIL [<iframe>: separate response Content-Type: text/html */*;charset=gbk] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] + [<iframe>: combined response Content-Type: text/html;x=" text/plain] + expected: FAIL + + [<iframe>: combined response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: combined response Content-Type: text/html;x=" text/plain] + [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] + expected: FAIL + + [<iframe>: combined response Content-Type: text/html */*] + expected: FAIL + + [fetch(): separate response Content-Type: text/plain ] + expected: NOTRUN + + [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + expected: FAIL + + [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL diff --git a/tests/wpt/metadata/fetch/h1-parsing/resources-with-0x00-in-header.window.js.ini b/tests/wpt/metadata/fetch/h1-parsing/resources-with-0x00-in-header.window.js.ini new file mode 100644 index 00000000000..9b4906adfc8 --- /dev/null +++ b/tests/wpt/metadata/fetch/h1-parsing/resources-with-0x00-in-header.window.js.ini @@ -0,0 +1,4 @@ +[resources-with-0x00-in-header.window.html] + [Expect network error for frame navigation to resource with 0x00 in a header] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini index c6486926191..54f7f890b05 100644 --- a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini +++ b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini @@ -5,14 +5,11 @@ expected: FAIL [Embedded credentials are treated as network errors in frames.] - expected: TIMEOUT + expected: FAIL [Embedded credentials are treated as network errors in new windows.] expected: TIMEOUT [Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.] - expected: TIMEOUT - - [Embedded credentials matching the top-level are not treated as network errors for relative URLs.] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini deleted file mode 100644 index 87b07c3e670..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_1.html] - [Multiple history traversals from the same task] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini deleted file mode 100644 index 51f8272a6de..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_3.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html.ini b/tests/wpt/metadata/html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html.ini new file mode 100644 index 00000000000..684b01a4733 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html.ini @@ -0,0 +1,4 @@ +[cross-origin-due-to-document-domain-only.html] + [Cross-origin due to document.domain] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini deleted file mode 100644 index 16fa2c5cfc1..00000000000 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[creating_browsing_context_test_01.html] - [first argument: absolute url] - expected: FAIL - diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini index c12c0f8ae48..6852d7663de 100644 --- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini +++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini @@ -1,4 +1,8 @@ [skip-document-with-fragment.html] + expected: TIMEOUT [Autofocus elements in iframed documents with URL fragments should be skipped.] expected: FAIL + [Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/html/semantics/document-metadata/the-link-element/link-type-attribute.html.ini b/tests/wpt/metadata/html/semantics/document-metadata/the-link-element/link-type-attribute.html.ini new file mode 100644 index 00000000000..31c7aa49cfd --- /dev/null +++ b/tests/wpt/metadata/html/semantics/document-metadata/the-link-element/link-type-attribute.html.ini @@ -0,0 +1,2 @@ +[link-type-attribute.html] + expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index dc856a3d5a3..e440b1e38c6 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,5 +1,6 @@ [iframe_sandbox_popups_nonescaping-3.html] type: testharness + expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/metadata/resource-timing/crossorigin-sandwich-TAO.sub.html.ini b/tests/wpt/metadata/resource-timing/crossorigin-sandwich-TAO.sub.html.ini index 1c7ec9ce1db..b4090ef9fe2 100644 --- a/tests/wpt/metadata/resource-timing/crossorigin-sandwich-TAO.sub.html.ini +++ b/tests/wpt/metadata/resource-timing/crossorigin-sandwich-TAO.sub.html.ini @@ -1,4 +1,5 @@ [crossorigin-sandwich-TAO.sub.html] + expected: ERROR [There should be one entry.] expected: FAIL diff --git a/tests/wpt/metadata/webmessaging/with-ports/018.html.ini b/tests/wpt/metadata/webmessaging/with-ports/018.html.ini deleted file mode 100644 index 663a1f8fa30..00000000000 --- a/tests/wpt/metadata/webmessaging/with-ports/018.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[018.html] - expected: TIMEOUT - [origin of the script that invoked the method, javascript:] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini deleted file mode 100644 index 064cf47545b..00000000000 --- a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini +++ /dev/null @@ -1,5 +0,0 @@ -[017.html] - expected: TIMEOUT - [origin of the script that invoked the method, about:blank] - expected: TIMEOUT - diff --git a/tests/wpt/web-platform-tests/common/security-features/README.md b/tests/wpt/web-platform-tests/common/security-features/README.md index 98afe1af1be..c19874653a7 100644 --- a/tests/wpt/web-platform-tests/common/security-features/README.md +++ b/tests/wpt/web-platform-tests/common/security-features/README.md @@ -143,7 +143,7 @@ For examples of spec JSON files, see [referrer-policy/spec.src.json](../../refer * **`excluded_tests`** - List of ```test_expansion``` patterns expanding into selections which get skipped when generating the tests (aka. blacklisting/suppressing) + List of ```test_expansion``` patterns expanding into selections which get skipped when generating the tests (aka. blocklisting/suppressing) * **`test_expansion_schema`** @@ -188,9 +188,9 @@ A **selection** is a single **test instance** (scenario) with explicit values th Taking the spec JSON, the generator follows this algorithm: -* Expand all ```excluded_tests``` to create a blacklist of selections +* Expand all ```excluded_tests``` to create a blocklist of selections -* For each specification requirement: Expand the ```test_expansion``` pattern into selections and check each against the blacklist, if not marked as suppresed, generate the test resources for the selection +* For each specification requirement: Expand the ```test_expansion``` pattern into selections and check each against the blocklist, if not marked as suppresed, generate the test resources for the selection ### Source Contexts diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-default.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-default.html new file mode 100644 index 00000000000..36fb1a665ff --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-default.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation defaults to from-image</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-default-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + body { + overflow: hidden; + } + img { + border: 1px solid black; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +</head> +<body> + <p>The images should rotate respecting their EXIF orientation because + no image-orientation property is given.</p> + <div> + <img src="support/exif-orientation-1-ul.jpg"/> + <br>Normal + </div> + <div> + <img src="support/exif-orientation-2-ur.jpg"/> + <br>Flipped horizontally + </div> + <div> + <img src="support/exif-orientation-3-lr.jpg"/> + <br>Rotated 180° + </div> + <div> + <img src="support/exif-orientation-4-lol.jpg"/> + <br>Flipped vertically + </div> + <div> + <img src="support/exif-orientation-5-lu.jpg"/> + <br>Rotated 90° CCW and flipped vertically + </div> + <div> + <img src="support/exif-orientation-6-ru.jpg"/> + <br>Rotated 90° CW + </div> + <div> + <img src="support/exif-orientation-7-rl.jpg"/> + <br>Rotated 90° CW and flipped vertically + </div> + <div> + <img src="support/exif-orientation-8-llo.jpg"/> + <br>Rotated 90° CCW + </div> + <div> + <img src="support/exif-orientation-9-u.jpg"/> + <br>Undefined (invalid value) + </div> +</body> +</html>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html new file mode 100644 index 00000000000..26db7da1845 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html @@ -0,0 +1,72 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: change from image-orientation: none to from-image with will-change: transform</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-from-image-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + body { + overflow: hidden;} + img { + will-change: transform; + border: 1px solid black; + image-orientation: none; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +<script> + function runTest() { + for (var i = 1; i <= 9; i++) { + document.getElementById("img" + i).style.imageOrientation = "from-image"; + } + } +</script> +</head> +<body onload="runTest()"> + <p>The images should rotate respecting their EXIF orientation because + image-orientation: from-image is specified.</p> + <div> + <img id="img1" src="support/exif-orientation-1-ul.jpg"/> + <br>Normal + </div> + <div> + <img id="img2" src="support/exif-orientation-2-ur.jpg"/> + <br>Flipped horizontally + </div> + <div> + <img id="img3" src="support/exif-orientation-3-lr.jpg"/> + <br>Rotated 180° + </div> + <div> + <img id="img4" src="support/exif-orientation-4-lol.jpg"/> + <br>Flipped vertically + </div> + <div> + <img id="img5" src="support/exif-orientation-5-lu.jpg"/> + <br>Rotated 90° CCW and flipped vertically + </div> + <div> + <img id="img6" src="support/exif-orientation-6-ru.jpg"/> + <br>Rotated 90° CW + </div> + <div> + <img id="img7" src="support/exif-orientation-7-rl.jpg"/> + <br>Rotated 90° CW and flipped vertically + </div> + <div> + <img id="img8" src="support/exif-orientation-8-llo.jpg"/> + <br>Rotated 90° CCW + </div> + <div> + <img id="img9" src="support/exif-orientation-9-u.jpg"/> + <br>Undefined (invalid value) + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html new file mode 100644 index 00000000000..f6474afaa0a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: change from image-orientation: from-image to none with will-change: transform</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-none-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + body { + overflow: hidden; + } + img { + will-change: transform; + border: 1px solid black; + image-orientation: from-image; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +<script> + function runTest() { + for (var i = 1; i <= 9; i++) { + document.getElementById("img" + i).style.imageOrientation = "none"; + } + } +</script> +</head> +<body onload="runTest()"> + <p>The images should not rotate respecting their EXIF orientation because + image-orientation: none is specified.</p> + <div> + <img id="img1" src="support/exif-orientation-1-ul.jpg"/> + </div> + <div> + <img id="img2" src="support/exif-orientation-2-ur.jpg"/> + </div> + <div> + <img id="img3" src="support/exif-orientation-3-lr.jpg"/> + </div> + <div> + <img id="img4" src="support/exif-orientation-4-lol.jpg"/> + </div> + <div> + <img id="img5" src="support/exif-orientation-5-lu.jpg"/> + </div> + <div> + <img id="img6" src="support/exif-orientation-6-ru.jpg"/> + </div> + <div> + <img id="img7" src="support/exif-orientation-7-rl.jpg"/> + </div> + <div> + <img id="img8" src="support/exif-orientation-8-llo.jpg"/> + </div> + <div> + <img id="img9" src="support/exif-orientation-9-u.jpg"/> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited.html new file mode 100644 index 00000000000..596e497ed3e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited.html @@ -0,0 +1,66 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: from-image with will-change: transform</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-from-image-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + body { + overflow: hidden; + image-orientation: from-image; + } + img { + will-change: transform; + border: 1px solid black; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +</head> +<body> + <p>The images should rotate respecting their EXIF orientation because + image-orientation: from-image is specified.</p> + <div> + <img src="support/exif-orientation-1-ul.jpg"/> + <br>Normal + </div> + <div> + <img src="support/exif-orientation-2-ur.jpg"/> + <br>Flipped horizontally + </div> + <div> + <img src="support/exif-orientation-3-lr.jpg"/> + <br>Rotated 180° + </div> + <div> + <img src="support/exif-orientation-4-lol.jpg"/> + <br>Flipped vertically + </div> + <div> + <img src="support/exif-orientation-5-lu.jpg"/> + <br>Rotated 90° CCW and flipped vertically + </div> + <div> + <img src="support/exif-orientation-6-ru.jpg"/> + <br>Rotated 90° CW + </div> + <div> + <img src="support/exif-orientation-7-rl.jpg"/> + <br>Rotated 90° CW and flipped vertically + </div> + <div> + <img src="support/exif-orientation-8-llo.jpg"/> + <br>Rotated 90° CCW + </div> + <div> + <img src="support/exif-orientation-9-u.jpg"/> + <br>Undefined (invalid value) + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-computed-style.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-computed-style.html new file mode 100644 index 00000000000..32933244c38 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-computed-style.html @@ -0,0 +1,57 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation:none computed style</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + body { + overflow: hidden; + image-orientation: from-image;} + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +<script> +function run_tests() { + test(function() { + for (var i = 1; i <= 4; i++) { + var el = document.getElementById("img" + i); + var computedStyle = window.getComputedStyle(el); + assert_equals(computedStyle.width, "100px"); + assert_equals(computedStyle.height, "50px"); + assert_equals(computedStyle.imageOrientation, "from-image"); + } + for (var i = 5; i <= 8; i++) { + var el = document.getElementById("img" + i); + var computedStyle = window.getComputedStyle(el); + assert_equals(computedStyle.width, "50px"); + assert_equals(computedStyle.height, "100px"); + assert_equals(computedStyle.imageOrientation, "from-image"); + } + var el = document.getElementById("img9"); + var computedStyle = window.getComputedStyle(el); + assert_equals(computedStyle.width, "100px"); + assert_equals(computedStyle.height, "50px"); + assert_equals(computedStyle.imageOrientation, "from-image"); + }, "image-orientation:from-image computed style reports correct values"); +} +</script> +</head> +<body onload="run_tests()"> + <div><img id="img1" src="support/exif-orientation-1-ul.jpg"/></div> + <div><img id="img2" src="support/exif-orientation-2-ur.jpg"/></div> + <div><img id="img3" src="support/exif-orientation-3-lr.jpg"/></div> + <div><img id="img4" src="support/exif-orientation-4-lol.jpg"/></div> + <div><img id="img5" src="support/exif-orientation-5-lu.jpg"/></div> + <div><img id="img6" src="support/exif-orientation-6-ru.jpg"/></div> + <div><img id="img7" src="support/exif-orientation-7-rl.jpg"/></div> + <div><img id="img8" src="support/exif-orientation-8-llo.jpg"/></div> + <div><img id="img9" src="support/exif-orientation-9-u.jpg"/></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-content-images.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-content-images.html new file mode 100644 index 00000000000..36a2a343168 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-content-images.html @@ -0,0 +1,90 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: from-image for content images</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-from-image-content-images-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + div.image { + display: inline-block; + border: 1px solid black; + } + div.container { + display: inline-block; + width: 100px; + vertical-align: top; + image-orientation: from-image; + } + img { + width: 100px; + height: 100px; + background-repeat: no-repeat; + } + body { + overflow: hidden; + } +</style> +</head> +<body> + <p>The images should rotate respecting their EXIF orientation because + image-orientation: from-image is specified.</p> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-1-ul.jpg)"></div> + <br>Normal + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-2-ur.jpg)"></div> + <br>Flipped horizontally + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-3-lr.jpg)"></div> + <br>Rotated 180° + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-4-lol.jpg)"></div> + <br>Flipped vertically + </div> + <br> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-5-lu.jpg)"></div> + <br>Rotated 90° CCW and flipped vertically + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-6-ru.jpg)"></div> + <br>Rotated 90° CW + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-7-rl.jpg)"></div> + <br>Rotated 90° CW and flipped vertically + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-8-llo.jpg)"></div> + <br>Rotated 90° CCW + </div> + <br> + <div class="container"> + <img style="background-image: url(support/exif-orientation-5-lu.jpg)"></img> + <br>Rotated 90° CCW and flipped vertically + </div> + <div class="container"> + <img style="background-image: url(support/exif-orientation-6-ru.jpg)"></img> + <br>Rotated 90° CW + </div> + <div class="container"> + <img style="background-image: url(support/exif-orientation-7-rl.jpg)"></img> + <br>Rotated 90° CW and flipped vertically + </div> + <div class="container"> + <img style="background-image: url(support/exif-orientation-8-llo.jpg)"></img> + <br>Rotated 90° CCW + </div> + <br> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-9-u.jpg)"></div> + <br>Undefined (invalid value) + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic1.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic1.html new file mode 100644 index 00000000000..15e05884cf5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic1.html @@ -0,0 +1,72 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: change from image-orientation: none to from-image</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-from-image-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + body { + overflow: hidden; + } + img { + border: 1px solid black; + image-orientation: none; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +<script> + function runTest() { + for (var i = 1; i <= 9; i++) { + document.getElementById("img" + i).style.imageOrientation = "from-image"; + } + } +</script> +</head> +<body onload="runTest()"> + <p>The images should rotate respecting their EXIF orientation because + image-orientation: from-image is specified.</p> + <div> + <img id="img1" src="support/exif-orientation-1-ul.jpg"/> + <br>Normal + </div> + <div> + <img id="img2" src="support/exif-orientation-2-ur.jpg"/> + <br>Flipped horizontally + </div> + <div> + <img id="img3" src="support/exif-orientation-3-lr.jpg"/> + <br>Rotated 180° + </div> + <div> + <img id="img4" src="support/exif-orientation-4-lol.jpg"/> + <br>Flipped vertically + </div> + <div> + <img id="img5" src="support/exif-orientation-5-lu.jpg"/> + <br>Rotated 90° CCW and flipped vertically + </div> + <div> + <img id="img6" src="support/exif-orientation-6-ru.jpg"/> + <br>Rotated 90° CW + </div> + <div> + <img id="img7" src="support/exif-orientation-7-rl.jpg"/> + <br>Rotated 90° CW and flipped vertically + </div> + <div> + <img id="img8" src="support/exif-orientation-8-llo.jpg"/> + <br>Rotated 90° CCW + </div> + <div> + <img id="img9" src="support/exif-orientation-9-u.jpg"/> + <br>Undefined (invalid value) + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic2.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic2.html new file mode 100644 index 00000000000..c0df221337e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic2.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: change from image-orientation: from-image to none</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-none-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + body { + overflow: hidden; + } + img { + border: 1px solid black; + image-orientation: from-image; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +<script> + function runTest() { + for (var i = 1; i <= 9; i++) { + document.getElementById("img" + i).style.imageOrientation = "none"; + } + } +</script> +</head> +<body onload="runTest()"> + <p>The images should not rotate respecting their EXIF orientation because + image-orientation: none is specified.</p> + <div> + <img id="img1" src="support/exif-orientation-1-ul.jpg"/> + </div> + <div> + <img id="img2" src="support/exif-orientation-2-ur.jpg"/> + </div> + <div> + <img id="img3" src="support/exif-orientation-3-lr.jpg"/> + </div> + <div> + <img id="img4" src="support/exif-orientation-4-lol.jpg"/> + </div> + <div> + <img id="img5" src="support/exif-orientation-5-lu.jpg"/> + </div> + <div> + <img id="img6" src="support/exif-orientation-6-ru.jpg"/> + </div> + <div> + <img id="img7" src="support/exif-orientation-7-rl.jpg"/> + </div> + <div> + <img id="img8" src="support/exif-orientation-8-llo.jpg"/> + </div> + <div> + <img id="img9" src="support/exif-orientation-9-u.jpg"/> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-image-document.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-image-document.html new file mode 100644 index 00000000000..793fc017e6f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-image-document.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: from-image in image documents</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-from-image-image-document-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + iframe { + display: inline-block; + width: 120px; + height: 110px; + vertical-align: top; + border: 1px solid black; + image-orientation: from-image; + } +</style> +</head> +<body> + <p>The images should rotate respecting their EXIF orientation because image + documents always respect the orientation, regardless of the image-orientation + property.</p> + <iframe src="support/exif-orientation-1-ul.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-2-ur.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-3-lr.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-4-lol.jpg" frameborder=0></iframe> + <br> + <iframe src="support/exif-orientation-5-lu.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-6-ru.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-7-rl.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-8-llo.jpg" frameborder=0></iframe> + <br> + <iframe src="support/exif-orientation-9-u.jpg" frameborder=0></iframe> +</body> +</html>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image.html new file mode 100644 index 00000000000..f1343e9f23f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: from-image</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-from-image-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + body { + overflow: hidden; + image-orientation: from-image; + } + img { + border: 1px solid black; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +</head> +<body> + <p>The images should rotate respecting their EXIF orientation because + image-orientation: from-image is specified.</p> + <div> + <img src="support/exif-orientation-1-ul.jpg"/> + <br>Normal + </div> + <div> + <img src="support/exif-orientation-2-ur.jpg"/> + <br>Flipped horizontally + </div> + <div> + <img src="support/exif-orientation-3-lr.jpg"/> + <br>Rotated 180° + </div> + <div> + <img src="support/exif-orientation-4-lol.jpg"/> + <br>Flipped vertically + </div> + <div> + <img src="support/exif-orientation-5-lu.jpg"/> + <br>Rotated 90° CCW and flipped vertically + </div> + <div> + <img src="support/exif-orientation-6-ru.jpg"/> + <br>Rotated 90° CW + </div> + <div> + <img src="support/exif-orientation-7-rl.jpg"/> + <br>Rotated 90° CW and flipped vertically + </div> + <div> + <img src="support/exif-orientation-8-llo.jpg"/> + <br>Rotated 90° CCW + </div> + <div> + <img src="support/exif-orientation-9-u.jpg"/> + <br>Undefined (invalid value) + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-computed-style.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-computed-style.html new file mode 100644 index 00000000000..49919288b55 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-computed-style.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: none computed style</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + body { + overflow: hidden; + image-orientation: none; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +<script> +function run_tests() { + test(function() { + for (var i = 1; i <= 9; i++) { + var el = document.getElementById("img" + i); + var computedStyle = window.getComputedStyle(el); + assert_equals(computedStyle.width, "100px"); + assert_equals(computedStyle.height, "50px"); + assert_equals(computedStyle.imageOrientation, "none"); + } + }, "image-orientation:none computed style reports correct values"); + +} +</script> +</head> +<body onload="run_tests()"> + <div><img id="img1" src="support/exif-orientation-1-ul.jpg"/></div> + <div><img id="img2" src="support/exif-orientation-2-ur.jpg"/></div> + <div><img id="img3" src="support/exif-orientation-3-lr.jpg"/></div> + <div><img id="img4" src="support/exif-orientation-4-lol.jpg"/></div> + <div><img id="img5" src="support/exif-orientation-5-lu.jpg"/></div> + <div><img id="img6" src="support/exif-orientation-6-ru.jpg"/></div> + <div><img id="img7" src="support/exif-orientation-7-rl.jpg"/></div> + <div><img id="img8" src="support/exif-orientation-8-llo.jpg"/></div> + <div><img id="img9" src="support/exif-orientation-9-u.jpg"/></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-content-images.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-content-images.html new file mode 100644 index 00000000000..7bcb5ce3394 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-content-images.html @@ -0,0 +1,77 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: none for content images</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-none-content-images-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + div.image { + display: inline-block; + border: 1px solid black; + } + div.container { + display: inline-block; + width: 100px; + vertical-align: top; + image-orientation: none; + } + img { + width: 100px; + height: 100px; + background-repeat: no-repeat; + } + body { + overflow: hidden; + } +</style> +</head> +<body> + <p>The images should not rotate respecting their EXIF orientation because + image-orientation: none is specified.</p> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-1-ul.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-2-ur.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-3-lr.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-4-lol.jpg)"></div> + </div> + <br> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-5-lu.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-6-ru.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-7-rl.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-8-llo.jpg)"></div> + </div> + <br> + <div class="container"> + <img style="background-image: url(support/exif-orientation-5-lu.jpg)"></img> + </div> + <div class="container"> + <img style="background-image: url(support/exif-orientation-6-ru.jpg)"></img> + </div> + <div class="container"> + <img style="background-image: url(support/exif-orientation-7-rl.jpg)"></img> + </div> + <div class="container"> + <img style="background-image: url(support/exif-orientation-8-llo.jpg)"></img> + </div> + <br> + <div class="container"> + <div class="image" style="content: url(support/exif-orientation-9-u.jpg)"></div> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-image-document.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-image-document.html new file mode 100644 index 00000000000..29ec30f1431 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-image-document.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: none in image documents</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-none-image-document-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + iframe { + display: inline-block; + margin-right: 20px; + margin-bottom: 10px; + width: 120px; + height: 110px; + vertical-align: top; + border: 1px solid black; + image-orientation: none; + } +</style> +</head> +<body> + <p>The images should rotate respecting their EXIF orientation because image + documents always respect the orientation, regardless of the image-orientation + property.</p> + <iframe src="support/exif-orientation-1-ul.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-2-ur.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-3-lr.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-4-lol.jpg" frameborder=0></iframe> + <br> + <iframe src="support/exif-orientation-5-lu.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-6-ru.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-7-rl.jpg" frameborder=0></iframe> + <iframe src="support/exif-orientation-8-llo.jpg" frameborder=0></iframe> + <br> + <iframe src="support/exif-orientation-9-u.jpg" frameborder=0></iframe> +</body> +</html> + diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none.html new file mode 100644 index 00000000000..03c46c620a0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none.html @@ -0,0 +1,38 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: none</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<link rel="match" href="reference/image-orientation-none-ref.html"> +<meta name=fuzzy content="10;100"> +<style> + body { + overflow: hidden; + image-orientation: none; + } + img { + border: 1px solid black; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +</head> +<body> + <p>The images should not rotate respecting their EXIF orientation because + image-orientation: none is specified.</p> + <div><img src="support/exif-orientation-1-ul.jpg"/></div> + <div><img src="support/exif-orientation-2-ur.jpg"/></div> + <div><img src="support/exif-orientation-3-lr.jpg"/></div> + <div><img src="support/exif-orientation-4-lol.jpg"/></div> + <div><img src="support/exif-orientation-5-lu.jpg"/></div> + <div><img src="support/exif-orientation-6-ru.jpg"/></div> + <div><img src="support/exif-orientation-7-rl.jpg"/></div> + <div><img src="support/exif-orientation-8-llo.jpg"/></div> + <div><img src="support/exif-orientation-9-u.jpg"/></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-default-ref.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-default-ref.html new file mode 100644 index 00000000000..aa8bede6014 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-default-ref.html @@ -0,0 +1,62 @@ +<!DOCTYPE html> +<html> +<head> +<title>CSS Images Module Level 3: image-orientation: from-image</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<style> + body { + overflow: hidden; + } + img { + border: 1px + solid black; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +</head> +<body> + <p>The images should rotate respecting their EXIF orientation because + no image-orientation property is given.</p> + <div> + <img src="../support/exif-orientation-1-ul-pre-rotated.jpg"> + <br>Normal + </div> + <div> + <img src="../support/exif-orientation-2-ur-pre-rotated.jpg"> + <br>Flipped horizontally + </div> + <div> + <img src="../support/exif-orientation-3-lr-pre-rotated.jpg"> + <br>Rotated 180° + </div> + <div> + <img src="../support/exif-orientation-4-lol-pre-rotated.jpg"> + <br>Flipped vertically + </div> + <div> + <img src="../support/exif-orientation-5-lu-pre-rotated.jpg"> + <br>Rotated 90° CCW and flipped vertically + </div> + <div> + <img src="../support/exif-orientation-6-ru-pre-rotated.jpg"> + <br>Rotated 90° CW + </div> + <div> + <img src="../support/exif-orientation-7-rl-pre-rotated.jpg"> + <br>Rotated 90° CW and flipped vertically + </div> + <div> + <img src="../support/exif-orientation-8-llo-pre-rotated.jpg"> + <br>Rotated 90° CCW + </div> + <div> + <img src="../support/exif-orientation-9-u-pre-rotated.jpg"> + <br>Undefined (invalid value) + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-content-images-ref.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-content-images-ref.html new file mode 100644 index 00000000000..21fed5fbb66 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-content-images-ref.html @@ -0,0 +1,87 @@ +<!DOCTYPE html> +<html> +<head> +<title>CSS Images Module Level 3: image-orientation: from-image for content images</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<style> + div.image { + display: inline-block; + border: 1px solid black; + } + div.container { + display: inline-block; + width: 100px; + vertical-align: top; + } + img { + width: 100px; + height: 100px; + background-repeat: no-repeat; + } + body { + overflow: hidden; + } +</style> +</head> +<body > + <p>The images should rotate respecting their EXIF orientation because + image-orientation: from-image is specified. + </p> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-1-ul-pre-rotated.jpg)"></div> + <br>Normal + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-2-ur-pre-rotated.jpg)"></div> + <br>Flipped horizontally + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-3-lr-pre-rotated.jpg)"></div> + <br>Rotated 180° + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-4-lol-pre-rotated.jpg)"></div> + <br>Flipped vertically + </div> + <br> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-5-lu-pre-rotated.jpg)"></div> + <br>Rotated 90° CCW and flipped vertically + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-6-ru-pre-rotated.jpg)"></div> + <br>Rotated 90° CW + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-7-rl-pre-rotated.jpg)"></div> + <br>Rotated 90° CW and flipped vertically + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-8-llo-pre-rotated.jpg)"></div> + <br>Rotated 90° CCW + </div> + <br> + <div class="container"> + <img style="background-image: url(../support/exif-orientation-5-lu-pre-rotated.jpg)"></img> + <br>Rotated 90° CCW and flipped vertically + </div> + <div class="container"> + <img style="background-image: url(../support/exif-orientation-6-ru-pre-rotated.jpg)"></img> + <br>Rotated 90° CW + </div> + <div class="container"> + <img style="background-image: url(../support/exif-orientation-7-rl-pre-rotated.jpg)"></img> + <br>Rotated 90° CW and flipped vertically + </div> + <div class="container"> + <img style="background-image: url(../support/exif-orientation-8-llo-pre-rotated.jpg)"></img> + <br>Rotated 90° CCW + </div> + <br> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-9-u-pre-rotated.jpg)"></div> + <br>Undefined (invalid value) + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-image-document-ref.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-image-document-ref.html new file mode 100644 index 00000000000..d2c7e6916bc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-image-document-ref.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: from-image in image documents</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<style> + iframe { + display: inline-block; + width: 120px; + height: 110px; + vertical-align: top; + border: 1px solid black; + } +</style> +</head> +<body> + <p>The images should rotate respecting their EXIF orientation because image + documents always respect the orientation, regardless of the image-orientation + property.</p> + <iframe src="../support/exif-orientation-1-ul-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-2-ur-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-3-lr-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-4-lol-pre-rotated.jpg" frameborder=0></iframe> + <br> + <iframe src="../support/exif-orientation-5-lu-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-6-ru-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-7-rl-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-8-llo-pre-rotated.jpg" frameborder=0></iframe> + <br> + <iframe src="../support/exif-orientation-9-u-pre-rotated.jpg" frameborder=0></iframe> +</body> +</html> + diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-ref.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-ref.html new file mode 100644 index 00000000000..d731e837778 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-ref.html @@ -0,0 +1,62 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: from-image</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<style> + body { + overflow: hidden; + } + img { + border: 1px solid black; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +</head> +<body> + <p>The images should rotate respecting their EXIF orientation because + image-orientation: from-image is specified.</p> + <div> + <img src="../support/exif-orientation-1-ul-pre-rotated.jpg"> + <br>Normal + </div> + <div> + <img src="../support/exif-orientation-2-ur-pre-rotated.jpg"> + <br>Flipped horizontally + </div> + <div> + <img src="../support/exif-orientation-3-lr-pre-rotated.jpg"> + <br>Rotated 180° + </div> + <div> + <img src="../support/exif-orientation-4-lol-pre-rotated.jpg"> + <br>Flipped vertically + </div> + <div> + <img src="../support/exif-orientation-5-lu-pre-rotated.jpg"> + <br>Rotated 90° CCW and flipped vertically + </div> + <div> + <img src="../support/exif-orientation-6-ru-pre-rotated.jpg"> + <br>Rotated 90° CW + </div> + <div> + <img src="../support/exif-orientation-7-rl-pre-rotated.jpg"> + <br>Rotated 90° CW and flipped vertically + </div> + <div> + <img src="../support/exif-orientation-8-llo-pre-rotated.jpg"> + <br>Rotated 90° CCW + </div> + <div> + <img src="../support/exif-orientation-9-u-pre-rotated.jpg"> + <br>Undefined (invalid value) + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-content-images-ref.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-content-images-ref.html new file mode 100644 index 00000000000..d73c554f329 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-content-images-ref.html @@ -0,0 +1,74 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: none for content images</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<style> + div.image { + display: inline-block; + border: 1px solid black; + } + div.container { + display: inline-block; + width: 100px; + vertical-align: top; + } + img { + width: 100px; + height: 100px; + background-repeat: no-repeat; + } + body { + overflow: hidden; + } +</style> +</head> +<body> + <p>The images should not rotate respecting their EXIF orientation because + image-orientation: none is specified.</p> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-1-ul.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-1-ul.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-1-ul.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-1-ul.jpg)"></div> + </div> + <br> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-1-ul.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-1-ul.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-1-ul.jpg)"></div> + </div> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-1-ul.jpg)"></div> + </div> + <br> + <div class="container"> + <img style="background-image: url(../support/exif-orientation-1-ul.jpg)"></img> + </div> + <div class="container"> + <img style="background-image: url(../support/exif-orientation-1-ul.jpg)"></img> + </div> + <div class="container"> + <img style="background-image: url(../support/exif-orientation-1-ul.jpg)"></img> + </div> + <div class="container"> + <img style="background-image: url(../support/exif-orientation-1-ul.jpg)"></img> + </div> + <br> + <div class="container"> + <div class="image" style="content: url(../support/exif-orientation-1-ul.jpg)"></div> + </div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-image-document-ref.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-image-document-ref.html new file mode 100644 index 00000000000..db84d0e23cf --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-image-document-ref.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: none in image documents</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<style> + iframe { + display: inline-block; + margin-right: 20px; + margin-bottom: 10px; + width: 120px; + height: 110px; + vertical-align: top; + border: 1px solid black; + } +</style> +</head> +<body> + <p>The images should rotate respecting their EXIF orientation because image + documents always respect the orientation, regardless of the image-orientation + property.</p> + <iframe src="../support/exif-orientation-1-ul-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-2-ur-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-3-lr-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-4-lol-pre-rotated.jpg" frameborder=0></iframe> + <br> + <iframe src="../support/exif-orientation-5-lu-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-6-ru-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-7-rl-pre-rotated.jpg" frameborder=0></iframe> + <iframe src="../support/exif-orientation-8-llo-pre-rotated.jpg" frameborder=0></iframe> + <br> + <iframe src="../support/exif-orientation-9-u-pre-rotated.jpg" frameborder=0></iframe> +</body> +</html> + diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-ref.html b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-ref.html new file mode 100644 index 00000000000..8293d6e003d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-ref.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>CSS Images Module Level 3: image-orientation: none</title> +<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-images-3/#propdef-image-orientation"> +<style> + body { + overflow: hidden; + } + img { + border: 1px solid black; + } + div { + display: inline-block; + width: 100px; + vertical-align: top; + } +</style> +</head> +<body> + <p>The images should not rotate respecting their EXIF orientation because + image-orientation: none is specified.</p> + <div><img src="../support/exif-orientation-1-ul.jpg"></div> + <div><img src="../support/exif-orientation-1-ul.jpg"></div> + <div><img src="../support/exif-orientation-1-ul.jpg"></div> + <div><img src="../support/exif-orientation-1-ul.jpg"></div> + <div><img src="../support/exif-orientation-1-ul.jpg"></div> + <div><img src="../support/exif-orientation-1-ul.jpg"></div> + <div><img src="../support/exif-orientation-1-ul.jpg"></div> + <div><img src="../support/exif-orientation-1-ul.jpg"></div> + <div><img src="../support/exif-orientation-1-ul.jpg"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-1-ul-pre-rotated.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-1-ul-pre-rotated.jpg Binary files differnew file mode 100644 index 00000000000..d9acd656f92 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-1-ul-pre-rotated.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-1-ul.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-1-ul.jpg Binary files differnew file mode 100644 index 00000000000..7c13bf7dc4f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-1-ul.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-2-ur-pre-rotated.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-2-ur-pre-rotated.jpg Binary files differnew file mode 100644 index 00000000000..1d06bf3d2f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-2-ur-pre-rotated.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-2-ur.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-2-ur.jpg Binary files differnew file mode 100644 index 00000000000..2387b05feef --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-2-ur.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-3-lr-pre-rotated.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-3-lr-pre-rotated.jpg Binary files differnew file mode 100644 index 00000000000..1c5ce1a8f6f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-3-lr-pre-rotated.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-3-lr.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-3-lr.jpg Binary files differnew file mode 100644 index 00000000000..cb1a82dab16 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-3-lr.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-4-lol-pre-rotated.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-4-lol-pre-rotated.jpg Binary files differnew file mode 100644 index 00000000000..cf71c6a1444 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-4-lol-pre-rotated.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-4-lol.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-4-lol.jpg Binary files differnew file mode 100644 index 00000000000..8f930968030 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-4-lol.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-5-lu-pre-rotated.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-5-lu-pre-rotated.jpg Binary files differnew file mode 100644 index 00000000000..62ddea22e44 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-5-lu-pre-rotated.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-5-lu.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-5-lu.jpg Binary files differnew file mode 100644 index 00000000000..e65d2eb5cc2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-5-lu.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-6-ru-pre-rotated.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-6-ru-pre-rotated.jpg Binary files differnew file mode 100644 index 00000000000..3d21ec96ec5 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-6-ru-pre-rotated.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-6-ru.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-6-ru.jpg Binary files differnew file mode 100644 index 00000000000..6f487dae135 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-6-ru.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-7-rl-pre-rotated.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-7-rl-pre-rotated.jpg Binary files differnew file mode 100644 index 00000000000..7d49d4f20cc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-7-rl-pre-rotated.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-7-rl.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-7-rl.jpg Binary files differnew file mode 100644 index 00000000000..769be7df853 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-7-rl.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-8-llo-pre-rotated.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-8-llo-pre-rotated.jpg Binary files differnew file mode 100644 index 00000000000..e88b00c38b6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-8-llo-pre-rotated.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-8-llo.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-8-llo.jpg Binary files differnew file mode 100644 index 00000000000..c4a51ed3ff6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-8-llo.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-9-u-pre-rotated.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-9-u-pre-rotated.jpg Binary files differnew file mode 100644 index 00000000000..b6b517f6b72 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-9-u-pre-rotated.jpg diff --git a/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-9-u.jpg b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-9-u.jpg Binary files differnew file mode 100644 index 00000000000..1003bfb7c21 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-9-u.jpg diff --git a/tests/wpt/web-platform-tests/css/css-multicol/intrinsic-width-change-column-count.html b/tests/wpt/web-platform-tests/css/css-multicol/intrinsic-width-change-column-count.html new file mode 100644 index 00000000000..30e7671e41c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/intrinsic-width-change-column-count.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#pseudo-algorithm"> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1037790"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div style="width:100px; background:red;"> + <div id="container" style="columns:3; column-gap:0; column-fill:auto; width:fit-content; height:100px; background:green;"> + <div style="width:25px; height:10px;"></div> + </div> +</div> +<script> + document.body.offsetTop; + container.style.columns = "4"; +</script> diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-017-ref.html b/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-017-ref.html new file mode 100644 index 00000000000..9628123611d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-017-ref.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Reference: ::marker pseudo elements styled with 'content' property</title> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com"> +<style> +img { + display: list-item; + list-style-type: "[marker]"; +} +img.inside { + list-style-position: inside; +} +</style> +<ol> + <img src="about:invalid" alt="alt" class="inside" /> + <img src="about:invalid" alt="alt" /> + <li value="3">item</li> +</ol> diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-017.html b/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-017.html new file mode 100644 index 00000000000..267e519feee --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-017.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Test: ::marker pseudo elements styled with 'content' property</title> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com"> +<link rel="match" href="marker-content-017-ref.html"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#marker-pseudo"> +<link rel="help" href="https://drafts.csswg.org/css-lists/#declaring-a-list-item"> +<meta name="assert" content="Checks that ::marker can be created inside a non-replaced <img>."> +<style> +img { + display: list-item; +} +img.inside { + list-style-position: inside; +} +img::marker { + content: '[marker]'; +} +</style> +<ol> + <img src="about:invalid" alt="alt" class="inside" /> + <img src="about:invalid" alt="alt" /> + <li>item</li> +</ol> diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-018-ref.html b/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-018-ref.html new file mode 100644 index 00000000000..8107d4297d7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-018-ref.html @@ -0,0 +1,61 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Reference: ::marker pseudo elements styled with 'content' property</title> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com"> +<style> +ol { + float: left; + width: 100px; +} +.inside { + list-style-position: inside; +} +li:nth-child(1) { list-style-type: "1" } +li:nth-child(2) { list-style-type: "1 " } +li:nth-child(3) { list-style-type: "1 " } +li:nth-child(4) { list-style-type: " 1" } +li:nth-child(5) { list-style-type: " 1" } +li:nth-child(6) { list-style-type: " 1 " } +li:nth-child(7) { list-style-type: "1\9 2" } +li:nth-child(8) { list-style-type: "1\a 2" } +</style> +<ol class="inside"> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> +</ol> +<ol class="inside"> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> +</ol> +<ol class="outside"> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> +</ol> +<ol class="outside"> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> +</ol> diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-018.html b/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-018.html new file mode 100644 index 00000000000..0a4a73cd505 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/marker-content-018.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Test: ::marker pseudo elements styled with 'content' property</title> +<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com"> +<link rel="match" href="marker-content-018-ref.html"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#marker-pseudo"> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-rules"> +<meta name="assert" content="Checks that the 'content' property of a ::marker doesn't affect white space."> +<style> +ol { + float: left; + width: 100px; +} +.inside { + list-style-position: inside; +} +li:nth-child(1)::marker { content: "1" } +li:nth-child(2)::marker { content: "1 " } +li:nth-child(3)::marker { content: "1 " } +li:nth-child(4)::marker { content: " 1" } +li:nth-child(5)::marker { content: " 1" } +li:nth-child(6)::marker { content: " 1 " } +li:nth-child(7)::marker { content: "1\9 2" } +li:nth-child(8)::marker { content: "1\a 2" } +</style> +<ol class="inside"> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> +</ol> +<ol class="inside"> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> +</ol> +<ol class="outside"> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> + <li>item</li> +</ol> +<ol class="outside"> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> + <li> item</li> +</ol> diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-default-ref.html b/tests/wpt/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-default-ref.html index 3d106211219..be932213b0f 100644 --- a/tests/wpt/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-default-ref.html +++ b/tests/wpt/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-default-ref.html @@ -3,6 +3,7 @@ <title>CSS Reftest Reference</title> <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" /> <link rel="mismatch" href="marker-font-variant-numeric-normal-ref.html"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <style> @font-face { /* This font looks different with 'font-variant-numeric: tabular-nums' */ @@ -17,19 +18,13 @@ ol { list-style-position: inside; font-family: "Exo 2"; } -span { +li:first-child::after { + content: 'X X X X X X X X X'; display: inline-block; + font: 25px/1 Ahem; vertical-align: top; -} -li:first-child::before { - content: '\200B'; /* zero-width space */ -} -li:first-child::after { - content: ''; - position: absolute; - height: 225px; + height: 0; width: 25px; - background: black; } </style> <ol> diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-normal-ref.html b/tests/wpt/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-normal-ref.html index 45ab55d14b8..b730a24e55a 100644 --- a/tests/wpt/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-normal-ref.html +++ b/tests/wpt/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-normal-ref.html @@ -3,6 +3,7 @@ <title>CSS Reftest Reference</title> <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" /> <link rel="mismatch" href="marker-font-variant-numeric-default-ref.html"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <style> @font-face { /* This font looks different with 'font-variant-numeric: tabular-nums' */ @@ -19,10 +20,10 @@ ol { } span { display: inline-block; + font: 25px/1 Ahem; vertical-align: top; width: 25px; height: 25px; - background: black; } </style> <ol> diff --git a/tests/wpt/web-platform-tests/css/css-ruby/ruby-bidi-003-ref.html b/tests/wpt/web-platform-tests/css/css-ruby/ruby-bidi-003-ref.html new file mode 100644 index 00000000000..ec00293d861 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-ruby/ruby-bidi-003-ref.html @@ -0,0 +1,6 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>Bidirectional text inside ruby content box</title> +<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org"> +<body dir="rtl" style="font-size: 64px"> +<ruby><div>אב12ג</div><rt><div>אabבג</div></ruby> diff --git a/tests/wpt/web-platform-tests/css/css-ruby/ruby-bidi-003.html b/tests/wpt/web-platform-tests/css/css-ruby/ruby-bidi-003.html new file mode 100644 index 00000000000..2510408ec22 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-ruby/ruby-bidi-003.html @@ -0,0 +1,8 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>Bidirectional text inside ruby content box</title> +<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org"> +<link rel="help" href="https://drafts.csswg.org/css-ruby-1/#bidi"> +<link rel="match" href="ruby-bidi-003-ref.html"> +<body dir="rtl" style="font-size: 64px"> +<ruby>אב12ג<rt>אabבג</ruby> diff --git a/tests/wpt/web-platform-tests/css/css-shadow-parts/style-sharing.html b/tests/wpt/web-platform-tests/css/css-shadow-parts/style-sharing.html new file mode 100644 index 00000000000..4af1260b5e9 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-shadow-parts/style-sharing.html @@ -0,0 +1,23 @@ +<!doctype html> +<title>CSS Shadow Parts test: Parts don't incorrectly share style with other elements</title> +<link rel="help" href="https://drafts.csswg.org/css-shadow-parts/"> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="author" href="https://mozilla.org/" title="Mozilla"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style>::part(part1) { color: green; }</style> +<div id="host"></div> +<script> +"use strict"; +test(function() { + host.attachShadow({ mode: "open" }).innerHTML = ` + <div></div> + <div part="part1"></div> + `; + assert_equals( + getComputedStyle(host.shadowRoot.querySelector("[part]")).color, + "rgb(0, 128, 0)", + "Part should be green", + ); +}, "Part in selected host does not incorrectly share style with non-part"); +</script> diff --git a/tests/wpt/web-platform-tests/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe-ref.html b/tests/wpt/web-platform-tests/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe-ref.html new file mode 100644 index 00000000000..98de2b68836 --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe-ref.html @@ -0,0 +1,4 @@ +<!doctype html> +<title>DOM Test Reference</title> +<p>You should see the word PASS below.</p> +<div>PASS</div> diff --git a/tests/wpt/web-platform-tests/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html b/tests/wpt/web-platform-tests/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html new file mode 100644 index 00000000000..612aed637df --- /dev/null +++ b/tests/wpt/web-platform-tests/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html @@ -0,0 +1,29 @@ +<!doctype html> +<html class="reftest-wait"> + <head> + <title>Adopting a shadow host child into an iframe</title> + <link rel="help" href="https://dom.spec.whatwg.org/#concept-node-adopt"> + <link rel="match" href="remove-from-shadow-host-and-adopt-into-iframe-ref.html"> + <style> + iframe { border: 0; } + </style> + <script src="/common/reftest-wait.js"></script> + <script> + onload = () => { + const root = host.attachShadow({mode:"open"}); + root.innerHTML = "<slot>"; + // force a layout + host.offsetTop; + iframe.contentWindow.document.body.style.margin = 0; + iframe.contentWindow.document.body.appendChild(adopted); + host.remove(); + takeScreenshot(); + } + </script> + </head> + <body> + <p>You should see the word PASS below.</p> + <iframe id="iframe"></iframe> + <div id="host"><span id="adopted">PASS</span></div> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window.js b/tests/wpt/web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window.js new file mode 100644 index 00000000000..f1afeeb740b --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window.js @@ -0,0 +1,31 @@ +async_test(t => { + const script = document.createElement("script"); + t.add_cleanup(() => script.remove()); + script.src = "resources/script-with-0x00-in-header.py"; + script.onerror = t.step_func_done(); + script.onload = t.unreached_func(); + document.body.append(script); +}, "Expect network error for script with 0x00 in a header"); + +async_test(t => { + const frame = document.createElement("iframe"); + t.add_cleanup(() => frame.remove()); + frame.src = "resources/document-with-0x00-in-header.py"; + // If network errors result in load events for frames per + // https://github.com/whatwg/html/issues/125 and https://github.com/whatwg/html/issues/1230 this + // should be changed to use the load event instead. + t.step_timeout(() => { + assert_equals(frame.contentDocument, null); + t.done(); + }, 1000); + document.body.append(frame); +}, "Expect network error for frame navigation to resource with 0x00 in a header"); + +async_test(t => { + const img = document.createElement("img"); + t.add_cleanup(() => img.remove()); + img.src = "resources/blue-with-0x00-in-a-header.asis"; + img.onerror = t.step_func_done(); + img.onload = t.unreached_func(); + document.body.append(img); +}, "Expect network error for image with 0x00 in a header"); diff --git a/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/README.md b/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/README.md new file mode 100644 index 00000000000..2175d274088 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/README.md @@ -0,0 +1,6 @@ +`blue-with-0x00-in-a-header.asis` is a copy from `../../images/blue.png` with the following prepended using Control Pictures to signify actual newlines and 0x00: +``` +HTTP/1.1 200 AN IMAGE␍␊ +Content-Type: image/png␍␊ +Custom: ␀␍␊␍␊ +``` diff --git a/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asis b/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asis Binary files differnew file mode 100644 index 00000000000..102340a6313 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asis diff --git a/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/document-with-0x00-in-header.py b/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/document-with-0x00-in-header.py new file mode 100644 index 00000000000..6e8db619591 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/document-with-0x00-in-header.py @@ -0,0 +1,4 @@ +def main(request, response): + response.headers.set("Content-Type", "text/html") + response.headers.set("Custom", "\0") + return "<!doctype html><b>This is a document.</b>" diff --git a/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/script-with-0x00-in-header.py b/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/script-with-0x00-in-header.py new file mode 100644 index 00000000000..f4a016a3698 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/h1-parsing/resources/script-with-0x00-in-header.py @@ -0,0 +1,4 @@ +def main(request, response): + response.headers.set("Content-Type", "text/javascript") + response.headers.set("Custom", "\0") + return "var thisIsJavaScript = 0" diff --git a/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html b/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html new file mode 100644 index 00000000000..919a05ed2a2 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html @@ -0,0 +1,33 @@ +<!doctype html> +<title>Cross-origin due to document.domain</title> +<meta charset=utf-8> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<div id=log></div> +<iframe src=resources/cross-origin-due-to-document-domain-only-helper.html></iframe> +<script> +async_test(t => { + onload = t.step_func_done(() => { + const frame = document.querySelector("iframe"); + const innerSelf = self[0]; + const innerLocation = innerSelf.location; + const innerDocument = innerSelf.document; + assert_equals(innerLocation.host, location.host); + assert_true(innerSelf.expandosForever); + assert_true(innerLocation.expandosForever); + assert_equals(frame.contentWindow, innerSelf); + assert_equals(frame.contentDocument, innerDocument); + innerSelf.setDocumentDomain(); + assert_throws("SecurityError", () => innerSelf.expandosForever); + assert_throws("SecurityError", () => innerLocation.expandosForever); + assert_throws("SecurityError", () => innerLocation.host); + assert_equals(innerSelf.parent, self); + assert_throws("SecurityError", () => innerSelf.frameElement); + assert_throws("SecurityError", () => innerLocation.reload()); + assert_equals(frame.contentWindow, innerSelf); + assert_equals(frame.contentDocument, null); + // Cross-origin Document object obtained before it became cross-origin has no protections + assert_equals(innerDocument.URL, frame.src); + }); +}); +</script> diff --git a/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/resources/cross-origin-due-to-document-domain-only-helper.html b/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/resources/cross-origin-due-to-document-domain-only-helper.html new file mode 100644 index 00000000000..10ac8ece0e1 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/resources/cross-origin-due-to-document-domain-only-helper.html @@ -0,0 +1,9 @@ +<!doctype html> +<meta charset=utf-8> +<script> +self.expandosForever = true +self.location.expandosForever = true +function setDocumentDomain() { + document.domain = document.domain +} +</script> diff --git a/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/link-type-attribute-ref.html b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/link-type-attribute-ref.html new file mode 100644 index 00000000000..f32472105d5 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/link-type-attribute-ref.html @@ -0,0 +1,3 @@ +<!DOCTYPE html> +<p>You should see a green rectangle below</p> +<div style="width:100px;height:100px;background-color:green"></div> diff --git a/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/link-type-attribute.html b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/link-type-attribute.html new file mode 100644 index 00000000000..80acb9f3dcc --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/link-type-attribute.html @@ -0,0 +1,9 @@ +<!DOCTYPE html> +<link rel=match href=link-type-attribute-ref.html> +<link rel="stylesheet" type="application/javascript" href="data:text/css,div { background-color: red !important; }"> +<link rel="stylesheet" type="ABCtext/css" href="data:text/css,div { background-color: red !important; }"> +<link rel="stylesheet" type="text/cssDEF" href="data:text/css,div { background-color: red !important; }"> +<link rel="stylesheet" type="text/invalid" href="data:text/css,div { background-color: red !important; }"> +<link rel="stylesheet" type="invalid" href="data:text/css,div { background-color: red !important; }"> +<p>You should see a green rectangle below</p> +<div style="width:100px;height:100px;background-color:green"></div> diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/constraints/support/validator.js b/tests/wpt/web-platform-tests/html/semantics/forms/constraints/support/validator.js index 9b28b32309e..48c3a5b40e6 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/constraints/support/validator.js +++ b/tests/wpt/web-platform-tests/html/semantics/forms/constraints/support/validator.js @@ -4,11 +4,8 @@ var validator = { var self = this; test(function() { self.pre_check(ctl, 'tooLong'); - self.set_conditions(ctl, data.conditions); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; - if (data.dirty) - self.set_dirty(ctl); if (data.expected) assert_true( ctl.validity.tooLong, @@ -25,11 +22,8 @@ var validator = { var self = this; test(function () { self.pre_check(ctl, "tooShort"); - self.set_conditions(ctl, data.conditions); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; - if (data.dirty) - self.set_dirty(ctl); if (data.expected) assert_true( ctl.validity.tooShort, @@ -46,7 +40,6 @@ var validator = { var self = this; test(function () { self.pre_check(ctl, "patternMismatch"); - self.set_conditions(ctl, data.conditions); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; if (data.expected) @@ -65,7 +58,6 @@ var validator = { var self = this; test(function () { self.pre_check(ctl, "valueMissing"); - self.set_conditions(ctl, data.conditions); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; if (data.expected) @@ -84,7 +76,6 @@ var validator = { var self = this; test(function () { self.pre_check(ctl, "typeMismatch"); - self.set_conditions(ctl, data.conditions); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; if (data.expected) @@ -103,7 +94,6 @@ var validator = { var self = this; test(function () { self.pre_check(ctl, "rangeOverflow"); - self.set_conditions(ctl, data.conditions); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; if (data.expected) @@ -122,7 +112,6 @@ var validator = { var self = this; test(function () { self.pre_check(ctl, "rangeUnderflow"); - self.set_conditions(ctl, data.conditions); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; if (data.expected) @@ -141,7 +130,6 @@ var validator = { var self = this; test(function () { self.pre_check(ctl, "stepMismatch"); - self.set_conditions(ctl, data.conditions); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; if (data.expected) @@ -160,7 +148,6 @@ var validator = { var self = this; test(function () { self.pre_check(ctl, "badInput"); - self.set_conditions(ctl, data.conditions); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; if (data.expected) @@ -179,17 +166,24 @@ var validator = { var self = this; test(function () { self.pre_check(ctl, "customError"); - ctl.setCustomValidity(data.conditions.message); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; if (data.expected) { assert_true( ctl.validity.customError, 'The validity.customError attribute should be true' + condStr); - assert_equals( - ctl.validationMessage, data.conditions.message, - 'The validationMessage attribute should be \'' + - data.conditions.message + '\'' + condStr); + // validationMessage returns the empty string if ctl is barred from + // constraint validation, which happens if ctl is disabled. + if (ctl.disabled) { + assert_equals( + ctl.validationMessage, '', + 'The validationMessage attribute must be empty' + condStr); + } else { + assert_equals( + ctl.validationMessage, data.conditions.message, + 'The validationMessage attribute should be \'' + + data.conditions.message + '\'' + condStr); + } } else { assert_false( ctl.validity.customError, @@ -205,11 +199,8 @@ var validator = { test_isValid: function(ctl, data) { var self = this; test(function () { - self.set_conditions(ctl, data.conditions); self.iterate_over(ctl, data).forEach(function(val) { const {ctl, data, condStr} = val; - if (data.dirty) - self.set_dirty(ctl); if (data.expected) assert_true( ctl.validity.valid, @@ -352,7 +343,9 @@ var validator = { ctl.removeAttribute(item); }); for (var attr in obj) { - if (attr === "checked" || obj[attr] || obj[attr] === "") + if (attr === "message") + ctl.setCustomValidity(obj[attr]); + else if (attr === "checked" || obj[attr] || obj[attr] === "") ctl[attr] = obj[attr]; } }, @@ -398,12 +391,27 @@ var validator = { iterate_over: function(ctl, data) { // Iterate over normal, disabled, readonly, and both. var ctlDisabled = ctl.cloneNode(true); + this.set_conditions(ctlDisabled, data.conditions); + if (data.dirty) + this.set_dirty(ctlDisabled); ctlDisabled.disabled = true; + var ctlReadonly = ctl.cloneNode(true); + this.set_conditions(ctlReadonly, data.conditions); + if (data.dirty) + this.set_dirty(ctlReadonly); ctlReadonly.readonly = true; + var ctlBoth = ctl.cloneNode(true); + this.set_conditions(ctlBoth, data.conditions); + if (data.dirty) + this.set_dirty(ctlBoth); ctlBoth.disabled = true; ctlBoth.readonly = true; + + ctl = ctl.cloneNode(true); + this.set_conditions(ctl, data.conditions); + return [ {ctl: ctl, data: data, condStr: '.'}, {ctl: ctlDisabled, data: data, condStr: ', when control is disabled.'}, diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini index d97432ed39c..c7b3482c786 100644 --- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini +++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini @@ -1,5 +1,3 @@ [multiTouchPoints.html] - disabled: - if product == "chrome" and os != "mac": https://github.com/web-platform-tests/wpt/issues/20838 expected: if product == "firefox" or product == "safari" or product == "epiphany" or product == "webkit": ERROR diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseFirstPoint.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseFirstPoint.html.ini index 3adcbe68856..68ccafcec2a 100644 --- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseFirstPoint.html.ini +++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseFirstPoint.html.ini @@ -1,5 +1,3 @@ [multiTouchPointsReleaseFirstPoint.html] - disabled: - if product == "chrome": https://github.com/web-platform-tests/wpt/issues/20838 expected: if product == "firefox" or product == "safari": ERROR diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html.ini index d01525b3cfa..5d714dd7773 100644 --- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html.ini +++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html.ini @@ -1,5 +1,3 @@ [multiTouchPointsReleaseSecondPoint.html] - disabled: - if product == "chrome": https://github.com/web-platform-tests/wpt/issues/20838 expected: if product == "firefox" or product == "safari": ERROR diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html.ini index a87d9f936fd..40626b8193e 100644 --- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html.ini +++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html.ini @@ -1,5 +1,3 @@ [multiTouchPointsTwoTouchStarts.html] - disabled: - if product == "chrome" and os != "mac": https://github.com/web-platform-tests/wpt/issues/20838 - expected: - if product == "firefox" or product == "safari": ERROR + expected: + if product == "firefox" or product == "safari": ERROR diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini index fe1bf469f4f..4f1939a431a 100644 --- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini +++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini @@ -1,5 +1,3 @@ [multiTouchPointsWithPause.html] - disabled: - if product == "chrome": https://github.com/web-platform-tests/wpt/issues/20838 expected: if product == "firefox" or product == "safari": ERROR diff --git a/tests/wpt/web-platform-tests/layout-instability/shift-into-viewport.html b/tests/wpt/web-platform-tests/layout-instability/shift-into-viewport.html index 6ace93ad54c..61267a32648 100644 --- a/tests/wpt/web-platform-tests/layout-instability/shift-into-viewport.html +++ b/tests/wpt/web-platform-tests/layout-instability/shift-into-viewport.html @@ -4,7 +4,7 @@ <style> body { margin: 0; } -#j { position: relative; width: 600px; height: 200px; top: 600px; } +#j { position: absolute; width: 600px; height: 200px; top: 100%; } </style> <div id='j'></div> @@ -19,7 +19,9 @@ promise_test(async () => { // Wait for the initial render to complete. await waitForAnimationFrames(2); - document.querySelector("#j").style.top = "400px"; + // Move div partially into viewport. + document.querySelector("#j").style.top = + document.documentElement.clientHeight - 200 + "px"; // The element moves from outside the viewport to within the viewport, which // should generate a shift. diff --git a/tests/wpt/web-platform-tests/layout-instability/shift-outside-viewport.html b/tests/wpt/web-platform-tests/layout-instability/shift-outside-viewport.html index 49242913760..2d92835b889 100644 --- a/tests/wpt/web-platform-tests/layout-instability/shift-outside-viewport.html +++ b/tests/wpt/web-platform-tests/layout-instability/shift-outside-viewport.html @@ -4,7 +4,7 @@ <style> body { margin: 0; } -#j { position: relative; width: 600px; height: 200px; top: 600px; } +#j { position: absolute; width: 600px; height: 200px; top: 100%; } </style> <div id='j'></div> @@ -19,7 +19,9 @@ promise_test(async () => { // Wait for the initial render to complete. await waitForAnimationFrames(2); - document.querySelector("#j").style.top = "800px"; + // Move div even further out of viewport. + document.querySelector("#j").style.top = + document.documentElement.clientHeight + 200 + "px"; // Since the element moves entirely outside of the viewport, it shouldn't // generate a score. diff --git a/tests/wpt/web-platform-tests/lint.whitelist b/tests/wpt/web-platform-tests/lint.whitelist index d06f4c59bca..b5a8f806870 100644 --- a/tests/wpt/web-platform-tests/lint.whitelist +++ b/tests/wpt/web-platform-tests/lint.whitelist @@ -77,6 +77,7 @@ AHEM COPY: css/vendor-imports/mozilla/mozilla-central-reftests/*/Ahem.ttf # Intentional use of CRLF CR AT EOL: WebIDL/valid/idl/documentation-dos.widl CR AT EOL: cors/resources/cors-headers.asis +CR AT EOL: fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asis CR AT EOL: html/semantics/forms/the-textarea-element/multiline-placeholder-cr.html CR AT EOL: html/semantics/forms/the-textarea-element/multiline-placeholder-crlf.html CR AT EOL: html/semantics/forms/the-input-element/multiline-placeholder-cr.html diff --git a/tests/wpt/web-platform-tests/native-file-system/resources/native-fs-test-helpers.js b/tests/wpt/web-platform-tests/native-file-system/resources/native-fs-test-helpers.js index 5ad8c04724b..bcdfd484cf2 100644 --- a/tests/wpt/web-platform-tests/native-file-system/resources/native-fs-test-helpers.js +++ b/tests/wpt/web-platform-tests/native-file-system/resources/native-fs-test-helpers.js @@ -14,7 +14,7 @@ const directory_promise = (async () => { await window.test_driver.bless( 'show a file picker.<br />Please select an empty directory'); - const entries = await self.chooseFileSystemEntries({type: 'openDirectory'}); + const entries = await self.chooseFileSystemEntries({type: 'open-directory'}); assert_true(entries instanceof FileSystemHandle); assert_true(entries instanceof FileSystemDirectoryHandle); for await (const entry of entries.getEntries()) { diff --git a/tests/wpt/web-platform-tests/native-file-system/resources/opaque-origin-sandbox.html b/tests/wpt/web-platform-tests/native-file-system/resources/opaque-origin-sandbox.html index 937a6c385de..07301af1cfa 100644 --- a/tests/wpt/web-platform-tests/native-file-system/resources/opaque-origin-sandbox.html +++ b/tests/wpt/web-platform-tests/native-file-system/resources/opaque-origin-sandbox.html @@ -16,7 +16,7 @@ } try { - window.chooseFileSystemEntries({ type: 'openDirectory' }) + window.chooseFileSystemEntries({ type: 'open-directory' }) .then(() => { post_message('chooseFileSystemEntries(): FULFILLED'); }).catch(error => { diff --git a/tests/wpt/web-platform-tests/portals/predecessor-fires-unload.html b/tests/wpt/web-platform-tests/portals/predecessor-fires-unload.html new file mode 100644 index 00000000000..6512195eaf6 --- /dev/null +++ b/tests/wpt/web-platform-tests/portals/predecessor-fires-unload.html @@ -0,0 +1,37 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/open-blank-host.js"></script> +<script> +function nextEvent(target, type) { + return new Promise((resolve, reject) => target.addEventListener(type, e => resolve(e), {once: true})); +} + +function timePasses(delay) { + return new Promise((resolve, reject) => step_timeout(() => resolve(), delay)); +} + +promise_test(async () => { + const w = await openBlankPortalHost(); + try { + const portal = w.document.createElement('portal'); + portal.src = new URL('resources/simple-portal.html', location.href); + w.document.body.appendChild(portal); + const pagehideFired = nextEvent(w, 'pagehide'); + const unloadFired = nextEvent(w, 'unload'); + await portal.activate(); + assert_true((await pagehideFired) instanceof w.PageTransitionEvent); + assert_true((await unloadFired) instanceof w.Event); + } finally { + w.close(); + } +}, "pagehide and unload should fire if the predecessor is not adopted"); + +promise_test(async () => { + localStorage.setItem('predecessor-fires-unload-events', ''); + window.open('resources/predecessor-fires-unload-watch-unload.html', '_blank', 'noopener'); + while (localStorage.getItem('predecessor-fires-unload-events') != 'pagehide unload') { + await timePasses(50); + } +}, "pagehide and unload should fire if the predecessor is not adopted, even without a window/opener association"); +</script> diff --git a/tests/wpt/web-platform-tests/portals/resources/predecessor-fires-unload-watch-unload.html b/tests/wpt/web-platform-tests/portals/resources/predecessor-fires-unload-watch-unload.html new file mode 100644 index 00000000000..ada5a64967e --- /dev/null +++ b/tests/wpt/web-platform-tests/portals/resources/predecessor-fires-unload-watch-unload.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<body> +<script> +function nextEvent(target, type) { + return new Promise((resolve, reject) => target.addEventListener(type, e => resolve(e), {once: true})); +} + +onload = function() { + const portal = document.createElement('portal'); + portal.src = new URL('simple-portal.html', location.href); + document.body.appendChild(portal); + + let firedEvents = []; + for (let type of ['pagehide', 'unload']) { + nextEvent(window, type).then(() => { + firedEvents.push(type); + localStorage.setItem('predecessor-fires-unload-events', firedEvents.join(' ')); + }); + } + + portal.activate(); +} +</script> +</body> diff --git a/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js b/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js index a819a3b425b..b45ff20dbc4 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js +++ b/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js @@ -228,7 +228,7 @@ class MockRuntime { this.framesOfReference = {}; - this.input_sources_ = []; + this.input_sources_ = new Map(); this.next_input_source_index_ = 1; let supportedModes = []; @@ -421,7 +421,7 @@ class MockRuntime { this.next_input_source_index_++; let source = new MockXRInputSource(fakeInputSourceInit, index, this); - this.input_sources_.push(source); + this.input_sources_.set(index, source); return source; } @@ -540,17 +540,13 @@ class MockRuntime { // These methods are intended to be used by MockXRInputSource only. addInputSource(source) { - let index = this.input_sources_.indexOf(source); - if (index == -1) { - this.input_sources_.push(source); + if(!this.input_sources_.has(source.source_id_)) { + this.input_sources_.set(source.source_id_, source); } } removeInputSource(source) { - let index = this.input_sources_.indexOf(source); - if (index >= 0) { - this.input_sources_.splice(index, 1); - } + this.input_sources_.delete(source.source_id_); } // Mojo function implementations. @@ -561,7 +557,6 @@ class MockRuntime { this.send_mojo_space_reset_ = false; if (this.pose_) { this.pose_.poseIndex++; - } // Setting the input_state to null tests a slightly different path than @@ -569,10 +564,10 @@ class MockRuntime { // code always sends up an empty array, but it's also valid mojom to send // up a null array. let input_state = null; - if (this.input_sources_.length > 0) { + if (this.input_sources_.size > 0) { input_state = []; - for (let i = 0; i < this.input_sources_.length; i++) { - input_state.push(this.input_sources_[i].getInputSourceState()); + for (let input_source of this.input_sources_.values()) { + input_state.push(input_source.getInputSourceState()); } } @@ -739,12 +734,14 @@ class MockXRInputSource { } setGripOrigin(transform, emulatedPosition = false) { + // grip_origin was renamed to mojo_from_input in mojo this.mojo_from_input_ = new gfx.mojom.Transform(); this.mojo_from_input_.matrix = getMatrixFromTransform(transform); this.emulated_position_ = emulatedPosition; } clearGripOrigin() { + // grip_origin was renamed to mojo_from_input in mojo if (this.mojo_from_input_ != null) { this.mojo_from_input_ = null; this.emulated_position_ = false; @@ -752,6 +749,7 @@ class MockXRInputSource { } setPointerOrigin(transform, emulatedPosition = false) { + // pointer_origin was renamed to input_from_pointer in mojo this.desc_dirty_ = true; this.input_from_pointer_ = new gfx.mojom.Transform(); this.input_from_pointer_.matrix = getMatrixFromTransform(transform); diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py index f16cc14cead..8fcf66d64ed 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py @@ -5,7 +5,7 @@ from abc import ABCMeta, abstractmethod from six.moves.queue import Empty from collections import defaultdict, deque from multiprocessing import Queue -from six import iteritems +from six import ensure_binary, iteritems from six.moves import xrange from . import manifestinclude @@ -51,7 +51,7 @@ class HashChunker(TestChunker): def __call__(self, manifest): chunk_index = self.chunk_number - 1 for test_type, test_path, tests in manifest: - h = int(hashlib.md5(test_path).hexdigest(), 16) + h = int(hashlib.md5(ensure_binary(test_path)).hexdigest(), 16) if h % self.total_chunks == chunk_index: yield test_type, test_path, tests @@ -65,7 +65,7 @@ class DirectoryHashChunker(TestChunker): def __call__(self, manifest): chunk_index = self.chunk_number - 1 for test_type, test_path, tests in manifest: - h = int(hashlib.md5(os.path.dirname(test_path)).hexdigest(), 16) + h = int(hashlib.md5(ensure_binary(os.path.dirname(test_path))).hexdigest(), 16) if h % self.total_chunks == chunk_index: yield test_type, test_path, tests diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py index ca5118009cf..efc1a16a932 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py @@ -1,4 +1,7 @@ -import cgi +try: + import html +except ImportError: + import cgi as html import json import os import sys @@ -76,7 +79,7 @@ class DirectoryHandler(object): <ul> %(items)s </ul> -""" % {"path": cgi.escape(url_path), +""" % {"path": html.escape(url_path), "items": "\n".join(self.list_items(url_path, path))} # noqa: E122 def list_items(self, base_path, path): @@ -93,14 +96,14 @@ class DirectoryHandler(object): yield ("""<li class="dir"><a href="%(link)s">%(name)s</a></li>""" % {"link": link, "name": ".."}) for item in sorted(os.listdir(path)): - link = cgi.escape(quote(item)) + link = html.escape(quote(item)) if os.path.isdir(os.path.join(path, item)): link += "/" class_ = "dir" else: class_ = "file" yield ("""<li class="%(class)s"><a href="%(link)s">%(name)s</a></li>""" % - {"link": link, "name": cgi.escape(item), "class": class_}) + {"link": link, "name": html.escape(item), "class": class_}) def wrap_pipeline(path, request, response): diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py index ceb34cc3f4f..e5d6e1c96db 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py +++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py @@ -1,4 +1,7 @@ -from cgi import escape +try: + from html import escape +except ImportError: + from cgi import escape from collections import deque import base64 import gzip as gzip_module diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html index c5179a72c9d..65f89b3e04c 100644 --- a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html +++ b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html @@ -5,6 +5,7 @@ <title>reverse running animation</title> <link rel="match" href="reverse-running-animation-ref.html"> <script src="/common/reftest-wait.js"></script> +<script src="../../testcommon.js"></script> <style> #box, #overlay { /* Add a border to ensure that anti-aliasing does not leak blue pixels @@ -44,24 +45,25 @@ </p> </body> <script> - onload = function() { + onload = async function() { // Double rAF to ensure that we are not bogged down during initialization // and the compositor is ready. - requestAnimationFrame(() => { - requestAnimationFrame(() => { - const elem = document.getElementById('box'); - const anim = elem.animate([ - { transform: 'translateX(100px)' }, - { transform: 'translateX(100px)' }, - { transform: 'translateX(200px)' }, - { transform: 'translateX(200px)' } - ], { - duration: 1000 - }); - setTimeout(() => { + waitForAnimationFrames(2).then(() => { + const elem = document.getElementById('box'); + const anim = elem.animate([ + { transform: 'translateX(100px)' }, + { transform: 'translateX(100px)', offset: 0.49 }, + { transform: 'translateX(200px)', offset: 0.51 }, + { transform: 'translateX(200px)' } + ], { + duration: 10000, + }); + anim.ready.then(() => { + anim.currentTime = 5000; + requestAnimationFrame(() => { anim.reverse(); - }, 500); - takeScreenshotDelayed(900); + takeScreenshotDelayed(1000); + }); }); }); }; diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html index 1c842f5c7b6..4e53828c310 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html @@ -12,11 +12,21 @@ }, 'NDEFMessage constructor without init dict'); test(() => { - const message = new NDEFMessage(null); - assert_equals(message.records.length, 0, 'empty records'); + assert_throws(new TypeError, () => new NDEFMessage(null), + 'NDEFMessageInit#records is a required field.'); }, 'NDEFMessage constructor with null init dict'); test(() => { + assert_throws(new TypeError, () => new NDEFMessage({dummy_key: 'dummy_value'}), + 'NDEFMessageInit#records is a required field.'); + }, 'NDEFMessage constructor without NDEFMessageInit#records field'); + + test(() => { + assert_throws(new TypeError, () => new NDEFMessage({records: []}), + 'NDEFMessageInit#records should not be empty.'); + }, 'NDEFMessage constructor with NDEFMessageInit#records being empty'); + + test(() => { const message = new NDEFMessage( createMessage([createTextRecord(test_text_data)])); assert_equals(message.records.length, 1, 'one text record'); diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFReadingEvent_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFReadingEvent_constructor.https.html index cc56f8a18bd..5427b75ae2b 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFReadingEvent_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFReadingEvent_constructor.https.html @@ -12,6 +12,12 @@ }, 'NDEFReadingEvent constructor without init dict'); test(() => { + assert_throws(new TypeError, () => new NDEFReadingEvent('type', + {serialNumber: '', message: null}), + 'NDEFMessageInit#records is a required field.'); + }, 'NDEFReadingEvent constructor failed to construct its NDEFMessage'); + + test(() => { const message = createMessage([createMimeRecordFromJson(test_buffer_data)]); const event = new NDEFReadingEvent('type', {serialNumber: null, message: message}); assert_equals(event.serialNumber, '', 'serialNumber'); @@ -24,11 +30,6 @@ }, 'NDEFReadingEvent constructor with serialNumber not present'); test(() => { - const event = new NDEFReadingEvent('type', {serialNumber: '', message: null}); - assert_equals(0, event.message.records.length, 'no records'); - }, 'NDEFReadingEvent constructor with null message'); - - test(() => { const message = createMessage([createMimeRecord(test_buffer_data)]); const event = new NDEFReadingEvent('type', {serialNumber: '', message: message}); assert_equals(event.type, 'type', 'type'); diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html index c62ea7b0d62..2da7ca91078 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html @@ -13,10 +13,15 @@ test(() => { assert_throws(new TypeError, () => new NDEFRecord(null), - 'The record has neither type nor data.'); + 'NDEFRecordInit#recordType is a required field.'); }, 'NDEFRecord constructor with null init dict'); test(() => { + assert_throws(new TypeError, () => new NDEFRecord({id: test_record_id, data: test_text_data}), + 'NDEFRecordInit#recordType is a required field.'); + }, 'NDEFRecord constructor without NDEFRecordInit#recordType field'); + + test(() => { assert_throws(new TypeError, () => new NDEFRecord( createRecord('empty', test_text_data, test_record_id)), 'id does not apply for empty record type.'); diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html index 1bdbf0bb50b..4ff0af8fb0b 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html @@ -388,20 +388,6 @@ nfc_test(async (t, mockNFC) => { nfc_test(async (t, mockNFC) => { const writer = new NDEFWriter(); - await writer.push({ records: [{ data: test_text_data}] }); - assertNDEFMessagesEqual(test_text_data, mockNFC.pushedMessage()); -}, "Test that recordType should be set to 'text' if NDEFRecordInit.record's \ -recordType is undefined and NDEFRecordInit.record's data is DOMString."); - -nfc_test(async (t, mockNFC) => { - const writer = new NDEFWriter(); - await writer.push({ records: [{ data: test_buffer_data}] }); - assertNDEFMessagesEqual(test_buffer_data, mockNFC.pushedMessage()); -}, "Test that recordType should be set to 'mime' if NDEFRecordInit.record's \ -recordType is undefined and NDEFRecordInit.record's data is not DOMString."); - -nfc_test(async (t, mockNFC) => { - const writer = new NDEFWriter(); await writer.push({ records: [{ recordType: "mime", data: test_buffer_data }] }); assertNDEFMessagesEqual(test_buffer_data, mockNFC.pushedMessage()); }, "Test that mediaType should be set to 'application/octet-stream' if \ diff --git a/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-close.html b/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-close.html new file mode 100644 index 00000000000..9f43dc93c5b --- /dev/null +++ b/tests/wpt/web-platform-tests/webrtc/RTCDataChannel-close.html @@ -0,0 +1,75 @@ +<!doctype html> +<meta charset=utf-8> +<meta name="timeout" content="long"> +<title>RTCDataChannel.prototype.close</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="RTCPeerConnection-helper.js"></script> +<script> +'use strict'; + +promise_test(async t => { + let pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + let [channel1, channel2] = await createDataChannelPair(pc1); + let close_handler = new Promise(resolve => { + channel2.onclose = event => { + resolve(); + }; + }); + channel2.addEventListener('error', t.unreached_func()); + channel1.close(); + await close_handler; +}, 'Close datachannel causes onclose to be called'); + +promise_test(async t => { + // This is the same test as above, but using addEventListener + // rather than the "onclose" attribute. + let pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + let [channel1, channel2] = await createDataChannelPair(pc1); + let close_handler = new Promise(resolve => { + channel2.addEventListener('close', event => { + resolve(); + }); + }); + channel2.addEventListener('error', t.unreached_func()); + channel1.close(); + await close_handler; +}, 'Close datachannel causes close event to be called'); + +promise_test(async t => { + let pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + let [channel1, channel2] = await createDataChannelPair(pc1); + let events = []; + let error = null; + let close_handler = new Promise(resolve => { + channel2.addEventListener('close', event => { + events.push('close'); + resolve(); + }); + }); + let error_handler = new Promise((resolve, reject) => { + channel2.addEventListener('error', event => { + events.push('error'); + try { + assert_true(event instanceof RTCErrorEvent); + error = event.error; + } catch (e) { + // Prevent test from hanging when an assert in the error handler fails. + reject('Error event wrong: ' + e); + } + resolve(); + }); + }); + pc1.close(); + await error_handler; + await close_handler; + // Error should fire before close. + assert_array_equals(['error', 'close'], events); + assert_true(error instanceof RTCError); + assert_equals(error.name, 'OperationError'); +}, 'Close peerconnection causes close event and error to be called'); + +</script> diff --git a/tests/wpt/web-platform-tests/webrtc/RTCError.html b/tests/wpt/web-platform-tests/webrtc/RTCError.html index 4d0726093c1..9c7227521ed 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCError.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCError.html @@ -35,8 +35,8 @@ test(() => { test(() => { const error = new RTCError({errorDetail:'data-channel-failure'}, 'message'); - assert_equals(error.name, 'RTCError'); -}, 'RTCError.name is \'RTCError\''); + assert_equals(error.name, 'OperationError'); +}, 'RTCError.name is \'OperationError\''); test(() => { const error = new RTCError({errorDetail:'data-channel-failure'}, 'message'); diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-close.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-close.html new file mode 100644 index 00000000000..74f816bf3fc --- /dev/null +++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-close.html @@ -0,0 +1,18 @@ +<!doctype html> +<meta charset=utf-8> +<title>RTCPeerConnection.prototype.close</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +'use strict'; + + promise_test(async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + pc.onsignalingstatechange = t.unreached_func(); + pc.close(); + assert_true(pc.signalingState === 'closed'); + await new Promise(r => t.step_timeout(r, 100)); + }, 'RTCPeerConnection.close() does not fire signalingstatechange event.'); +</script> diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-connectionState.https.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-connectionState.https.html index 9ed5808727a..a054a1e8ccc 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-connectionState.https.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-connectionState.https.html @@ -270,4 +270,22 @@ assert_array_equals(states, ['connecting', 'connected']); }, 'connectionState transitions to connected via connecting'); + + promise_test(async t => { + const pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + const pc2 = new RTCPeerConnection(); + const stream = await getNoiseStream({ audio: true }); + t.add_cleanup(() => stream.getTracks().forEach(track => track.stop())); + + stream.getTracks().forEach(track => pc1.addTrack(track, stream)); + exchangeIceCandidates(pc1, pc2); + doSignalingHandshake(pc1, pc2); + await listenToIceConnected(pc2); + + pc2.onconnectionstatechange = t.unreached_func(); + pc2.close(); + assert_true(pc2.connectionState === 'closed'); + await new Promise(r => t.step_timeout(r, 100)); + }, 'Closing a PeerConnection should not fire connectionstatechange event'); </script> diff --git a/tests/wpt/web-platform-tests/webxr/resources/webxr_test_asserts.js b/tests/wpt/web-platform-tests/webxr/resources/webxr_test_asserts.js index 863b9945724..38f1364ce03 100644 --- a/tests/wpt/web-platform-tests/webxr/resources/webxr_test_asserts.js +++ b/tests/wpt/web-platform-tests/webxr/resources/webxr_test_asserts.js @@ -5,7 +5,7 @@ // |p1|, |p2| - objects with x, y, z, w components that are floating point numbers // |epsilon| - float specifying precision // |prefix| - string used as a prefix for logging -let assert_point_approx_equals = function(p1, p2, epsilon = FLOAT_EPSILON, prefix = "") { +const assert_point_approx_equals = function(p1, p2, epsilon = FLOAT_EPSILON, prefix = "") { if (p1 == null && p2 == null) { return; } @@ -33,7 +33,7 @@ let assert_point_approx_equals = function(p1, p2, epsilon = FLOAT_EPSILON, prefi // |p1|, |p2| - objects with x, y, z, w components that are floating point numbers // |epsilon| - float specifying precision // |prefix| - string used as a prefix for logging -let assert_point_significantly_not_equals = function(p1, p2, epsilon = FLOAT_EPSILON, prefix = "") { +const assert_point_significantly_not_equals = function(p1, p2, epsilon = FLOAT_EPSILON, prefix = "") { assert_not_equals(p1, null, prefix + "p1 must be non-null"); assert_not_equals(p2, null, prefix + "p2 must be non-null"); @@ -55,10 +55,25 @@ let assert_point_significantly_not_equals = function(p1, p2, epsilon = FLOAT_EPS } }; +// |t1|, |t2| - objects containing position and orientation. +// |epsilon| - float specifying precision +// |prefix| - string used as a prefix for logging +const assert_transform_approx_equals = function(t1, t2, epsilon = FLOAT_EPSILON, prefix = "") { + if (t1 == null && t2 == null) { + return; + } + + assert_not_equals(t1, null, prefix + "t1 must be non-null"); + assert_not_equals(t2, null, prefix + "t2 must be non-null"); + + assert_point_approx_equals(t1.position, t2.position, epsilon, prefix + "positions must be equal"); + assert_point_approx_equals(t1.orientation, t2.orientation, epsilon, prefix + "orientations must be equal"); +}; + // |m1|, |m2| - arrays of floating point numbers // |epsilon| - float specifying precision // |prefix| - string used as a prefix for logging -let assert_matrix_approx_equals = function(m1, m2, epsilon = FLOAT_EPSILON, prefix = "") { +const assert_matrix_approx_equals = function(m1, m2, epsilon = FLOAT_EPSILON, prefix = "") { if (m1 == null && m2 == null) { return; } @@ -89,13 +104,12 @@ let assert_matrix_approx_equals = function(m1, m2, epsilon = FLOAT_EPSILON, pref m1[mismatched_element], m2[mismatched_element], epsilon, error_message); } -} - +}; // |m1|, |m2| - arrays of floating point numbers // |epsilon| - float specifying precision // |prefix| - string used as a prefix for logging -let assert_matrix_significantly_not_equals = function(m1, m2, epsilon = FLOAT_EPSILON, prefix = "") { +const assert_matrix_significantly_not_equals = function(m1, m2, epsilon = FLOAT_EPSILON, prefix = "") { if (m1 == null && m2 == null) { return; } @@ -133,13 +147,13 @@ let assert_matrix_significantly_not_equals = function(m1, m2, epsilon = FLOAT_EP assert_unreached(error_message); } -} +}; // |r1|, |r2| - XRRay objects // |epsilon| - float specifying precision // |prefix| - string used as a prefix for logging -let assert_ray_approx_equals = function(r1, r2, epsilon = FLOAT_EPSILON, prefix = "") { +const assert_ray_approx_equals = function(r1, r2, epsilon = FLOAT_EPSILON, prefix = "") { assert_point_approx_equals(r1.origin, r2.origin, epsilon, prefix + "origin:"); assert_point_approx_equals(r1.direction, r2.direction, epsilon, prefix + "direction:"); assert_matrix_approx_equals(r1.matrix, r2.matrix, epsilon, prefix + "matrix:"); -} +}; diff --git a/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants_fake_world.js b/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants_fake_world.js new file mode 100644 index 00000000000..0601f54fce9 --- /dev/null +++ b/tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants_fake_world.js @@ -0,0 +1,75 @@ +'use strict'; + +// This file introduces constants used to mock fake world for the purposes of hit test. + +// Generates FakeXRWorldInit dictionary with given dimensions. +// The generated fake world will have floor and front wall treated as planes, +// side walls treated as meshes, and ceiling treated as points. +// width - X axis, in meters +// height - Y axis, in meters +// length - Z axis, in meters +function createFakeWorld(width, height, length) { + // Vertices: + const BOTTOM_LEFT_FRONT = { x: -width/2, y: 0, z: -length/2, w: 1}; + const BOTTOM_RIGHT_FRONT = { x: width/2, y: 0, z: -length/2, w: 1}; + + const TOP_LEFT_FRONT = { x: -width/2, y: height, z: -length/2, w: 1}; + const TOP_RIGHT_FRONT = { x: width/2, y: height, z: -length/2, w: 1}; + + const BOTTOM_LEFT_BACK = { x: -width/2, y: 0, z: length/2, w: 1}; + const BOTTOM_RIGHT_BACK = { x: width/2, y: 0, z: length/2, w: 1}; + + const TOP_LEFT_BACK = { x: -width/2, y: height, z: length/2, w: 1}; + const TOP_RIGHT_BACK = { x: width/2, y: height, z: length/2, w: 1}; + + // Faces: + const FRONT_WALL_AND_FLOOR_FACES = [ + // Front wall: + [BOTTOM_LEFT_FRONT, BOTTOM_RIGHT_FRONT, TOP_RIGHT_FRONT], + [BOTTOM_LEFT_FRONT, TOP_RIGHT_FRONT, TOP_LEFT_FRONT], + // Floor: + [BOTTOM_LEFT_FRONT, BOTTOM_RIGHT_FRONT, BOTTOM_RIGHT_BACK], + [BOTTOM_LEFT_FRONT, BOTTOM_LEFT_BACK, BOTTOM_RIGHT_BACK], + ]; + + const CEILING_FACES = [ + // Ceiling: + [TOP_LEFT_FRONT, TOP_RIGHT_FRONT, TOP_RIGHT_BACK], + [TOP_LEFT_FRONT, TOP_LEFT_BACK, TOP_RIGHT_BACK], + ]; + + const SIDE_WALLS_FACES = [ + // Left: + [BOTTOM_LEFT_FRONT, TOP_LEFT_FRONT, TOP_LEFT_BACK], + [BOTTOM_LEFT_FRONT, BOTTOM_LEFT_BACK, TOP_LEFT_BACK], + // Right: + [BOTTOM_RIGHT_FRONT, TOP_RIGHT_FRONT, TOP_RIGHT_BACK], + [BOTTOM_RIGHT_FRONT, BOTTOM_RIGHT_BACK, TOP_RIGHT_BACK], + ]; + + // Regions: + const FRONT_WALL_AND_FLOOR_REGION = { + type: "plane", + faces: FRONT_WALL_AND_FLOOR_FACES, + }; + + const SIDE_WALLS_REGION = { + type: "mesh", + faces: SIDE_WALLS_FACES, + }; + + const CEILING_REGION = { + type: "point", + faces: CEILING_FACES, + }; + + return { + hitTestRegions : [ + FRONT_WALL_AND_FLOOR_REGION, + SIDE_WALLS_REGION, + CEILING_REGION, + ] + }; +} + +const VALID_FAKE_WORLD = createFakeWorld(5.0, 2.0, 5.0); diff --git a/tests/wpt/web-platform-tests/webxr/xrRigidTransform_inverse.https.html b/tests/wpt/web-platform-tests/webxr/xrRigidTransform_inverse.https.html index a314f6b55a2..3098fb64936 100644 --- a/tests/wpt/web-platform-tests/webxr/xrRigidTransform_inverse.https.html +++ b/tests/wpt/web-platform-tests/webxr/xrRigidTransform_inverse.https.html @@ -3,6 +3,7 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/webxr_util.js"></script> <script src="resources/webxr_test_constants.js"></script> +<script src="resources/webxr_test_asserts.js"></script> <canvas id="webgl-canvas"></canvas> <script> @@ -12,18 +13,6 @@ let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE; let testFunction = (session, fakeDeviceController, t) => new Promise((resolve, reject) => { - function assert_point_approx_equals(a, b) { - assert_approx_equals(a.x, b.x, FLOAT_EPSILON); - assert_approx_equals(a.y, b.y, FLOAT_EPSILON); - assert_approx_equals(a.z, b.z, FLOAT_EPSILON); - assert_approx_equals(a.w, b.w, FLOAT_EPSILON); - }; - - function assert_transform_approx_equals(a, b) { - assert_point_approx_equals(a.position, b.position); - assert_point_approx_equals(a.orientation, b.orientation); - }; - // An identity transform should be equal to it's inverse. let identity_transform = new XRRigidTransform(); t.step(() => { diff --git a/tests/wpt/web-platform-tests/xhr/resources/parse-headers.py b/tests/wpt/web-platform-tests/xhr/resources/parse-headers.py index fdc626539e8..c661f22c3e9 100644 --- a/tests/wpt/web-platform-tests/xhr/resources/parse-headers.py +++ b/tests/wpt/web-platform-tests/xhr/resources/parse-headers.py @@ -1,10 +1,6 @@ -import json - def main(request, response): - content = "" if "my-custom-header" in request.GET: val = request.GET.first("my-custom-header") response.headers.set("My-Custom-Header", val) - return content |