aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata/MANIFEST.json877
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-default.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-composited.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-computed-style.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-content-images.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-dynamic1.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-dynamic2.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image-image-document.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-from-image.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-computed-style.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-content-images.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none-image-document.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-orientation/image-orientation-none.html.ini2
-rw-r--r--tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini4
-rw-r--r--tests/wpt/metadata/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html.ini2
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini38
-rw-r--r--tests/wpt/metadata/fetch/h1-parsing/resources-with-0x00-in-header.window.js.ini4
-rw-r--r--tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini7
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini4
-rw-r--r--tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/document-metadata/the-link-element/link-type-attribute.html.ini2
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini3
-rw-r--r--tests/wpt/metadata/resource-timing/crossorigin-sandwich-TAO.sub.html.ini1
-rw-r--r--tests/wpt/metadata/webmessaging/with-ports/018.html.ini5
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/017.html.ini5
-rw-r--r--tests/wpt/web-platform-tests/common/security-features/README.md6
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-default.html64
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic1.html72
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited-dynamic2.html64
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-composited.html66
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-computed-style.html57
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-content-images.html90
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic1.html72
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-dynamic2.html63
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image-image-document.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-from-image.html65
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-computed-style.html47
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-content-images.html77
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none-image-document.html40
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/image-orientation-none.html38
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-default-ref.html62
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-content-images-ref.html87
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-image-document-ref.html35
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-from-image-ref.html62
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-content-images-ref.html74
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-image-document-ref.html37
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/reference/image-orientation-none-ref.html35
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-1-ul-pre-rotated.jpgbin0 -> 3535 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-1-ul.jpgbin0 -> 3711 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-2-ur-pre-rotated.jpgbin0 -> 2195 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-2-ur.jpgbin0 -> 2394 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-3-lr-pre-rotated.jpgbin0 -> 2194 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-3-lr.jpgbin0 -> 2396 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-4-lol-pre-rotated.jpgbin0 -> 1517 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-4-lol.jpgbin0 -> 2395 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-5-lu-pre-rotated.jpgbin0 -> 2261 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-5-lu.jpgbin0 -> 2395 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-6-ru-pre-rotated.jpgbin0 -> 2259 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-6-ru.jpgbin0 -> 2394 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-7-rl-pre-rotated.jpgbin0 -> 2271 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-7-rl.jpgbin0 -> 2395 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-8-llo-pre-rotated.jpgbin0 -> 2266 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-8-llo.jpgbin0 -> 2395 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-9-u-pre-rotated.jpgbin0 -> 2195 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-orientation/support/exif-orientation-9-u.jpgbin0 -> 2395 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-multicol/intrinsic-width-change-column-count.html15
-rw-r--r--tests/wpt/web-platform-tests/css/css-pseudo/marker-content-017-ref.html18
-rw-r--r--tests/wpt/web-platform-tests/css/css-pseudo/marker-content-017.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-pseudo/marker-content-018-ref.html61
-rw-r--r--tests/wpt/web-platform-tests/css/css-pseudo/marker-content-018.html65
-rw-r--r--tests/wpt/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-default-ref.html15
-rw-r--r--tests/wpt/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-normal-ref.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-ruby/ruby-bidi-003-ref.html6
-rw-r--r--tests/wpt/web-platform-tests/css/css-ruby/ruby-bidi-003.html8
-rw-r--r--tests/wpt/web-platform-tests/css/css-shadow-parts/style-sharing.html23
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe-ref.html4
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/remove-from-shadow-host-and-adopt-into-iframe.html29
-rw-r--r--tests/wpt/web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window.js31
-rw-r--r--tests/wpt/web-platform-tests/fetch/h1-parsing/resources/README.md6
-rw-r--r--tests/wpt/web-platform-tests/fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asisbin0 -> 546 bytes
-rw-r--r--tests/wpt/web-platform-tests/fetch/h1-parsing/resources/document-with-0x00-in-header.py4
-rw-r--r--tests/wpt/web-platform-tests/fetch/h1-parsing/resources/script-with-0x00-in-header.py4
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-due-to-document-domain-only.html33
-rw-r--r--tests/wpt/web-platform-tests/html/browsers/origin/cross-origin-objects/resources/cross-origin-due-to-document-domain-only-helper.html9
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/link-type-attribute-ref.html3
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/document-metadata/the-link-element/link-type-attribute.html9
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/forms/constraints/support/validator.js52
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPoints.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseFirstPoint.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsReleaseSecondPoint.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsTwoTouchStarts.html.ini6
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/actions/multiTouchPointsWithPause.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/layout-instability/shift-into-viewport.html6
-rw-r--r--tests/wpt/web-platform-tests/layout-instability/shift-outside-viewport.html6
-rw-r--r--tests/wpt/web-platform-tests/lint.whitelist1
-rw-r--r--tests/wpt/web-platform-tests/native-file-system/resources/native-fs-test-helpers.js2
-rw-r--r--tests/wpt/web-platform-tests/native-file-system/resources/opaque-origin-sandbox.html2
-rw-r--r--tests/wpt/web-platform-tests/portals/predecessor-fires-unload.html37
-rw-r--r--tests/wpt/web-platform-tests/portals/resources/predecessor-fires-unload-watch-unload.html24
-rw-r--r--tests/wpt/web-platform-tests/resources/chromium/webxr-test.js24
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py6
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/handlers.py11
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/pipes.py5
-rw-r--r--tests/wpt/web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html32
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html14
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/NDEFReadingEvent_constructor.https.html11
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html7
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/NDEFWriter_push.https.html14
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCDataChannel-close.html75
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCError.html4
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-close.html18
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-connectionState.https.html18
-rw-r--r--tests/wpt/web-platform-tests/webxr/resources/webxr_test_asserts.js32
-rw-r--r--tests/wpt/web-platform-tests/webxr/resources/webxr_test_constants_fake_world.js75
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrRigidTransform_inverse.https.html13
-rw-r--r--tests/wpt/web-platform-tests/xhr/resources/parse-headers.py4
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&deg;
+ </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&deg; CCW and flipped vertically
+ </div>
+ <div>
+ <img src="support/exif-orientation-6-ru.jpg"/>
+ <br>Rotated 90&deg; CW
+ </div>
+ <div>
+ <img src="support/exif-orientation-7-rl.jpg"/>
+ <br>Rotated 90&deg; CW and flipped vertically
+ </div>
+ <div>
+ <img src="support/exif-orientation-8-llo.jpg"/>
+ <br>Rotated 90&deg; 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&deg;
+ </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&deg; CCW and flipped vertically
+ </div>
+ <div>
+ <img id="img6" src="support/exif-orientation-6-ru.jpg"/>
+ <br>Rotated 90&deg; CW
+ </div>
+ <div>
+ <img id="img7" src="support/exif-orientation-7-rl.jpg"/>
+ <br>Rotated 90&deg; CW and flipped vertically
+ </div>
+ <div>
+ <img id="img8" src="support/exif-orientation-8-llo.jpg"/>
+ <br>Rotated 90&deg; 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&deg;
+ </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&deg; CCW and flipped vertically
+ </div>
+ <div>
+ <img src="support/exif-orientation-6-ru.jpg"/>
+ <br>Rotated 90&deg; CW
+ </div>
+ <div>
+ <img src="support/exif-orientation-7-rl.jpg"/>
+ <br>Rotated 90&deg; CW and flipped vertically
+ </div>
+ <div>
+ <img src="support/exif-orientation-8-llo.jpg"/>
+ <br>Rotated 90&deg; 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&deg;
+ </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&deg; CCW and flipped vertically
+ </div>
+ <div class="container">
+ <div class="image" style="content: url(support/exif-orientation-6-ru.jpg)"></div>
+ <br>Rotated 90&deg; CW
+ </div>
+ <div class="container">
+ <div class="image" style="content: url(support/exif-orientation-7-rl.jpg)"></div>
+ <br>Rotated 90&deg; CW and flipped vertically
+ </div>
+ <div class="container">
+ <div class="image" style="content: url(support/exif-orientation-8-llo.jpg)"></div>
+ <br>Rotated 90&deg; CCW
+ </div>
+ <br>
+ <div class="container">
+ <img style="background-image: url(support/exif-orientation-5-lu.jpg)"></img>
+ <br>Rotated 90&deg; CCW and flipped vertically
+ </div>
+ <div class="container">
+ <img style="background-image: url(support/exif-orientation-6-ru.jpg)"></img>
+ <br>Rotated 90&deg; CW
+ </div>
+ <div class="container">
+ <img style="background-image: url(support/exif-orientation-7-rl.jpg)"></img>
+ <br>Rotated 90&deg; CW and flipped vertically
+ </div>
+ <div class="container">
+ <img style="background-image: url(support/exif-orientation-8-llo.jpg)"></img>
+ <br>Rotated 90&deg; 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&deg;
+ </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&deg; CCW and flipped vertically
+ </div>
+ <div>
+ <img id="img6" src="support/exif-orientation-6-ru.jpg"/>
+ <br>Rotated 90&deg; CW
+ </div>
+ <div>
+ <img id="img7" src="support/exif-orientation-7-rl.jpg"/>
+ <br>Rotated 90&deg; CW and flipped vertically
+ </div>
+ <div>
+ <img id="img8" src="support/exif-orientation-8-llo.jpg"/>
+ <br>Rotated 90&deg; 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&deg;
+ </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&deg; CCW and flipped vertically
+ </div>
+ <div>
+ <img src="support/exif-orientation-6-ru.jpg"/>
+ <br>Rotated 90&deg; CW
+ </div>
+ <div>
+ <img src="support/exif-orientation-7-rl.jpg"/>
+ <br>Rotated 90&deg; CW and flipped vertically
+ </div>
+ <div>
+ <img src="support/exif-orientation-8-llo.jpg"/>
+ <br>Rotated 90&deg; 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&deg;
+ </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&deg; CCW and flipped vertically
+ </div>
+ <div>
+ <img src="../support/exif-orientation-6-ru-pre-rotated.jpg">
+ <br>Rotated 90&deg; CW
+ </div>
+ <div>
+ <img src="../support/exif-orientation-7-rl-pre-rotated.jpg">
+ <br>Rotated 90&deg; CW and flipped vertically
+ </div>
+ <div>
+ <img src="../support/exif-orientation-8-llo-pre-rotated.jpg">
+ <br>Rotated 90&deg; 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&deg;
+ </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&deg; 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&deg; CW
+ </div>
+ <div class="container">
+ <div class="image" style="content: url(../support/exif-orientation-7-rl-pre-rotated.jpg)"></div>
+ <br>Rotated 90&deg; 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&deg; CCW
+ </div>
+ <br>
+ <div class="container">
+ <img style="background-image: url(../support/exif-orientation-5-lu-pre-rotated.jpg)"></img>
+ <br>Rotated 90&deg; 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&deg; CW
+ </div>
+ <div class="container">
+ <img style="background-image: url(../support/exif-orientation-7-rl-pre-rotated.jpg)"></img>
+ <br>Rotated 90&deg; 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&deg; 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&deg;
+ </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&deg; CCW and flipped vertically
+ </div>
+ <div>
+ <img src="../support/exif-orientation-6-ru-pre-rotated.jpg">
+ <br>Rotated 90&deg; CW
+ </div>
+ <div>
+ <img src="../support/exif-orientation-7-rl-pre-rotated.jpg">
+ <br>Rotated 90&deg; CW and flipped vertically
+ </div>
+ <div>
+ <img src="../support/exif-orientation-8-llo-pre-rotated.jpg">
+ <br>Rotated 90&deg; 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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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
new 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
Binary files differ
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