diff options
author | Servo WPT Sync <32481905+servo-wpt-sync@users.noreply.github.com> | 2024-07-07 03:23:54 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-07 07:23:54 +0000 |
commit | 816359583c55ced698ed450d644d82a6d25213c9 (patch) | |
tree | 1c684eb7e1dcc11bd33d7a5c26251b38b3455a37 /tests/wpt | |
parent | 141a594e236201acb44ca7cc42e2e653f4d55e7b (diff) | |
download | servo-816359583c55ced698ed450d644d82a6d25213c9.tar.gz servo-816359583c55ced698ed450d644d82a6d25213c9.zip |
Update web-platform-tests to revision b'4e3b5de2eb8218cf18a1674618994efeb96e2cc0' (#32717)
Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
Diffstat (limited to 'tests/wpt')
575 files changed, 8631 insertions, 2610 deletions
diff --git a/tests/wpt/meta-legacy-layout/FileAPI/url/url-reload.window.js.ini b/tests/wpt/meta-legacy-layout/FileAPI/url/url-reload.window.js.ini index bdfa9b2b8e9..d76dcc5cd16 100644 --- a/tests/wpt/meta-legacy-layout/FileAPI/url/url-reload.window.js.ini +++ b/tests/wpt/meta-legacy-layout/FileAPI/url/url-reload.window.js.ini @@ -1,4 +1,3 @@ [url-reload.window.html] [Reloading a blob URL succeeds even if the URL was revoked.] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini b/tests/wpt/meta-legacy-layout/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini new file mode 100644 index 00000000000..31a54462d23 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini @@ -0,0 +1,122 @@ +[derived_bits_length.https.any.html] + [HKDF derivation with 256 as 'length' parameter] + expected: FAIL + + [HKDF derivation with 0 as 'length' parameter] + expected: FAIL + + [HKDF derivation with null as 'length' parameter] + expected: FAIL + + [HKDF derivation with undefined as 'length' parameter] + expected: FAIL + + [HKDF derivation with omitted as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with 256 as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with 0 as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with null as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with undefined as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with omitted as 'length' parameter] + expected: FAIL + + [ECDH derivation with 256 as 'length' parameter] + expected: FAIL + + [ECDH derivation with 0 as 'length' parameter] + expected: FAIL + + [ECDH derivation with null as 'length' parameter] + expected: FAIL + + [ECDH derivation with undefined as 'length' parameter] + expected: FAIL + + [ECDH derivation with omitted as 'length' parameter] + expected: FAIL + + [X25519 derivation with 256 as 'length' parameter] + expected: FAIL + + [X25519 derivation with 0 as 'length' parameter] + expected: FAIL + + [X25519 derivation with null as 'length' parameter] + expected: FAIL + + [X25519 derivation with undefined as 'length' parameter] + expected: FAIL + + [X25519 derivation with omitted as 'length' parameter] + expected: FAIL + + +[derived_bits_length.https.any.worker.html] + [HKDF derivation with 256 as 'length' parameter] + expected: FAIL + + [HKDF derivation with 0 as 'length' parameter] + expected: FAIL + + [HKDF derivation with null as 'length' parameter] + expected: FAIL + + [HKDF derivation with undefined as 'length' parameter] + expected: FAIL + + [HKDF derivation with omitted as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with 256 as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with 0 as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with null as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with undefined as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with omitted as 'length' parameter] + expected: FAIL + + [ECDH derivation with 256 as 'length' parameter] + expected: FAIL + + [ECDH derivation with 0 as 'length' parameter] + expected: FAIL + + [ECDH derivation with null as 'length' parameter] + expected: FAIL + + [ECDH derivation with undefined as 'length' parameter] + expected: FAIL + + [ECDH derivation with omitted as 'length' parameter] + expected: FAIL + + [X25519 derivation with 256 as 'length' parameter] + expected: FAIL + + [X25519 derivation with 0 as 'length' parameter] + expected: FAIL + + [X25519 derivation with null as 'length' parameter] + expected: FAIL + + [X25519 derivation with undefined as 'length' parameter] + expected: FAIL + + [X25519 derivation with omitted as 'length' parameter] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/WebCryptoAPI/idlharness.https.any.js.ini b/tests/wpt/meta-legacy-layout/WebCryptoAPI/idlharness.https.any.js.ini index 517ded4fee9..3808a6431c0 100644 --- a/tests/wpt/meta-legacy-layout/WebCryptoAPI/idlharness.https.any.js.ini +++ b/tests/wpt/meta-legacy-layout/WebCryptoAPI/idlharness.https.any.js.ini @@ -212,6 +212,15 @@ [Crypto interface: crypto must inherit property "randomUUID()" with the proper type] expected: FAIL + [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)] + expected: FAIL + + [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)" with the proper type] + expected: FAIL + + [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?) on crypto.subtle with too few arguments must throw TypeError] + expected: FAIL + [idlharness.https.any.worker.html] [idlharness] @@ -426,3 +435,12 @@ [Crypto interface: crypto must inherit property "randomUUID()" with the proper type] expected: FAIL + + [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)] + expected: FAIL + + [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)" with the proper type] + expected: FAIL + + [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?) on crypto.subtle with too few arguments must throw TypeError] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini b/tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini new file mode 100644 index 00000000000..73d23b4318e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini @@ -0,0 +1,8 @@ +[importKey-unsettled-promise.https.any.worker.html] + [WebCryptoAPI: Assure promise returned by importKey is settled.] + expected: FAIL + + +[importKey-unsettled-promise.https.any.html] + [WebCryptoAPI: Assure promise returned by importKey is settled.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-2-crash.html.ini b/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-2-crash.html.ini new file mode 100644 index 00000000000..6a085989a3b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-2-crash.html.ini @@ -0,0 +1,2 @@ +[float-rewind-parallel-flow-2-crash.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-3-crash.html.ini b/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-3-crash.html.ini new file mode 100644 index 00000000000..8b0a300ab31 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-3-crash.html.ini @@ -0,0 +1,2 @@ +[float-rewind-parallel-flow-3-crash.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini index 6474581d56b..07b3a85a5a5 100644 --- a/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini @@ -31,3 +31,9 @@ [@font-face matching for quoted and unquoted ui-monospace] expected: FAIL + + [@font-face matching for quoted and unquoted cursive] + expected: FAIL + + [@font-face matching for quoted and unquoted ui-serif] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001.html.ini new file mode 100644 index 00000000000..59e756fab44 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-001.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini new file mode 100644 index 00000000000..9ed0016e7cc --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-001a.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002.html.ini new file mode 100644 index 00000000000..25c86e4340a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-002.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini new file mode 100644 index 00000000000..89ef37501d1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-002a.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini new file mode 100644 index 00000000000..62a53fd3d6b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-002b.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003.html.ini new file mode 100644 index 00000000000..ab8404e1cbe --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-003.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini new file mode 100644 index 00000000000..9b47c17a55c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-003a.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini new file mode 100644 index 00000000000..5118c0ae109 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-003b.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004.html.ini new file mode 100644 index 00000000000..c28f3859026 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-004.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini new file mode 100644 index 00000000000..a3bcc0f45a0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-004a.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini new file mode 100644 index 00000000000..b6e5121eb77 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-004b.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-tables/tentative/paint/overflow-hidden-table.html.ini b/tests/wpt/meta-legacy-layout/css/css-tables/tentative/paint/overflow-hidden-table.html.ini deleted file mode 100644 index 85975fc74ce..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-tables/tentative/paint/overflow-hidden-table.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[overflow-hidden-table.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-interpolation-007.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-interpolation-007.html.ini new file mode 100644 index 00000000000..e2b0ecfa8c4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-interpolation-007.html.ini @@ -0,0 +1,126 @@ +[transform-interpolation-007.html] + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini new file mode 100644 index 00000000000..4c11bb94283 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini @@ -0,0 +1,2 @@ +[transform-non-invertible-discrete-interpolation.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini new file mode 100644 index 00000000000..5828fcf067e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini @@ -0,0 +1,3 @@ +[transform-non-invertible-no-transition.html] + [Setting 'transform' to a non-invertible matrix does not yield a CSS Transition] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini new file mode 100644 index 00000000000..8766213d3ca --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini @@ -0,0 +1,6 @@ +[CSSTransition-not-canceling.tentative.html] + [Setting "display: none" with "display" set to transition using "display 100s allow-discrete" does not cancel running transitions] + expected: FAIL + + [Setting "display: none" with "display" set to transition using "display 100s, all allow-discrete 100s" does not cancel running transitions] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini b/tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini new file mode 100644 index 00000000000..b4ee5fc070d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini @@ -0,0 +1,159 @@ +[attr-all-types.html] + [CSS Values and Units Test: attr] + expected: FAIL + + [CSS Values and Units Test: attr 1] + expected: FAIL + + [CSS Values and Units Test: attr 2] + expected: FAIL + + [CSS Values and Units Test: attr 3] + expected: FAIL + + [CSS Values and Units Test: attr 4] + expected: FAIL + + [CSS Values and Units Test: attr 5] + expected: FAIL + + [CSS Values and Units Test: attr 6] + expected: FAIL + + [CSS Values and Units Test: attr 7] + expected: FAIL + + [CSS Values and Units Test: attr 8] + expected: FAIL + + [CSS Values and Units Test: attr 9] + expected: FAIL + + [CSS Values and Units Test: attr 10] + expected: FAIL + + [CSS Values and Units Test: attr 11] + expected: FAIL + + [CSS Values and Units Test: attr 13] + expected: FAIL + + [CSS Values and Units Test: attr 14] + expected: FAIL + + [CSS Values and Units Test: attr 15] + expected: FAIL + + [CSS Values and Units Test: attr 18] + expected: FAIL + + [CSS Values and Units Test: attr 19] + expected: FAIL + + [CSS Values and Units Test: attr 20] + expected: FAIL + + [CSS Values and Units Test: attr 21] + expected: FAIL + + [CSS Values and Units Test: attr 25] + expected: FAIL + + [CSS Values and Units Test: attr 26] + expected: FAIL + + [CSS Values and Units Test: attr 28] + expected: FAIL + + [CSS Values and Units Test: attr 29] + expected: FAIL + + [CSS Values and Units Test: attr 30] + expected: FAIL + + [CSS Values and Units Test: attr 31] + expected: FAIL + + [CSS Values and Units Test: attr 32] + expected: FAIL + + [CSS Values and Units Test: attr 33] + expected: FAIL + + [CSS Values and Units Test: attr 34] + expected: FAIL + + [CSS Values and Units Test: attr 35] + expected: FAIL + + [CSS Values and Units Test: attr 36] + expected: FAIL + + [CSS Values and Units Test: attr 37] + expected: FAIL + + [CSS Values and Units Test: attr 38] + expected: FAIL + + [CSS Values and Units Test: attr 39] + expected: FAIL + + [CSS Values and Units Test: attr 40] + expected: FAIL + + [CSS Values and Units Test: attr 41] + expected: FAIL + + [CSS Values and Units Test: attr 42] + expected: FAIL + + [CSS Values and Units Test: attr 43] + expected: FAIL + + [CSS Values and Units Test: attr 44] + expected: FAIL + + [CSS Values and Units Test: attr 45] + expected: FAIL + + [CSS Values and Units Test: attr 46] + expected: FAIL + + [CSS Values and Units Test: attr 47] + expected: FAIL + + [CSS Values and Units Test: attr 48] + expected: FAIL + + [CSS Values and Units Test: attr 49] + expected: FAIL + + [CSS Values and Units Test: attr 50] + expected: FAIL + + [CSS Values and Units Test: attr 51] + expected: FAIL + + [CSS Values and Units Test: attr 52] + expected: FAIL + + [CSS Values and Units Test: attr 53] + expected: FAIL + + [CSS Values and Units Test: attr 54] + expected: FAIL + + [CSS Values and Units Test: attr 55] + expected: FAIL + + [CSS Values and Units Test: attr 64] + expected: FAIL + + [CSS Values and Units Test: attr 65] + expected: FAIL + + [CSS Values and Units Test: attr 66] + expected: FAIL + + [CSS Values and Units Test: attr 67] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-values/attr-invalidation.html.ini b/tests/wpt/meta-legacy-layout/css/css-values/attr-invalidation.html.ini new file mode 100644 index 00000000000..111ec1b3975 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-values/attr-invalidation.html.ini @@ -0,0 +1,3 @@ +[attr-invalidation.html] + [CSS Values and Units Test: attr() invalidation] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini index 7fe2fa192e4..9c9f28ce8d7 100644 --- a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini +++ b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini @@ -14,3 +14,6 @@ [MediaQueryList::removeListener removes added listener] expected: NOTRUN + + [listeners are called in order they were added] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini index d42c17f0e92..21f2d64bbba 100644 --- a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini +++ b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini @@ -8,3 +8,12 @@ [capturing event listener fires before non-capturing listener at target] expected: NOTRUN + + [removeEventListener removes listener added with addListener] + expected: TIMEOUT + + [removeEventListener (capture) doesn't remove listener added with addListener] + expected: NOTRUN + + [removeListener removes listener added with addEventListener] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini index 80b5e466055..7eb24e29718 100644 --- a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini +++ b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini @@ -2,3 +2,12 @@ expected: TIMEOUT [removeEventListener removes listener] expected: NOTRUN + + [listeners for "change" type are called] + expected: NOTRUN + + [listeners with different type are not called] + expected: NOTRUN + + [addEventListener "once" option is respected] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryListEvent.html.ini b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryListEvent.html.ini new file mode 100644 index 00000000000..5276a0fea9f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryListEvent.html.ini @@ -0,0 +1,2 @@ +[MediaQueryListEvent.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/cssom/idlharness.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/idlharness.html.ini index 3ff4b62ff70..ad066b83193 100644 --- a/tests/wpt/meta-legacy-layout/css/cssom/idlharness.html.ini +++ b/tests/wpt/meta-legacy-layout/css/cssom/idlharness.html.ini @@ -640,3 +640,6 @@ [CSSStyleProperties interface: attribute cssFloat] expected: FAIL + + [CSSPageDescriptors interface: attribute orientation] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/cssom/page-descriptors.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/page-descriptors.html.ini new file mode 100644 index 00000000000..ca4d3f1de85 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/cssom/page-descriptors.html.ini @@ -0,0 +1,3 @@ +[page-descriptors.html] + [CSSPageDescriptors properties tests] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-basic-blur.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-basic-blur.html.ini new file mode 100644 index 00000000000..b95bcf073f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-basic-blur.html.ini @@ -0,0 +1,2 @@ +[backdrop-filter-basic-blur.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-boundary.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-boundary.html.ini new file mode 100644 index 00000000000..bfc25a2b184 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-boundary.html.ini @@ -0,0 +1,2 @@ +[backdrop-filter-boundary.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-clipping-2.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-clipping-2.html.ini new file mode 100644 index 00000000000..4a08b41acc2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-clipping-2.html.ini @@ -0,0 +1,2 @@ +[backdrop-filter-edge-clipping-2.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-pixels-2.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-pixels-2.html.ini new file mode 100644 index 00000000000..19d53f587ad --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-pixels-2.html.ini @@ -0,0 +1,2 @@ +[backdrop-filter-edge-pixels-2.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-svg-blur.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-svg-blur.html.ini new file mode 100644 index 00000000000..3294c0b7080 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-svg-blur.html.ini @@ -0,0 +1,2 @@ +[backdrop-filter-svg-blur.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-003.html.ini b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-003.html.ini new file mode 100644 index 00000000000..a62fd6f90d5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-003.html.ini @@ -0,0 +1,2 @@ +[mq-calc-sign-function-003.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-004.html.ini b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-004.html.ini new file mode 100644 index 00000000000..3c5bd16380e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-004.html.ini @@ -0,0 +1,2 @@ +[mq-calc-sign-function-004.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-005.html.ini b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-005.html.ini new file mode 100644 index 00000000000..7c40a3027c2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-005.html.ini @@ -0,0 +1,2 @@ +[mq-calc-sign-function-005.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini index fc799433890..6eebff7271d 100644 --- a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini @@ -28,3 +28,12 @@ [sec-fetch-user - Not sent to non-trustworthy same-origin destination] expected: FAIL + + [sec-fetch-dest - Not sent to non-trustworthy same-site destination] + expected: FAIL + + [sec-fetch-user - Not sent to non-trustworthy same-site destination] + expected: FAIL + + [sec-fetch-user - Not sent to non-trustworthy cross-site destination] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini index dc1144214ef..530635e744f 100644 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini @@ -2,8 +2,5 @@ [Navigating to a different document with window.open] expected: FAIL - [Navigating to a different document with form submission] - expected: FAIL - [Navigating to a different document with link click] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini index 5aef7ce66ce..324db3d9b35 100644 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini @@ -10,6 +10,3 @@ [load event does not fire on window.open('about:blank?foo')] expected: FAIL - - [load event does not fire on window.open('about:blank')] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini new file mode 100644 index 00000000000..7dc346632a4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini @@ -0,0 +1,3 @@ +[navigation-unload-same-origin.window.html] + [Same-origin navigation started from unload handler must be ignored] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini deleted file mode 100644 index 60a4fa51f8a..00000000000 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[a-click.html] - [aElement.click() before the load event must NOT replace] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/compositing/colr-glyph-composition.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/compositing/colr-glyph-composition.html.ini new file mode 100644 index 00000000000..0392ac2ff3b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/compositing/colr-glyph-composition.html.ini @@ -0,0 +1,2 @@ +[colr-glyph-composition.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini index abcdc2821c8..a1700667887 100644 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini @@ -1,4 +1,3 @@ [2d.canvas.host.size.attributes.parse.minus.html] - expected: CRASH [Parsing of non-negative integers] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini b/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini index dfba023cc2b..42842a8ddc9 100644 --- a/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini +++ b/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini @@ -2105,6 +2105,24 @@ [Element interface: operation getHTML(optional GetHTMLOptions)] expected: FAIL + [Element interface: document.createElement("noscript") must inherit property "setHTMLUnsafe((TrustedHTML or DOMString))" with the proper type] + expected: FAIL + + [Element interface: calling setHTMLUnsafe((TrustedHTML or DOMString)) on document.createElement("noscript") with too few arguments must throw TypeError] + expected: FAIL + + [Element interface: document.createElement("noscript") must inherit property "innerHTML" with the proper type] + expected: FAIL + + [Element interface: document.createElement("noscript") must inherit property "outerHTML" with the proper type] + expected: FAIL + + [ShadowRoot interface: operation setHTMLUnsafe((TrustedHTML or DOMString))] + expected: FAIL + + [Element interface: operation setHTMLUnsafe((TrustedHTML or DOMString))] + expected: FAIL + [idlharness.https.html?include=(Document|Window)] [Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type] @@ -2785,6 +2803,18 @@ [Document interface: calling parseHTMLUnsafe(HTMLString) on documentWithHandlers with too few arguments must throw TypeError] expected: FAIL + [Document interface: operation parseHTMLUnsafe((TrustedHTML or DOMString))] + expected: FAIL + + [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on iframe.contentDocument with too few arguments must throw TypeError] + expected: FAIL + + [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on new Document() with too few arguments must throw TypeError] + expected: FAIL + + [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on documentWithHandlers with too few arguments must throw TypeError] + expected: FAIL + [idlharness.https.html?include=HTML.*] [HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "align" with the proper type] @@ -5075,3 +5105,6 @@ [HTMLTemplateElement interface: document.createElement("template") must inherit property "shadowRootSerializable" with the proper type] expected: FAIL + + [HTMLIFrameElement interface: document.createElement("iframe") must inherit property "srcdoc" with the proper type] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini b/tests/wpt/meta-legacy-layout/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini index a32dea7e4f4..766a7fed1ed 100644 --- a/tests/wpt/meta-legacy-layout/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini +++ b/tests/wpt/meta-legacy-layout/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini @@ -1,34 +1,16 @@ [structured-cloning-error-stack-optional.sub.window.html] - [page-created Error (worker)] - expected: FAIL - - [JS-engine-created TypeError (worker)] - expected: FAIL - - [JS-engine-created TypeError (cross-site iframe)] - expected: FAIL - [web API-created TypeError (worker)] expected: FAIL [web API-created TypeError (cross-site iframe)] expected: FAIL - [page-created Error (cross-site iframe)] - expected: FAIL - [page-created Error (structuredClone())] expected: FAIL - [page-created Error (same-origin iframe)] - expected: FAIL - [JS-engine-created TypeError (structuredClone())] expected: FAIL - [JS-engine-created TypeError (same-origin iframe)] - expected: FAIL - [web API-created TypeError (structuredClone())] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini b/tests/wpt/meta-legacy-layout/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini index 2ef0896e3b3..8b8af2b9c2e 100644 --- a/tests/wpt/meta-legacy-layout/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini +++ b/tests/wpt/meta-legacy-layout/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini @@ -1,4 +1,3 @@ [document-base-url-window-initiator-is-not-opener.https.window.html] - expected: TIMEOUT [window.open() gets base url from initiator not opener.] expected: [FAIL, PASS, TIMEOUT] diff --git a/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini b/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini index 830aeb8ae48..fdc27d37788 100644 --- a/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini +++ b/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini @@ -1,7 +1,6 @@ [autofocus-dialog.html] - expected: TIMEOUT [<dialog> can contain autofocus, without stopping page autofocus content from working] expected: FAIL [<dialog>-contained autofocus element gets focused when the dialog is shown] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-nav-location-assign.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-nav-location-assign.html.ini new file mode 100644 index 00000000000..68a30137729 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-nav-location-assign.html.ini @@ -0,0 +1,3 @@ +[iframe-loading-lazy-nav-location-assign.html] + [Navigating iframe loading='lazy' before it is loaded: location.assign] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini index 7df8f9458e9..68203d2a082 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_escaping-2.html] expected: CRASH [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/forms/historical.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/forms/historical.html.ini new file mode 100644 index 00000000000..5d8289307cc --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/semantics/forms/historical.html.ini @@ -0,0 +1,3 @@ +[historical.html] + [<input name=isindex> should not be supported] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/meta-legacy-layout/html/syntax/parsing/DOMContentLoaded-defer.html.ini new file mode 100644 index 00000000000..b8bdf33cb65 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/syntax/parsing/DOMContentLoaded-defer.html.ini @@ -0,0 +1,3 @@ +[DOMContentLoaded-defer.html] + [The end: DOMContentLoaded and defer scripts] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/url/toascii.window.js.ini b/tests/wpt/meta-legacy-layout/url/toascii.window.js.ini index 875f6931f54..30a64ad4fc6 100644 --- a/tests/wpt/meta-legacy-layout/url/toascii.window.js.ini +++ b/tests/wpt/meta-legacy-layout/url/toascii.window.js.ini @@ -287,3 +287,39 @@ [≯ (using <area>.hostname)] expected: FAIL + + [≠ (using <area>.host)] + expected: FAIL + + [≠ (using <area>.hostname)] + expected: FAIL + + [≮ (using <area>.host)] + expected: FAIL + + [≮ (using <area>.hostname)] + expected: FAIL + + [≯ (using <area>.host)] + expected: FAIL + + [≯ (using <area>.hostname)] + expected: FAIL + + [≠ (using <area>.host)] + expected: FAIL + + [≠ (using <area>.hostname)] + expected: FAIL + + [≮ (using <area>.host)] + expected: FAIL + + [≮ (using <area>.hostname)] + expected: FAIL + + [≯ (using <area>.host)] + expected: FAIL + + [≯ (using <area>.hostname)] + expected: FAIL diff --git a/tests/wpt/meta/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html.ini b/tests/wpt/meta-legacy-layout/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html.ini index 42bd0c47410..c804530024c 100644 --- a/tests/wpt/meta/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html.ini @@ -1,3 +1,3 @@ -[script-src-blocks-wasm.tentative.html] +[script-src-blocks-wasm.tentative.sub.html] [Importing a WebAssembly module should be guarded by script-src CSP.] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini b/tests/wpt/meta-legacy-layout/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini new file mode 100644 index 00000000000..aa6c9e5b826 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini @@ -0,0 +1,4 @@ +[localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html] + expected: TIMEOUT + [StorageKey: test 3P about:blank window opened from a 3P iframe] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini new file mode 100644 index 00000000000..80f9a4f15b8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini @@ -0,0 +1,2 @@ +[Worker-constructor.html] + expected: ERROR diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 901fa326298..9cc453d7319 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -654,7 +654,7 @@ ] ], "chrome-1512373-2-crash.html": [ - "433609766c9195344c5bb45a4c20d0843ae0d697", + "50d0aff5e92fea43360b7423d522db2e9e79e89b", [ null, {} @@ -682,7 +682,7 @@ ] ], "chrome-40286059-crash.html": [ - "dbbeb5ac4df9bb2a17a757ece48a48cbbf3f677e", + "cee9d2d97775dacbd7583edf143fd5b06de31bff", [ null, {} @@ -695,15 +695,15 @@ {} ] ], - "inline-grid-try-options-crash.html": [ - "712f7f1d4817a727362e7b882956bafb59c746bc", + "inline-grid-try-fallbacks-crash.html": [ + "544ccf1baac30cb80eb7506e86bf8c7910c2869d", [ null, {} ] ], "position-try-invalid-anchor-crash.html": [ - "dc09bb4b3f8d61652f411fb3cc72e4acd81ef8c8", + "27ea1942a346603afc64955cdcf11deeee13bb36", [ null, {} @@ -1504,14 +1504,14 @@ "container-queries": { "crashtests": { "br-crash.html": [ - "6631ba2fd560d1454f992414a2ccf47bdcb26821", + "35d029706a8e393f390dc5eff00a9024c1783422", [ null, {} ] ], "canvas-as-container-crash.html": [ - "ae7fe8dc168774f8fdb3ca9b6720cc3821503dca", + "45bb49f18004bb9088b4a4aea2217319471d8498", [ null, {} @@ -1595,28 +1595,28 @@ ] ], "columns-in-table-001-crash.html": [ - "fe421500dade86b6fedbbf6289a668dcc5174f45", + "b66ca8d30bd4d05dff443c5977f3545318224992", [ null, {} ] ], "columns-in-table-002-crash.html": [ - "24b9f1aab20b5cfb5fcffa59e50359e80f85cfa6", + "1c6f2cfbb0ad8e94fa597f8c89ff7779ed3d813c", [ null, {} ] ], "container-in-canvas-crash.html": [ - "215c6a04db7ce591fc7df9be6bfdf7da4edc8302", + "af21a9541f76193f93dbbb074a7ada591328c006", [ null, {} ] ], "container-type-change-chrome-legacy-crash.html": [ - "609142a2c5f7fa16f241b6ac06842a62ed68be8c", + "d49b2ae8e6546d3bee94c9cd5a84eca9e19bde0b", [ null, {} @@ -1665,14 +1665,14 @@ ] ], "focus-inside-content-visibility-crash.html": [ - "1bf68d6686c2c902205faa912573e2b3c97f0ad8", + "eb2788d03f33d6f3b5a49c73a73f55217ac01e7f", [ null, {} ] ], "force-sibling-style-crash.html": [ - "093a01b809d97b00f797c3be14706cbb4d742ede", + "751a646931af06e3a61aada3c342c4df5036dc3c", [ null, {} @@ -1714,7 +1714,7 @@ ] ], "inline-multicol-inside-container-crash.html": [ - "7e209f7ffd389744f843fe97b8483404f8ace7e5", + "853f1744b3b490885bf98da2e3c316863e6e40f4", [ null, {} @@ -1735,28 +1735,28 @@ ] ], "input-column-group-container-crash.html": [ - "5e520a45cffb9c203085118efde823b6b40cdf60", + "bd1d77cd60dcc6d57ddb3c7395889bb74ced00b3", [ null, {} ] ], "input-placeholder-inline-size-crash.html": [ - "4b1284e5cb3d90a76a756a8d89a439c43d7e65e1", + "a5c7cf62b33af8f3cafbc26132b737987513c66e", [ null, {} ] ], "marker-gcs-after-disconnect-crash.html": [ - "3680c795122603312d8a5a63ea48bd69c402b204", + "b92213d98c81eca4bdd10d5fff2329e7351635d5", [ null, {} ] ], "math-block-container-child-crash.html": [ - "00b6836655e904f1f0d64f7e3f42afaf02fc351b", + "db6c8df7f310bd97e5be3cf59291e7c18222e3aa", [ null, {} @@ -1777,7 +1777,7 @@ ] ], "pseudo-container-crash.html": [ - "f998c3a4464ca3eb3ce07687cf24d9dcdc9a16af", + "203e48e85f2e381e38a4b8388435b08de3348cc7", [ null, {} @@ -4700,6 +4700,13 @@ }, "css-text-decor": { "crashtests": { + "text-decoration-first-line-multi-crash.html": [ + "f6176334ad6e6ef2662a8f89785f601f48a762cf", + [ + null, + {} + ] + ], "text-decoration-on-empty-first-line-crash.html": [ "058cf9f8371d6e95965edcdf12f62a15e2c7f4b9", [ @@ -122505,7 +122512,7 @@ ] ], "anchor-scroll-chained-fallback.html": [ - "ab2090e0048fe8af38e76f34ed7277d945bb18ad", + "490d43e12d92293339a779b0080497f2900e77a0", [ null, [ @@ -122583,7 +122590,7 @@ ] ], "anchor-scroll-position-try-012.html": [ - "5e3bf50a6e714ea9acfad17761a23053d10a0fe9", + "8eff5e4a8fa9595f57a84b8b5331600a0dd136fd", [ null, [ @@ -122833,7 +122840,7 @@ ] ], "position-anchor-001.html": [ - "d927b6b902c97a565725d33874db9ce8055ea703", + "b0a964485c65ed1c8eeff89a1406bda9f4ea9b48", [ null, [ @@ -122846,7 +122853,7 @@ ] ], "position-anchor-002.html": [ - "d55338e1e9725db3cc1edf98c04c9388cc7dc6f5", + "a9248ef694f810cc7d06e4ce20f22807e91e6607", [ null, [ @@ -122859,7 +122866,7 @@ ] ], "position-try-switch-from-fixed-anchor.html": [ - "904aa55180dafd92ed7526854d13edb1f7ae0406", + "df398e0090dd67a3a8d9d645b4c6d1dcb0228c2c", [ null, [ @@ -122872,7 +122879,7 @@ ] ], "position-try-switch-to-fixed-anchor.html": [ - "54fcb2e4df3d6155ca672ea067ca4180b2893173", + "469064e7e28730076d5c4cf55e5804ec1cc4e818", [ null, [ @@ -150593,7 +150600,7 @@ ], "container-queries": { "canvas-as-container-001.html": [ - "f904d1fe249bb3ad773f054b7f930deba36eccce", + "bd9fd3ddc491443114d0a37e961b2ac05c66ab86", [ null, [ @@ -150606,7 +150613,7 @@ ] ], "canvas-as-container-002.html": [ - "689feeb5fffdc25ccd03e41c29a317ad1018ced2", + "7c2d44f6824d56e1730b5baf98455f46267287a8", [ null, [ @@ -150619,7 +150626,7 @@ ] ], "canvas-as-container-003.html": [ - "74199cc72b7e68b8d51eb783439e58e12f4ee867", + "0115052b76d0c62b58c3c3ac7ea91f10928ddeab", [ null, [ @@ -150632,7 +150639,7 @@ ] ], "canvas-as-container-004.html": [ - "b23846382b743d260ea87a291dec31af843c16e9", + "7e1ec8d733ae3e0acdd79a8ae5c5aa722434e024", [ null, [ @@ -150645,7 +150652,7 @@ ] ], "change-display-in-container.html": [ - "8c58d22b7de99f0234ed2b3e45065a2bba2161c8", + "978c3e81bce34b67bcb4e8a1fa4249c66a996768", [ null, [ @@ -150658,7 +150665,7 @@ ] ], "chrome-legacy-skip-recalc.html": [ - "b86a4091a2ca4909515746b2904508908e278816", + "675f649bf82a259c6cbb10845fd914417e315127", [ null, [ @@ -150671,7 +150678,7 @@ ] ], "container-for-cue.html": [ - "a460f79af061de93f269ad56455f878408437b85", + "802f6143428764b404e3fc41c1bfdab9047ac50b", [ null, [ @@ -150684,7 +150691,7 @@ ] ], "container-units-gradient-invalidation.html": [ - "665a14dcaa1264e456c9a2ae7e7e47ea11a722b6", + "a0fa974fc298b09ba7e77ae07cb583235009680a", [ null, [ @@ -150697,7 +150704,7 @@ ] ], "container-units-gradient.html": [ - "3d6f5378c22fd33554309420fee047c68eaa51e2", + "6965bf8c0d0b7055fc8728316178fffd07ba72d9", [ null, [ @@ -150710,7 +150717,7 @@ ] ], "container-units-rule-cache.html": [ - "cc93f7793ae6bd57a8ee30e5d6322a6ff43e93cb", + "3ff8e29e64f63022b44df29a4d661758edff99ca", [ null, [ @@ -150723,7 +150730,7 @@ ] ], "container-units-sharing-via-rule-node.html": [ - "e1a5c714516bfea5e482acc4f5b9811bbc975a21", + "dcb22f20ccf4f121d08b817cbfec5898e8953289", [ null, [ @@ -150736,7 +150743,7 @@ ] ], "counters-in-container-dynamic.html": [ - "d85ab6cb425ba792914b39901cd3f3ba3943b606", + "9542b34095bac6995fa2c94e1328e0fc78fa2133", [ null, [ @@ -150749,7 +150756,7 @@ ] ], "counters-in-container.html": [ - "376f52ea7c2ccccda15e2f99af9ce08bee42f424", + "e94aba632649971f65ce9661d375ad38998d949d", [ null, [ @@ -150762,7 +150769,7 @@ ] ], "custom-layout-container-001.https.html": [ - "8f301e8ebf626035f967d01e585e0832eefe72de", + "40594a431e4465fd56bbbf069476a9af0b541880", [ null, [ @@ -150775,7 +150782,7 @@ ] ], "dialog-backdrop-create.html": [ - "ef74973addc2ffa660ee38b84686982cbb889a92", + "a962a9635578c8021c89c4bf57e0afc980dd244c", [ null, [ @@ -150788,7 +150795,7 @@ ] ], "dialog-backdrop-remove.html": [ - "47b40304924aa00613fd520083d12ae65fa82596", + "1cb1cc92d47cc310d503b09e5620a713ee3eaaaf", [ null, [ @@ -150801,7 +150808,7 @@ ] ], "display-in-container.html": [ - "a2a4cd731c8b90b4dcfda30a015b293deef56968", + "4666ab64b2b3063a8dfb4d7be7c4c30d9dc76129", [ null, [ @@ -150814,7 +150821,7 @@ ] ], "fieldset-legend-change.html": [ - "15b44a0e5231e501929642cc8b088e7204c9d8b4", + "51cd8c1953387e455b10d256a4d61a8c16195961", [ null, [ @@ -150827,7 +150834,7 @@ ] ], "inline-size-bfc-floats.html": [ - "88b81c67599576677aec1d0b6ac89d4414d15582", + "f4d5af65f56a5c8f8e182e7167177c9ef48b7568", [ null, [ @@ -150840,7 +150847,7 @@ ] ], "inner-first-line-non-matching.html": [ - "5f39124e514bcfc2b7293b6e36c7e3c3f4bbd5df", + "01d46a037f542d0b1f75af8b5dedb5224327af81", [ null, [ @@ -150853,7 +150860,7 @@ ] ], "multicol-inside-container.html": [ - "9fc8393a513f236996d60fdc39e2401a3dba0376", + "73febc303a9184a248897b0a0a8c215df22ac778", [ null, [ @@ -150866,7 +150873,7 @@ ] ], "pseudo-elements-002.html": [ - "a44c64c70071109bca11ba0f910cb14213522c9f", + "1198fb959d00e6befd2de62e76c10a547b589a4a", [ null, [ @@ -150879,7 +150886,7 @@ ] ], "pseudo-elements-002b.html": [ - "e1874e035b0784abeccfce306eaa3203b41daf37", + "e1159c33bfea4ce57391913e417faffb47201b60", [ null, [ @@ -150892,7 +150899,7 @@ ] ], "pseudo-elements-009.html": [ - "769a5962ff706db4ba2d5a29afaa348c94061c42", + "913b8ca5b130961e1b90fd233429dab16d67c20f", [ null, [ @@ -150905,7 +150912,7 @@ ] ], "pseudo-elements-010.html": [ - "e2e8f8659c500e1d91798cbd03437621d7ae01af", + "c090488d193755d7f8825e9d6275fa82465ed9d5", [ null, [ @@ -150918,7 +150925,7 @@ ] ], "pseudo-elements-011.html": [ - "26dabbe1dfe58a3350ec4fbf9a9671943a174a8d", + "364d7ec38514d17b37bc08a8e342ad840eac1d70", [ null, [ @@ -150931,7 +150938,7 @@ ] ], "pseudo-elements-012.html": [ - "7c36d9270d92be6b017253dd4080b8a1e8c61546", + "31617f838b66f5020eed36474072c27238fc0e56", [ null, [ @@ -150944,7 +150951,7 @@ ] ], "resize-while-content-visibility-hidden.html": [ - "a3658f7f34fdda98b2d1198fecce3b6e1a5fef38", + "da4218b88bdba20c10ffc104f4e7b4f9a992a978", [ null, [ @@ -150957,7 +150964,7 @@ ] ], "size-container-with-quotes.html": [ - "b88f882cd043195bb4f1b323c369515fe6107e36", + "30a4191d3371af6912610b2e9a878c8024d87f8c", [ null, [ @@ -150970,7 +150977,7 @@ ] ], "svg-foreignobject-no-size-container.html": [ - "38fc493a16259bec9091850aed09fbeeae313187", + "38f7230e18783a35f02248bbcc3b4b23ca2b714e", [ null, [ @@ -150983,7 +150990,7 @@ ] ], "svg-g-no-size-container.html": [ - "ed9e85367676d988ebff81d60a9ab9201b6ef8d6", + "a4a089a5bebec7f98ad6c071081196fa5abbed4b", [ null, [ @@ -150996,7 +151003,7 @@ ] ], "table-inside-container-changing-display.html": [ - "33a4f4fe721b11e6ea10b0c15b8e42465fd1f1f1", + "5ae71aad2d0488a2e0d2e69d775c900877a23496", [ null, [ @@ -151009,7 +151016,7 @@ ] ], "top-layer-dialog-backdrop.html": [ - "25635167a54ce461a221e2c649c48fc897245581", + "207d0ab43ce74663ffbc778e1dfe007facaa4af4", [ null, [ @@ -151022,7 +151029,7 @@ ] ], "whitespace-update-after-removal.html": [ - "a7df55efc6eb9ce9b25646ce614cc922dcecf7ee", + "066f4254d24c4d9ff5a3284720b930d054490818", [ null, [ @@ -189510,7 +189517,7 @@ ] ], "custom-highlight-container-metrics-001.html": [ - "1e22dcc9924f89356ccc9f42533029485aa4d70c", + "397718c79c3410602d599174621b5d876066e547", [ null, [ @@ -189523,7 +189530,7 @@ ] ], "custom-highlight-container-metrics-002.html": [ - "0a805cf7ea4714694286396c8e5a4b52c73266a1", + "bc5199220488b9c242f30fb56c0bb30ae57dff01", [ null, [ @@ -189552,7 +189559,7 @@ ] ], "custom-highlight-container-metrics-003.html": [ - "189db49bd3e7c73f2a1affa3a18cb5d3e811afdb", + "7a7cede8fca6751cb36d14a6162f85fc991adf18", [ null, [ @@ -189565,7 +189572,7 @@ ] ], "custom-highlight-container-metrics-004.html": [ - "158f4ee12c91436cda7946d5574cd37ddf308876", + "e1112fe7bdcd9ae59b0a211ed150ebff8567234d", [ null, [ @@ -189594,7 +189601,7 @@ ] ], "custom-highlight-container-metrics-005.html": [ - "d7be78d1fdb8f3e6748c14171bb0d2ad143bf028", + "b6a5e4af4f8a045c2b94175317470400124f45b0", [ null, [ @@ -189607,7 +189614,7 @@ ] ], "custom-highlight-container-metrics-006.html": [ - "4bcae073b5dffba017ad5a52a6021a96c18a0efa", + "14b24676016cdbfe06ab4e93d5b90f3ad71ace65", [ null, [ @@ -189636,7 +189643,7 @@ ] ], "custom-highlight-dynamic-container-metrics-001.html": [ - "2c28f7d132a68e3c76b255220ade6bc8312c5bd8", + "29efae8f9d9a54344ade854e513f1901785dadef", [ null, [ @@ -189649,7 +189656,7 @@ ] ], "custom-highlight-dynamic-container-metrics-002.html": [ - "1a0cbe87a557517125c18dba3cacf41705ff5071", + "32f78c6d2a5db661502474bd3c615bf64aa9fc44", [ null, [ @@ -189678,7 +189685,7 @@ ] ], "custom-highlight-dynamic-container-metrics-003.html": [ - "38246a15affcaed2b1317a43b9c363fbd2cc6717", + "463daf529693761e77d4ea2271e58d89b560557e", [ null, [ @@ -189691,7 +189698,7 @@ ] ], "custom-highlight-dynamic-container-metrics-004.html": [ - "fbdbea32efcbb742083298e05794a0afa931736d", + "54f7a7c178d94450b9daed425df8b37722194d57", [ null, [ @@ -190244,7 +190251,7 @@ ] ], "custom-highlight-painting-019.html": [ - "8c5ccbf020c8670c54334570341450cf627c50c9", + "69c0fb817b418621d4677d411ba90a40a20eadbb", [ null, [ @@ -190260,11 +190267,11 @@ [ [ 0, - 130 + 250 ], [ 0, - 4 + 6 ] ] ] @@ -197554,6 +197561,19 @@ {} ] ], + "text-box-trim-ruby-start-002.html": [ + "9fd8be7dfc584e911d63a0bc791a291ddb2d8b9d", + [ + null, + [ + [ + "/css/css-inline/text-box-trim/text-box-trim-ruby-start-001-ref.html", + "==" + ] + ], + {} + ] + ], "text-box-trim-start-001.html": [ "35ac848aa6291db0508fd4df3f0bf2e7f2f43e07", [ @@ -197679,6 +197699,19 @@ ], {} ] + ], + "text-box-trim-text-emphasis-start-001.html": [ + "2c38611ee32eea85a2fa2f7d27ded1d491dfc9cb", + [ + null, + [ + [ + "/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001-ref.html", + "==" + ] + ], + {} + ] ] } }, @@ -222418,6 +222451,325 @@ } ] ], + "highlight-painting-currentcolor-001.html": [ + "92f9d1c96d875e3cdb532831890dd90d03334fb2", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-001-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], + "highlight-painting-currentcolor-001a.html": [ + "125a76760a3d187832fc36268a13cd49f479f599", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-001a-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], + "highlight-painting-currentcolor-002.html": [ + "dcbec06439c70a87a63a8b6511020ea7fc3bc787", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-002-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], + "highlight-painting-currentcolor-002a.html": [ + "be31b013c3c3748da276b79b1de06aec9729adfb", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-002a-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], + "highlight-painting-currentcolor-002b.html": [ + "014ddb085f563ea5a28de310523090136ef0351c", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-002b-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], + "highlight-painting-currentcolor-003.html": [ + "bfab5694c86918f572b6afc359c6c1daac7e3643", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-003-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], + "highlight-painting-currentcolor-003a.html": [ + "dd471c96007326d4597ed76f0e8fd3e9f6609e31", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-003a-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], + "highlight-painting-currentcolor-003b.html": [ + "51e643ec68bb133cd7c03bb63c4aef67870f5c37", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-003b-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], + "highlight-painting-currentcolor-004.html": [ + "d9cce5b08045125c698da421250d772b6d290d44", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-004-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], + "highlight-painting-currentcolor-004a.html": [ + "0ac021c156bd279750266c50ff0476b77c48083d", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-004a-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], + "highlight-painting-currentcolor-004b.html": [ + "856c2232b71b7b48512d7b12c137e579a0f5ef36", + [ + null, + [ + [ + "/css/css-pseudo/highlight-painting-currentcolor-004b-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 120 + ], + [ + 0, + 10 + ] + ] + ] + ] + } + ] + ], "highlight-painting-currentcolor-005.html": [ "f5c15aafa99ac5b068bbf267bb8ea3583d7ba79a", [ @@ -231268,6 +231620,19 @@ {} ] ], + "fieldset-element-002.html": [ + "5483330fe70c8305c0ec36bab2b266e6d1d85e1d", + [ + null, + [ + [ + "/css/css-sizing/aspect-ratio/fieldset-element-002-ref.html", + "==" + ] + ], + {} + ] + ], "flex-aspect-ratio-001.html": [ "3b477e299ad763a1c0108e16f05981c76c25bb77", [ @@ -231814,6 +232179,32 @@ {} ] ], + "flex-aspect-ratio-043.html": [ + "a1cd972d4dae64111987db345035f11652132817", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "flex-aspect-ratio-044.html": [ + "76f6ac115bd5536e3e2d4c0be903a86771af6cf3", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "floats-aspect-ratio-001.html": [ "53627d2134aacff311142d5513a5a662264143de", [ @@ -232347,6 +232738,19 @@ {} ] ], + "grid-aspect-ratio-042.html": [ + "7f836164adac71bad59bd01c4925036943c18133", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "intrinsic-size-001.html": [ "5b2c6049bd935c928f29c50bf4ad7afae41c4576", [ @@ -260251,6 +260655,19 @@ {} ] ], + "transform-non-invertible-discrete-interpolation.html": [ + "fae924d9849e9c904f5bf562b233e22bc38d1f44", + [ + null, + [ + [ + "/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html", + "==" + ] + ], + {} + ] + ], "transform-percent-with-width-and-height-separate.html": [ "d03ba24f9366d71424c50a5db0fbda8c67612457", [ @@ -283686,7 +284103,7 @@ ] ], "transparent-accent-color-001.html": [ - "219e24c1689b11dca0f22670118439d10e6b8813", + "5a5ad4f0a41dcd7f4690b684269a2746cf58d65a", [ null, [ @@ -283695,11 +284112,27 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 450 + ] + ] + ] + ] + } ] ], "transparent-accent-color-002.html": [ - "46b9835d0c18313885e08e2d469111cb82fa841f", + "9bc5022c562d98d95423b994fc0f67a7fb6e546f", [ null, [ @@ -283708,7 +284141,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 450 + ] + ] + ] + ] + } ] ], "webkit-appearance-auto-001.html": [ @@ -288642,19 +289091,6 @@ {} ] ], - "element-escapes-clip-with-abspos-child.html": [ - "b16b02bd63214db23fa60e00aac8b3f1773909dd", - [ - null, - [ - [ - "/css/css-view-transitions/element-escapes-clip-with-abspos-child-ref.html", - "==" - ] - ], - {} - ] - ], "element-is-grouping-during-animation.html": [ "b1ef745e0dba3e60022921cdf60deea4116791be", [ @@ -290422,6 +290858,19 @@ {} ] ], + "new-content-escapes-clip-with-abspos-child.html": [ + "4c90a78b505e26c87d0a8f6a2df29a85886d6fd0", + [ + null, + [ + [ + "/css/css-view-transitions/content-escapes-clip-with-abspos-child-ref.html", + "==" + ] + ], + {} + ] + ], "new-content-flat-transform-ancestor.html": [ "112a0af2c45d8df8b6e2a8580dece11e86f816e8", [ @@ -291058,6 +291507,19 @@ {} ] ], + "old-content-escapes-clip-with-abspos-child.html": [ + "652bc9f952a797a812eb80e4678a0ffc4cf836d6", + [ + null, + [ + [ + "/css/css-view-transitions/content-escapes-clip-with-abspos-child-ref.html", + "==" + ] + ], + {} + ] + ], "old-content-has-scrollbars.html": [ "b9638ebb10082ee73b47a5a98244f327731b0d6c", [ @@ -291893,6 +292355,45 @@ {} ] ], + "shadow-part-with-name-nested.html": [ + "e34903a4a2218a92fb782f34d0f5c20de4a0f37f", + [ + null, + [ + [ + "/css/css-view-transitions/names-are-tree-scoped-ref.html", + "==" + ] + ], + {} + ] + ], + "shadow-part-with-name-overridden-by-important.html": [ + "139fbd01b76cf4f832eae5d0b04f3dc2be088c26", + [ + null, + [ + [ + "/css/css-view-transitions/names-are-tree-scoped-ref.html", + "==" + ] + ], + {} + ] + ], + "shadow-part-with-name.html": [ + "192fbca20c99248c81b7b184080c1e8896608ba3", + [ + null, + [ + [ + "/css/css-view-transitions/names-are-tree-scoped-ref.html", + "==" + ] + ], + {} + ] + ], "sibling-frames-transition.html": [ "b4814c5ca81b768e73971ba7c1c858ac8b65c41f", [ @@ -292674,6 +293175,19 @@ {} ] ], + "svg-path-simple.html": [ + "aebea6ea1fb5000b3c3ab4b5ca6a0908a299853a", + [ + null, + [ + [ + "/css/css-viewport/zoom/svg-path-simple-ref.html", + "==" + ] + ], + {} + ] + ], "svg-path.html": [ "9a7bc3ffee97a062409fc6c3e628dcd7a57ed7f4", [ @@ -292687,6 +293201,19 @@ {} ] ], + "svg-viewBox.html": [ + "d5c2336bdd0402259ce94e9f83c69ce794fb2d1e", + [ + null, + [ + [ + "/css/css-viewport/zoom/svg-viewBox-ref.html", + "==" + ] + ], + {} + ] + ], "svg.html": [ "826ce5a80a3b9c06b3c14678704daffd3e2faf7b", [ @@ -308554,6 +309081,35 @@ } ] ], + "backdrop-filter-basic-blur.html": [ + "03b6c25fee003b242363cf40d71228e6e0b28270", + [ + null, + [ + [ + "/css/filter-effects/reference/backdrop-filter-basic-blur-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 40 + ], + [ + 0, + 30000 + ] + ] + ] + ] + } + ] + ], "backdrop-filter-basic-opacity-2.html": [ "c40e8bc09832ec6d30daa6803e98baa3141c9efe", [ @@ -308593,6 +309149,35 @@ {} ] ], + "backdrop-filter-boundary.html": [ + "9f371387abf4e1171c3b9ed7c10cd33928d993aa", + [ + null, + [ + [ + "/css/filter-effects/reference/backdrop-filter-boundary-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 20 + ], + [ + 0, + 100000 + ] + ] + ] + ] + } + ] + ], "backdrop-filter-clip-rect-2.html": [ "8116bd0dcf292eb8dd6dfd3710bdbc4dedcf509e", [ @@ -308719,6 +309304,35 @@ {} ] ], + "backdrop-filter-edge-clipping-2.html": [ + "0c9bed73c891df76624856e57790ab46d5a70321", + [ + null, + [ + [ + "/css/filter-effects/reference/backdrop-filter-edge-clipping-2-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 20 + ], + [ + 0, + 10000 + ] + ] + ] + ] + } + ] + ], "backdrop-filter-edge-clipping.html": [ "f6f7d89e5bf0faa1a3e29efe8f1bca3f69d9f935", [ @@ -308733,12 +309347,12 @@ ] ], "backdrop-filter-edge-mirror.html": [ - "c11d2f2733e3cf452299dc0f088f4459c9f53910", + "b56bddf7ad2b51bced27e5fa4ddbf8306871282a", [ null, [ [ - "/css/filter-effects/backdrop-filter-edge-mirror-ref.html", + "/css/filter-effects/reference/backdrop-filter-edge-mirror-ref.html", "==" ] ], @@ -308761,6 +309375,35 @@ } ] ], + "backdrop-filter-edge-pixels-2.html": [ + "8b87ef95c02ceed0946de9b9a3e194743e73fdcd", + [ + null, + [ + [ + "/css/filter-effects/reference/backdrop-filter-edge-pixels-2-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 20 + ], + [ + 0, + 30000 + ] + ] + ] + ] + } + ] + ], "backdrop-filter-edge-pixels.html": [ "5a70020890b619fd08f6546a4f3549568ce3856b", [ @@ -308930,6 +309573,35 @@ {} ] ], + "backdrop-filter-svg-blur.html": [ + "eff40c9e0fa334dbd21f475a3b3dd046b2a3eacf", + [ + null, + [ + [ + "/css/filter-effects/reference/backdrop-filter-svg-blur-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 20 + ], + [ + 0, + 10000 + ] + ] + ] + ] + } + ] + ], "backdrop-filter-svg-foreignObject.html": [ "4ccaa0cf81ff6c9787ad02c53cf6a1d19857dace", [ @@ -311929,6 +312601,84 @@ {} ] ], + "mq-calc-sign-function-001.html": [ + "96c3853136253f8ca1da380660e6ba55cb3673c3", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "mq-calc-sign-function-002.html": [ + "31ff421ea2a2216d008e30a7295358f1866f9a1b", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "mq-calc-sign-function-003.html": [ + "423948f722d85a819a4ff63639a27f6ae3482b90", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "mq-calc-sign-function-004.html": [ + "219f0c152721bc76197b9f31d1961e6dcf11a5ae", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "mq-calc-sign-function-005.html": [ + "ca5fecb338bb5e31ab46790067f1441fd9dd2b31", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "mq-calc-sign-function-006.html": [ + "239748d205f2706b22574eadaf7c7e7389f70403", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "mq-case-insensitive-001.html": [ "c851662343dcfcff5a0d39d37d849f9e0ff8c667", [ @@ -319272,6 +320022,21 @@ {} ] ], + "compositing": { + "colr-glyph-composition.html": [ + "ed372a2613c488d0e4fff6f959ab7ffe6557aa0c", + [ + null, + [ + [ + "/html/canvas/element/compositing/colr-glyph-composition-ref.html", + "==" + ] + ], + {} + ] + ] + }, "filters": { "2d.filter.canvasFilterObject.componentTransfer.discrete.tentative.html": [ "0a4830568b409ea329a99eed9b06aa6f41000572", @@ -328680,7 +329445,7 @@ ] ], "input-number-text-size.tentative.html": [ - "e7b1a1990dcd4f6af2efad70705b7523460c15db", + "0850f0558e3fb97e31b25f4b9aa498e59f08f7cd", [ null, [ @@ -340337,6 +341102,19 @@ {} ] ], + "non-scaling-stroke-003.html": [ + "147bf814d30f10094b77aeb4eb0fc25396cda00e", + [ + null, + [ + [ + "/svg/painting/reftests/green-100x100.svg", + "==" + ] + ], + {} + ] + ], "paint-context-001.svg": [ "7be33cb20fb257496cb1357a5481edecf364bc59", [ @@ -346287,7 +347065,7 @@ ], "workflows": { "docker.yml": [ - "a55d0f626d26ab824a10eedaafb52af614eced2c", + "32fb814e6d94c4d71bca85e06512a9b3ce6c7783", [] ], "documentation.yml": [ @@ -346623,7 +347401,7 @@ ], "derive_bits_keys": { "cfrg_curves_bits.js": [ - "422a230bd16675419b774a9301adb36fceab71dc", + "da809278a87aa51d8ba726c43d5c0e209dfbae59", [] ], "cfrg_curves_bits_fixtures.js": [ @@ -346634,8 +347412,20 @@ "81244ba05a876614cf2777528fdaf5deac7298aa", [] ], + "derived_bits_length.js": [ + "5a7ed7eb50a0a0b683c1631b639be89b2e428a1c", + [] + ], + "derived_bits_length_testcases.js": [ + "1bd7fbc2c8598964ec122e14392761240c1a26fa", + [] + ], + "derived_bits_length_vectors.js": [ + "fa51f7d3f2b195d068f8d7722bb7dfb40294ecfc", + [] + ], "ecdh_bits.js": [ - "cb9747a529fd53530df926ddc99759e5a9126ee9", + "36b29c20a282abb13aaf5ab3308db81fe7a48c89", [] ], "ecdh_keys.js": [ @@ -346643,7 +347433,7 @@ [] ], "hkdf.js": [ - "3903da5cddff941c9ff82b19b0967ba41f0737f5", + "b2dfda0257bc81b00131026e1983a267342d9e9a", [] ], "hkdf_vectors.js": [ @@ -346651,7 +347441,7 @@ [] ], "pbkdf2.js": [ - "4e4ae79d800a402b7a0933b752da9a5fb151bc2f", + "090806ceb6b3eaa5a7d48f44143bbe95fe63876b", [] ], "pbkdf2_vectors.js": [ @@ -407368,7 +408158,7 @@ [] ], "custom-highlight-painting-019-ref.html": [ - "22662336845f03aefa743b3f1721c127f2789b18", + "a8ec613fbca7b735245fb8b49e2830301eff4c7c", [] ], "custom-highlight-painting-020-ref.html": [ @@ -408864,6 +409654,10 @@ "text-box-trim-tall-line-001-ref.html": [ "dc0d31e2f60533e6880ef8ee3e21ec4425ed2926", [] + ], + "text-box-trim-text-emphasis-start-001-ref.html": [ + "96e0c5a32083082422335f53d67d2fefec3c156a", + [] ] } }, @@ -413890,6 +414684,50 @@ "732f6bfe0dbfe2be32bfa225e53c1da84fa8a98b", [] ], + "highlight-painting-currentcolor-001-ref.html": [ + "699f559c6aa3072bf3853801897305a4b89bcb26", + [] + ], + "highlight-painting-currentcolor-001a-ref.html": [ + "114487e478f1409ec2d27fb4202740d0b3cb0248", + [] + ], + "highlight-painting-currentcolor-002-ref.html": [ + "35891efedd4e46109ffef48de52e0cc1f3d28ca0", + [] + ], + "highlight-painting-currentcolor-002a-ref.html": [ + "c58b5f48e6f8bf83877317ce58f862f80261165e", + [] + ], + "highlight-painting-currentcolor-002b-ref.html": [ + "6330c7b9717314691bc33bdefb15a3a0b59e11d0", + [] + ], + "highlight-painting-currentcolor-003-ref.html": [ + "f2d14a4cd635d4404f8a657f51a21c892289bdc5", + [] + ], + "highlight-painting-currentcolor-003a-ref.html": [ + "be16f519c0ff7fa085478499fcef956ed9658edb", + [] + ], + "highlight-painting-currentcolor-003b-ref.html": [ + "cfdb46597272c3c73166f99e875ddf00d3d95879", + [] + ], + "highlight-painting-currentcolor-004-ref.html": [ + "0963a7d831c6463cd4788024d97e95e23afb3258", + [] + ], + "highlight-painting-currentcolor-004a-ref.html": [ + "a29a035dc64b79fa7ece0bab9f85faa9204047f5", + [] + ], + "highlight-painting-currentcolor-004b-ref.html": [ + "0e0dee02c4cdfc2b40b7fbadde4034d063c8efdb", + [] + ], "highlight-painting-currentcolor-005-ref.html": [ "39d26e8387204840d89318ef917d5df0c4021df4", [] @@ -414336,7 +415174,7 @@ [] ], "selections.js": [ - "d0cd3409a7333ba6f22616767564f0327ab9db07", + "4396bfa326b1d55b0b0e1786ad345d9754de1a35", [] ] }, @@ -416025,6 +416863,10 @@ "cc964da974077b062212a7cd4e388f1daa017ec9", [] ], + "fieldset-element-002-ref.html": [ + "2c7e7abd0f69738c49c57f42ffc5e073b87ee8b9", + [] + ], "floats-aspect-ratio-001-ref.html": [ "734522a16417a8efaaa0df5c92ff3d8ca9102f9d", [] @@ -421859,6 +422701,10 @@ "2fee6f7c1fc46593f450fac606a651a12403ff72", [] ], + "transform-non-invertible-discrete-interpolation-ref.html": [ + "8267b01d01fab8b92069aebb816f2b2847e776ac", + [] + ], "transform-percent-with-width-and-height-ref.html": [ "8025539309f04590fe103ddd6f35346febbd7a1c", [] @@ -423920,11 +424766,11 @@ [] ], "transparent-accent-color-001-ref.html": [ - "c9d6eb720f1f8f17285014b0b7fa99f86ec6e4e7", + "91a9600e180cd9636b2ec3aa0ad63f79bbc334b5", [] ], "transparent-accent-color-002-ref.html": [ - "819a5852460eeb295a65ac9acf8ce8683c93170f", + "db70dede9453312e8864d64ea5d8c29be1f63899", [] ] }, @@ -425628,6 +426474,10 @@ "67d55eedf4872f828e2838c6f7c77d6d4d053b11", [] ], + "content-escapes-clip-with-abspos-child-ref.html": [ + "1e22d6f66d742b7a8c99b3ecb075356d2811b18b", + [] + ], "content-object-fit-fill-ref.html": [ "10ef0d59319b3c32eaa304bd66879294a4ce2d45", [] @@ -425700,10 +426550,6 @@ "029b0e9f86f7043ff92d17071ceca7544649b985", [] ], - "element-escapes-clip-with-abspos-child-ref.html": [ - "1e22d6f66d742b7a8c99b3ecb075356d2811b18b", - [] - ], "element-is-grouping-during-animation-ref.html": [ "38fca3c5288a444b959f1d5279056f8608798fa3", [] @@ -426229,7 +427075,7 @@ [] ], "root-scrollbar-with-fixed-background-ref.html": [ - "ae1ff38f2f63dae173043e9ae07a7e494e236134", + "bc2c5862bf534687e108600e70a8bc3d44dfed63", [] ], "root-style-change-during-animation-ref.html": [ @@ -426485,9 +427331,17 @@ "29f4d3bbff481991354be360948e92334f6043dd", [] ], + "svg-path-simple-ref.html": [ + "8443768cc74edb18bd75812a2b6383df2fb83594", + [] + ], "svg-ref.html": [ "10bf2decaa74ae0108c86d5b97ad0480f85bf307", [] + ], + "svg-viewBox-ref.html": [ + "b58eb47a23c4a0531e6ec6f690cebbd2dfb46afc", + [] ] } }, @@ -429602,10 +430456,6 @@ "b605e3251c5b91f50a8b001655884b28937e9bef", [] ], - "backdrop-filter-edge-mirror-ref.html": [ - "c80dcb04e5cd81b03535de87b0f305efe865fb0e", - [] - ], "backdrop-filter-edge-pixels-ref.html": [ "36c509ff95d9b667018d070f4c1c7d334437ce37", [] @@ -429933,14 +430783,38 @@ ] }, "reference": { + "backdrop-filter-basic-blur-ref.html": [ + "20775bc22f3da482e0f14985d65ebffcbbd2ca12", + [] + ], + "backdrop-filter-boundary-ref.html": [ + "6cf03dde8c56c5c8e5b27623ea211ba8e6d2ad80", + [] + ], "backdrop-filter-clip-rect-2-ref.html": [ "f12e88515fe9d3d845599273054803b7f782dd5a", [] ], + "backdrop-filter-edge-clipping-2-ref.html": [ + "5d035cb195af99d415dcfdd42448875fc07f4dba", + [] + ], + "backdrop-filter-edge-mirror-ref.html": [ + "4c1dc985082d3fd18667da09f6ceb1f7e9bb5107", + [] + ], + "backdrop-filter-edge-pixels-2-ref.html": [ + "bb482e67ffae21bd339b9955c522f168c7830aeb", + [] + ], "backdrop-filter-plus-will-change-opacity-ref.html": [ "56c6243809bef53423ff18d4b70a8597795cacec", [] ], + "backdrop-filter-svg-blur-ref.html": [ + "f9bcb1c22d9006af5605d031fd545738d7f5f1bf", + [] + ], "backdrop-filter-svg-ref.html": [ "3d5853ac6698ee9dafba37a825f3dc4e2d07b64e", [] @@ -430277,6 +431151,10 @@ "84141028020b7e8cdf2412acbca3c799ba50a534", [] ], + "simulate-backdrop-blur.js": [ + "20f2cd55986f2ba7a57a8793a3fd2b18f6a301e0", + [] + ], "square-purple.png": [ "0f522d78728417b0f74b694e2e47cd41c00359d1", [] @@ -431166,6 +432044,12 @@ "c8243ac73199435f3a7dc0da0bd839fed9a77a14", [] ], + "media": { + "WEB_FEATURES.yml": [ + "4cd0fc2726292091a0f7f98f47934afc1578b60b", + [] + ] + }, "not-links-ref.html": [ "1b2515a5cd1ec257fa8ebda2041699f5d4d09230", [] @@ -431912,7 +432796,7 @@ }, "digital-credentials": { "META.yml": [ - "8a7db924976bf95537afe45854962916207e5b61", + "fc8f6a62cda5062676e1fb27324739c17ac0f91e", [] ], "support": { @@ -431936,15 +432820,15 @@ [] ], "disabled-by-permissions-policy.https.sub.html.headers": [ - "661a357effcfdf7f25a4974e151818ac3a9ec464", + "8ed57bbc951b7053545bcca83edc6b22c7f80f73", [] ], "tcp_socket.https.html.headers": [ - "177feb102dbffb11e5ff7bee147f1834cb771e74", + "b20aae031ea97f6302d5d3150a6c31d8aa289bcb", [] ], "udp_socket.https.html.headers": [ - "177feb102dbffb11e5ff7bee147f1834cb771e74", + "b20aae031ea97f6302d5d3150a6c31d8aa289bcb", [] ] }, @@ -435059,7 +435943,7 @@ [] ], "continue_on.py": [ - "0195e478e2975d37cbe8aaa58141caf15aa797bc", + "5447ab96e4f23b905dad685c2233e3ba8b9a954b", [] ], "disconnect.py": [ @@ -441911,6 +442795,10 @@ "2d.composite.uncovered.pattern.source-out.png": [ "eeedd0ff05889ffd4468bf19a2e8e9e0a094201c", [] + ], + "colr-glyph-composition-ref.html": [ + "b47795f2054ac62bf4969094b6ed44e368048ff9", + [] ] }, "fill-and-stroke-styles": { @@ -443764,7 +444652,7 @@ [] ], "gentestutilsunion.py": [ - "ab6f4e1cd08145470f7bb8c6d0a477e06b63713a", + "a453c6ff9243be3bbc229bc7c0e2beed75fb2225", [] ], "name2dir-canvas.yaml": [ @@ -443817,7 +444705,7 @@ [] ], "testharness_element_grid.html": [ - "ee2360f72c22dec8b152994c1ad9580cd1bfac57", + "50d75238923ca3cebd3b27e8d6e9f0b8fc7daff9", [] ], "testharness_offscreen.html": [ @@ -443825,7 +444713,7 @@ [] ], "testharness_offscreen_grid.html": [ - "6e5628036ba5873c2427a0a71a28e0e597eac0d2", + "31d86e705a09fcd0fbbdd78a92cd1ccebb943afb", [] ], "testharness_worker.js": [ @@ -450134,7 +451022,7 @@ [] ], "input-number-text-size-ref.html": [ - "4c9b244990d611686614d409d315d74a0f4bd119", + "6c831941f08516313cf542cd4665b0dc305afd50", [] ], "input-password-background-suppresses-appearance-ref.html": [ @@ -457412,7 +458300,7 @@ [] ], "WebCryptoAPI.idl": [ - "0e68ea82f594430fdccff7db045a978905367419", + "ae85c1cfe4684fe778038f579223ee7a5606150c", [] ], "accelerometer.idl": [ @@ -457555,12 +458443,12 @@ "6f5c6dfc096cbe04e30bb2fb38e7119fc45dc870", [] ], - "css-conditional.idl": [ - "d87f305fddf9e7c3f0151d51a595ae7140dce908", + "css-conditional-5.idl": [ + "b1919213ebcf4b4b65483ef878370de7ce817c65", [] ], - "css-contain-3.idl": [ - "0ecf3804954813ccae0065c91af93712ed31b5d4", + "css-conditional.idl": [ + "d87f305fddf9e7c3f0151d51a595ae7140dce908", [] ], "css-contain.idl": [ @@ -457600,7 +458488,7 @@ [] ], "css-nesting.idl": [ - "58d3247f9048b6a2ba1dedb2954ef30943f89de2", + "1ad0404ecf97d5e026db0ef294dd62a98cd500ad", [] ], "css-paint-api.idl": [ @@ -457656,7 +458544,7 @@ [] ], "cssom.idl": [ - "005496e7ede2e67aa3fe2ed208afb6afe849daae", + "1e70e1f8bcadf64ca12b237bbe8b81af15150e7b", [] ], "datacue.idl": [ @@ -457728,7 +458616,7 @@ [] ], "fenced-frame.idl": [ - "a3ec8d731bbcd65491ff533322994f45c5641fab", + "e15cbf11da271b8593d04e421a621560c25cc53e", [] ], "fetch.idl": [ @@ -457776,7 +458664,7 @@ [] ], "geolocation.idl": [ - "8c0acfc6cc1c37220d282f42edd84bab4e02505c", + "062a38bebc571ae6783123d87d44d15bf6790316", [] ], "geometry.idl": [ @@ -457791,6 +458679,10 @@ "fd80669bfc27bf32607dd02d37732cda6a359638", [] ], + "handwriting-recognition.idl": [ + "2bac6b5d9cade408085b7bde4e6c31457546e2ae", + [] + ], "hr-time.idl": [ "835ee8a65c84c0b45ba3beb9b0367cd12dd98f35", [] @@ -457800,7 +458692,7 @@ [] ], "html.idl": [ - "b5bf357357946ba8255dc3b309409602997147f4", + "4d6c0229bc13925a91aa9a4aa6342943aecdf9c8", [] ], "idle-detection.idl": [ @@ -457832,7 +458724,7 @@ [] ], "intersection-observer.idl": [ - "8502a11357faabd327d5659089198f0133a9db4c", + "eb7f18f5213364525f8ecd32e94c9a566df36a7c", [] ], "intervention-reporting.idl": [ @@ -457924,7 +458816,7 @@ [] ], "mediacapture-streams.idl": [ - "62b846db0b4042d40cb42a68482d6c0be6ee26c0", + "f6c8e2b82da6b617a44ed5d5aec31720d7c54740", [] ], "mediacapture-transform.idl": [ @@ -458008,7 +458900,7 @@ [] ], "permissions-policy.idl": [ - "16945e3a9b7cded5610d9d2e2cb53acbb8d6b831", + "5878d8d150a6db19f9f060fe5c60c420eb8ed12b", [] ], "permissions-request.idl": [ @@ -458032,7 +458924,7 @@ [] ], "pointerlock.idl": [ - "0204bf53424826b04be7bce2c34e429332a527a9", + "afe19cc9ee69c518bc59bf56b17f245f800bf1d0", [] ], "portals.idl": [ @@ -458168,7 +459060,7 @@ [] ], "shared-storage.idl": [ - "c40344e74d2c7f9aac8a573fc267fa548ffffb5d", + "9582f872f9433eb7a5991aa233f0954083a4bfdf", [] ], "speech-api.idl": [ @@ -458212,11 +459104,11 @@ [] ], "trusted-types.idl": [ - "a0f88e4e6c38cab683a236f3e8fa211b7e4e2107", + "b6008e187250fbce3ec0c0481b9de5b63a9c0cd1", [] ], "turtledove.idl": [ - "d4cc8c6bc5d5b106dc3f495058a2108ed6792c6f", + "b7a1775a2ce974eb5d90e6588a44078c98effea2", [] ], "ua-client-hints.idl": [ @@ -458308,7 +459200,7 @@ [] ], "webauthn.idl": [ - "3d5a453addcb4e4bcfc10e9c7333e621876ff9d3", + "e52b62b055eff450c0ae8264d54f45404412545a", [] ], "webcodecs-aac-codec-registration.idl": [ @@ -458360,7 +459252,7 @@ [] ], "webgpu.idl": [ - "4a1b339a002661035a8b5f366d6ce166b8bfe37c", + "00584589d5bd30fe51cb5fcaef855180048c5d52", [] ], "webhid.idl": [ @@ -458376,7 +459268,7 @@ [] ], "webnn.idl": [ - "29c88122adc760aa49d431057f7c26d5b426440f", + "ac8710049ab0c56cc6b67a9972ad7bfb854950dd", [] ], "webrtc-encoded-transform.idl": [ @@ -458404,7 +459296,7 @@ [] ], "webrtc.idl": [ - "de6ba1420cec4bb53b1651cea69ac030db6f4a78", + "6bfbdb898c5e87b4a095a14a117e6f0d831d7ee8", [] ], "websockets.idl": [ @@ -458448,7 +459340,7 @@ [] ], "webxr-hit-test.idl": [ - "fa4fb71c9decd64054669249353a16b3476aae56", + "d01bffe27037fe82157f05bec9689e5ca417bbee", [] ], "webxr-lighting-estimation.idl": [ @@ -465725,7 +466617,7 @@ [] ], "mock-pressure-service.js": [ - "016c6d97e73ddfa33eb9398f15fdde0b62c37496", + "8e205d31cb71c11711afc3b5ac379738880c9efa", [] ], "mock-pressure-service.js.headers": [ @@ -466270,7 +467162,7 @@ [] ], "testdriver.js": [ - "2d1a89690cc25f87e7d2762c3f5081081a902f7a", + "af7b3e06cd93b614b957bfbd3e7358862f38e137", [] ], "testdriver.js.headers": [ @@ -466623,6 +467515,18 @@ [] ] }, + "same-document-tests-force-load-at-top.html.headers": [ + "33dcdbb01ff6564e542ed621c667523a0ada4879", + [] + ], + "same-document-tests-no-force-load-at-top.html.headers": [ + "e500009f91c0201a2a397a4267a6764cdb1eae8a", + [] + ], + "same-document-tests.js": [ + "6531c8aec194dad6505bf7cc988be3299a1f1807", + [] + ], "scroll-to-text-fragment-after-DOMContentLoaded-target.html": [ "b7d517a7f6b2781f882d0f4804225354d8dd0ac8", [] @@ -471049,11 +471953,11 @@ [] ], "storage-access-beyond-cookies-iframe-iframe.html": [ - "77f1163f36331018ab66366ebe28df462bdbeda6", + "cfc7d599a1b5c7394233a6527c65b8ea9879a986", [] ], "storage-access-beyond-cookies-iframe.sub.html": [ - "a9247a00020b16cb9c18c10778cfe48446022aca", + "3d9f5bb1ef2499e8fbf84a83037f10335973930e", [] ] } @@ -483534,7 +484438,7 @@ [] ], "network.py": [ - "4523f67e9c97a7c981d36e23462cc47871bdd016", + "46c5885271afd28cb3297209d1b281b0b34e4e00", [] ], "permissions.py": [ @@ -483827,7 +484731,7 @@ ] }, "requirements.txt": [ - "ae71bbbad6d9ca1d82e65046c18d2e06559460b4", + "565055c6e3d5635f7b6b1556cab40556082442d2", [] ], "requirements_chromium.txt": [ @@ -483877,7 +484781,7 @@ [] ], "chrome.py": [ - "3b1bd6411e235af721c6ce6901f1f60e10be97b7", + "d0d9f1d3421c233c10d6c7daea6eed84551690ab", [] ], "chrome_android.py": [ @@ -484168,7 +485072,7 @@ [] ], "testrunner.py": [ - "0a5dfb1fd1864f9456769e4a99c95c61747a89c3", + "003a6acbd990f08ba5ff573941aad30247d03137", [] ], "tests": { @@ -485575,7 +486479,7 @@ [] ], "toascii.json": [ - "bca28b4a1e454a8c9ac74a94f6498fda1f6d75ba", + "d02c4c7e86654c5056abb6969d9c916a96eb1620", [] ], "urltestdata.json": [ @@ -487772,6 +488676,16 @@ [] ] }, + "set_cache_bypass": { + "__init__.py": [ + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + [] + ], + "conftest.py": [ + "969641b8fd202df97753e0c6221d0db20af42827", + [] + ] + }, "support": { "empty.html": [ "69e9da4114557b774cd78c3da64f24b49ccb03b6", @@ -488428,7 +489342,7 @@ [] ], "fixtures_bidi.py": [ - "3e97cfe3ce4c9c321dfe45b1244aa5ea02bdfb20", + "7c88abcd2e029ffe2f938d6d187602e05a71ca67", [] ], "fixtures_http.py": [ @@ -488852,7 +489766,7 @@ [] ], "gelu.json": [ - "414227975913f31b95f9c4446f5acd94be6d76fb", + "3adf4b6a2b6a89e574e407ae771b6531a8b5dc1f", [] ], "gemm.json": [ @@ -489069,7 +489983,7 @@ [] ], "utils_validation.js": [ - "2ac308242a133772b3735b408937730b8b0bbb92", + "119450be4c1c3005132da0f5d96123e64ac054a4", [] ] } @@ -495982,81 +496896,162 @@ {} ] ], - "idbcursor_continue_objectstore.htm": [ - "f82aa99949d9e9ed47b50c05bfea994dbca2bbb0", - [ - null, - {} - ] - ], - "idbcursor_continue_objectstore2.htm": [ - "8b79c64615bc4dd8d0e0d2b30056e86a171ca5c1", - [ - null, - {} - ] - ], - "idbcursor_continue_objectstore3.htm": [ - "7d96d7fec9e4eeedbc7273ff9ac87370894da325", - [ - null, - {} - ] - ], - "idbcursor_continue_objectstore4.htm": [ - "5056a7364fdb568196ee0b7e488b3248397bc9cd", + "idbcursor_continue_objectstore.any.js": [ + "76e1c7afe79c966cec9cbbf8632dcda807f32ff6", [ - null, - {} - ] - ], - "idbcursor_continue_objectstore5.htm": [ - "a0c3663ab401913b00ea2dc14199af2b210df372", + "IndexedDB/idbcursor_continue_objectstore.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "title", + "IDBCursor.continue() - object store" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} - ] - ], - "idbcursor_continue_objectstore6.htm": [ - "7a2b50752ce1e8862c72b8d6246616a0f6e3c20f", + "IndexedDB/idbcursor_continue_objectstore.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "title", + "IDBCursor.continue() - object store" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} - ] - ], - "idbcursor_delete_index.htm": [ - "6d1b4e35c97e655dad3ff51f7100f315ecc5f894", + "IndexedDB/idbcursor_continue_objectstore.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "title", + "IDBCursor.continue() - object store" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} + "IndexedDB/idbcursor_continue_objectstore.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "title", + "IDBCursor.continue() - object store" + ], + [ + "script", + "resources/support.js" + ] + ] + } ] ], - "idbcursor_delete_index2.htm": [ - "054432d65dcfd555fecc64c2c2339d39d876fb1c", + "idbcursor_delete_index.any.js": [ + "a4d0614820a188ec50b7490d2d2b2a35f4c358ec", [ - null, - {} - ] - ], - "idbcursor_delete_index3.htm": [ - "afe945e646277bc39f96b8a99be171bb5a6a361b", + "IndexedDB/idbcursor_delete_index.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "title", + "IDBCursor.delete() - index" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} - ] - ], - "idbcursor_delete_index4.htm": [ - "8eb6915b885879be61c935b5cdda64ab9d55ea15", + "IndexedDB/idbcursor_delete_index.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "title", + "IDBCursor.delete() - index" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} - ] - ], - "idbcursor_delete_index5.htm": [ - "76ce6d0e50e10dfe86bcabbb45c05cb9158ebfa5", + "IndexedDB/idbcursor_delete_index.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "title", + "IDBCursor.delete() - index" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} + "IndexedDB/idbcursor_delete_index.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "title", + "IDBCursor.delete() - index" + ], + [ + "script", + "resources/support.js" + ] + ] + } ] ], "idbcursor_delete_objectstore.htm": [ @@ -496482,39 +497477,83 @@ } ] ], - "idbdatabase_transaction.htm": [ - "8e8264f8eab9ab2f890e38cfe9c18b7a3f1b7428", - [ - null, - {} - ] - ], - "idbdatabase_transaction2.htm": [ - "37b11229194debd6f13cc645e8d0df64a51c14d8", + "idbdatabase_transaction.any.js": [ + "17859ec99e68f5191f56597014a74943bc28c86f", [ - null, - {} - ] - ], - "idbdatabase_transaction3.htm": [ - "1eea31f764a7736b9de8152e500e52545d85a1f2", + "IndexedDB/idbdatabase_transaction.any.html", + { + "script_metadata": [ + [ + "title", + "IDBDatabase.transaction()" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} - ] - ], - "idbdatabase_transaction4.htm": [ - "3a164c25f59ced647599d3cc33bdcd063b9edff9", + "IndexedDB/idbdatabase_transaction.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "IDBDatabase.transaction()" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} - ] - ], - "idbdatabase_transaction5.htm": [ - "451939731faa24afe7a7a1d703b5d5eadbd54062", + "IndexedDB/idbdatabase_transaction.any.sharedworker.html", + { + "script_metadata": [ + [ + "title", + "IDBDatabase.transaction()" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} + "IndexedDB/idbdatabase_transaction.any.worker.html", + { + "script_metadata": [ + [ + "title", + "IDBDatabase.transaction()" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } ] ], "idbfactory-databases-opaque-origin.html": [ @@ -496629,88 +497668,83 @@ {} ] ], - "idbfactory_open.htm": [ - "8e0b2412c9199c9d5542e2184774af04317b431b", - [ - null, - {} - ] - ], - "idbfactory_open10.htm": [ - "6340bd3cdf7a8df0d7c3643381719d38ae55711c", - [ - null, - {} - ] - ], - "idbfactory_open11.htm": [ - "d4012bea55bcf4ecc9e852f4cdd3cbbf2453d9eb", - [ - null, - {} - ] - ], - "idbfactory_open12.htm": [ - "ee713ef352073b6dc19346a931593c3e5e547233", - [ - null, - {} - ] - ], - "idbfactory_open2.htm": [ - "00ebbd3d0f0d2614a1281d3de03586a122ef327d", - [ - null, - {} - ] - ], - "idbfactory_open3.htm": [ - "19cd5c5254dd1b40d023c5f45f4a02c184f5dc3d", - [ - null, - {} - ] - ], - "idbfactory_open4.htm": [ - "6983ca0737f029f34dd19c0e0afbcdbf5ef5c0b8", - [ - null, - {} - ] - ], - "idbfactory_open5.htm": [ - "f6ddb17001a4bdeb99faf01bbbf6afcbdc6ab5e0", - [ - null, - {} - ] - ], - "idbfactory_open6.htm": [ - "2b2cb334e46875e9d7b2b56eeeab12fab0678011", + "idbfactory_open.any.js": [ + "edc5d3c8c6c0e9dabeaa814bc10acef0be9282d9", [ - null, - {} - ] - ], - "idbfactory_open7.htm": [ - "ccb3d0674893ce4b4066405c6761c160a47ade28", + "IndexedDB/idbfactory_open.any.html", + { + "script_metadata": [ + [ + "title", + "IDBFactory.open()" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} - ] - ], - "idbfactory_open8.htm": [ - "04c57df2ed43aa70d9cf54b6522630ed8cea3a36", + "IndexedDB/idbfactory_open.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "IDBFactory.open()" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} - ] - ], - "idbfactory_open9.htm": [ - "36a9ef814cb121dd70da5bb265b3b6a6e15001c8", + "IndexedDB/idbfactory_open.any.sharedworker.html", + { + "script_metadata": [ + [ + "title", + "IDBFactory.open()" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], [ - null, - {} + "IndexedDB/idbfactory_open.any.worker.html", + { + "script_metadata": [ + [ + "title", + "IDBFactory.open()" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } ] ], "idbindex-cross-realm-methods.html": [ @@ -500346,6 +501380,55 @@ } ] ], + "derived_bits_length.https.any.js": [ + "0aee2e3c172d30ab177fe89a8d75f964a2c9b703", + [ + "WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.html", + { + "script_metadata": [ + [ + "title", + "WebCryptoAPI: deriveBits() tests for the 'length' parameter" + ], + [ + "script", + "derived_bits_length.js" + ], + [ + "script", + "derived_bits_length_vectors.js" + ], + [ + "script", + "derived_bits_length_testcases.js" + ] + ] + } + ], + [ + "WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.worker.html", + { + "script_metadata": [ + [ + "title", + "WebCryptoAPI: deriveBits() tests for the 'length' parameter" + ], + [ + "script", + "derived_bits_length.js" + ], + [ + "script", + "derived_bits_length_vectors.js" + ], + [ + "script", + "derived_bits_length_testcases.js" + ] + ] + } + ] + ], "ecdh_bits.https.any.js": [ "37e3eb4324200c85cb65ee9f077ea7433bff7783", [ @@ -507306,6 +508389,51 @@ ] ], "import_export": { + "crashtests": { + "importKey-unsettled-promise.https.any.js": [ + "0ceeea390ebf97d65f22fa20a41e22b0eac68d68", + [ + "WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.html", + { + "script_metadata": [ + [ + "title", + "WebCryptoAPI: Assure promise returned by importKey is settled." + ], + [ + "timeout", + "long" + ], + [ + "script", + "/common/gc.js" + ] + ], + "timeout": "long" + } + ], + [ + "WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.worker.html", + { + "script_metadata": [ + [ + "title", + "WebCryptoAPI: Assure promise returned by importKey is settled." + ], + [ + "timeout", + "long" + ], + [ + "script", + "/common/gc.js" + ] + ], + "timeout": "long" + } + ] + ] + }, "ec_importKey.https.any.js": [ "a01bfbb0ef2e1881e83aaefe76f1ca39805c9304", [ @@ -529538,6 +530666,15 @@ "testdriver": true } ] + ], + "resolve-after-preventsilentaccess.https.html": [ + "7223a722fe2fb4e533acb3e4777a53669fdb1d5c", + [ + null, + { + "testdriver": true + } + ] ] }, "fedcm-auto-reauthn-without-approved-clients.https.html": [ @@ -531954,6 +533091,34 @@ } }, "css-anchor-position": { + "anchor-animation-dynamic-default.html": [ + "d1837a6c336725ddd675c43c8da6a19376e68d74", + [ + null, + {} + ] + ], + "anchor-animation-dynamic-name.html": [ + "60d8dd59aeb0254489f18400aae907c1d5f4ecf8", + [ + null, + {} + ] + ], + "anchor-animation-iacvt.html": [ + "7341d2fbe24b3d8e13fe58fe2de3b11c3c847052", + [ + null, + {} + ] + ], + "anchor-animation.html": [ + "f3a4eba7ba3802fe8cbbcd5bf5675906f35bed10", + [ + null, + {} + ] + ], "anchor-center-001.html": [ "f8583e68c00183023b88690c79cfc1d3524ab00d", [ @@ -532018,7 +533183,7 @@ ] ], "anchor-getComputedStyle-003.html": [ - "fc384ab4cdf749e5dcbc16fbe0f3403360234ef9", + "d23558aef5bdc742af1b2a61f9a94dd36b86d640", [ null, {} @@ -532039,7 +533204,7 @@ ] ], "anchor-invalid-fallback.html": [ - "4768beac62383771ff2e815221d48626ced70c3f", + "15ccada17949518aede5eef33e51cf988c643218", [ null, {} @@ -532431,35 +533596,35 @@ ] ], "anchor-scroll-position-try-001.html": [ - "e314e9634d900f6605d4e3ceec31abc7ff099750", + "6341d34f29d531e9901f1fcade31d21ccab04e25", [ null, {} ] ], "anchor-scroll-position-try-002.html": [ - "4e281177eb78246c438c860ea22056a75a7c24eb", + "777a6a76cd5109e8389fd2d480850b3d0df54f0f", [ null, {} ] ], "anchor-scroll-position-try-003.html": [ - "d35d2ac2699bab1133e6e656259b68d14728923e", + "55b09e879971959e42cf6f05563041c71ff28653", [ null, {} ] ], "anchor-scroll-position-try-004.html": [ - "cc61a0443c86231b209698a9df48bcb15ee71a08", + "9fd3803800b1613d33b34b8daa17463a9f340db4", [ null, {} ] ], "anchor-scroll-position-try-005.html": [ - "995010afd4bfb34c16b32d9737090706e8e1cca7", + "2d37c0b622d6df4fa1fae0e253ca60a8fcf1d7a6", [ null, {} @@ -532473,49 +533638,49 @@ ] ], "anchor-scroll-position-try-007.html": [ - "8ac54db0633c0cb014c511fdc18723ee92ea5889", + "7b3941be76a2335f2aa10a38fb73d51be1c65ed9", [ null, {} ] ], "anchor-scroll-position-try-008.html": [ - "d95d531a0c3663ade0d1d7f5143b731ba5705ecc", + "4447714a122383a3ad1dcbbf136602f6014154b7", [ null, {} ] ], "anchor-scroll-position-try-009.html": [ - "94b2c64ecc41205b7897a8f46584a5da8bc9fe3c", + "3da8ad9c63356139792444dd3fc6abaf8c1647dd", [ null, {} ] ], "anchor-scroll-position-try-010.html": [ - "eab81f0340b10b73881747357d62a2be273d5652", + "3ea49d913be83d46beb1cbadced0e376857aff9e", [ null, {} ] ], "anchor-scroll-position-try-011.html": [ - "d13b5485d0f299474218764a442a43da89171ed7", + "4cf7fcdd60b8b0ac72075e69e0a9c5a6560d5d91", [ null, {} ] ], "anchor-scroll-position-try-013.html": [ - "3f1330d744b7c4e9783d95e41623b1ce2b9855bd", + "0d115c26fc436b73007c87cf3614131a21968441", [ null, {} ] ], "anchor-scroll-position-try-014.html": [ - "f19f41c08845af0e935e918dc1bbf7aae8ec1c3a", + "3e964e4dbd60774ef797474db0a21599ca363a6a", [ null, {} @@ -532528,6 +533693,13 @@ {} ] ], + "anchor-size-animation.html": [ + "52e53021c27ffbbef52f538ac4d8915199543433", + [ + null, + {} + ] + ], "anchor-size-minmax-001.html": [ "364b3eb24f19dea2666d986c95fc1f4f77128d7a", [ @@ -532634,21 +533806,21 @@ ] ], "at-position-try-cssom.html": [ - "42f82d9d4bd05aa66a9f243fd3772bc7cd9092d0", + "46ca8f73e92e132f47f2cdd8a0495da31fa4cd0c", [ null, {} ] ], "at-position-try-invalidation-shadow-dom.html": [ - "50e67de1aef6d9a5ae647d30b36cd9fad880476e", + "18b6d4731ece42b6c3d942ea5366477c61d61ce1", [ null, {} ] ], "at-position-try-invalidation.html": [ - "3f7c5062f21ddc67464c51c9ab8df113a882ba82", + "62cd7e1c6096e1bb3053abc597a1c2aed728ff09", [ null, {} @@ -532662,7 +533834,7 @@ ] ], "base-style-invalidation.html": [ - "8e8e69f9b7ce6f07b9b689bd5c57fed8c5550812", + "e4e12785790391e595b300b670939b9f0547665b", [ null, {} @@ -532724,13 +533896,6 @@ {} ] ], - "inset-area-function.html": [ - "9d68bf9ddf4ec5adc30186fee497294e1d024054", - [ - null, - {} - ] - ], "inset-area-in-grid.html": [ "bbf92e8d1c66a30abf6b5b645966f289cad633a6", [ @@ -532739,7 +533904,7 @@ ] ], "inset-area-in-position-try.html": [ - "7339c4f41d21de6e8e526a2f787a57da93229eb7", + "3affc1b30b710ee43fec882cb61659e0f3ff9cdf", [ null, {} @@ -532759,6 +533924,13 @@ {} ] ], + "inset-area-value.html": [ + "27c5882fc6e1814ada86a988e1ad6f146c9ffbdb", + [ + null, + {} + ] + ], "inset-area-with-insets.html": [ "f6a4cd3665224e1d71d78773256f655b0e9309e8", [ @@ -532774,28 +533946,28 @@ ] ], "last-successful-basic.html": [ - "b88b9ec77dc02fe5092fd0c4b5caac03e9fa9764", + "cda0eed6fbad429d43c04b61ee16f6abf25e5162", [ null, {} ] ], - "last-successful-change-options.html": [ - "86df1afa67ad50573b2a4539961a4f3e6f20512a", + "last-successful-change-fallbacks.html": [ + "ed4f8a43626e3d0c4ef7f27c96450be3bf1708d1", [ null, {} ] ], "last-successful-change-try-rule.html": [ - "c0560ea11327d4fba1e46bf7db072d42cca8bf50", + "205aba014c3cd5f1cea5bed48128c29928265bcc", [ null, {} ] ], "last-successful-intermediate-ignored.html": [ - "a2876191559fa454b0f271f351c9a1dfa2f7b0b6", + "82bf1e8aca9ae6151062fd52f2ef814b2e74b526", [ null, {} @@ -532816,15 +533988,22 @@ {} ] ], - "position-try-options-computed.html": [ - "91b27d4f3172746f5dd567e22b4b9e84d4b35f39", + "position-try-computed.html": [ + "2a5cf605c0abbf341c5c411d6e9a0cea3eed3ed1", [ null, {} ] ], - "position-try-options-parsing.html": [ - "375bef170c191f960bc2e0cfa0f18bca39ae9e87", + "position-try-fallbacks-computed.html": [ + "ed189016c1d567e371932f3cddae43731f580593", + [ + null, + {} + ] + ], + "position-try-fallbacks-parsing.html": [ + "4c64b77ca2718a7fc3ecffdcfc8ba8e5979303ef", [ null, {} @@ -532845,7 +534024,7 @@ ] ], "position-try-parsing.html": [ - "7f50459710629cefd0282a8d78a60e8d760e719f", + "ef0ede045a47cc6c2d6403e25dc8c28a015ba247", [ null, {} @@ -532881,154 +534060,154 @@ ] ], "position-try-001.html": [ - "47fcbb8393962aff84d21c85db140ee7c7dd95cf", + "739e09f6a7b8b5ba5a2de8c17fc30618ba36bd13", [ null, {} ] ], "position-try-002.html": [ - "c3d550adb1ee4f2e111f37baa643fbbe0724ca4a", + "a97f9ecbab00df8bc423271dc8f1aa6d845f3ce4", [ null, {} ] ], "position-try-003.html": [ - "196b7b0304b8e8c48e54fc0180e879a5f35ed45f", + "a0d4c1393838985fc05b3449c8227cf5046aab72", [ null, {} ] ], "position-try-004.html": [ - "b172f2e8bf392deb95c42475b11f54cfc5845760", + "ded0efb4e6520303b0dfbbb0eb708a8d25ec3b26", [ null, {} ] ], "position-try-backdrop.html": [ - "6bf2262c69af6ec2f883435177c49db93c135b67", + "93b1b81ecc4bc41d921fb7927a2ec4b32a46e8f5", [ null, {} ] ], "position-try-cascade-layer-reorder.html": [ - "4f38806f604f612065783c9b3253fb1f6bda0184", + "dc707e11ca86b4e6ddefd2ae9fc73cc07fe2ca13", [ null, {} ] ], "position-try-cascade.html": [ - "d73ddd586a5fddf585878a5e983d352a1c947ae3", + "bec0aa1bf4102951968492d5ea34fbb34f854f48", [ null, {} ] ], "position-try-container-query.html": [ - "528217c917c5f1e2b948a54bf114addf45d2e795", + "e5acc8b98543c320c47f7a3987b9838520c7fd2f", [ null, {} ] ], "position-try-custom-property.html": [ - "69ca0d12f430f77dce96fbe0ceb3f713013448f0", + "aee288bce41d793477e9e3cf1c157c72869fda3f", [ null, {} ] ], "position-try-dynamic.html": [ - "fad3db62a31e535aa943b9709ebc4bb4f02f6e4d", + "016b8023e6fba8d52fa0112ddf8f19f18b570cd2", [ null, {} ] ], - "position-try-grid-001.html": [ - "74888f25486879e2034f931b724bb2880a51aade", + "position-try-fallbacks-limit.html": [ + "1b1e76e12c8621e30bedb7737f6104c8316864fe", [ null, {} ] ], - "position-try-initial-transition.html": [ - "0e81607ae65bdf1a2848e3de3f1cf5d746c30ee9", + "position-try-grid-001.html": [ + "08b88fd59f2b5bbf61106b4b5c88e285c691e0c6", [ null, {} ] ], - "position-try-options-limit.html": [ - "32a4f592fa05fcc4b4f058a60c92d2b37d0afb75", + "position-try-initial-transition.html": [ + "163e2dc3b6d509ed757da87bb4728be7e7f645e0", [ null, {} ] ], "position-try-order-basic.html": [ - "d1c74e7b9fd76d0180379ac751a23f7405b885be", + "c7705a71bbb5fe0a8833604a2edc8bcf43639636", [ null, {} ] ], "position-try-order-inset-area.html": [ - "98e606a7d8fd8169efdba772883ea65d1ad22ecf", + "71ae5d78debe9ecc9059906ec125931ff09769df", [ null, {} ] ], "position-try-position-anchor.html": [ - "7355c23f53b6373d3ab1f0f4bee4821eca5d91f7", + "d26dfd9f2b57e144d0e0bc9e0d903b1e12a15e8e", [ null, {} ] ], "position-try-pseudo-element.html": [ - "5895f2a4077b697b4d59dec4e0cb2dbace4aefd6", + "23c572a4104169daa4574835ec76cf284a3e8c55", [ null, {} ] ], "position-try-transition-basic.html": [ - "3bb982f073a6c4559f5778207b96ae4fd5a095d0", + "eb4222090bd1584d31cc15f59f4a6bff9808c0e7", [ null, {} ] ], "position-try-transition-flip.html": [ - "6adacadfd42e4405297e76d7819201c58dd36184", + "e8e692a7295b9c9c3900764952058c8745da673e", [ null, {} ] ], "position-try-tree-scoped.html": [ - "d0c94fd6797dc7a87d129769f06a55cfca3d88a5", + "b1cec4e4ef2d7b19b5696b315d7da753b099a90c", [ null, {} ] ], "position-try-typed-om.html": [ - "76ec9411b8d2ec34660132ab4d40f90a87cc6c25", + "56e0aaf4e7765fa0404d4074d6f864f320b785fd", [ null, {} ] ], "property-interpolations.html": [ - "ddfad852f8917a662ed1b3936f577f4f3e91acf2", + "5687e34cfd6dbbaf4b46bb21d612c7c5aa072edd", [ null, {} @@ -533049,70 +534228,70 @@ ] ], "try-tactic-alignment.html": [ - "39595276d5ca34b1db597bec33765c718ff8ccd0", + "b39a92983717e40a37d6092583cbc95ce7b967f5", [ null, {} ] ], "try-tactic-anchor.html": [ - "8dc45dc6e8a81fe899442c514afff49d646a5afb", + "a40ed9fc36dc8b8bece51d8395c2cc41f54c3226", [ null, {} ] ], "try-tactic-back-to-base.html": [ - "9a11fc7fffc90c1852846dc2cf8352599d1d4c38", + "96c2ee86950326a4ac250f680fae670dab2a2832", [ null, {} ] ], "try-tactic-base.html": [ - "b52c3d15e0f231dc384f538e785d24935544a082", + "c0a7ed739c87be9fb33c24e81d31b5f37647f38e", [ null, {} ] ], "try-tactic-basic.html": [ - "472e204096ddfec2e0ecc54eda86b3d248623001", + "36077b33f493807cfc2470795ac4f9c8e376e182", [ null, {} ] ], "try-tactic-inset-area.html": [ - "32af18a1494e10de65231e28eac5d8efa694fbe1", + "9e53fab91fc9f0c33c7ee9da5342d69ca0831183", [ null, {} ] ], "try-tactic-margin.html": [ - "ab627315b8bed968a74fb637e2d99352a9c9ebb5", + "7e0b25652c743fe2f6607202a7cab985ecf8d681", [ null, {} ] ], "try-tactic-percentage.html": [ - "20cf0f87e059312c8c6fcb765f7597c132fbce86", + "41b5926e2cdb3c0014bd3dfa11e2fdcc1c121c08", [ null, {} ] ], "try-tactic-sizing.html": [ - "432992491dd8828f08f2db2d6b4a1df6abcc96f3", + "1a55ccf8011fffbfa0a83922c651313e6c3261fa", [ null, {} ] ], "try-tactic-wm.html": [ - "bc1c82c35d1932769aba16cb86bfacebde097481", + "8dcf98f893979c0511d3bbf6675df16b331a62c9", [ null, {} @@ -536276,7 +537455,7 @@ ] ], "scope-container.html": [ - "3e976088e2c3b38d17ad57f33e9f219719144839", + "ce7207b42eb076e592c61f046332a6dfdfecfe7c", [ null, {} @@ -536838,805 +538017,805 @@ ], "container-queries": { "animation-container-size.html": [ - "fefb721cbc9a49296e76fb6194a6702b5211816d", + "e620335c358544c57ba58fd87e8cdd5d242c616e", [ null, {} ] ], "animation-container-type-dynamic.html": [ - "835e8e1be1db29cf31895f0eac2ac3ba0a500026", + "473c914d8a534ae3ddd76d956075bc5bdf0ef5f8", [ null, {} ] ], "animation-nested-animation.html": [ - "7f1ae854ae8e0ccaf68efb4a87397b0fe05af7ce", + "b956fed2b4c2895a74f8d68de99632a7edecbd81", [ null, {} ] ], "animation-nested-transition.html": [ - "934f995a9791366e59bbd1e1a510e7058d84d1a5", + "ca8808664efcf8d00ac0d9af3a2ec90cf0f7a779", [ null, {} ] ], "aspect-ratio-feature-evaluation.html": [ - "843f34732b6c81696487c33ff497d8d48066ef13", + "9b68e8679d08eb440b3c1adc1fa11cf1cf8db6c4", [ null, {} ] ], "at-container-parsing.html": [ - "b0196b5e5a124cbc41f13e754f0963108b407d4a", + "b8872e89a45d28ce5313fea06b594ca9ac4df4c0", [ null, {} ] ], "at-container-serialization.html": [ - "141062a8d4711c69e49b368a9ba88ecee2edaf4b", + "7e6e3e9945245013c2a7d795b3ead5d2ab13e4fc", [ null, {} ] ], "at-container-style-parsing.html": [ - "36fda2e36630d2330e84da0edc571983f9d07790", + "3ee22be9f5bca2acce53a68a217c7a958c3a48d8", [ null, {} ] ], "at-container-style-serialization.html": [ - "a4fb25378cbe36812dbb744b0d7c6aaf9c1a33c2", + "a30acef9ac21acadf3bddd7099709ffa032a43dc", [ null, {} ] ], "auto-scrollbars.html": [ - "44074ed2133eda9e5296b375ef5f688cb4d9122f", + "96f082f38aa5595d63e72f4d1954c4e9140156bf", [ null, {} ] ], "backdrop-invalidation.html": [ - "6a59a2f8941e15980df8f2fa5b5f9d7bb32bd2fb", + "6f7d52cc386f0a0b963f2b92b4fdc182433d9909", [ null, {} ] ], "calc-evaluation.html": [ - "71a5e23764ed33acbdb3ab4dd21c575b9c39c694", + "60fd59e9cd436000d83127efa1469d60dcd0a6a5", [ null, {} ] ], "canvas-as-container-005.html": [ - "9132592434c53ae28894cbd00dd02c7e5d402d39", + "3068ce708e68e8392cd2f2a7d9e35eaf7f5242db", [ null, {} ] ], "canvas-as-container-006.html": [ - "02dbce62753961e6bb3d9a1472c2cb80626c548c", + "0fbb6f6d8332bfde3a0aec8f12198c9c650c4179", [ null, {} ] ], "column-spanner-in-container.html": [ - "d494e28504fb6be56fb79b53f68507071f39ce72", + "0f0b5f7850fd0664441e4a75e6e5d75a91514e0f", [ null, {} ] ], "conditional-container-status.html": [ - "e9762f93239ac674897827aff1bd6eb5727abdab", + "d0dfb97e9cb0bd32324c9ea180afa7938124de0c", [ null, {} ] ], "container-computed.html": [ - "2be304481bac32928a602fadb083222d993a02fe", + "fa56ab77402869eb44c8bb393ba2f11310498861", [ null, {} ] ], "container-for-shadow-dom.html": [ - "63d58f76982e872896c1819f9c9f090918705664", + "d79b3a9d554426754ceb6af98f6ca9e774b2e92d", [ null, {} ] ], "container-inheritance.html": [ - "b333b691fd78789af20d15b235cf1a88c0e91f5c", + "9fc8cadc3e4a06ce1cc7360ad7bac5fbcce5c01a", [ null, {} ] ], "container-inner-at-rules.html": [ - "ac1800292984023262d5af86d96993139f671736", + "4f0d6e02589bf1a31fd4f1b5c0a7ba9c2ae373c7", [ null, {} ] ], "container-inside-multicol-with-table.html": [ - "8688159da3c3c332167c5fb1578ee12dc8dee0c3", + "1046d57ef250fe74166c1ca6a7c4d56bcb07975c", [ null, {} ] ], "container-longhand-animation-type.html": [ - "aded2a3ec8bae1203e458667bf6ff1f616aca91a", + "efc9a817d94756242486a974afc50c8e4c75538b", [ null, {} ] ], "container-name-computed.html": [ - "f58d54744e46d329b308c50b8232ef09bdc7ba80", + "abd2ebe086067772ab861eab37795a10bfbdce6a", [ null, {} ] ], "container-name-invalidation.html": [ - "aad225def9d0436de8be61e7c0dcbcfc681c0973", + "e918f182e2cfcea9792bded8fe5b5e6bb9b0f2fa", [ null, {} ] ], "container-name-parsing.html": [ - "4f385cca5245cd63e531d1ddf26c84cf31b7b2a6", + "895b73ee66e598ed3e226890d7fd64ca5c67a86e", [ null, {} ] ], "container-name-tree-scoped.html": [ - "e0890aab32d8d6149d712ae4f794532c58c14c65", + "de633282e88b627b42f93f3fa90c020cf83f0bea", [ null, {} ] ], "container-nested.html": [ - "3ad35bd2be802f10417bfd4fbcb5ab7a983d20bf", + "dfe30ac0ae17d91f3a5e71f168acb19404918090", [ null, {} ] ], "container-parsing.html": [ - "87b3bdd48cd30cd591cfaccc5cfda34302a05145", + "ab04102b569cf44fb307f68fb12d2ee61b2c7e9c", [ null, {} ] ], "container-selection-unknown-features.html": [ - "8e0e34db9a52c5d5c7901e2f22b8fbd2a3aa6c6c", + "5c2c67caaf1569fd4d9e739ff3a25cfc2bb9e65a", [ null, {} ] ], "container-selection.html": [ - "cef20f85a2fdf60a08b2ad9ff4cc8e3ea30be6aa", + "d262da9ddfd7d9cc10e2378527c9f44f9a33169e", [ null, {} ] ], "container-size-invalidation-after-load.html": [ - "cf5687aa39dfa7794422059ae72d5cf9e61d2cad", + "2d66b0990fd48a7ad95755307a061a798627bb60", [ null, {} ] ], "container-size-invalidation.html": [ - "ab26971749877a46ede83ca9411eadc2b35edcfa", + "14433c9c3cf012474551ff53f6fcabe2a14ec4a0", [ null, {} ] ], "container-size-nested-invalidation.html": [ - "a549f6d84820f89c0df151d20dde385d41bf1ce6", + "c13c80ed3852e478a0d9db66d1f9892a45cbacb5", [ null, {} ] ], "container-size-shadow-invalidation.html": [ - "b2e02a10916e7edbfa2af9f5e818506a0b24ead2", + "4d2300701ae01fb857fead2e083478bbc29bee78", [ null, {} ] ], "container-type-computed.html": [ - "0b5e033a0f302e904414447e2a7eb9be8eadfb39", + "60d5ab5a05a468c1c72eee3139681cd9de923fe2", [ null, {} ] ], "container-type-containment.html": [ - "66500a6a71c12087fc02cc292cabdf50314962a7", + "ba97b385d6c5672fb6193d49438acb77065d6d9c", [ null, {} ] ], "container-type-invalidation.html": [ - "90e0b4acd1d38ed9cd01d4dcd024eba77fc5e482", + "e4f02028a74c8d71ab36d4b78cf0cf8a0ad843fd", [ null, {} ] ], "container-type-layout-invalidation.html": [ - "3103de81f7989de283be355b47b3a137c12dd3b4", + "27c7b8a012debb1969d47e0d0c2c253b00298684", [ null, {} ] ], "container-type-parsing.html": [ - "5805a927b327eefc1a687db3cdbb8c27c306fb04", + "1e106852c5bd85e4f5887cef42befcb1925700c9", [ null, {} ] ], "container-units-animation.html": [ - "cf1b9a8f345ebfeb1217237f078e5e4e55f96250", + "79e59dc2a186fb3dc207547df9add7d327a357d5", [ null, {} ] ], "container-units-basic.html": [ - "166a003a29b2eb1bc0c017815a36cdcb1361c2aa", + "84f55d550eac0b5810d103d4b59c37a9080c0fb3", [ null, {} ] ], "container-units-computational-independence.html": [ - "694b665c793c820f5f80aa2c19ff4be146f72a08", + "94d786dfe51b18f5405a821f3dcb4378010b61ed", [ null, {} ] ], "container-units-content-box.html": [ - "89a76e868ce5750f9739c4713da65701c9498277", + "0fc18b3175f9c2a83900df80c16b821843919599", [ null, {} ] ], "container-units-in-at-container-dynamic.html": [ - "c1f929241ca7018f636bfabf7072c1bfa549db6a", + "978d5a60051fdb8fd5c749fb25b8a212c648c6f0", [ null, {} ] ], "container-units-in-at-container-fallback.html": [ - "3784499c387cc3f56356918064470461f039eada", + "fe7af8e38ea2366f31bbf044e2f73912b030cf65", [ null, {} ] ], "container-units-in-at-container.html": [ - "9ddca55ec15226dadba851a1b780cc258be7806d", + "9faf62ffc0c2efa07f26b2617e8d18514e7504b0", [ null, {} ] ], "container-units-ineligible-container.html": [ - "8882d4a38ba030e694e22d96d32ce2ecb2301b40", + "61565de6e2899940017797db87df3118c806e15e", [ null, {} ] ], "container-units-invalidation.html": [ - "abb766cd0c77b033e4aace48cf499897c3fd2347", + "602f6b69dc20401e831998a8a08c831658d0a24b", [ null, {} ] ], "container-units-media-queries.html": [ - "7b76f654e5cec341d9ee364878d9692b8a04e34d", + "b46e0cb715a9c269fd69b1668e26afd7296b3447", [ null, {} ] ], "container-units-selection.html": [ - "16a44cd176618d0ed21e6cb8921fd286234441fb", + "66ab3e245803db542ae51cd1ba968b8b51f83605", [ null, {} ] ], "container-units-shadow.html": [ - "66ae1c976ccd318664a24b7c8981d7d699bdff76", + "3c672ad54265c0ddfe01e55b4af6062e7a761f86", [ null, {} ] ], "container-units-small-viewport-fallback.html": [ - "6c8851681fb62fc133a2635796e38c367e866dcb", + "d1c95d33b8f124739f5da29e8c51ff305690a0d8", [ null, {} ] ], "container-units-svglength.html": [ - "8bb227c0498941222275c024b2707fd089639624", + "e39c21e34616fd2abcdf903f3c9aa6465a5dac43", [ null, {} ] ], "container-units-typed-om.html": [ - "6da3306fdfa3e88dde176d43c81813c3959a0306", + "4ebb3518ac21373f28c1d1fc9a66644fec2ac565", [ null, {} ] ], "counters-flex-circular.html": [ - "d60049e26c7b9d5dd45748a79a2e1c90afc8ed72", + "04af2e2dc06ce2dd44f1fa78204ef7f5f66a5bb8", [ null, {} ] ], "custom-property-style-queries.html": [ - "d9152432ed1162c2f015148bd197663740fc1f83", + "96a80904521ae3e92c43c87c4f05098d7e2376fd", [ null, {} ] ], "custom-property-style-query-change.html": [ - "6669ede31dae0f95f2f03a29023516e7aaee303a", + "ac15092b4cd11443b521e9857eaff01235a7dab3", [ null, {} ] ], "deep-nested-inline-size-containers.html": [ - "00bc8b0a6b2deae05e980a6c8cd7ddbab286906f", + "40012b41f2188cd18ffeb9fe8b09cbbe5a87d0dc", [ null, {} ] ], "display-contents-dynamic-style-queries.html": [ - "782cf566552423193669f9f0da034f802d265067", + "466992f628fd29a98a6cf65a04872bb9408d9b13", [ null, {} ] ], "display-contents.html": [ - "d96a46d06a85f024f0fce9d43e34dec6e271ea76", + "3dd50caff3899c1c6f92b3a05eba6669db7adcef", [ null, {} ] ], "display-none.html": [ - "8d07ec09ddea2387d2350c6908780cd1c51696a4", + "4949cbbb7152cda5e278924ebe86ff73a52a3439", [ null, {} ] ], "font-relative-calc-dynamic.html": [ - "54f01d45a396ca1320905e84abf70fac238b03ea", + "927dda9ffa111156ba7de53a1ea27c7ca2210c3d", [ null, {} ] ], "font-relative-units-dynamic.html": [ - "9dfaceeed6b41c7f0366ac6288809efb9a3e1e52", + "60c668a71c7d8768a8bf0baa1b0694d46a247d4f", [ null, {} ] ], "font-relative-units.html": [ - "ba4a60dda21962a8956180b601984942c3dc94ff", + "38d1902825506e32d11ad16e805ce6304005336a", [ null, {} ] ], "fragmented-container-001.html": [ - "886f179054cd0511d261da1d03cf59b704110e50", + "f5f4d7de7bdb922cca0c48a30334859caa23bdf0", [ null, {} ] ], "get-animations.html": [ - "dca41c6adad8355411999e56982806168d671ad0", + "228f52ecf58361e93b486fb1295cfaffc00fe127", [ null, {} ] ], "grid-container.html": [ - "60278e09c69f3fb5718e75ebaebcf04da1e146de", + "c7002f696f6e630c81271c6b4bf04f4dc33580ec", [ null, {} ] ], "grid-item-container.html": [ - "f1c66efc26d9f96db833c17900852b1ffeb69991", + "f097c18b2ae6d2be3cee9b76b04b74eb4a6fae38", [ null, {} ] ], "idlharness.html": [ - "ac1a677bb94d045d9aa6ce8b49bb85cbff51cc92", + "177531d0d06600b6afd1bc1e38743c1d4737fb83", [ null, {} ] ], "iframe-in-container-invalidation.html": [ - "f43d1ce7899cd78362b73bd048373b18e3f7229c", + "4c904d2d4b40d6bef3640e034cef4d1cf985376a", [ null, {} ] ], "iframe-invalidation.html": [ - "51f2be9cfa3375af7ace46c9490612bf9daa5382", + "c68fd4b16a9ffe95831524842f6f0005f75f4af9", [ null, {} ] ], "ineligible-containment.html": [ - "36ce68d864336337771a926c2a9eaebed5399eb9", + "1e1cace51e7b80ccc2511ff92243ccc0fefa51dc", [ null, {} ] ], "inheritance-from-container.html": [ - "97dfff2fd02fe6e825f3d547caeb88fefef2d0ca", + "4b815d68aa39c15b9eeb0bc50131701153caac8e", [ null, {} ] ], "inline-size-and-min-width.html": [ - "8ddcbc614cae184b65295ab722ce392df4491f5d", + "91e8c48a93aae0066878be545696cfc4ae0e924e", [ null, {} ] ], "inline-size-containment-vertical-rl.html": [ - "38c88f2df79748747e11a41f35808bae3d55e82e", + "44fa62c79352c9afe756e2686580fe73bcc9379e", [ null, {} ] ], "inline-size-containment.html": [ - "d519322bd2719c72b17a1b81e0649103b2b60078", + "154a0a47ce13287298f8e784818a79f450a8a132", [ null, {} ] ], "layout-dependent-focus.html": [ - "a16370ac566d7044efb03f0466889a89dda49c4c", + "3e28f4a1da16299a8e05cbc3700b3041d925a9e1", [ null, {} ] ], "multicol-container-001.html": [ - "3032170ac61bee9d4322d1992ab8a27af668c48e", + "9785b6b0c624d6c94a9fe557e6395a1610c75f99", [ null, {} ] ], "nested-query-containers.html": [ - "83cc3c2fecdae002a54988a31f098b592928e4ab", + "348e3d1529e294c06ad91126af628711ff2edbb7", [ null, {} ] ], "nested-size-style-container-invalidation.html": [ - "8d04bf589a2e03e2f89b69c69f0d5d3a38a2872f", + "87256703884c388f882a6c5a0098339af525c5c5", [ null, {} ] ], "never-match-container.html": [ - "9d5ff6d2272c809cd2b95aeedb3b86896c469e37", + "5acded7cc5a085f4aa822e64109872dc91711afa", [ null, {} ] ], "orthogonal-wm-container-query.html": [ - "1ad52bf499c46f1826614a93038f96920b345bd8", + "630226500effd84819a696939c2133ccbbea763b", [ null, {} ] ], "percentage-padding-orthogonal.html": [ - "0c419d18a9da2c2765667c1d2b81d7f4dc514112", + "dac71be0bca6e2e86be48a28b1c8863763e57a23", [ null, {} ] ], "pseudo-elements-001.html": [ - "0baef0bfc2b55a3e8fda67084796355d41712929", + "e147da5d9e85858a9b4ecc69f65a028d8e0b042b", [ null, {} ] ], "pseudo-elements-003.html": [ - "2d7647f7104f4f6d5317342d3d5c6f453ff89462", + "d7bec8a6e185b1f602600bbf10c4a1c20cf271a7", [ null, {} ] ], "pseudo-elements-004.html": [ - "db199f220505dc4e55c5a3bbcce1903e4d22ece9", + "6c0babfae23160f3901c51e4a1b4b4e6a41583df", [ null, {} ] ], "pseudo-elements-005.html": [ - "575b66d6f838dd45733de842e3828eb1773f6c86", + "163349adc862bd7bf2c6a5064541eb7e19c66e4c", [ null, {} ] ], "pseudo-elements-006.html": [ - "65aee97f75893635b64ee33c4b78c5e31cfb3027", + "39c00d70dc235b7baddd25e5587e844400cc231a", [ null, {} ] ], "pseudo-elements-007.html": [ - "951f4226f4968b93cb498160a11e984819e4d7bb", + "575cb73af6515b01c39498e91a5db10a6f802551", [ null, {} ] ], "pseudo-elements-008.html": [ - "859deb2206e02d835e90c5e93e3a4c16fa5877bd", + "dfa07922368d5caa89b7b2568c5bc26e0147b508", [ null, {} ] ], "pseudo-elements-013.html": [ - "870b589115324769d6e3bcc2988f507c8ff28c88", + "e41fc7611a4e30351910ebfd7908c0b9e0648552", [ null, {} ] ], "query-content-box.html": [ - "5f6cc9fdbe0719fe673d6d24cf6601823e63883d", + "b689acdb095ca307344329c9fb6ca63e4c817e6a", [ null, {} ] ], "query-evaluation-style.html": [ - "bf059f795a3536802e6f8f84a27a06773ca8bfdf", + "75876dd1ac354986fe7cba18ceebb99f510cafd5", [ null, {} ] ], "query-evaluation.html": [ - "469b7b0d7a25cbf8d3fb9b8eb48f17c9209440a9", + "d5c77c3a7e4a7c403dc058c36763d941069ef049", [ null, {} ] ], "reattach-container-with-dirty-child.html": [ - "680d9caa84aed511f2e3a961e687a8b28a7c9e92", + "914155a660239a10f47fc6f11011c559903f2725", [ null, {} ] ], "registered-color-style-queries.html": [ - "6e2bfb896bbaa67bcb6933bebf13829c0f0a74e8", + "fd663d2c2d839aa84a175c0c077aa20f85a00766", [ null, {} ] ], "sibling-layout-dependency.html": [ - "5e30a998d23b03dd73f1ff290876243bd2eb9417", + "eb3df2ba410d34b62686351fc6834287fbd73baa", [ null, {} ] ], "size-container-no-principal-box.html": [ - "4bff0681ab603e07f8bf1f2cad10a51c2bcb2832", + "730bb1d7361ae449d7c129a318d89cd6f9c6adb4", [ null, {} ] ], "size-feature-evaluation.html": [ - "600a266fce25efe508c8902847bdad6fe7c69ce1", + "282233dec9d00786295324bbea99e33db8c77eb8", [ null, {} ] ], "style-change-in-container.html": [ - "ed4baa7e8b619f77782466e3c0db1fbe4274091c", + "abbb1266e6994fafe20cb8183e2cddbeefa82b84", [ null, {} ] ], "style-container-for-shadow-dom.html": [ - "e8297be941f2be6ab488f20ad4dad62772a492c4", + "22ab9b9c3e802c346eebb92b65b76dcce307d064", [ null, {} ] ], "style-container-invalidation-inheritance.html": [ - "b7aef69d3e1b2a32cc64bf754a0c3fb8fe2cd08a", + "9d2ab5611017f8519327d244d8287a3a61b8206b", [ null, {} ] ], "style-not-sharing-float.html": [ - "7c76bb32bf2a5db0352ea6fcdaaae4c6247a06db", + "c36339491134b487d30dca332fe3aba1e794e3db", [ null, {} ] ], "style-query-with-unknown-width.html": [ - "8b05d6c11200c94670a304cf4b490e6f590f6244", + "52f250c2d0d942db2d1e2e7eeae0b89f593cc744", [ null, {} ] ], "svg-foreignobject-child-container.html": [ - "898fc22c2ba038a07b0907517d3e5e1cb421500a", + "8dc98a6321c1a3a8fe71936a09d092acc2666f52", [ null, {} ] ], "svg-root-size-container.html": [ - "70ce40c0bcefc595a7afedadf945ac6c8b19b2fc", + "ccdcf557d513e7c3f7ebc4b4200fc03626c0c755", [ null, {} ] ], "top-layer-dialog-container.html": [ - "5627a6cea0d3c57bfa31ccd778147c5738a88b21", + "40a611bc918f687d3cb45947fec6491393664e35", [ null, {} ] ], "top-layer-dialog.html": [ - "9d18b1862d1256af52b4f354a4750f8c92ede42b", + "255b42acff67bf1459c874718a886cef761d76b1", [ null, {} ] ], "top-layer-nested-dialog.html": [ - "1a6d573f24fff779b63d4eff4781141b57f6f52b", + "a988efe02f68f624918f138fe264b7b83cd321c1", [ null, {} ] ], "transition-scrollbars.html": [ - "60d82d26b4a850a41fc5c8eee39dfad60bbbe1a4", + "9d3f3a1c6c69ccab09c33492af49eb68fc7d2304", [ null, {} ] ], "transition-style-change-event-002.html": [ - "dc9297004d7c04ee86d2013272dc5c53b09c4b43", + "f5b32c6fa0e282c4de823f1173d49779ca8d2744", [ null, {} ] ], "transition-style-change-event.html": [ - "4cc1772979d2ff3c0a0628426ac7a109a5306497", + "8940284f99091612c50ecf20cac6324f0faaac85", [ null, {} ] ], "unsupported-axis.html": [ - "308de2f4245937e8bc014e703395e08f37abd64b", + "80bbf9776dfe486045275de068b0a4281ea5ffeb", [ null, {} ] ], "viewport-units-dynamic.html": [ - "2339533deeeb76f81d444e3ef178e4cd0c3a47c4", + "10f65efc0aeefa9a56c88b6820c85142987a70e2", [ null, {} ] ], "viewport-units.html": [ - "9b8bb42c434a5752485a267c8ae2136efc9367cd", + "498a9c7eb2d31e3f15a49b3c16b0decdd246f144", [ null, {} @@ -552517,6 +553696,20 @@ null, {} ] + ], + "unreachable-snap-positions-003.html": [ + "d23b45c3bce482e2bd78b21b0b6d5278aa79c493", + [ + null, + {} + ] + ], + "unreachable-snap-positions-004.html": [ + "408f09777f4dfdf342db453af56c2a8668cf2996", + [ + null, + {} + ] ] }, "css-scroll-snap-2": { @@ -558979,6 +560172,13 @@ {} ] ], + "transform-interpolation-007.html": [ + "61ee76185706f0360e66f310c5f052bf47e1166c", + [ + null, + {} + ] + ], "transform-interpolation-computed-value.html": [ "4a836f3ca1cf4ba584c3e583dea962691f0c3a5b", [ @@ -559007,6 +560207,13 @@ {} ] ], + "transform-non-invertible-no-transition.html": [ + "bbb5181a1bd45034a7ab6a9531bc0e21d3a6a604", + [ + null, + {} + ] + ], "transform-origin-interpolation.html": [ "02b8b59b0b92cb37c4cce43a06ff1e9eff2b41e4", [ @@ -559457,6 +560664,13 @@ {} ] ], + "CSSTransition-not-canceling.tentative.html": [ + "4198e665a30df5281b96e8314d988d7df27dcdba", + [ + null, + {} + ] + ], "CSSTransition-ready.tentative.html": [ "92aaa490591b9eb3e2db55438d955a9811cd7904", [ @@ -560046,7 +561260,7 @@ ] ], "starting-style-size-container.html": [ - "1ad609dd909306ff8a892dffb48c48ba1e56b1a3", + "946ab92e1477c98d57848a7f7e69f53add8f2285", [ null, {} @@ -563350,6 +564564,20 @@ ] ] }, + "attr-all-types.html": [ + "129e1fd6c73b253750f643fe5c40e87254351913", + [ + null, + {} + ] + ], + "attr-invalidation.html": [ + "a48556e5ff7273772e1b037114f0112a8773b6a0", + [ + null, + {} + ] + ], "calc-angle-values.html": [ "699af7a5cdcb3b4cfa106f53eb416a15427f0a91", [ @@ -565794,7 +567022,7 @@ ] ], "CSSContainerRule.tentative.html": [ - "4e01c0b47003a413c0853ba96011d10962ad00a5", + "4258aeb8ff81d326c403d600c2d99c5a9236be74", [ null, {} @@ -566748,7 +567976,7 @@ ] ], "page-descriptors.html": [ - "5cf0a6a703d7e63af280d45f2847e2d6042264bb", + "e77b0df8de7ede435c82febad108407fb52b2540", [ null, {} @@ -572135,7 +573363,7 @@ }, "digital-credentials": { "identity-get.tentative.https.html": [ - "850533cd262fe9eb9ffa4a129f60a9986662cec1", + "15597ed594a2409dbdcf6a10fee21d145833fa76", [ null, { @@ -637976,14 +639204,14 @@ ] ], "2d.layer.malformed-operations-with-promises.html": [ - "8e81bffdfb6c19b87d85d387806788c512fffe8c", + "e3af9a32a364146267c73114ab3b7c5c260fabe4", [ null, {} ] ], "2d.layer.malformed-operations.html": [ - "cf6e7a80db0a68f1ce8d6f7599fd47bd18977a29", + "d27e1bf6ebaf02dc596786bdd05bbe7dff0d23c6", [ null, {} @@ -648685,7 +649913,7 @@ ] ], "2d.layer.malformed-operations-with-promises.html": [ - "7b8f9b094347ffc33b4fa61137807c2a2dadacea", + "6641d9d4170c2d0bbfa7a8956b9103b329f3a692", [ null, {} @@ -648699,7 +649927,7 @@ ] ], "2d.layer.malformed-operations.html": [ - "a810665faf5809e63a3766330a0bd4be0bdcf9a1", + "c3a92553646b77ad81e5bc20edb13a023b7e4c2b", [ null, {} @@ -687975,7 +689203,7 @@ ] ], "input-events-typing.html": [ - "cff32a44d153145a02c0914ef22d2fefea0edd97", + "8a083dc9669dfc30fd7caa300515b5a04bc42073", [ null, { @@ -704788,7 +706016,7 @@ ] ], "payment-allowed-by-permissions-policy.https.sub.html": [ - "27583d3c9c5ab1860afca771d40d9cdef4607d4b", + "38f681593d1ef6062dbca403dbcedc08b5522db6", [ null, {} @@ -704802,7 +706030,7 @@ ] ], "payment-disabled-by-permissions-policy.https.sub.html": [ - "b53eff996a4e386b97fdbb85609c4abf4e3eb6ee", + "ca86e4450ec91fe9ee2641f3e2c1ca97a3301710", [ null, {} @@ -706628,7 +707856,7 @@ ] ], "pointerevent_pointerrawupdate.html": [ - "bd24daf6171ad765a37a92ffcb3acce0ded25e0f", + "eb405d26c330cd150dce3100f7a38af43c80b44d", [ null, { @@ -724399,7 +725627,7 @@ ] ], "scroll-timeline-in-container-query.html": [ - "742c35b258004930833ae6ea504082e7c615d6b1", + "b22e8c906798df7213443e52f1d6d4fd146c3545", [ null, {} @@ -725236,8 +726464,22 @@ {} ] ], + "same-document-tests-force-load-at-top.html": [ + "fac5882b05683bf0823a555d3af15f51310e1249", + [ + null, + {} + ] + ], + "same-document-tests-no-force-load-at-top.html": [ + "85b9237755cf476452847b4c7b2e3c515a8d7435", + [ + null, + {} + ] + ], "same-document-tests.html": [ - "85db2de0a227c694d2168e49dfb7f9cffb5d9eff", + "ab96fb56e04f6673235d15bb906b16d4d78b6afa", [ null, {} @@ -730496,7 +731738,7 @@ ] ], "grid-order-across-scopes.html": [ - "9f7772b91185351da72f56ad300fd6c4e3d5d7ff", + "76e5af8c74b24201bd73911c3f3720d6f5861292", [ null, { @@ -730505,7 +731747,7 @@ ] ], "grid-order-on-shadow-host.html": [ - "f5a8b3c313e5d20963233cc868b4a8ce27eaab07", + "c83e2283f50ea282128de717f80e7a185ecebc17", [ null, { @@ -730543,7 +731785,7 @@ ] ], "grid-order-with-slots.html": [ - "4cfdc79fa4057eee49498bf6d57b912c4e714355", + "f52c9ebdc817a4813d3f521c63caa447ddc87db6", [ null, { @@ -730553,7 +731795,7 @@ ] ], "grid-order.html": [ - "358f5c2988c2a5fce8f3702eeb6e1de57a20753f", + "b2dd197413ebd2769b39fde4506da295727d843d", [ null, { @@ -736925,6 +738167,24 @@ } ] ], + "storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.js": [ + "ddc5b49f4819fc127a99d30ebc2792244cae3570", + [ + "storage-access-api/storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.html", + { + "script_metadata": [ + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ] + ] + } + ] + ], "storage-access-permission.sub.https.window.js": [ "f0aadf4828dcb549c0d66ef4745b1e190d56f8d6", [ @@ -745587,6 +746847,20 @@ null, {} ] + ], + "vector-effect-invalid.html": [ + "ec49b88c59959ce33b6b3914026b25003cf74ee8", + [ + null, + {} + ] + ], + "vector-effect-valid.html": [ + "9563db0523ba741a94887c9e98d1db37b6da327b", + [ + null, + {} + ] ] }, "text": { @@ -746405,7 +747679,7 @@ ] ], "single-touch-vertical-rl.html": [ - "3c34a6d9c96a052759d822397124affe3b36319c", + "623e57e8a118a228453a3ecd099d19dbd17fded3", [ null, { @@ -747135,7 +748409,7 @@ ] ], "trusted-types-reporting.html": [ - "42759093604dedd525d6b1069b959b0394d4605d", + "5a7a64b52bd267360dc8a3d1a7b8a53baa2235b8", [ null, { @@ -756027,8 +757301,8 @@ {} ] ], - "script-src-blocks-wasm.tentative.html": [ - "c1232730eab0715b8061689f04b7d2b64c242a51", + "script-src-blocks-wasm.tentative.sub.html": [ + "0d5c7ca6ed57fd8067eca705eec3526f381f5185", [ null, {} @@ -765462,7 +766736,7 @@ ] ], "video-encoder-h264.https.any.js": [ - "82370a8338c2c46a42449d0111cd5f97cd85ddbd", + "e63024a64b40a0e6aa87de869922be7025963f71", [ "webcodecs/video-encoder-h264.https.any.html?baseline", { @@ -765494,6 +766768,10 @@ [ "variant", "?high" + ], + [ + "variant", + "?high-6.2" ] ] } @@ -765529,6 +766807,49 @@ [ "variant", "?high" + ], + [ + "variant", + "?high-6.2" + ] + ] + } + ], + [ + "webcodecs/video-encoder-h264.https.any.html?high-6.2", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "script", + "/common/media.js" + ], + [ + "script", + "/webcodecs/utils.js" + ], + [ + "script", + "/webcodecs/video-encoder-utils.js" + ], + [ + "variant", + "?baseline" + ], + [ + "variant", + "?main" + ], + [ + "variant", + "?high" + ], + [ + "variant", + "?high-6.2" ] ] } @@ -765564,6 +766885,10 @@ [ "variant", "?high" + ], + [ + "variant", + "?high-6.2" ] ] } @@ -765599,6 +766924,10 @@ [ "variant", "?high" + ], + [ + "variant", + "?high-6.2" ] ] } @@ -765634,6 +766963,49 @@ [ "variant", "?high" + ], + [ + "variant", + "?high-6.2" + ] + ] + } + ], + [ + "webcodecs/video-encoder-h264.https.any.worker.html?high-6.2", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "script", + "/common/media.js" + ], + [ + "script", + "/webcodecs/utils.js" + ], + [ + "script", + "/webcodecs/video-encoder-utils.js" + ], + [ + "variant", + "?baseline" + ], + [ + "variant", + "?main" + ], + [ + "variant", + "?high" + ], + [ + "variant", + "?high-6.2" ] ] } @@ -765669,6 +767041,10 @@ [ "variant", "?high" + ], + [ + "variant", + "?high-6.2" ] ] } @@ -779810,7 +781186,7 @@ ] ], "clamp.https.any.js": [ - "ce1394802ed24def6ddfec262752533adbb728f9", + "96600c22f8b83f68195f8434a1289b21708a1749", [ "webnn/validation_tests/clamp.https.any.html", { @@ -780097,7 +781473,7 @@ ] ], "elementwise-binary.https.any.js": [ - "7b3fec938bb4bc41663f1967e70404073f36d76d", + "8e86731a0fd977ac5deb08b8b585fcfed400fb43", [ "webnn/validation_tests/elementwise-binary.https.any.html", { @@ -781786,7 +783162,7 @@ ] ], "RTCDataChannel-close.html": [ - "64534fc50707747f2835671c638cb6ba16e317b0", + "e215d95ed9a932692d066a06c05dc84d36db8215", [ null, { @@ -828850,14 +830226,14 @@ }, "fragment_navigated": { "fragment_navigated.py": [ - "fb690807f214632add89f1de98b90789fdb1117b", + "14fa226056188d33e65e2492a83de1824ee2413c", [ null, {} ] ], "history_api.py": [ - "0af0a71c2b8eb3c398761581767bac18b6beea4e", + "8ae06d28904e06196abf60b9336cb26b598d58a7", [ null, {} @@ -828903,7 +830279,7 @@ }, "handle_user_prompt": { "handle_user_prompt.py": [ - "c562ddbd9a259b3bb9f5c2863a3b384624f8e043", + "5bbc616960fa0461e9cf14ceca918217f633b381", [ null, {} @@ -829021,7 +830397,7 @@ ] ], "navigate.py": [ - "934fd3554f7dc607e6ad663b34e6a30fb921906d", + "1f003f4aa6909f5cff7aa00a0dd4e43624f9216f", [ null, {} @@ -829215,6 +830591,13 @@ {} ] ], + "handler.py": [ + "2aa67056f80f313b8a36bddd414ec20ecca5b427", + [ + null, + {} + ] + ], "user_prompt_opened.py": [ "3a995b150388909587ee8ed834030574de1e4003", [ @@ -829590,14 +830973,14 @@ ] ], "cookies.py": [ - "5f594c4b029f0bd4abf58f574d70dee2f03b7632", + "d403f279d51f9746c7b6091c601edbc5664dbeaf", [ null, {} ] ], "headers.py": [ - "d6af7094a6480273243ec46dffc45953476a6234", + "ed4839ee8062950466d61b0ab8da718c9efebc5c", [ null, {} @@ -829654,7 +831037,7 @@ }, "continue_with_auth": { "action.py": [ - "e4cf6da08f4117f6b7dbac529cf229c94bba1ff6", + "dccdd6a9308004c826a028cd9e5e41ffe128c2b5", [ null, {} @@ -829795,6 +831178,29 @@ {} ] ] + }, + "set_cache_bypass": { + "contexts_tentative.py": [ + "946d6d9a7eb4f2129de13bf3954b2939775943c9", + [ + null, + {} + ] + ], + "invalid_tentative.py": [ + "678d5d313f899718af2b52f24479b57b839ec216", + [ + null, + {} + ] + ], + "set_cache_bypass_tentative.py": [ + "42166ef253bb954a7df3099287caed259f33a0ec", + [ + null, + {} + ] + ] } }, "script": { diff --git a/tests/wpt/meta/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini b/tests/wpt/meta/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini new file mode 100644 index 00000000000..31a54462d23 --- /dev/null +++ b/tests/wpt/meta/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini @@ -0,0 +1,122 @@ +[derived_bits_length.https.any.html] + [HKDF derivation with 256 as 'length' parameter] + expected: FAIL + + [HKDF derivation with 0 as 'length' parameter] + expected: FAIL + + [HKDF derivation with null as 'length' parameter] + expected: FAIL + + [HKDF derivation with undefined as 'length' parameter] + expected: FAIL + + [HKDF derivation with omitted as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with 256 as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with 0 as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with null as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with undefined as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with omitted as 'length' parameter] + expected: FAIL + + [ECDH derivation with 256 as 'length' parameter] + expected: FAIL + + [ECDH derivation with 0 as 'length' parameter] + expected: FAIL + + [ECDH derivation with null as 'length' parameter] + expected: FAIL + + [ECDH derivation with undefined as 'length' parameter] + expected: FAIL + + [ECDH derivation with omitted as 'length' parameter] + expected: FAIL + + [X25519 derivation with 256 as 'length' parameter] + expected: FAIL + + [X25519 derivation with 0 as 'length' parameter] + expected: FAIL + + [X25519 derivation with null as 'length' parameter] + expected: FAIL + + [X25519 derivation with undefined as 'length' parameter] + expected: FAIL + + [X25519 derivation with omitted as 'length' parameter] + expected: FAIL + + +[derived_bits_length.https.any.worker.html] + [HKDF derivation with 256 as 'length' parameter] + expected: FAIL + + [HKDF derivation with 0 as 'length' parameter] + expected: FAIL + + [HKDF derivation with null as 'length' parameter] + expected: FAIL + + [HKDF derivation with undefined as 'length' parameter] + expected: FAIL + + [HKDF derivation with omitted as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with 256 as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with 0 as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with null as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with undefined as 'length' parameter] + expected: FAIL + + [PBKDF2 derivation with omitted as 'length' parameter] + expected: FAIL + + [ECDH derivation with 256 as 'length' parameter] + expected: FAIL + + [ECDH derivation with 0 as 'length' parameter] + expected: FAIL + + [ECDH derivation with null as 'length' parameter] + expected: FAIL + + [ECDH derivation with undefined as 'length' parameter] + expected: FAIL + + [ECDH derivation with omitted as 'length' parameter] + expected: FAIL + + [X25519 derivation with 256 as 'length' parameter] + expected: FAIL + + [X25519 derivation with 0 as 'length' parameter] + expected: FAIL + + [X25519 derivation with null as 'length' parameter] + expected: FAIL + + [X25519 derivation with undefined as 'length' parameter] + expected: FAIL + + [X25519 derivation with omitted as 'length' parameter] + expected: FAIL diff --git a/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini b/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini index 5c493662c66..60a8a4fe5b4 100644 --- a/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini +++ b/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini @@ -173,6 +173,15 @@ [SubtleCrypto interface: calling unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, sequence<KeyUsage>) on crypto.subtle with too few arguments must throw TypeError] expected: FAIL + [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)] + expected: FAIL + + [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)" with the proper type] + expected: FAIL + + [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?) on crypto.subtle with too few arguments must throw TypeError] + expected: FAIL + [idlharness.https.any.html] [Crypto interface: attribute subtle] @@ -348,3 +357,12 @@ [SubtleCrypto interface: calling unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, sequence<KeyUsage>) on crypto.subtle with too few arguments must throw TypeError] expected: FAIL + + [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)] + expected: FAIL + + [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)" with the proper type] + expected: FAIL + + [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?) on crypto.subtle with too few arguments must throw TypeError] + expected: FAIL diff --git a/tests/wpt/meta/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini b/tests/wpt/meta/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini new file mode 100644 index 00000000000..3b84a9f479b --- /dev/null +++ b/tests/wpt/meta/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini @@ -0,0 +1,8 @@ +[importKey-unsettled-promise.https.any.html] + [WebCryptoAPI: Assure promise returned by importKey is settled.] + expected: FAIL + + +[importKey-unsettled-promise.https.any.worker.html] + [WebCryptoAPI: Assure promise returned by importKey is settled.] + expected: FAIL diff --git a/tests/wpt/meta/css/CSS2/floats/floats-in-table-caption-001.html.ini b/tests/wpt/meta/css/CSS2/floats/floats-in-table-caption-001.html.ini deleted file mode 100644 index 86715ffc9c2..00000000000 --- a/tests/wpt/meta/css/CSS2/floats/floats-in-table-caption-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[floats-in-table-caption-001.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini b/tests/wpt/meta/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini new file mode 100644 index 00000000000..eb3cf41a070 --- /dev/null +++ b/tests/wpt/meta/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini @@ -0,0 +1,2 @@ +[opacity-animation-ending-correctly-002.html] + expected: TIMEOUT diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001.html.ini new file mode 100644 index 00000000000..59e756fab44 --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini new file mode 100644 index 00000000000..9ed0016e7cc --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-001a.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002.html.ini new file mode 100644 index 00000000000..25c86e4340a --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-002.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini new file mode 100644 index 00000000000..89ef37501d1 --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-002a.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini new file mode 100644 index 00000000000..62a53fd3d6b --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-002b.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003.html.ini new file mode 100644 index 00000000000..ab8404e1cbe --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-003.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini new file mode 100644 index 00000000000..9b47c17a55c --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-003a.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini new file mode 100644 index 00000000000..5118c0ae109 --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-003b.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004.html.ini new file mode 100644 index 00000000000..c28f3859026 --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-004.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini new file mode 100644 index 00000000000..a3bcc0f45a0 --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-004a.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini new file mode 100644 index 00000000000..b6e5121eb77 --- /dev/null +++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini @@ -0,0 +1,2 @@ +[highlight-painting-currentcolor-004b.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-transforms/animation/transform-interpolation-007.html.ini b/tests/wpt/meta/css/css-transforms/animation/transform-interpolation-007.html.ini new file mode 100644 index 00000000000..e2b0ecfa8c4 --- /dev/null +++ b/tests/wpt/meta/css/css-transforms/animation/transform-interpolation-007.html.ini @@ -0,0 +1,126 @@ +[transform-interpolation-007.html] + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL + + [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]] + expected: FAIL diff --git a/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini b/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini new file mode 100644 index 00000000000..4c11bb94283 --- /dev/null +++ b/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini @@ -0,0 +1,2 @@ +[transform-non-invertible-discrete-interpolation.html] + expected: TIMEOUT diff --git a/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini b/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini new file mode 100644 index 00000000000..5828fcf067e --- /dev/null +++ b/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini @@ -0,0 +1,3 @@ +[transform-non-invertible-no-transition.html] + [Setting 'transform' to a non-invertible matrix does not yield a CSS Transition] + expected: FAIL diff --git a/tests/wpt/meta/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini b/tests/wpt/meta/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini new file mode 100644 index 00000000000..8766213d3ca --- /dev/null +++ b/tests/wpt/meta/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini @@ -0,0 +1,6 @@ +[CSSTransition-not-canceling.tentative.html] + [Setting "display: none" with "display" set to transition using "display 100s allow-discrete" does not cancel running transitions] + expected: FAIL + + [Setting "display: none" with "display" set to transition using "display 100s, all allow-discrete 100s" does not cancel running transitions] + expected: FAIL diff --git a/tests/wpt/meta/css/css-ui/transparent-accent-color-001.html.ini b/tests/wpt/meta/css/css-ui/transparent-accent-color-001.html.ini new file mode 100644 index 00000000000..86d0d1e6e2c --- /dev/null +++ b/tests/wpt/meta/css/css-ui/transparent-accent-color-001.html.ini @@ -0,0 +1,2 @@ +[transparent-accent-color-001.html] + expected: TIMEOUT diff --git a/tests/wpt/meta/css/css-ui/transparent-accent-color-002.html.ini b/tests/wpt/meta/css/css-ui/transparent-accent-color-002.html.ini new file mode 100644 index 00000000000..5942e38a2db --- /dev/null +++ b/tests/wpt/meta/css/css-ui/transparent-accent-color-002.html.ini @@ -0,0 +1,2 @@ +[transparent-accent-color-002.html] + expected: TIMEOUT diff --git a/tests/wpt/meta/css/css-values/attr-all-types.html.ini b/tests/wpt/meta/css/css-values/attr-all-types.html.ini new file mode 100644 index 00000000000..b4ee5fc070d --- /dev/null +++ b/tests/wpt/meta/css/css-values/attr-all-types.html.ini @@ -0,0 +1,159 @@ +[attr-all-types.html] + [CSS Values and Units Test: attr] + expected: FAIL + + [CSS Values and Units Test: attr 1] + expected: FAIL + + [CSS Values and Units Test: attr 2] + expected: FAIL + + [CSS Values and Units Test: attr 3] + expected: FAIL + + [CSS Values and Units Test: attr 4] + expected: FAIL + + [CSS Values and Units Test: attr 5] + expected: FAIL + + [CSS Values and Units Test: attr 6] + expected: FAIL + + [CSS Values and Units Test: attr 7] + expected: FAIL + + [CSS Values and Units Test: attr 8] + expected: FAIL + + [CSS Values and Units Test: attr 9] + expected: FAIL + + [CSS Values and Units Test: attr 10] + expected: FAIL + + [CSS Values and Units Test: attr 11] + expected: FAIL + + [CSS Values and Units Test: attr 13] + expected: FAIL + + [CSS Values and Units Test: attr 14] + expected: FAIL + + [CSS Values and Units Test: attr 15] + expected: FAIL + + [CSS Values and Units Test: attr 18] + expected: FAIL + + [CSS Values and Units Test: attr 19] + expected: FAIL + + [CSS Values and Units Test: attr 20] + expected: FAIL + + [CSS Values and Units Test: attr 21] + expected: FAIL + + [CSS Values and Units Test: attr 25] + expected: FAIL + + [CSS Values and Units Test: attr 26] + expected: FAIL + + [CSS Values and Units Test: attr 28] + expected: FAIL + + [CSS Values and Units Test: attr 29] + expected: FAIL + + [CSS Values and Units Test: attr 30] + expected: FAIL + + [CSS Values and Units Test: attr 31] + expected: FAIL + + [CSS Values and Units Test: attr 32] + expected: FAIL + + [CSS Values and Units Test: attr 33] + expected: FAIL + + [CSS Values and Units Test: attr 34] + expected: FAIL + + [CSS Values and Units Test: attr 35] + expected: FAIL + + [CSS Values and Units Test: attr 36] + expected: FAIL + + [CSS Values and Units Test: attr 37] + expected: FAIL + + [CSS Values and Units Test: attr 38] + expected: FAIL + + [CSS Values and Units Test: attr 39] + expected: FAIL + + [CSS Values and Units Test: attr 40] + expected: FAIL + + [CSS Values and Units Test: attr 41] + expected: FAIL + + [CSS Values and Units Test: attr 42] + expected: FAIL + + [CSS Values and Units Test: attr 43] + expected: FAIL + + [CSS Values and Units Test: attr 44] + expected: FAIL + + [CSS Values and Units Test: attr 45] + expected: FAIL + + [CSS Values and Units Test: attr 46] + expected: FAIL + + [CSS Values and Units Test: attr 47] + expected: FAIL + + [CSS Values and Units Test: attr 48] + expected: FAIL + + [CSS Values and Units Test: attr 49] + expected: FAIL + + [CSS Values and Units Test: attr 50] + expected: FAIL + + [CSS Values and Units Test: attr 51] + expected: FAIL + + [CSS Values and Units Test: attr 52] + expected: FAIL + + [CSS Values and Units Test: attr 53] + expected: FAIL + + [CSS Values and Units Test: attr 54] + expected: FAIL + + [CSS Values and Units Test: attr 55] + expected: FAIL + + [CSS Values and Units Test: attr 64] + expected: FAIL + + [CSS Values and Units Test: attr 65] + expected: FAIL + + [CSS Values and Units Test: attr 66] + expected: FAIL + + [CSS Values and Units Test: attr 67] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/attr-invalidation.html.ini b/tests/wpt/meta/css/css-values/attr-invalidation.html.ini new file mode 100644 index 00000000000..111ec1b3975 --- /dev/null +++ b/tests/wpt/meta/css/css-values/attr-invalidation.html.ini @@ -0,0 +1,3 @@ +[attr-invalidation.html] + [CSS Values and Units Test: attr() invalidation] + expected: FAIL diff --git a/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini b/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini index 70cbb50e1a5..0fb52f523b6 100644 --- a/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini +++ b/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini @@ -11,3 +11,6 @@ [rethrows errors when getting handleEvent] expected: NOTRUN + + [looks up handleEvent method on every event dispatch] + expected: TIMEOUT diff --git a/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini index 314dca9c1f5..7fe2fa192e4 100644 --- a/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini +++ b/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini @@ -1,3 +1,16 @@ [MediaQueryList-addListener-removeListener.html] + expected: TIMEOUT [listeners are called when <iframe> is resized] expected: FAIL + + [listener that was added twice is called only once] + expected: NOTRUN + + [listeners are called in order their MQLs were created] + expected: NOTRUN + + [removing listener from one MQL doesn't remove it from all MQLs] + expected: NOTRUN + + [MediaQueryList::removeListener removes added listener] + expected: NOTRUN diff --git a/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini b/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini new file mode 100644 index 00000000000..e6af0bd1e0a --- /dev/null +++ b/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini @@ -0,0 +1,19 @@ +[MediaQueryList-extends-EventTarget-interop.html] + expected: TIMEOUT + [listener added with addListener and addEventListener (capture) is called twice] + expected: TIMEOUT + + [removeEventListener removes listener added with addListener] + expected: NOTRUN + + [removeEventListener (capture) doesn't remove listener added with addListener] + expected: NOTRUN + + [removeListener removes listener added with addEventListener] + expected: NOTRUN + + [removeListener doesn't remove listener added with addEventListener (capture)] + expected: NOTRUN + + [capturing event listener fires before non-capturing listener at target] + expected: NOTRUN diff --git a/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini b/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini index 79d93e2f301..c72c94a203f 100644 --- a/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini +++ b/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini @@ -8,3 +8,6 @@ [listeners with different type are not called] expected: NOTRUN + + [listeners for "change" type are called] + expected: TIMEOUT diff --git a/tests/wpt/meta/css/cssom/idlharness.html.ini b/tests/wpt/meta/css/cssom/idlharness.html.ini index ffb6ed38587..07066ab2ab6 100644 --- a/tests/wpt/meta/css/cssom/idlharness.html.ini +++ b/tests/wpt/meta/css/cssom/idlharness.html.ini @@ -595,3 +595,6 @@ [CSSStyleProperties interface: attribute cssFloat] expected: FAIL + + [CSSPageDescriptors interface: attribute orientation] + expected: FAIL diff --git a/tests/wpt/meta/css/cssom/page-descriptors.html.ini b/tests/wpt/meta/css/cssom/page-descriptors.html.ini new file mode 100644 index 00000000000..ca4d3f1de85 --- /dev/null +++ b/tests/wpt/meta/css/cssom/page-descriptors.html.ini @@ -0,0 +1,3 @@ +[page-descriptors.html] + [CSSPageDescriptors properties tests] + expected: FAIL diff --git a/tests/wpt/meta/css/filter-effects/backdrop-filter-basic-blur.html.ini b/tests/wpt/meta/css/filter-effects/backdrop-filter-basic-blur.html.ini new file mode 100644 index 00000000000..b95bcf073f3 --- /dev/null +++ b/tests/wpt/meta/css/filter-effects/backdrop-filter-basic-blur.html.ini @@ -0,0 +1,2 @@ +[backdrop-filter-basic-blur.html] + expected: FAIL diff --git a/tests/wpt/meta/css/filter-effects/backdrop-filter-edge-mirror.html.ini b/tests/wpt/meta/css/filter-effects/backdrop-filter-edge-mirror.html.ini deleted file mode 100644 index 51318cbb1d2..00000000000 --- a/tests/wpt/meta/css/filter-effects/backdrop-filter-edge-mirror.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[backdrop-filter-edge-mirror.html] - expected: FAIL diff --git a/tests/wpt/meta/css/filter-effects/backdrop-filter-svg-blur.html.ini b/tests/wpt/meta/css/filter-effects/backdrop-filter-svg-blur.html.ini new file mode 100644 index 00000000000..3294c0b7080 --- /dev/null +++ b/tests/wpt/meta/css/filter-effects/backdrop-filter-svg-blur.html.ini @@ -0,0 +1,2 @@ +[backdrop-filter-svg-blur.html] + expected: FAIL diff --git a/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-003.html.ini b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-003.html.ini new file mode 100644 index 00000000000..a62fd6f90d5 --- /dev/null +++ b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-003.html.ini @@ -0,0 +1,2 @@ +[mq-calc-sign-function-003.html] + expected: FAIL diff --git a/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-004.html.ini b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-004.html.ini new file mode 100644 index 00000000000..3c5bd16380e --- /dev/null +++ b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-004.html.ini @@ -0,0 +1,2 @@ +[mq-calc-sign-function-004.html] + expected: FAIL diff --git a/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-005.html.ini b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-005.html.ini new file mode 100644 index 00000000000..7c40a3027c2 --- /dev/null +++ b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-005.html.ini @@ -0,0 +1,2 @@ +[mq-calc-sign-function-005.html] + expected: FAIL diff --git a/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.https.sub.html.ini b/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.https.sub.html.ini index 578ce049089..3d6068202c8 100644 --- a/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.https.sub.html.ini +++ b/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.https.sub.html.ini @@ -4,7 +4,7 @@ expected: FAIL [sec-fetch-site - Cross-site, no attributes] - expected: FAIL + expected: TIMEOUT [sec-fetch-site - Same site, no attributes] expected: NOTRUN diff --git a/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.sub.html.ini b/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.sub.html.ini index 4648085f98d..410ec4c1d39 100644 --- a/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.sub.html.ini +++ b/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.sub.html.ini @@ -41,6 +41,3 @@ [sec-fetch-site - HTTPS downgrade-upgrade, no attributes] expected: NOTRUN - - [sec-fetch-site - Not sent to non-trustworthy same-origin destination, no attributes] - expected: FAIL diff --git a/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini new file mode 100644 index 00000000000..7a5fcb79165 --- /dev/null +++ b/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini @@ -0,0 +1,3 @@ +[traverse_the_history_5.html] + [Multiple history traversals, last would be aborted] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/element/compositing/colr-glyph-composition.html.ini b/tests/wpt/meta/html/canvas/element/compositing/colr-glyph-composition.html.ini new file mode 100644 index 00000000000..0392ac2ff3b --- /dev/null +++ b/tests/wpt/meta/html/canvas/element/compositing/colr-glyph-composition.html.ini @@ -0,0 +1,2 @@ +[colr-glyph-composition.html] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/compositing/2d.composite.image.xor.html.ini b/tests/wpt/meta/html/canvas/offscreen/compositing/2d.composite.image.xor.html.ini index d41764c974f..76403653b87 100644 --- a/tests/wpt/meta/html/canvas/offscreen/compositing/2d.composite.image.xor.html.ini +++ b/tests/wpt/meta/html/canvas/offscreen/compositing/2d.composite.image.xor.html.ini @@ -1,4 +1,3 @@ [2d.composite.image.xor.html] [OffscreenCanvas test: 2d.composite.image.xor] expected: FAIL - diff --git a/tests/wpt/meta/html/dom/idlharness.https.html.ini b/tests/wpt/meta/html/dom/idlharness.https.html.ini index e44555f85b9..ddfd998c546 100644 --- a/tests/wpt/meta/html/dom/idlharness.https.html.ini +++ b/tests/wpt/meta/html/dom/idlharness.https.html.ini @@ -1988,6 +1988,24 @@ [Element interface: operation getHTML(optional GetHTMLOptions)] expected: FAIL + [Element interface: document.createElement("noscript") must inherit property "setHTMLUnsafe((TrustedHTML or DOMString))" with the proper type] + expected: FAIL + + [Element interface: calling setHTMLUnsafe((TrustedHTML or DOMString)) on document.createElement("noscript") with too few arguments must throw TypeError] + expected: FAIL + + [Element interface: document.createElement("noscript") must inherit property "innerHTML" with the proper type] + expected: FAIL + + [Element interface: document.createElement("noscript") must inherit property "outerHTML" with the proper type] + expected: FAIL + + [ShadowRoot interface: operation setHTMLUnsafe((TrustedHTML or DOMString))] + expected: FAIL + + [Element interface: operation setHTMLUnsafe((TrustedHTML or DOMString))] + expected: FAIL + [idlharness.https.html?include=(Document|Window)] [Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type] @@ -2635,6 +2653,18 @@ [Document interface: calling parseHTMLUnsafe(HTMLString) on documentWithHandlers with too few arguments must throw TypeError] expected: FAIL + [Document interface: operation parseHTMLUnsafe((TrustedHTML or DOMString))] + expected: FAIL + + [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on iframe.contentDocument with too few arguments must throw TypeError] + expected: FAIL + + [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on new Document() with too few arguments must throw TypeError] + expected: FAIL + + [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on documentWithHandlers with too few arguments must throw TypeError] + expected: FAIL + [idlharness.https.html?include=HTML.*] [HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "align" with the proper type] @@ -4790,3 +4820,6 @@ [HTMLTemplateElement interface: document.createElement("template") must inherit property "shadowRootSerializable" with the proper type] expected: FAIL + + [HTMLIFrameElement interface: document.createElement("iframe") must inherit property "srcdoc" with the proper type] + expected: FAIL diff --git a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini index d7a63bb7cfb..9494d845f2c 100644 --- a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini +++ b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini @@ -2,27 +2,9 @@ [page-created Error (structuredClone())] expected: FAIL - [page-created Error (worker)] - expected: FAIL - - [page-created Error (cross-site iframe)] - expected: FAIL - - [page-created Error (same-origin iframe)] - expected: FAIL - [JS-engine-created TypeError (structuredClone())] expected: FAIL - [JS-engine-created TypeError (worker)] - expected: FAIL - - [JS-engine-created TypeError (cross-site iframe)] - expected: FAIL - - [JS-engine-created TypeError (same-origin iframe)] - expected: FAIL - [web API-created TypeError (structuredClone())] expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/media-elements/track/track-element/no-cuechange-before-play.html.ini b/tests/wpt/meta/html/semantics/embedded-content/media-elements/track/track-element/no-cuechange-before-play.html.ini index 246e55deb7e..4caf5931a11 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/media-elements/track/track-element/no-cuechange-before-play.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/media-elements/track/track-element/no-cuechange-before-play.html.ini @@ -1,4 +1,3 @@ [no-cuechange-before-play.html] - expected: TIMEOUT [Ensure that the 'cuechange' event is not fired before video playback has begun.] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini index 68203d2a082..26704422bbe 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_escaping-2.html] - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] expected: TIMEOUT diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index 1ae1c2cc134..c6f1e5d7d84 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_nonescaping-2.html] - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index ff6467094b8..ccdaf8d61b2 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,3 +1,3 @@ [iframe_sandbox_popups_nonescaping-3.html] [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/meta/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini b/tests/wpt/meta/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini new file mode 100644 index 00000000000..7682a4830bf --- /dev/null +++ b/tests/wpt/meta/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini @@ -0,0 +1,4 @@ +[reparent-form-during-planned-navigation-task.html] + expected: TIMEOUT + [reparent-form-during-planned-navigation-task] + expected: TIMEOUT diff --git a/tests/wpt/meta/html/semantics/forms/historical.html.ini b/tests/wpt/meta/html/semantics/forms/historical.html.ini new file mode 100644 index 00000000000..5d8289307cc --- /dev/null +++ b/tests/wpt/meta/html/semantics/forms/historical.html.ini @@ -0,0 +1,3 @@ +[historical.html] + [<input name=isindex> should not be supported] + expected: FAIL diff --git a/tests/wpt/meta/resource-timing/nested-context-navigations-iframe.html.ini b/tests/wpt/meta/resource-timing/nested-context-navigations-iframe.html.ini deleted file mode 100644 index 256cf4b2cca..00000000000 --- a/tests/wpt/meta/resource-timing/nested-context-navigations-iframe.html.ini +++ /dev/null @@ -1,19 +0,0 @@ -[nested-context-navigations-iframe.html] - expected: TIMEOUT - [Test that iframe navigations are not observable by the parent] - expected: NOTRUN - - [Test that crossorigin iframe navigations are not observable by the parent] - expected: NOTRUN - - [Test that cross-site iframe navigations are not observable by the parent] - expected: NOTRUN - - [Test that iframe refreshes are not observable by the parent] - expected: NOTRUN - - [Test that crossorigin iframe refreshes are not observable by the parent] - expected: NOTRUN - - [Test that cross-site iframe refreshes are not observable by the parent] - expected: NOTRUN diff --git a/tests/wpt/meta/url/toascii.window.js.ini b/tests/wpt/meta/url/toascii.window.js.ini index baa933a2312..97671b3120b 100644 --- a/tests/wpt/meta/url/toascii.window.js.ini +++ b/tests/wpt/meta/url/toascii.window.js.ini @@ -286,3 +286,39 @@ [≯ (using <area>.hostname)] expected: FAIL + + [≠ (using <area>.host)] + expected: FAIL + + [≠ (using <area>.hostname)] + expected: FAIL + + [≮ (using <area>.host)] + expected: FAIL + + [≮ (using <area>.hostname)] + expected: FAIL + + [≯ (using <area>.host)] + expected: FAIL + + [≯ (using <area>.hostname)] + expected: FAIL + + [≠ (using <area>.host)] + expected: FAIL + + [≠ (using <area>.hostname)] + expected: FAIL + + [≮ (using <area>.host)] + expected: FAIL + + [≮ (using <area>.hostname)] + expected: FAIL + + [≯ (using <area>.host)] + expected: FAIL + + [≯ (using <area>.hostname)] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html.ini b/tests/wpt/meta/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html.ini index 42bd0c47410..c804530024c 100644 --- a/tests/wpt/meta-legacy-layout/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html.ini +++ b/tests/wpt/meta/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html.ini @@ -1,3 +1,3 @@ -[script-src-blocks-wasm.tentative.html] +[script-src-blocks-wasm.tentative.sub.html] [Importing a WebAssembly module should be guarded by script-src CSP.] expected: FAIL diff --git a/tests/wpt/tests/.github/workflows/docker.yml b/tests/wpt/tests/.github/workflows/docker.yml index a55d0f626d2..32fb814e6d9 100644 --- a/tests/wpt/tests/.github/workflows/docker.yml +++ b/tests/wpt/tests/.github/workflows/docker.yml @@ -40,7 +40,7 @@ jobs: latest type=raw,value=${{ inputs.tag }} - name: Build and push the Docker image - uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0 + uses: docker/build-push-action@31159d49c0d4756269a0940a750801a1ea5d7003 # v6.1.0 with: context: ./tools/docker push: true diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.any.js b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.any.js new file mode 100644 index 00000000000..76e1c7afe79 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.any.js @@ -0,0 +1,215 @@ +// META: global=window,worker +// META: title=IDBCursor.continue() - object store +// META: script=resources/support.js +// @author Microsoft <https://www.microsoft.com> +// @author Intel <http://www.intel.com> + +'use strict'; + +function createObjectStoreAndPopulate(db, records) { + let objStore = db.createObjectStore("test", { keyPath: "pKey" }); + + for (let i = 0; i < records.length; i++) { + objStore.add(records[i]); + } + return objStore; +} + +function setOnUpgradeNeeded(dbObj, records) { + return function (event) { + dbObj.db = event.target.result; + createObjectStoreAndPopulate(dbObj.db, records); + }; +} + +async_test(t => { + let dbObj = {}; + let count = 0; + + const records = [ + { pKey: "primaryKey_0" }, + { pKey: "primaryKey_1" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records); + + open_rq.onsuccess = function (e) { + let store = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' }) + .objectStore("test"); + + let cursor_rq = store.openCursor(); + cursor_rq.onsuccess = t.step_func(function (e) { + let cursor = e.target.result; + if (!cursor) { + assert_equals(count, records.length, "cursor run count"); + t.done(); + } + + let record = cursor.value; + assert_equals(record.pKey, records[count].pKey, "primary key"); + assert_equals(record.iKey, records[count].iKey, "index key"); + + cursor.continue(); + count++; + }); + } +}, "IDBCursor.continue() - object store - iterate to the next record"); + +async_test(t => { + let dbObj = {}; + + const records = [ + { pKey: "primaryKey_0" }, + { pKey: "primaryKey_1" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records); + + open_rq.onsuccess = function (e) { + let cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' }) + .objectStore("test").openCursor(); + + cursor_rq.onsuccess = t.step_func(function (e) { + let cursor = e.target.result; + + assert_true(cursor instanceof IDBCursor, "cursor exists"); + assert_throws_dom("DataError", + function () { cursor.continue(-1); }); + + t.done(); + }); + } + +}, "IDBCursor.continue() - object store - attempt to pass a key parameter is not a valid key"); + +async_test(t => { + let dbObj = {}; + + const records = [ + { pKey: "primaryKey_0" }, + { pKey: "primaryKey_1" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records); + + open_rq.onsuccess = function (e) { + let cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' }) + .objectStore("test") + .openCursor(undefined, "next"); + + cursor_rq.onsuccess = t.step_func(function (e) { + let cursor = e.target.result; + + assert_true(cursor instanceof IDBCursor, "cursor exist"); + assert_throws_dom("DataError", + function () { cursor.continue(records[0].pKey); }); + + t.done(); + }); + } +}, "IDBCursor.continue() - object store - attempt to iterate to the previous record when the direction is set for the next record"); + +async_test(t => { + let dbObj = {}; + + const records = [ + { pKey: "primaryKey_0" }, + { pKey: "primaryKey_1" }, + { pKey: "primaryKey_2" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records); + + open_rq.onsuccess = function (e) { + let count = 0, + cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' }) + .objectStore("test") + .openCursor(null, "prev"); + + cursor_rq.onsuccess = t.step_func(function (e) { + let cursor = e.target.result; + + assert_true(cursor != null, "cursor exist"); + + switch (count) { + case 0: + assert_equals(cursor.value.pKey, records[2].pKey, "first cursor pkey"); + cursor.continue(records[1].pKey); + break; + + case 1: + assert_equals(cursor.value.pKey, records[1].pKey, "second cursor pkey"); + assert_throws_dom("DataError", + function () { cursor.continue(records[2].pKey); }); + t.done(); + break; + + default: + assert_unreached("Unexpected count value: " + count); + } + + count++; + }); + } +}, "IDBCursor.continue() - object store - attempt to iterate to the next record when the direction is set for the next record"); + +async_test(t => { + let dbObj = {}; + + const records = [ + { pKey: "primaryKey_0" }, + { pKey: "primaryKey_1" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records); + + open_rq.onsuccess = function (e) { + let cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' }) + .objectStore("test") + .openCursor(); + + cursor_rq.onsuccess = t.step_func(function (e) { + let cursor = e.target.result; + assert_true(cursor instanceof IDBCursor, "cursor exists"); + + e.target.transaction.abort(); + assert_throws_dom("TransactionInactiveError", + function () { cursor.continue(); }); + + t.done(); + }); + } + +}, "Calling continue() should throws an exception TransactionInactiveError when the transaction is not active."); + +async_test(t => { + let db; + const records = [ + { pKey: "primaryKey_0" }, + { pKey: "primaryKey_1" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = function (e) { + db = e.target.result; + let objStore = createObjectStoreAndPopulate(db, records); + + let cursor_rq = objStore.openCursor(); + + cursor_rq.onsuccess = t.step_func(function (e) { + let cursor = e.target.result; + assert_true(cursor instanceof IDBCursor, "cursor exists"); + + db.deleteObjectStore("test"); + assert_throws_dom("InvalidStateError", + function () { cursor.continue(); }); + + t.done(); + }); + } +}, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError"); diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.htm deleted file mode 100644 index f82aa99949d..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.htm +++ /dev/null @@ -1,46 +0,0 @@ -<!DOCTYPE html> -<title>IDBCursor.continue() - object store - iterate to the next record</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var db, - count = 0, - t = async_test(), - records = [ { pKey: "primaryKey_0" }, - { pKey: "primaryKey_1" } ]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - var objStore = db.createObjectStore("test", {autoIncrement:true, keyPath:"pKey"}); - - for (var i = 0; i < records.length; i++) - objStore.add(records[i]); - }; - - open_rq.onsuccess = function(e) { - var store = db.transaction("test", "readonly", {durability: 'relaxed'}) - .objectStore("test"); - - var cursor_rq = store.openCursor(); - cursor_rq.onsuccess = t.step_func(function(e) { - var cursor = e.target.result; - if (!cursor) { - assert_equals(count, records.length, "cursor run count"); - t.done(); - } - - var record = cursor.value; - assert_equals(record.pKey, records[count].pKey, "primary key"); - assert_equals(record.iKey, records[count].iKey, "index key"); - - cursor.continue(); - count++; - }); - }; -</script> - -<div id=log> </div> diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore2.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore2.htm deleted file mode 100644 index 8b79c64615b..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore2.htm +++ /dev/null @@ -1,40 +0,0 @@ -<!DOCTYPE html> -<title>IDBCursor.continue() - object store - attempt to pass a key parameter is not a valid key </title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> - -<script> - var db, - t = async_test(), - records = [ { pKey: "primaryKey_0" }, - { pKey: "primaryKey_1" } ]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - var objStore = db.createObjectStore("test", {keyPath:"pKey"}); - - for (var i = 0; i < records.length; i++) - objStore.add(records[i]); - }; - - open_rq.onsuccess = function(e) { - var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'}) - .objectStore("test") - .openCursor(); - - cursor_rq.onsuccess = t.step_func(function(e) { - var cursor = e.target.result; - - assert_true(cursor instanceof IDBCursor, "cursor exists"); - assert_throws_dom("DataError", - function() { cursor.continue(document); }); - - t.done(); - }); - }; -</script> - -<div id="log"> </div> diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore3.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore3.htm deleted file mode 100644 index 7d96d7fec9e..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore3.htm +++ /dev/null @@ -1,40 +0,0 @@ -<!DOCTYPE html> -<title>IDBCursor.continue() - object store - attempt to iterate to the previous record when the direction is set for the next record</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> - -<script> - var db, - t = async_test(), - records = [ { pKey: "primaryKey_0" }, - { pKey: "primaryKey_1" } ]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - var objStore = db.createObjectStore("test", {keyPath:"pKey"}); - - for (var i = 0; i < records.length; i++) - objStore.add(records[i]); - }; - - open_rq.onsuccess = function(e) { - var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'}) - .objectStore("test") - .openCursor(undefined, "next"); - - cursor_rq.onsuccess = t.step_func(function(e) { - var cursor = e.target.result; - - assert_true(cursor instanceof IDBCursor, "cursor exist"); - assert_throws_dom("DataError", - function() { cursor.continue(records[0].pKey); }); - - t.done(); - }); - }; -</script> - -<div id="log"> </div> diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore4.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore4.htm deleted file mode 100644 index 5056a7364fd..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore4.htm +++ /dev/null @@ -1,57 +0,0 @@ -<!DOCTYPE html> -<title>IDBCursor.continue() - object store - attempt to iterate to the next record when the direction is set for the previous record </title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> - -<script> - var db, - t = async_test(), - records = [ { pKey: "primaryKey_0" }, - { pKey: "primaryKey_1" }, - { pKey: "primaryKey_2" } ]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - var objStore = db.createObjectStore("test", { keyPath: "pKey" }); - - for (var i = 0; i < records.length; i++) - objStore.add(records[i]); - }; - - open_rq.onsuccess = function(e) { - var count = 0, - cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'}) - .objectStore("test") - .openCursor(null, "prev"); - - cursor_rq.onsuccess = t.step_func(function(e) { - var cursor = e.target.result; - - assert_true(cursor != null, "cursor exist"); - - switch(count) { - case 0: - assert_equals(cursor.value.pKey, records[2].pKey, "first cursor pkey"); - cursor.continue(records[1].pKey); - break; - - case 1: - assert_equals(cursor.value.pKey, records[1].pKey, "second cursor pkey"); - assert_throws_dom("DataError", - function() { cursor.continue(records[2].pKey); }); - t.done(); - break; - - default: - assert_unreached("Unexpected count value: " + count); - } - - count++; - }); - }; -</script> - -<div id="log"></div> diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore5.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore5.htm deleted file mode 100644 index a0c3663ab40..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore5.htm +++ /dev/null @@ -1,42 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>IDBCursor.continue() - object store - throw TransactionInactiveError</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> -<div id="log"> </div> -<script> - var db, - t = async_test(), - records = [ { pKey: "primaryKey_0" }, - { pKey: "primaryKey_1" } ]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - var objStore = db.createObjectStore("test", {keyPath:"pKey"}); - - for (var i = 0; i < records.length; i++) - objStore.add(records[i]); - }; - - open_rq.onsuccess = function(e) { - var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'}) - .objectStore("test") - .openCursor(); - - cursor_rq.onsuccess = t.step_func(function(e) { - var cursor = e.target.result; - assert_true(cursor instanceof IDBCursor, "cursor exists"); - - e.target.transaction.abort(); - assert_throws_dom("TransactionInactiveError", function() { - cursor.continue(); - }, "Calling continue() should throws an exception TransactionInactiveError when the transaction is not active."); - - - t.done(); - }); - }; -</script> diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore6.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore6.htm deleted file mode 100644 index 7a2b50752ce..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore6.htm +++ /dev/null @@ -1,37 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>IDBCursor.continue() - object store - throw InvalidStateError caused by object store been deleted</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> -<div id="log"> </div> -<script> - var db, - t = async_test(), - records = [ { pKey: "primaryKey_0" }, - { pKey: "primaryKey_1" } ]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - var objStore = db.createObjectStore("test", {keyPath:"pKey"}); - - for (var i = 0; i < records.length; i++) - objStore.add(records[i]); - - var cursor_rq = objStore.openCursor(); - - cursor_rq.onsuccess = t.step_func(function(e) { - var cursor = e.target.result; - assert_true(cursor instanceof IDBCursor, "cursor exists"); - - db.deleteObjectStore("test"); - assert_throws_dom("InvalidStateError", function() { - cursor.continue(); - }, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError"); - - t.done(); - }); - } -</script> diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index.any.js b/tests/wpt/tests/IndexedDB/idbcursor_delete_index.any.js new file mode 100644 index 00000000000..a4d0614820a --- /dev/null +++ b/tests/wpt/tests/IndexedDB/idbcursor_delete_index.any.js @@ -0,0 +1,182 @@ +// META: global=window,worker +// META: title=IDBCursor.delete() - index +// META: script=resources/support.js +// @author Microsoft <https://www.microsoft.com> +// @author Intel <http://www.intel.com> + +'use strict'; + +function createObjectStoreWithIndexAndPopulate(db, records) { + let objStore = db.createObjectStore("test", { keyPath: "pKey" }); + objStore.createIndex("index", "iKey"); + for (let i = 0; i < records.length; i++) { + objStore.add(records[i]); + } + return objStore; +} + +function setOnUpgradeNeeded(dbObj, records) { + return function (event) { + dbObj.db = event.target.result; + createObjectStoreWithIndexAndPopulate(dbObj.db, records); + }; +} + +async_test(t => { + let dbObj = {}; + let count = 0; + + const records = [ + { pKey: "primaryKey_0", iKey: "indexKey_0" }, + { pKey: "primaryKey_1", iKey: "indexKey_1" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records); + + open_rq.onsuccess = t.step_func(CursorDeleteRecord); + + function CursorDeleteRecord(e) { + let txn = dbObj.db.transaction("test", "readwrite", { durability: 'relaxed' }), + cursor_rq = txn.objectStore("test") + .index("index") + .openCursor(); + + cursor_rq.onsuccess = t.step_func(function (e) { + let cursor = e.target.result; + + assert_true(cursor instanceof IDBCursor, "cursor exist"); + cursor.delete(); + }); + + txn.oncomplete = t.step_func(VerifyRecordWasDeleted); + } + + + function VerifyRecordWasDeleted(e) { + let cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' }) + .objectStore("test") + .openCursor(); + + cursor_rq.onsuccess = t.step_func(function (e) { + let cursor = e.target.result; + + if (!cursor) { + assert_equals(count, 1, 'count'); + t.done(); + } + + assert_equals(cursor.value.pKey, records[1].pKey); + assert_equals(cursor.value.iKey, records[1].iKey); + cursor.continue(); + count++; + }); + } +}, "Remove a record from the object store"); + +async_test(t => { + let dbObj = {}; + const records = [ + { pKey: "primaryKey_0", iKey: "indexKey_0" }, + { pKey: "primaryKey_1", iKey: "indexKey_1" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records); + + open_rq.onsuccess = function (e) { + let cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' }) + .objectStore("test") + .index("index") + .openCursor(); + + cursor_rq.onsuccess = t.step_func(function (e) { + let cursor = e.target.result; + + assert_true(cursor instanceof IDBCursor, "cursor exist"); + assert_throws_dom('ReadOnlyError', function () { cursor.delete(); }); + t.done(); + }); + } +}, "Attempt to remove a record in a read-only transaction"); + +async_test(t => { + let db; + const records = [ + { pKey: "primaryKey_0", iKey: "indexKey_0" }, + { pKey: "primaryKey_1", iKey: "indexKey_1" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = function (e) { + db = e.target.result; + let objStore = createObjectStoreWithIndexAndPopulate(db, records); + + let cursor_rq = objStore.index("index").openCursor(); + + cursor_rq.onsuccess = t.step_func(function (e) { + let cursor = e.target.result; + assert_true(cursor instanceof IDBCursor, "cursor exist"); + self.cursor = cursor; + }); + + e.target.transaction.oncomplete = t.step_func(function (e) { + assert_throws_dom('TransactionInactiveError', + function () { self.cursor.delete(); }) + t.done(); + }); + } +}, "Attempt to remove a record in an inactive transaction"); + +async_test(t => { + let db; + const records = [ + { pKey: "primaryKey_0", iKey: "indexKey_0" }, + { pKey: "primaryKey_1", iKey: "indexKey_1" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = function (event) { + db = event.target.result; + let objStore = createObjectStoreWithIndexAndPopulate(db, records); + + let rq = objStore.index("index").openCursor(); + + rq.onsuccess = t.step_func(function (event) { + let cursor = event.target.result; + assert_true(cursor instanceof IDBCursor, "cursor exist"); + + db.deleteObjectStore("test"); + assert_throws_dom("InvalidStateError", + function () { cursor.delete(); }); + + t.done(); + }); + } +}, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError"); + +async_test(t => { + let db; + const records = [ + { pKey: "primaryKey_0", iKey: "indexKey_0" }, + { pKey: "primaryKey_1", iKey: "indexKey_1" } + ]; + + let open_rq = createdb(t); + open_rq.onupgradeneeded = function (event) { + db = event.target.result; + let objStore = createObjectStoreWithIndexAndPopulate(db, records); + let rq = objStore.index("index").openCursor(); + rq.onsuccess = t.step_func(function (event) { + let cursor = event.target.result; + assert_true(cursor instanceof IDBCursor, "cursor exist"); + + cursor.continue(); + assert_throws_dom("InvalidStateError", function () { + cursor.delete(); + }); + + t.done(); + }); + } +}, "Throw InvalidStateError when the cursor is being iterated"); diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index.htm b/tests/wpt/tests/IndexedDB/idbcursor_delete_index.htm deleted file mode 100644 index 6d1b4e35c97..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_delete_index.htm +++ /dev/null @@ -1,69 +0,0 @@ -<!DOCTYPE html> -<title>IDBCursor.delete() - index - remove a record from the object store</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> - -<script> - - var db, - count = 0, - t = async_test(), - records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" }, - { pKey: "primaryKey_1", iKey: "indexKey_1" } ]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - - var objStore = db.createObjectStore("test", { keyPath: "pKey" }); - objStore.createIndex("index", "iKey"); - - for (var i = 0; i < records.length; i++) - objStore.add(records[i]); - }; - - open_rq.onsuccess = t.step_func(CursorDeleteRecord); - - - function CursorDeleteRecord(e) { - var txn = db.transaction("test", "readwrite", {durability: 'relaxed'}), - cursor_rq = txn.objectStore("test") - .index("index") - .openCursor(); - - cursor_rq.onsuccess = t.step_func(function(e) { - var cursor = e.target.result; - - assert_true(cursor instanceof IDBCursor, "cursor exist"); - cursor.delete(); - }); - - txn.oncomplete = t.step_func(VerifyRecordWasDeleted); - } - - - function VerifyRecordWasDeleted(e) { - var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'}) - .objectStore("test") - .openCursor(); - - cursor_rq.onsuccess = t.step_func(function(e) { - var cursor = e.target.result; - - if (!cursor) { - assert_equals(count, 1, 'count'); - t.done(); - } - - assert_equals(cursor.value.pKey, records[1].pKey); - assert_equals(cursor.value.iKey, records[1].iKey); - cursor.continue(); - count++; - }); - } - -</script> - -<div id="log"></div> diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index2.htm b/tests/wpt/tests/IndexedDB/idbcursor_delete_index2.htm deleted file mode 100644 index 054432d65dc..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_delete_index2.htm +++ /dev/null @@ -1,42 +0,0 @@ -<!DOCTYPE html> -<title>IDBCursor.delete() - index - attempt to remove a record in a read-only transaction</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> - -<script> - var db, - t = async_test(), - records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" }, - { pKey: "primaryKey_1", iKey: "indexKey_1" } ]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - - var objStore = db.createObjectStore("test", { keyPath: "pKey" }); - objStore.createIndex("index", "iKey"); - - for (var i = 0; i < records.length; i++) - objStore.add(records[i]); - }; - - open_rq.onsuccess = function(e) { - var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'}) - .objectStore("test") - .index("index") - .openCursor(); - - cursor_rq.onsuccess = t.step_func(function(e) { - var cursor = e.target.result; - - assert_true(cursor instanceof IDBCursor, "cursor exist"); - assert_throws_dom('ReadOnlyError', function() { cursor.delete(); }); - t.done(); - }); - } - -</script> - -<div id="log"></div> diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index3.htm b/tests/wpt/tests/IndexedDB/idbcursor_delete_index3.htm deleted file mode 100644 index afe945e6462..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_delete_index3.htm +++ /dev/null @@ -1,40 +0,0 @@ -<!DOCTYPE html> -<title>IDBCursor.delete() - index - attempt to remove a record in an inactive transaction</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> - -<script> - - var db, - t = async_test(), - records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" }, - { pKey: "primaryKey_1", iKey: "indexKey_1" } ]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - var objStore = db.createObjectStore("test", { keyPath: "pKey" }); - var index = objStore.createIndex("index", "iKey"); - - for (var i = 0; i < records.length; i++) - objStore.add(records[i]); - - var cursor_rq = index.openCursor(); - - cursor_rq.onsuccess = t.step_func(function(e) { - var cursor = e.target.result; - assert_true(cursor instanceof IDBCursor, "cursor exist"); - window.cursor = cursor; - }); - - e.target.transaction.oncomplete = t.step_func(function(e) { - assert_throws_dom('TransactionInactiveError', function() { window.cursor.delete(); }) - t.done(); - }); - } - -</script> - -<div id="log"></div> diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index4.htm b/tests/wpt/tests/IndexedDB/idbcursor_delete_index4.htm deleted file mode 100644 index 8eb6915b885..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_delete_index4.htm +++ /dev/null @@ -1,38 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>IDBCursor.delete() - index - throw InvalidStateError caused by object store been deleted</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> -<div id="log"></div> -<script> - - var db, - t = async_test(), - records = [{ pKey: "primaryKey_0", iKey: "indexKey_0" }, - { pKey: "primaryKey_1", iKey: "indexKey_1" }]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function (event) { - db = event.target.result; - var objStore = db.createObjectStore("store", {keyPath : "pKey"}); - objStore.createIndex("index", "iKey"); - for (var i = 0; i < records.length; i++) { - objStore.add(records[i]); - } - var rq = objStore.index("index").openCursor(); - rq.onsuccess = t.step_func(function(event) { - var cursor = event.target.result; - assert_true(cursor instanceof IDBCursor, "cursor exist"); - - db.deleteObjectStore("store"); - assert_throws_dom("InvalidStateError", function() { - cursor.delete(); - }, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError"); - - t.done(); - }); - } - -</script> diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index5.htm b/tests/wpt/tests/IndexedDB/idbcursor_delete_index5.htm deleted file mode 100644 index 76ce6d0e50e..00000000000 --- a/tests/wpt/tests/IndexedDB/idbcursor_delete_index5.htm +++ /dev/null @@ -1,39 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>IDBCursor.delete() - index - throw InvalidStateError when the cursor is being iterated</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-delete-IDBRequest"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> -<div id="log"></div> -<script> - var db, - t = async_test(), - records = [{ pKey: "primaryKey_0", iKey: "indexKey_0" }, - { pKey: "primaryKey_1", iKey: "indexKey_1" }]; - - var open_rq = createdb(t); - open_rq.onupgradeneeded = function (event) { - db = event.target.result; - var objStore = db.createObjectStore("store", {keyPath : "pKey"}); - objStore.createIndex("index", "iKey"); - for (var i = 0; i < records.length; i++) { - objStore.add(records[i]); - } - - var rq = objStore.index("index").openCursor(); - rq.onsuccess = t.step_func(function(event) { - var cursor = event.target.result; - assert_true(cursor instanceof IDBCursor, "cursor exist"); - - cursor.continue(); - assert_throws_dom("InvalidStateError", function() { - cursor.delete(); - }); - - t.done(); - }); - } -</script> - diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction.any.js b/tests/wpt/tests/IndexedDB/idbdatabase_transaction.any.js new file mode 100644 index 00000000000..17859ec99e6 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/idbdatabase_transaction.any.js @@ -0,0 +1,82 @@ +// META: title=IDBDatabase.transaction() +// META: global=window,worker +// META: script=resources/support.js + +'use strict'; + +async_test(t => { + let db; + const open_rq = createdb(t); + + open_rq.onupgradeneeded = function () { }; + open_rq.onsuccess = function (e) { + db = e.target.result; + + assert_throws_dom('NotFoundError', function () { db.transaction('non-existing'); }); + t.done(); + }; +}, "Attempt to open a transaction with invalid scope"); + +async_test(t => { + let db; + const open_rq = createdb(t); + + open_rq.onupgradeneeded = function (e) { + db = e.target.result; + db.createObjectStore('readonly'); + }; + open_rq.onsuccess = function (e) { + var txn = db.transaction('readonly', 'readonly', { durability: 'relaxed' }); + assert_equals(txn.mode, "readonly", 'txn.mode'); + + t.done(); + }; +}, "Opening a transaction defaults to a read-only mode"); + +async_test(t => { + let db; + const open_rq = createdb(t); + + open_rq.onupgradeneeded = function (e) { + db = e.target.result; + db.createObjectStore('test'); + }; + + open_rq.onsuccess = function (e) { + db.close(); + + assert_throws_dom('InvalidStateError', + function () { db.transaction('test', 'readonly', { durability: 'relaxed' }); }); + + t.done(); + }; +}, "Attempt to open a transaction from closed database connection"); + +async_test(t => { + let db; + const open_rq = createdb(t); + + open_rq.onupgradeneeded = function (e) { + db = e.target.result; + db.createObjectStore('test'); + }; + + open_rq.onsuccess = function (e) { + assert_throws_js(TypeError, + function () { db.transaction('test', 'whatever'); }); + + t.done(); + }; +}, "Attempt to open a transaction with invalid mode"); + +async_test(t => { + let db; + const open_rq = createdb(t); + + open_rq.onupgradeneeded = function () { }; + open_rq.onsuccess = function (e) { + db = e.target.result; + assert_throws_dom('InvalidAccessError', function () { db.transaction([]); }); + t.done(); + }; +}, "If storeNames is an empty list, the implementation must throw a DOMException of type InvalidAccessError");
\ No newline at end of file diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction.htm b/tests/wpt/tests/IndexedDB/idbdatabase_transaction.htm deleted file mode 100644 index 8e8264f8eab..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_transaction.htm +++ /dev/null @@ -1,24 +0,0 @@ -<!DOCTYPE html> -<title>IDBDatabase.transaction() - attempt to open a transaction with invalid scope</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> - -<script> - -var db, - t = async_test(), - open_rq = createdb(t); - -open_rq.onupgradeneeded = function() {}; -open_rq.onsuccess = function(e) { - db = e.target.result; - - assert_throws_dom('NotFoundError', function() { db.transaction('non-existing'); }); - t.done(); -}; - -</script> - -<div id="log"></div> diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction2.htm b/tests/wpt/tests/IndexedDB/idbdatabase_transaction2.htm deleted file mode 100644 index 37b11229194..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_transaction2.htm +++ /dev/null @@ -1,27 +0,0 @@ -<!DOCTYPE html> -<title>IDBDatabase.transaction() - opening a transaction defaults to a read-only mode </title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> - -<script> - -var db, - t = async_test(), - open_rq = createdb(t); - -open_rq.onupgradeneeded = function(e) { - db = e.target.result; - db.createObjectStore('readonly'); -}; -open_rq.onsuccess = function(e) { - var txn = db.transaction('readonly', 'readonly', {durability: 'relaxed'}); - assert_equals(txn.mode, "readonly", 'txn.mode'); - - t.done(); -}; - -</script> - -<div id="log"></div> diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction3.htm b/tests/wpt/tests/IndexedDB/idbdatabase_transaction3.htm deleted file mode 100644 index 1eea31f764a..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_transaction3.htm +++ /dev/null @@ -1,28 +0,0 @@ -<!DOCTYPE html> -<title>IDBDatabase.transaction() - attempt to open a transaction from closed database connection </title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> - -<script> - var db, - t = async_test(), - open_rq = createdb(t); - - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - db.createObjectStore('test'); - }; - - open_rq.onsuccess = function(e) { - db.close(); - - assert_throws_dom('InvalidStateError', - function() { db.transaction('test', 'readonly', {durability: 'relaxed'}); }); - - t.done(); - }; -</script> - -<div id="log"></div> diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction4.htm b/tests/wpt/tests/IndexedDB/idbdatabase_transaction4.htm deleted file mode 100644 index 3a164c25f59..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_transaction4.htm +++ /dev/null @@ -1,26 +0,0 @@ -<!DOCTYPE html> -<title>IDBDatabase.transaction() - attempt to open a transaction with invalid mode </title> -<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> - -<script> - var db, - t = async_test(), - open_rq = createdb(t); - - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - db.createObjectStore('test'); - }; - - open_rq.onsuccess = function(e) { - assert_throws_js(TypeError, - function() { db.transaction('test', 'whatever'); }); - - t.done(); - }; -</script> - -<div id="log"></div> diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction5.htm b/tests/wpt/tests/IndexedDB/idbdatabase_transaction5.htm deleted file mode 100644 index 451939731fa..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_transaction5.htm +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>IDBDatabase.transaction() - If storeNames is an empty list, the implementation must throw a DOMException of type InvalidAccessError</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBDatabase-transaction-IDBTransaction-DOMString-sequence-DOMString--storeNames-IDBTransactionMode-mode"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/support.js"></script> -<div id="log"></div> -<script> -var db, - t = async_test(), - open_rq = createdb(t); - -open_rq.onupgradeneeded = function() {}; -open_rq.onsuccess = function(e) { - db = e.target.result; - assert_throws_dom('InvalidAccessError', function() { db.transaction([]); }); - t.done(); -}; -</script> - diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open.any.js b/tests/wpt/tests/IndexedDB/idbfactory_open.any.js new file mode 100644 index 00000000000..edc5d3c8c6c --- /dev/null +++ b/tests/wpt/tests/IndexedDB/idbfactory_open.any.js @@ -0,0 +1,395 @@ +// META: title=IDBFactory.open() +// META: global=window,worker +// META: script=resources/support.js +// @author Microsoft <https://www.microsoft.com> +// @author Odin H�rthe Omdal <mailto:odinho@opera.com> + +'use strict'; + +async_test(t => { + const open_rq = createdb(t, undefined, 9); + + open_rq.onupgradeneeded = function (e) { }; + open_rq.onsuccess = function (e) { + assert_equals(e.target.source, null, "source") + t.done(); + } +}, "IDBFactory.open() - request has no source"); + +async_test(t => { + let database_name = location + '-database_name'; + const open_rq = createdb(t, database_name, 13); + + open_rq.onupgradeneeded = function (e) { }; + open_rq.onsuccess = function (e) { + let db = e.target.result; + assert_equals(db.name, database_name, 'db.name'); + assert_equals(db.version, 13, 'db.version'); + t.done(); + } +}, "IDBFactory.open() - database 'name' and 'version' are correctly set"); + +async_test(t => { + const open_rq = createdb(t, undefined, 13); + let did_upgrade = false; + + open_rq.onupgradeneeded = function () { }; + open_rq.onsuccess = function (e) { + let db = e.target.result; + db.close(); + + let open_rq2 = indexedDB.open(db.name); + open_rq2.onsuccess = t.step_func(function (e) { + assert_equals(e.target.result.version, 13, "db.version") + e.target.result.close(); + t.done(); + }); + open_rq2.onupgradeneeded = fail(t, 'Unexpected upgradeneeded') + open_rq2.onerror = fail(t, 'Unexpected error') + } +}, "IDBFactory.open() - no version opens current database"); + +async_test(t => { + const open_rq = createdb(t, self.location + '-database_name_new'); + open_rq.onupgradeneeded = function (e) { + assert_equals(e.target.result.version, 1, "db.version"); + }; + open_rq.onsuccess = function (e) { + assert_equals(e.target.result.version, 1, "db.version"); + t.done(); + }; +}, "IDBFactory.open() - new database has default version"); + +async_test(t => { + const open_rq = createdb(t, self.location + '-database_name'); + + open_rq.onupgradeneeded = function () { }; + open_rq.onsuccess = function (e) { + assert_equals(e.target.result.objectStoreNames.length, 0, "objectStoreNames.length"); + t.done(); + }; +}, "IDBFactory.open() - new database is empty"); + +async_test(t => { + const open_rq = createdb(t, undefined, 13); + let did_upgrade = false; + let open_rq2; + + open_rq.onupgradeneeded = function () { }; + open_rq.onsuccess = function (e) { + let db = e.target.result; + db.close(); + + open_rq2 = indexedDB.open(db.name, 14); + open_rq2.onupgradeneeded = function () { }; + open_rq2.onsuccess = t.step_func(open_previous_db); + open_rq2.onerror = fail(t, 'Unexpected error') + } + + function open_previous_db(e) { + let open_rq3 = indexedDB.open(e.target.result.name, 13); + open_rq3.onerror = t.step_func(function (e) { + assert_equals(e.target.error.name, 'VersionError', 'e.target.error.name') + open_rq2.result.close(); + t.done(); + }); + open_rq3.onupgradeneeded = fail(t, 'Unexpected upgradeneeded') + open_rq3.onsuccess = fail(t, 'Unexpected success') + } +}, "IDBFactory.open() - open database with a lower version than current"); + +async_test(t => { + const open_rq = createdb(t, undefined, 13); + let did_upgrade = false; + let open_rq2; + + open_rq.onupgradeneeded = function () { }; + open_rq.onsuccess = function (e) { + let db = e.target.result; + db.close(); + + open_rq2 = indexedDB.open(db.name, 14); + open_rq2.onupgradeneeded = function () { + did_upgrade = true; + }; + open_rq2.onsuccess = t.step_func(open_current_db); + open_rq2.onerror = fail(t, 'Unexpected error') + } + + function open_current_db(e) { + let open_rq3 = indexedDB.open(e.target.result.name); + open_rq3.onsuccess = t.step_func(function (e) { + assert_equals(e.target.result.version, 14, "db.version") + open_rq2.result.close(); + open_rq3.result.close(); + t.done(); + }); + open_rq3.onupgradeneeded = fail(t, 'Unexpected upgradeneeded') + open_rq3.onerror = fail(t, 'Unexpected error') + + assert_true(did_upgrade, 'did upgrade'); + } +}, "IDBFactory.open() - open database with a higher version than current"); + +async_test(t => { + const open_rq = createdb(t, undefined, 13); + let did_upgrade = false; + let did_db_abort = false; + + open_rq.onupgradeneeded = function (e) { + did_upgrade = true; + e.target.result.onabort = function () { + did_db_abort = true; + } + e.target.transaction.abort(); + }; + open_rq.onerror = function (e) { + assert_true(did_upgrade); + assert_equals(e.target.error.name, 'AbortError', 'target.error'); + t.done() + }; +}, "IDBFactory.open() - error in version change transaction aborts open"); + +function should_throw(val, name) { + if (!name) { + name = ((typeof val == "object" && val) ? "object" : format_value(val)) + } + test(function () { + assert_throws_js(TypeError, function () { + indexedDB.open('test', val); + }); + }, "Calling open() with version argument " + name + " should throw TypeError.") +} + +should_throw(-1) +should_throw(-0.5) +should_throw(0) +should_throw(0.5) +should_throw(0.8) +should_throw(0x20000000000000) // Number.MAX_SAFE_INTEGER + 1 +should_throw(NaN) +should_throw(Infinity) +should_throw(-Infinity) +should_throw("foo") +should_throw(null) +should_throw(false) + +should_throw({ + toString: function () { assert_unreached("toString should not be called for ToPrimitive [Number]"); }, + valueOf: function () { return 0; } +}) +should_throw({ + toString: function () { return 0; }, + valueOf: function () { return {}; } +}, 'object (second)') +should_throw({ + toString: function () { return {}; }, + valueOf: function () { return {}; }, +}, 'object (third)') + + +/* Valid */ + +function should_work(val, expected_version) { + let name = format_value(val); + let dbname = 'test-db-does-not-exist'; + async_test(function (t) { + indexedDB.deleteDatabase(dbname); + let rq = indexedDB.open(dbname, val); + rq.onupgradeneeded = t.step_func(function () { + let db = rq.result; + assert_equals(db.version, expected_version, 'version'); + rq.transaction.abort(); + }); + rq.onsuccess = t.unreached_func("open should fail"); + rq.onerror = t.step_func(function () { + t.done() + }); + }, "Calling open() with version argument " + name + " should not throw."); +} + +should_work(1.5, 1) +should_work(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER) // 0x20000000000000 - 1 +should_work(undefined, 1); + +async_test(t => { + let db, db2; + const open_rq = createdb(t, undefined, 9); + + open_rq.onupgradeneeded = function (e) { + db = e.target.result; + + let st = db.createObjectStore("store"); + st.createIndex("index", "i"); + + assert_equals(db.version, 9, "first db.version"); + assert_true(db.objectStoreNames.contains("store"), "objectStoreNames contains store"); + assert_true(st.indexNames.contains("index"), "indexNames contains index"); + + st.add({ i: "Joshua" }, 1); + st.add({ i: "Jonas" }, 2); + }; + open_rq.onsuccess = function (e) { + db.close(); + let open_rq2 = indexedDB.open(db.name, 10); + open_rq2.onupgradeneeded = t.step_func(function (e) { + db2 = e.target.result; + + db2.createObjectStore("store2"); + + let store = open_rq2.transaction.objectStore("store") + store.createIndex("index2", "i"); + + assert_equals(db2.version, 10, "db2.version"); + + assert_true(db2.objectStoreNames.contains("store"), "second objectStoreNames contains store"); + assert_true(db2.objectStoreNames.contains("store2"), "second objectStoreNames contains store2"); + assert_true(store.indexNames.contains("index"), "second indexNames contains index"); + assert_true(store.indexNames.contains("index2"), "second indexNames contains index2"); + + store.add({ i: "Odin" }, 3); + store.put({ i: "Sicking" }, 2); + + open_rq2.transaction.abort(); + }); + open_rq2.onerror = t.step_func(function (e) { + assert_equals(db2.version, 9, "db2.version after error"); + assert_true(db2.objectStoreNames.contains("store"), "objectStoreNames contains store after error"); + assert_false(db2.objectStoreNames.contains("store2"), "objectStoreNames not contains store2 after error"); + + let open_rq3 = indexedDB.open(db.name); + open_rq3.onsuccess = t + .step_func(function (e) { + let db3 = e.target.result; + + assert_true(db3.objectStoreNames.contains("store"), "third objectStoreNames contains store"); + assert_false(db3.objectStoreNames.contains("store2"), "third objectStoreNames contains store2"); + + let st = db3.transaction("store", "readonly", { durability: 'relaxed' }).objectStore("store"); + + assert_equals(db3.version, 9, "db3.version"); + + assert_true(st.indexNames.contains("index"), "third indexNames contains index"); + assert_false(st.indexNames.contains("index2"), "third indexNames contains index2"); + + st.openCursor(null, "prev").onsuccess = t.step_func(function (e) { + assert_equals(e.target.result.key, 2, "opencursor(prev) key"); + assert_equals(e.target.result.value.i, "Jonas", "opencursor(prev) value"); + }); + st.get(3).onsuccess = t.step_func(function (e) { + assert_equals(e.target.result, undefined, "get(3)"); + }); + + let idx = st.index("index"); + idx.getKey("Jonas").onsuccess = t.step_func(function (e) { + assert_equals(e.target.result, 2, "getKey(Jonas)"); + }); + idx.getKey("Odin").onsuccess = t.step_func(function (e) { + assert_equals(e.target.result, undefined, "getKey(Odin)"); + }); + idx.getKey("Sicking").onsuccess = t.step_func(function (e) { + assert_equals(e.target.result, undefined, "getKey(Sicking)"); + + db3.close(); + t.done(); + }); + }); + }); + }; +}, "IDBFactory.open() - error in upgradeneeded resets db"); + +async_test(t => { + let db; + let count_done = 0; + const open_rq = createdb(t); + + open_rq.onupgradeneeded = function (e) { + db = e.target.result; + + db.createObjectStore("store"); + assert_true(db.objectStoreNames.contains("store"), "objectStoreNames contains store"); + + let store = e.target.transaction.objectStore("store"); + assert_equals(store.name, "store", "store.name"); + + store.add("data", 1); + + store.count().onsuccess = t.step_func(function (e) { + assert_equals(e.target.result, 1, "count()"); + count_done++; + }); + + store.add("data2", 2); + }; + open_rq.onsuccess = function (e) { + let store = db.transaction("store", "readonly", { durability: 'relaxed' }).objectStore("store"); + assert_equals(store.name, "store", "store.name"); + store.count().onsuccess = t.step_func(function (e) { + assert_equals(e.target.result, 2, "count()"); + count_done++; + }); + db.close(); + + let open_rq2 = indexedDB.open(db.name, 10); + open_rq2.onupgradeneeded = t.step_func(function (e) { + let db2 = e.target.result; + assert_true(db2.objectStoreNames.contains("store"), "objectStoreNames contains store"); + let store = open_rq2.transaction.objectStore("store"); + assert_equals(store.name, "store", "store.name"); + + store.add("data3", 3); + + store.count().onsuccess = t.step_func(function (e) { + assert_equals(e.target.result, 3, "count()"); + count_done++; + + assert_equals(count_done, 3, "count_done"); + + db2.close(); + t.done(); + }); + }); + }; +}, "IDBFactory.open() - second open's transaction is available to get objectStores"); + +async_test(t => { + let db; + let open_rq = createdb(t, undefined, 9); + let open2_t = t; + + open_rq.onupgradeneeded = function (e) { + db = e.target.result; + + assert_true(e instanceof IDBVersionChangeEvent, "e instanceof IDBVersionChangeEvent"); + assert_equals(e.oldVersion, 0, "oldVersion"); + assert_equals(e.newVersion, 9, "newVersion"); + assert_equals(e.type, "upgradeneeded", "event type"); + + assert_equals(db.version, 9, "db.version"); + }; + open_rq.onsuccess = function (e) { + assert_true(e instanceof Event, "e instanceof Event"); + assert_false(e instanceof IDBVersionChangeEvent, "e not instanceof IDBVersionChangeEvent"); + assert_equals(e.type, "success", "event type"); + t.done(); + + + /** + * Second test + */ + db.onversionchange = function () { db.close(); }; + + let open_rq2 = createdb(open2_t, db.name, 10); + open_rq2.onupgradeneeded = function (e) { + let db2 = e.target.result; + assert_true(e instanceof IDBVersionChangeEvent, "e instanceof IDBVersionChangeEvent"); + assert_equals(e.oldVersion, 9, "oldVersion"); + assert_equals(e.newVersion, 10, "newVersion"); + assert_equals(e.type, "upgradeneeded", "event type"); + + assert_equals(db2.version, 10, "new db.version"); + + t.done(); + }; + }; +}, "IDBFactory.open() - upgradeneeded gets VersionChangeEvent");
\ No newline at end of file diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open.htm b/tests/wpt/tests/IndexedDB/idbfactory_open.htm deleted file mode 100644 index 8e0b2412c91..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open.htm +++ /dev/null @@ -1,18 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - request has no source</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var open_rq = createdb(async_test(), undefined, 9); - - open_rq.onupgradeneeded = function(e) {}; - open_rq.onsuccess = function(e) { - assert_equals(e.target.source, null, "source") - this.done(); - } -</script> - -<div id="log"> </div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open10.htm b/tests/wpt/tests/IndexedDB/idbfactory_open10.htm deleted file mode 100644 index 6340bd3cdf7..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open10.htm +++ /dev/null @@ -1,93 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - error in upgradeneeded resets db</title> -<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var db, db2; - var open_rq = createdb(async_test(), undefined, 9); - - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - - var st = db.createObjectStore("store"); - st.createIndex("index", "i"); - - assert_equals(db.version, 9, "first db.version"); - assert_true(db.objectStoreNames.contains("store"), "objectStoreNames contains store"); - assert_true(st.indexNames.contains("index"), "indexNames contains index"); - - st.add({i: "Joshua"}, 1); - st.add({i: "Jonas"}, 2); - }; - open_rq.onsuccess = function(e) { - db.close(); - var open_rq2 = window.indexedDB.open(db.name, 10); - open_rq2.onupgradeneeded = this.step_func(function(e) { - db2 = e.target.result; - - db2.createObjectStore("store2"); - - var store = open_rq2.transaction.objectStore("store") - store.createIndex("index2", "i"); - - assert_equals(db2.version, 10, "db2.version"); - - assert_true(db2.objectStoreNames.contains("store"), "second objectStoreNames contains store"); - assert_true(db2.objectStoreNames.contains("store2"), "second objectStoreNames contains store2"); - assert_true(store.indexNames.contains("index"), "second indexNames contains index"); - assert_true(store.indexNames.contains("index2"), "second indexNames contains index2"); - - store.add({i: "Odin"}, 3); - store.put({i: "Sicking"}, 2); - - open_rq2.transaction.abort(); - }); - open_rq2.onerror = this.step_func(function(e) { - assert_equals(db2.version, 9, "db2.version after error"); - assert_true(db2.objectStoreNames.contains("store"), "objectStoreNames contains store after error"); - assert_false(db2.objectStoreNames.contains("store2"), "objectStoreNames not contains store2 after error"); - - var open_rq3 = window.indexedDB.open(db.name); - open_rq3.onsuccess = this.step_func(function(e) { - var db3 = e.target.result; - - assert_true(db3.objectStoreNames.contains("store"), "third objectStoreNames contains store"); - assert_false(db3.objectStoreNames.contains("store2"), "third objectStoreNames contains store2"); - - var st = db3.transaction("store", "readonly", {durability: 'relaxed'}).objectStore("store"); - - assert_equals(db3.version, 9, "db3.version"); - - assert_true(st.indexNames.contains("index"), "third indexNames contains index"); - assert_false(st.indexNames.contains("index2"), "third indexNames contains index2"); - - st.openCursor(null, "prev").onsuccess = this.step_func(function(e) { - assert_equals(e.target.result.key, 2, "opencursor(prev) key"); - assert_equals(e.target.result.value.i, "Jonas", "opencursor(prev) value"); - }); - st.get(3).onsuccess = this.step_func(function(e) { - assert_equals(e.target.result, undefined, "get(3)"); - }); - - var idx = st.index("index"); - idx.getKey("Jonas").onsuccess = this.step_func(function(e) { - assert_equals(e.target.result, 2, "getKey(Jonas)"); - }); - idx.getKey("Odin").onsuccess = this.step_func(function(e) { - assert_equals(e.target.result, undefined, "getKey(Odin)"); - }); - idx.getKey("Sicking").onsuccess = this.step_func(function(e) { - assert_equals(e.target.result, undefined, "getKey(Sicking)"); - - db3.close(); - this.done(); - }); - }); - }); - }; -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open11.htm b/tests/wpt/tests/IndexedDB/idbfactory_open11.htm deleted file mode 100644 index d4012bea55b..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open11.htm +++ /dev/null @@ -1,62 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - second open's transaction is available to get objectStores</title> -<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var db; - var count_done = 0; - var open_rq = createdb(async_test()); - - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - - db.createObjectStore("store"); - assert_true(db.objectStoreNames.contains("store"), "objectStoreNames contains store"); - - var store = e.target.transaction.objectStore("store"); - assert_equals(store.name, "store", "store.name"); - - store.add("data", 1); - - store.count().onsuccess = this.step_func(function(e) { - assert_equals(e.target.result, 1, "count()"); - count_done++; - }); - - store.add("data2", 2); - }; - open_rq.onsuccess = function(e) { - var store = db.transaction("store", "readonly", {durability: 'relaxed'}).objectStore("store"); - assert_equals(store.name, "store", "store.name"); - store.count().onsuccess = this.step_func(function(e) { - assert_equals(e.target.result, 2, "count()"); - count_done++; - }); - db.close(); - - var open_rq2 = window.indexedDB.open(db.name, 10); - open_rq2.onupgradeneeded = this.step_func(function(e) { - var db2 = e.target.result; - assert_true(db2.objectStoreNames.contains("store"), "objectStoreNames contains store"); - var store = open_rq2.transaction.objectStore("store"); - assert_equals(store.name, "store", "store.name"); - - store.add("data3", 3); - - store.count().onsuccess = this.step_func(function(e) { - assert_equals(e.target.result, 3, "count()"); - count_done++; - - assert_equals(count_done, 3, "count_done"); - - db2.close(); - this.done(); - }); - }); - }; -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open12.htm b/tests/wpt/tests/IndexedDB/idbfactory_open12.htm deleted file mode 100644 index ee713ef3520..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open12.htm +++ /dev/null @@ -1,50 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - upgradeneeded gets VersionChangeEvent</title> -<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var db; - var open_rq = createdb(async_test(document.title), undefined, 9); - var open2_t = async_test(document.title + " - second upgrade"); - - open_rq.onupgradeneeded = function(e) { - db = e.target.result; - - assert_true(e instanceof IDBVersionChangeEvent, "e instanceof IDBVersionChangeEvent"); - assert_equals(e.oldVersion, 0, "oldVersion"); - assert_equals(e.newVersion, 9, "newVersion"); - assert_equals(e.type, "upgradeneeded", "event type"); - - assert_equals(db.version, 9, "db.version"); - }; - open_rq.onsuccess = function(e) { - assert_true(e instanceof Event, "e instanceof Event"); - assert_false(e instanceof IDBVersionChangeEvent, "e not instanceof IDBVersionChangeEvent"); - assert_equals(e.type, "success", "event type"); - this.done(); - - - /** - * Second test - */ - db.onversionchange = function() { db.close(); }; - - var open_rq2 = createdb(open2_t, db.name, 10); - open_rq2.onupgradeneeded = function(e) { - var db2 = e.target.result; - assert_true(e instanceof IDBVersionChangeEvent, "e instanceof IDBVersionChangeEvent"); - assert_equals(e.oldVersion, 9, "oldVersion"); - assert_equals(e.newVersion, 10, "newVersion"); - assert_equals(e.type, "upgradeneeded", "event type"); - - assert_equals(db2.version, 10, "new db.version"); - - this.done(); - }; - }; -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open2.htm b/tests/wpt/tests/IndexedDB/idbfactory_open2.htm deleted file mode 100644 index 00ebbd3d0f0..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open2.htm +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - database 'name' and 'version' are correctly set</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var database_name = document.location + '-database_name'; - var open_rq = createdb(async_test(), database_name, 13); - - open_rq.onupgradeneeded = function(e) {}; - open_rq.onsuccess = function(e) { - var db = e.target.result; - assert_equals(db.name, database_name, 'db.name'); - assert_equals(db.version, 13, 'db.version'); - this.done(); - } -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open3.htm b/tests/wpt/tests/IndexedDB/idbfactory_open3.htm deleted file mode 100644 index 19cd5c5254d..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open3.htm +++ /dev/null @@ -1,28 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - no version opens current database</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var open_rq = createdb(async_test(), undefined, 13); - var did_upgrade = false; - - open_rq.onupgradeneeded = function() {}; - open_rq.onsuccess = function(e) { - var db = e.target.result; - db.close(); - - var open_rq2 = window.indexedDB.open(db.name); - open_rq2.onsuccess = this.step_func(function(e) { - assert_equals(e.target.result.version, 13, "db.version") - e.target.result.close(); - this.done(); - }); - open_rq2.onupgradeneeded = fail(this, 'Unexpected upgradeneeded') - open_rq2.onerror = fail(this, 'Unexpected error') - } -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open4.htm b/tests/wpt/tests/IndexedDB/idbfactory_open4.htm deleted file mode 100644 index 6983ca0737f..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open4.htm +++ /dev/null @@ -1,20 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - new database has default version</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var open_rq = createdb(async_test(), document.location + '-database_name'); - - open_rq.onupgradeneeded = function(e) { - assert_equals(e.target.result.version, 1, "db.version"); - }; - open_rq.onsuccess = function(e) { - assert_equals(e.target.result.version, 1, "db.version"); - this.done(); - }; -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open5.htm b/tests/wpt/tests/IndexedDB/idbfactory_open5.htm deleted file mode 100644 index f6ddb17001a..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open5.htm +++ /dev/null @@ -1,18 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - new database is empty</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var open_rq = createdb(async_test(), document.location + '-database_name'); - - open_rq.onupgradeneeded = function() {}; - open_rq.onsuccess = function(e) { - assert_equals(e.target.result.objectStoreNames.length, 0, "objectStoreNames.length"); - this.done(); - }; -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open6.htm b/tests/wpt/tests/IndexedDB/idbfactory_open6.htm deleted file mode 100644 index 2b2cb334e46..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open6.htm +++ /dev/null @@ -1,36 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - open database with a lower version than current</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var open_rq = createdb(async_test(), undefined, 13); - var did_upgrade = false; - var open_rq2; - - open_rq.onupgradeneeded = function() {}; - open_rq.onsuccess = function(e) { - var db = e.target.result; - db.close(); - - open_rq2 = window.indexedDB.open(db.name, 14); - open_rq2.onupgradeneeded = function() {}; - open_rq2.onsuccess = this.step_func(open_previous_db); - open_rq2.onerror = fail(this, 'Unexpected error') - } - - function open_previous_db(e) { - var open_rq3 = window.indexedDB.open(e.target.result.name, 13); - open_rq3.onerror = this.step_func(function(e) { - assert_equals(e.target.error.name, 'VersionError', 'e.target.error.name') - open_rq2.result.close(); - this.done(); - }); - open_rq3.onupgradeneeded = fail(this, 'Unexpected upgradeneeded') - open_rq3.onsuccess = fail(this, 'Unexpected success') - } -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open7.htm b/tests/wpt/tests/IndexedDB/idbfactory_open7.htm deleted file mode 100644 index ccb3d067489..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open7.htm +++ /dev/null @@ -1,41 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - open database with a higher version than current</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var open_rq = createdb(async_test(), undefined, 13); - var did_upgrade = false; - var open_rq2; - - open_rq.onupgradeneeded = function() {}; - open_rq.onsuccess = function(e) { - var db = e.target.result; - db.close(); - - open_rq2 = window.indexedDB.open(db.name, 14); - open_rq2.onupgradeneeded = function() { - did_upgrade = true; - }; - open_rq2.onsuccess = this.step_func(open_current_db); - open_rq2.onerror = fail(this, 'Unexpected error') - } - - function open_current_db(e) { - var open_rq3 = window.indexedDB.open(e.target.result.name); - open_rq3.onsuccess = this.step_func(function(e) { - assert_equals(e.target.result.version, 14, "db.version") - open_rq2.result.close(); - open_rq3.result.close(); - this.done(); - }); - open_rq3.onupgradeneeded = fail(this, 'Unexpected upgradeneeded') - open_rq3.onerror = fail(this, 'Unexpected error') - - assert_true(did_upgrade, 'did upgrade'); - } -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open8.htm b/tests/wpt/tests/IndexedDB/idbfactory_open8.htm deleted file mode 100644 index 04c57df2ed4..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open8.htm +++ /dev/null @@ -1,27 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - error in version change transaction aborts open</title> -<link rel="author" title="Microsoft" href="http://www.microsoft.com"> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> -<script src=resources/support.js></script> - -<script> - var open_rq = createdb(async_test(), undefined, 13); - var did_upgrade = false; - var did_db_abort = false; - - open_rq.onupgradeneeded = function(e) { - did_upgrade = true; - e.target.result.onabort = function() { - did_db_abort = true; - } - e.target.transaction.abort(); - }; - open_rq.onerror = function(e) { - assert_true(did_upgrade); - assert_equals(e.target.error.name, 'AbortError', 'target.error'); - this.done() - }; -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open9.htm b/tests/wpt/tests/IndexedDB/idbfactory_open9.htm deleted file mode 100644 index 36a9ef814cb..00000000000 --- a/tests/wpt/tests/IndexedDB/idbfactory_open9.htm +++ /dev/null @@ -1,71 +0,0 @@ -<!DOCTYPE html> -<title>IDBFactory.open() - errors in version argument</title> -<script src=/resources/testharness.js></script> -<script src=/resources/testharnessreport.js></script> - -<script> -function should_throw(val, name) { - if (!name) { - name = ((typeof val == "object" && val) ? "object" : format_value(val)) - } - test(function() { - assert_throws_js(TypeError, function() { - window.indexedDB.open('test', val); - }); - }, "Calling open() with version argument " + name + " should throw TypeError.") -} - -should_throw(-1) -should_throw(-0.5) -should_throw(0) -should_throw(0.5) -should_throw(0.8) -should_throw(0x20000000000000) // Number.MAX_SAFE_INTEGER + 1 -should_throw(NaN) -should_throw(Infinity) -should_throw(-Infinity) -should_throw("foo") -should_throw(null) -should_throw(false) - -should_throw({ - toString: function() { assert_unreached("toString should not be called for ToPrimitive [Number]"); }, - valueOf: function() { return 0; } -}) -should_throw({ - toString: function() { return 0; }, - valueOf: function() { return {}; } -}, 'object (second)') -should_throw({ - toString: function() { return {}; }, - valueOf: function() { return {}; }, -}, 'object (third)') - - -/* Valid */ - -function should_work(val, expected_version) { - var name = format_value(val); - var dbname = 'test-db-does-not-exist'; - async_test(function(t) { - window.indexedDB.deleteDatabase(dbname); - var rq = window.indexedDB.open(dbname, val); - rq.onupgradeneeded = t.step_func(function() { - var db = rq.result; - assert_equals(db.version, expected_version, 'version'); - rq.transaction.abort(); - }); - rq.onsuccess = t.unreached_func("open should fail"); - rq.onerror = t.step_func(function() { - t.done() - }); - }, "Calling open() with version argument " + name + " should not throw.") -} - -should_work(1.5, 1) -should_work(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER) // 0x20000000000000 - 1 -should_work(undefined, 1) - -</script> - -<div id=log></div> diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits.js index 422a230bd16..da809278a87 100644 --- a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits.js +++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits.js @@ -57,25 +57,6 @@ function define_tests() { }); }, algorithmName + " mixed case parameters"); - // Null length - // "Null" is not valid per the current spec - // - https://github.com/w3c/webcrypto/issues/322 - // - https://github.com/w3c/webcrypto/issues/329 - // - // Proposal for a spec change: - // - https://github.com/w3c/webcrypto/pull/345 - // - // This test case may be replaced by these new tests: - // - https://github.com/web-platform-tests/wpt/pull/43400 - promise_test(function(test) { - return subtle.deriveBits({name: algorithmName, public: publicKeys[algorithmName]}, privateKeys[algorithmName], null) - .then(function(derivation) { - assert_true(equalBuffers(derivation, derivations[algorithmName]), "Derived correct bits"); - }, function(err) { - assert_unreached("deriveBits failed with error " + err.name + ": " + err.message); - }); - }, algorithmName + " with null length"); - // Shorter than entire derivation per algorithm promise_test(function(test) { return subtle.deriveBits({name: algorithmName, public: publicKeys[algorithmName]}, privateKeys[algorithmName], 8 * sizes[algorithmName] - 32) diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js new file mode 100644 index 00000000000..0aee2e3c172 --- /dev/null +++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js @@ -0,0 +1,11 @@ +// META: title=WebCryptoAPI: deriveBits() tests for the 'length' parameter +// META: script=derived_bits_length.js +// META: script=derived_bits_length_vectors.js +// META: script=derived_bits_length_testcases.js + +// Define subtests from a `promise_test` to ensure the harness does not +// complete before the subtests are available. `explicit_done` cannot be used +// for this purpose because the global `done` function is automatically invoked +// by the WPT infrastructure in dedicated worker tests defined using the +// "multi-global" pattern. +promise_test(define_tests, 'setup - define tests'); diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.js new file mode 100644 index 00000000000..5a7ed7eb50a --- /dev/null +++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.js @@ -0,0 +1,36 @@ +function define_tests() { + // May want to test prefixed implementations. + var subtle = self.crypto.subtle; + + Object.keys(testCases).forEach(algorithm => { + let testData = algorithms[algorithm]; + testCases[algorithm].forEach(testParam => { + promise_test(async() => { + let derivedBits, privateKey, publicKey; + try { + privateKey = await subtle.importKey(testData.privateKey.format, testData.privateKey.data, testData.importAlg, false, ["deriveBits"]); + if (testData.deriveAlg.public !== undefined) { + publicKey = await subtle.importKey(testData.publicKey.format, testData.publicKey.data, testData.importAlg, false, []); + testData.deriveAlg.public = publicKey; + } + if (testParam.length === "omitted") + derivedBits = await subtle.deriveBits(testData.deriveAlg, privateKey); + else + derivedBits = await subtle.deriveBits(testData.deriveAlg, privateKey, testParam.length); + if (testParam.expected === undefined) { + assert_unreached("deriveBits should have thrown an OperationError exception."); + } + assert_array_equals(new Uint8Array(derivedBits), testParam.expected, "Derived bits do not match the expected result."); + } catch (err) { + if (err instanceof AssertionError || testParam.expected !== undefined) { + throw err; + } + assert_true(privateKey !== undefined, "Key should be valid."); + assert_equals(err.name, "OperationError", "deriveBits correctly threw OperationError: " + err.message); + } + }, algorithm + " derivation with " + testParam.length + " as 'length' parameter"); + }); + }); + + return Promise.resolve("define_tests"); +} diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_testcases.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_testcases.js new file mode 100644 index 00000000000..1bd7fbc2c85 --- /dev/null +++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_testcases.js @@ -0,0 +1,30 @@ +var testCases = { + "HKDF": [ + {length: 256, expected: algorithms["HKDF"].derivation}, + {length: 0, expected: undefined}, // explicitly disallowed, so should throw + {length: null, expected: undefined }, // should throw an exception + {length: undefined, expected: undefined }, // should throw an exception + {length: "omitted", expected: undefined }, // default value is null, so should throw + ], + "PBKDF2": [ + {length: 256, expected: algorithms["PBKDF2"].derivation}, + {length: 0, expected: undefined}, // explicitly disallowed, so should throw + {length: null, expected: undefined }, // should throw an exception + {length: undefined, expected: undefined }, // should throw an exception + {length: "omitted", expected: undefined }, // default value is null, so should throw + ], + "ECDH": [ + {length: 256, expected: algorithms["ECDH"].derivation}, + {length: 0, expected: emptyArray}, + {length: null, expected: algorithms["ECDH"].derivation}, + {length: undefined, expected: algorithms["ECDH"].derivation}, + {length: "omitted", expected: algorithms["ECDH"].derivation }, // default value is null + ], + "X25519": [ + {length: 256, expected: algorithms["X25519"].derivation}, + {length: 0, expected: emptyArray}, + {length: null, expected: algorithms["X25519"].derivation}, + {length: undefined, expected: algorithms["X25519"].derivation}, + {length: "omitted", expected: algorithms["X25519"].derivation }, // default value is null + ], +} diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_vectors.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_vectors.js new file mode 100644 index 00000000000..fa51f7d3f2b --- /dev/null +++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_vectors.js @@ -0,0 +1,33 @@ +const emptyArray = new Uint8Array([]); +const rawKey = new Uint8Array([85, 115, 101, 114, 115, 32, 115, 104, 111, 117, 108, 100, 32, 112, 105, 99, 107, 32, 108, 111, 110, 103, 32, 112, 97, 115, 115, 112, 104, 114, 97, 115, 101, 115, 32, 40, 110, 111, 116, 32, 117, 115, 101, 32, 115, 104, 111, 114, 116, 32, 112, 97, 115, 115, 119, 111, 114, 100, 115, 41, 33]); +const salt = new Uint8Array([83, 111, 100, 105, 117, 109, 32, 67, 104, 108, 111, 114, 105, 100, 101, 32, 99, 111, 109, 112, 111, 117, 110, 100]); +const info = new Uint8Array([72, 75, 68, 70, 32, 101, 120, 116, 114, 97, 32, 105, 110, 102, 111]); + +var algorithms = { + "HKDF": { + importAlg: {name: "HKDF"}, + privateKey: {format: "raw", data: rawKey}, + deriveAlg: {name: "HKDF", salt: salt, hash: "SHA-256", info: info}, + derivation: new Uint8Array([49, 183, 214, 133, 48, 168, 99, 231, 23, 192, 129, 202, 105, 23, 182, 134, 80, 179, 221, 154, 41, 243, 6, 6, 226, 202, 209, 153, 190, 193, 77, 19]), + }, + "PBKDF2": { + importAlg: {name: "PBKDF2"}, + privateKey: {format: "raw", data: rawKey}, + deriveAlg: {name: "PBKDF2", salt: salt, hash: "SHA-256", iterations: 100000}, + derivation: new Uint8Array([17, 153, 45, 139, 129, 51, 17, 36, 76, 84, 75, 98, 41, 41, 69, 226, 8, 212, 3, 206, 189, 107, 149, 82, 161, 165, 98, 6, 93, 153, 88, 234]), + }, + "ECDH": { + importAlg: {name: "ECDH", namedCurve: "P-256"}, + privateKey: {format: "pkcs8", data: new Uint8Array([48, 129, 135, 2, 1, 0, 48, 19, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 8, 42, 134, 72, 206, 61, 3, 1, 7, 4, 109, 48, 107, 2, 1, 1, 4, 32, 15, 247, 79, 232, 241, 202, 175, 97, 92, 206, 241, 29, 217, 53, 114, 87, 98, 217, 216, 65, 236, 186, 185, 94, 170, 38, 68, 123, 52, 100, 245, 113, 161, 68, 3, 66, 0, 4, 140, 96, 11, 44, 102, 25, 45, 97, 158, 39, 210, 37, 107, 59, 151, 118, 178, 141, 30, 5, 246, 13, 234, 189, 98, 174, 123, 154, 211, 157, 224, 217, 59, 4, 102, 109, 199, 119, 14, 126, 207, 13, 211, 203, 203, 211, 110, 221, 107, 94, 220, 153, 81, 7, 55, 161, 237, 104, 46, 205, 112, 244, 10, 47])}, + publicKey: {format: "spki", data: new Uint8Array([48, 89, 48, 19, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 8, 42, 134, 72, 206, 61, 3, 1, 7, 3, 66, 0, 4, 154, 116, 32, 120, 126, 95, 77, 105, 211, 232, 34, 114, 115, 1, 109, 56, 224, 71, 129, 133, 223, 127, 238, 156, 142, 103, 60, 202, 211, 79, 126, 128, 254, 49, 141, 182, 221, 107, 119, 218, 99, 32, 165, 246, 151, 89, 9, 68, 23, 177, 52, 239, 138, 139, 116, 193, 101, 4, 57, 198, 115, 0, 90, 61])}, + deriveAlg: {name: "ECDH", public: new Uint8Array ([])}, + derivation: new Uint8Array([14, 143, 60, 77, 177, 178, 162, 131, 115, 90, 0, 220, 87, 31, 26, 232, 151, 28, 227, 35, 250, 17, 131, 137, 203, 95, 65, 196, 59, 61, 181, 161]), + }, + "X25519": { + importAlg: {name: "X25519"}, + privateKey: {format: "pkcs8", data: new Uint8Array([48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 110, 4, 34, 4, 32, 200, 131, 142, 118, 208, 87, 223, 183, 216, 201, 90, 105, 225, 56, 22, 10, 221, 99, 115, 253, 113, 164, 210, 118, 187, 86, 227, 168, 27, 100, 255, 97])}, + publicKey: {format: "spki", data: new Uint8Array([48, 42, 48, 5, 6, 3, 43, 101, 110, 3, 33, 0, 28, 242, 177, 230, 2, 46, 197, 55, 55, 30, 215, 245, 62, 84, 250, 17, 84, 216, 62, 152, 235, 100, 234, 81, 250, 229, 179, 48, 124, 254, 151, 6])}, + deriveAlg: {name: "X25519", public: new Uint8Array ([])}, + derivation: new Uint8Array([39, 104, 64, 157, 250, 185, 158, 194, 59, 140, 137, 185, 63, 245, 136, 2, 149, 247, 97, 118, 8, 143, 137, 228, 61, 254, 190, 126, 161, 149, 0, 8]), + } +}; diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js index cb9747a529f..36b29c20a28 100644 --- a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js +++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js @@ -55,25 +55,6 @@ function define_tests() { }); }, namedCurve + " mixed case parameters"); - // Null length - // "Null" is not valid per the current spec - // - https://github.com/w3c/webcrypto/issues/322 - // - https://github.com/w3c/webcrypto/issues/329 - // - // Proposal for a spec change: - // - https://github.com/w3c/webcrypto/pull/345 - // - // This test case may be replaced by these new tests: - // - https://github.com/web-platform-tests/wpt/pull/43400 - promise_test(function(test) { - return subtle.deriveBits({name: "ECDH", public: publicKeys[namedCurve]}, privateKeys[namedCurve], null) - .then(function(derivation) { - assert_true(equalBuffers(derivation, derivations[namedCurve]), "Derived correct bits"); - }, function(err) { - assert_unreached("deriveBits failed with error " + err.name + ": " + err.message); - }); - }, namedCurve + " with null length"); - // Shorter than entire derivation per algorithm promise_test(function(test) { return subtle.deriveBits({name: "ECDH", public: publicKeys[namedCurve]}, privateKeys[namedCurve], 8 * sizes[namedCurve] - 32) diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/hkdf.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/hkdf.js index 3903da5cddf..b2dfda0257b 100644 --- a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/hkdf.js +++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/hkdf.js @@ -139,25 +139,6 @@ function define_tests() { }); }, testName + " with missing info"); - // length null (OperationError) - // "Null" is not valid per the current spec - // - https://github.com/w3c/webcrypto/issues/322 - // - https://github.com/w3c/webcrypto/issues/329 - // - // Proposal for a spec change: - // - https://github.com/w3c/webcrypto/pull/345 - // - // This test case may be replaced by these new tests: - // - https://github.com/web-platform-tests/wpt/pull/43400 - subsetTest(promise_test, function(test) { - return subtle.deriveBits(algorithm, baseKeys[derivedKeySize], null) - .then(function(derivation) { - assert_unreached("null length should have thrown an OperationError"); - }, function(err) { - assert_equals(err.name, "OperationError", "deriveBits with null length correctly threw OperationError: " + err.message); - }); - }, testName + " with null length"); - // length not multiple of 8 (OperationError) subsetTest(promise_test, function(test) { return subtle.deriveBits(algorithm, baseKeys[derivedKeySize], 44) diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js index 4e4ae79d800..090806ceb6b 100644 --- a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js +++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js @@ -103,26 +103,6 @@ function define_tests() { }); - // Test various error conditions for deriveBits below: - // length null (OperationError) - // "Null" is not valid per the current spec - // - https://github.com/w3c/webcrypto/issues/322 - // - https://github.com/w3c/webcrypto/issues/329 - // - // Proposal for a spec change: - // - https://github.com/w3c/webcrypto/pull/345 - // - // This test case may be replaced by these new tests: - // - https://github.com/web-platform-tests/wpt/pull/43400 - subsetTest(promise_test, function(test) { - return subtle.deriveBits({name: "PBKDF2", salt: salts[saltSize], hash: hashName, iterations: parseInt(iterations)}, baseKeys[passwordSize], null) - .then(function(derivation) { - assert_unreached("null length should have thrown an OperationError"); - }, function(err) { - assert_equals(err.name, "OperationError", "deriveBits with null length correctly threw OperationError: " + err.message); - }); - }, testName + " with null length"); - // 0 length (OperationError) subsetTest(promise_test, function(test) { return subtle.deriveBits({name: "PBKDF2", salt: salts[saltSize], hash: hashName, iterations: parseInt(iterations)}, baseKeys[passwordSize], 0) diff --git a/tests/wpt/tests/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js b/tests/wpt/tests/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js new file mode 100644 index 00000000000..0ceeea390eb --- /dev/null +++ b/tests/wpt/tests/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js @@ -0,0 +1,17 @@ +// META: title=WebCryptoAPI: Assure promise returned by importKey is settled. +// META: timeout=long +// META: script=/common/gc.js + +'use strict'; + +promise_test(async () => { + const jwkKey = {}; + const extractable = true; + crypto.subtle.importKey("jwk", jwkKey, {name: "UNSUPPORTED", hash: "SHA-224"}, extractable, []).then( + () => { assert_unreached("Unsupported algorithm should cause promise rejection")}, + (err) => { + assert_equals(err.name, "NotSupportedError"); + }); + await garbageCollect(); +}) + diff --git a/tests/wpt/tests/credential-management/fedcm-authz/resolve-after-preventsilentaccess.https.html b/tests/wpt/tests/credential-management/fedcm-authz/resolve-after-preventsilentaccess.https.html new file mode 100644 index 00000000000..7223a722fe2 --- /dev/null +++ b/tests/wpt/tests/credential-management/fedcm-authz/resolve-after-preventsilentaccess.https.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<title>IdentityProvider.resolve after preventSilentAccess should reset user interaction</title> +<link rel="help" href="https://fedidcg.github.io/FedCM"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> + +<script type="module"> +import {request_options_with_mediation_optional, + fedcm_test, + select_manifest, + fedcm_get_and_select_first_account} from '../support/fedcm-helper.sub.js'; + +fedcm_test(async t => { + let test_options = request_options_with_mediation_optional("manifest_with_continue_on.json"); + await select_manifest(t, test_options); + + // Signs in account "1234" so that they will be a returning user + test_options.identity.providers[0].nonce = "token"; + let cred = await fedcm_get_and_select_first_account(t, test_options); + assert_equals(cred.token, "account=1234"); + + try { + await navigator.credentials.preventSilentAccess(); + } catch (ex) { + // In Chrome's content_shell, the promise will be rejected + // even though the part we care about succeeds. + } + + // Ensure that mediation: silent fails as expected. + await select_manifest(t, test_options); + test_options.mediation = "silent"; + let cred_promise = navigator.credentials.get(test_options); + await promise_rejects_dom(t, 'NetworkError', cred_promise); + + // Now trigger continue_on/IdentityProvider.resolve. + await select_manifest(t, test_options); + test_options.mediation = "optional"; + test_options.identity.providers[0].nonce = "2"; + cred = await fedcm_get_and_select_first_account(t, test_options); + assert_equals(cred.token, "account=1234"); + assert_equals(cred.isAutoSelected, false); + + // Now silent mediation should work. + await select_manifest(t, test_options); + test_options.mediation = "silent"; + test_options.identity.providers[0].nonce = "token"; + cred = await navigator.credentials.get(test_options); + assert_equals(cred.token, "account=1234"); + assert_equals(cred.isAutoSelected, true); +}, "Test that resolve clears the preventSilentAccess state."); +</script> diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-default.html b/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-default.html new file mode 100644 index 00000000000..d1837a6c336 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-default.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<title>Tests CSS animation of anchor(), dynamic position-anchor changes</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #cb { + border: 1px solid black; + width: 400px; + height: 400px; + position: relative; + } + #anchor1, #anchor2 { + width: 100px; + height: 100px; + background: tomato; + } + #anchor1 { + background: coral; + anchor-name: --a1; + } + #anchor2 { + background: seagreen; + anchor-name: --a2; + } + #anchored { + width: 50px; + height: 50px; + background: skyblue; + animation: --anim 9999s steps(2, start); + position: absolute; + position-anchor: --a1; + } + @keyframes --anim { + from { top: anchor(top); } + to { top: anchor(bottom); } + } +</style> +<div id=cb> + <div id=anchor1></div> + <div id=anchor2></div> + <div id=anchored></div> +</div> +<script> + test(() => { + assert_equals(anchored.offsetTop, 50); + anchored.style.positionAnchor = '--a2'; + assert_equals(anchored.offsetTop, 150); + }, 'Animation with anchor() responds to position-anchor change'); +</script> diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-name.html b/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-name.html new file mode 100644 index 00000000000..60d8dd59aeb --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-name.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<title>Tests CSS animation of anchor(), dynamic anchor-name changes</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #cb { + border: 1px solid black; + width: 400px; + height: 400px; + position: relative; + } + #a1, #a2 { + width: 100px; + height: 100px; + } + #a1 { + background: tomato; + } + #a2 { + background: seagreen; + } + .anchor { anchor-name: --a; } + #anchored { + width: 50px; + height: 50px; + background: skyblue; + animation: --anim 1s steps(2, start); + position: absolute; + position-anchor: --a; + } + @keyframes --anim { + from { top: anchor(top); } + to { top: anchor(bottom); } + } +</style> +<div id=cb> + <div id=a1 class=anchor></div> + <div id=a2></div> + <div id=anchored></div> +</div> +<script> + test(() => { + assert_equals(anchored.offsetTop, 50); + a1.classList.toggle('anchor'); + a2.classList.toggle('anchor'); + assert_equals(anchored.offsetTop, 150); + }, 'Animation with anchor() responds to anchor-name change'); +</script> diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-animation-iacvt.html b/tests/wpt/tests/css/css-anchor-position/anchor-animation-iacvt.html new file mode 100644 index 00000000000..7341d2fbe24 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-animation-iacvt.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<title>Tests CSS animation of anchor(), IACVT behavior</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #cb { + border: 1px solid black; + width: 400px; + height: 400px; + position: relative; + } + #anchored { + width: 50px; + height: 50px; + background: skyblue; + animation: --anim 9999s linear; + position: absolute; + top: 42px; /* This should be overwritten by the anim. effect value. */ + } + @keyframes --anim { + from { top: anchor(--unknown top); } + to { top: anchor(--unknown bottom); } + } +</style> +<div id=cb> + <div id=anchored></div> +</div> +<script> + test(() => { + assert_equals(anchored.offsetTop, 0); // auto + }, 'Animation of invalid anchor() with no fallback'); +</script> diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-animation.html b/tests/wpt/tests/css/css-anchor-position/anchor-animation.html new file mode 100644 index 00000000000..f3a4eba7ba3 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-animation.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<title>Tests CSS animation of anchor()</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #cb { + border: 1px solid black; + width: 400px; + height: 400px; + position: relative; + } + #anchor1, #anchor2 { + width: 100px; + height: 100px; + background: tomato; + } + #anchor1 { + background: coral; + anchor-name: --a1; + } + #anchor2 { + background: seagreen; + anchor-name: --a2; + } + #anchored { + width: 50px; + height: 50px; + background: skyblue; + animation: --anim 9999s steps(2, start); + position: absolute; + } + @keyframes --anim { + from { top: anchor(--a1 top); } + to { top: anchor(--a2 bottom); } + } +</style> +<div id=cb> + <div id=anchor1></div> + <div id=anchor2></div> + <div id=anchored></div> +</div> +<script> + test(() => { + assert_equals(anchored.offsetTop, 100); + }, 'Animation with anchor()'); +</script> diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-getComputedStyle-003.html b/tests/wpt/tests/css/css-anchor-position/anchor-getComputedStyle-003.html index fc384ab4cdf..d23558aef5b 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-getComputedStyle-003.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-getComputedStyle-003.html @@ -32,7 +32,7 @@ body { width: 100px; height: 100px; background: lime; - position-try-options: --pf, --pf2; + position-try-fallbacks: --pf, --pf2; } @position-try --pf { diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-invalid-fallback.html b/tests/wpt/tests/css/css-anchor-position/anchor-invalid-fallback.html index 4768beac623..15ccada1794 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-invalid-fallback.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-invalid-fallback.html @@ -214,7 +214,7 @@ test((t) => { #target { left: 9999px; /* Force overflow. */ - position-try-options: --pt flip-block; + position-try-fallbacks: --pt flip-block; } `; diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-chained-fallback.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-chained-fallback.html index ab2090e0048..490d43e12d9 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-chained-fallback.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-chained-fallback.html @@ -29,7 +29,7 @@ div { position: absolute; position-anchor: --a1; background: green; - position-try-options: --fallback; + position-try-fallbacks: --fallback; anchor-name: --a2; left: anchor(left); bottom: anchor(top); diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-001.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-001.html index e314e9634d9..6341d34f29d 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-001.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-001.html @@ -36,7 +36,7 @@ position: absolute; background: green; position-anchor: --a; - position-try-options: --f1, --f2; + position-try-fallbacks: --f1, --f2; width: 100px; height: 100px; /* Above the anchor */ left: anchor(left); diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-002.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-002.html index 4e281177eb7..777a6a76cd5 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-002.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-002.html @@ -34,7 +34,7 @@ body { position-anchor: --a; top: anchor(top); left: anchor(right); - position-try-options: --pf; + position-try-fallbacks: --pf; } @position-try --pf { diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-003.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-003.html index d35d2ac2699..55b09e87997 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-003.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-003.html @@ -40,7 +40,7 @@ height: 100px; background: green; position-anchor: --a; - position-try-options: --pf; + position-try-fallbacks: --pf; } @position-try --pf { diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-004.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-004.html index cc61a0443c8..9fd3803800b 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-004.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-004.html @@ -34,7 +34,7 @@ body { height: 100px; background: green; position-anchor: --a; - position-try-options: --pf1, --pf2; + position-try-fallbacks: --pf1, --pf2; /* Top of the anchor */ bottom: anchor(top); left: anchor(left); diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-005.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-005.html index 995010afd4b..2d37c0b622d 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-005.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-005.html @@ -35,7 +35,7 @@ body { position-anchor: --a; top: anchor(top); left: anchor(right); - position-try-options: --pf; + position-try-fallbacks: --pf; } @position-try --pf { diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-007.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-007.html index 8ac54db0633..7b3941be76a 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-007.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-007.html @@ -33,7 +33,7 @@ html { height: 100px; background: green; position-anchor: --a; - position-try-options: --pf1, --pf2, --pf3; + position-try-fallbacks: --pf1, --pf2, --pf3; inset-block-start: anchor(end); inset-inline-start: anchor(end); } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-008.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-008.html index d95d531a0c3..4447714a122 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-008.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-008.html @@ -34,7 +34,7 @@ html { height: 100px; background: green; position-anchor: --a; - position-try-options: --pf1, --pf2, --pf3; + position-try-fallbacks: --pf1, --pf2, --pf3; inset-block-start: anchor(end); inset-inline-start: anchor(end); } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-009.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-009.html index 94b2c64ecc4..3da8ad9c633 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-009.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-009.html @@ -33,7 +33,7 @@ html { height: 100px; background: green; position-anchor: --a; - position-try-options: --pf1, --pf2, --pf3; + position-try-fallbacks: --pf1, --pf2, --pf3; inset-block-start: anchor(end); inset-inline-start: anchor(end); } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-010.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-010.html index eab81f0340b..3ea49d913be 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-010.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-010.html @@ -34,7 +34,7 @@ html { height: 100px; background: green; position-anchor: --a; - position-try-options: --pf1, --pf2, --pf3; + position-try-fallbacks: --pf1, --pf2, --pf3; inset-block-start: anchor(end); inset-inline-start: anchor(end); } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-011.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-011.html index d13b5485d0f..4cf7fcdd60b 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-011.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-011.html @@ -46,7 +46,7 @@ height: 100px; background: green; position-anchor: --a; - position-try-options: --pf1, --pf2, --pf3; + position-try-fallbacks: --pf1, --pf2, --pf3; bottom: anchor(top); left: anchor(right); } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-012.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-012.html index 5e3bf50a6e7..8eff5e4a8fa 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-012.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-012.html @@ -29,7 +29,7 @@ height: 100px; background: green; position-anchor: --a; - position-try-options: --pf; + position-try-fallbacks: --pf; } @position-try --pf { diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-013.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-013.html index 3f1330d744b..0d115c26fc4 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-013.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-013.html @@ -25,7 +25,7 @@ height: 50px; inset-area: bottom; - position-try-options: flip-block; + position-try-fallbacks: flip-block; position-anchor: --a; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-014.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-014.html index f19f41c0884..3e964e4dbd6 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-014.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-014.html @@ -27,7 +27,7 @@ height: 50px; inset-area: top; - position-try-options: flip-block; + position-try-fallbacks: flip-block; position-anchor: --a; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-size-animation.html b/tests/wpt/tests/css/css-anchor-position/anchor-size-animation.html new file mode 100644 index 00000000000..52e53021c27 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-size-animation.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<title>Tests CSS animation of anchor-size()</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #cb { + border: 1px solid black; + width: 400px; + height: 400px; + position: relative; + } + #anchor1, #anchor2 { + width: 100px; + height: 100px; + background: tomato; + } + #anchor1 { + background: coral; + anchor-name: --a1; + } + #anchor2 { + background: seagreen; + anchor-name: --a2; + width: 200px; + } + #anchored { + width: 50px; + height: 50px; + background: skyblue; + animation: --anim 9999s steps(2, start); + position: absolute; + } + @keyframes --anim { + from { width: anchor-size(--a1 width); } + to { width: anchor-size(--a2 width); } + } +</style> +<div id=cb> + <div id=anchor1></div> + <div id=anchor2></div> + <div id=anchored></div> +</div> +<script> + test(() => { + assert_equals(anchored.offsetWidth, 150); + }, 'Animation with anchor-size()'); +</script> diff --git a/tests/wpt/tests/css/css-anchor-position/at-position-try-cssom.html b/tests/wpt/tests/css/css-anchor-position/at-position-try-cssom.html index 42f82d9d4bd..46ca8f73e92 100644 --- a/tests/wpt/tests/css/css-anchor-position/at-position-try-cssom.html +++ b/tests/wpt/tests/css/css-anchor-position/at-position-try-cssom.html @@ -37,7 +37,7 @@ test(t => { } #anchor { top: 100px; left: 0; anchor-name: --a; } #other-anchor { top: 200px; left: 0; anchor-name: --b; } - #target { position-try-options: --pf; position-anchor: --a; left: 999999px; } + #target { position-try-fallbacks: --pf; position-anchor: --a; left: 999999px; } `); const positionTryRule = style.sheet.cssRules[0]; diff --git a/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom.html b/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom.html index 50e67de1aef..18b6d4731ec 100644 --- a/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom.html +++ b/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom.html @@ -12,7 +12,7 @@ <template shadowrootmode="open"> <style> ::slotted(#slotted), :host { - position-try-options: --pf; + position-try-fallbacks: --pf; position: absolute; left: 999999px; /* force fallback */ } diff --git a/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation.html b/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation.html index 3f7c5062f21..62cd7e1c609 100644 --- a/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation.html +++ b/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation.html @@ -17,7 +17,7 @@ position: absolute; width: 100px; height: 100px; - position-try-options: --pf; + position-try-fallbacks: --pf; left: 999999px; /* force fallback */ } </style> @@ -36,7 +36,7 @@ <script> test(() => { assert_equals(anchored.offsetLeft, 999999); - }, "position-try-options initially not matching any rules"); + }, "position-try-fallbacks initially not matching any rules"); test(() => { document.getElementById("to-enable").media = ""; diff --git a/tests/wpt/tests/css/css-anchor-position/base-style-invalidation.html b/tests/wpt/tests/css/css-anchor-position/base-style-invalidation.html index 8e8e69f9b7c..e4e12785790 100644 --- a/tests/wpt/tests/css/css-anchor-position/base-style-invalidation.html +++ b/tests/wpt/tests/css/css-anchor-position/base-style-invalidation.html @@ -26,7 +26,7 @@ #anchored { position: absolute; position-anchor: --a; - position-try-options: --pt flip-start; + position-try-fallbacks: --pt flip-start; inset: 0; top: anchor(top); bottom: anchor(bottom); @@ -60,5 +60,5 @@ anchored.classList.toggle('flip'); assert_equals(anchored.offsetLeft, 20); assert_equals(anchored.offsetTop, 75); - }, 'The chosen position options changes when the base style differs'); + }, 'The chosen position fallbacks changes when the base style differs'); </script> diff --git a/tests/wpt/tests/css/css-anchor-position/chrome-1512373-2-crash.html b/tests/wpt/tests/css/css-anchor-position/chrome-1512373-2-crash.html index 433609766c9..50d0aff5e92 100644 --- a/tests/wpt/tests/css/css-anchor-position/chrome-1512373-2-crash.html +++ b/tests/wpt/tests/css/css-anchor-position/chrome-1512373-2-crash.html @@ -6,7 +6,7 @@ #t { position: absolute; left: 999999px; /* force fallback */ - position-try-options: --foo; + position-try-fallbacks: --foo; } </style> <div id="t"></div> diff --git a/tests/wpt/tests/css/css-anchor-position/chrome-40286059-crash.html b/tests/wpt/tests/css/css-anchor-position/chrome-40286059-crash.html index dbbeb5ac4df..cee9d2d9777 100644 --- a/tests/wpt/tests/css/css-anchor-position/chrome-40286059-crash.html +++ b/tests/wpt/tests/css/css-anchor-position/chrome-40286059-crash.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <link rel="help" href="https://crbug.com/40286059"> <p>Pass if no crash</p> -<div id="pop" style="position-try-options: --foo" popover></div> +<div id="pop" style="position-try-fallbacks: --foo" popover></div> <script> getComputedStyle(pop).left; </script> diff --git a/tests/wpt/tests/css/css-anchor-position/inline-grid-try-options-crash.html b/tests/wpt/tests/css/css-anchor-position/inline-grid-try-fallbacks-crash.html index 712f7f1d481..544ccf1baac 100644 --- a/tests/wpt/tests/css/css-anchor-position/inline-grid-try-options-crash.html +++ b/tests/wpt/tests/css/css-anchor-position/inline-grid-try-fallbacks-crash.html @@ -1,12 +1,12 @@ <!DOCTYPE html> <html class=test-wait> - <title>CSS Anchor Positioning: Don't crash when animating position and position-try-options in grid</title> + <title>CSS Anchor Positioning: Don't crash when animating position and position-try-fallbacks in grid</title> <link rel="help" href="https://crbug.com/339686368"> <style> @keyframes --anim { from { position: absolute; - position-try-options: flip-block; + position-try-fallbacks: flip-block; } } #parent { diff --git a/tests/wpt/tests/css/css-anchor-position/inset-area-in-position-try.html b/tests/wpt/tests/css/css-anchor-position/inset-area-in-position-try.html index 7339c4f41d2..3affc1b30b7 100644 --- a/tests/wpt/tests/css/css-anchor-position/inset-area-in-position-try.html +++ b/tests/wpt/tests/css/css-anchor-position/inset-area-in-position-try.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: inset-area in @position-try</title> -<link rel="help" href='https://drafts.csswg.org/css-anchor-position-1/#position-try-options'> +<link rel="help" href='https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks'> <script src='/resources/testharness.js'></script> <script src='/resources/testharnessreport.js'></script> <style> @@ -56,14 +56,14 @@ function test_inset_area_ref(inset_area) { inset-area: ${inset_area}; } #target { - position-try-options: --pt; + position-try-fallbacks: --pt; } #ref { inset-area: ${inset_area}; } `; assert_true(CSS.supports('inset-area', 'top left')); - assert_true(CSS.supports('position-try-options', '--x')); + assert_true(CSS.supports('position-try-fallbacks', '--x')); assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft'); assert_equals(target.offsetTop, ref.offsetTop, 'offsetTop'); }, `${inset_area}`); @@ -138,11 +138,11 @@ test_inset_area_ref('span-bottom span-all'); </style> <script> -// Test that an element with the specified position-try-options is placed +// Test that an element with the specified position-try-fallbacks is placed // at the same position as a reference element with inset-area:`expected`. // This test uses #target/#ref size of 60x60px, which causes overflow if // if we attempt the --right and --bottom positions. -function test_inset_area_placement(position_try_options, expected) { +function test_inset_area_placement(position_try_fallbacks, expected) { test((t) => { style.textContent = ` #target, #ref { @@ -150,17 +150,17 @@ function test_inset_area_placement(position_try_options, expected) { height: 60px; } #target { - position-try-options: ${position_try_options}; + position-try-fallbacks: ${position_try_fallbacks}; } #ref { inset-area: ${expected}; } `; assert_true(CSS.supports('inset-area', 'top left')); - assert_true(CSS.supports('position-try-options', '--x')); + assert_true(CSS.supports('position-try-fallbacks', '--x')); assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft'); assert_equals(target.offsetTop, ref.offsetTop, 'offsetTop'); - }, `Placement: ${position_try_options}`); + }, `Placement: ${position_try_fallbacks}`); } test_inset_area_placement('--top', 'top'); diff --git a/tests/wpt/tests/css/css-anchor-position/inset-area-function.html b/tests/wpt/tests/css/css-anchor-position/inset-area-value.html index 9d68bf9ddf4..27c5882fc6e 100644 --- a/tests/wpt/tests/css/css-anchor-position/inset-area-function.html +++ b/tests/wpt/tests/css/css-anchor-position/inset-area-value.html @@ -1,6 +1,6 @@ <!DOCTYPE html> -<title>CSS Anchor Positioning: inset-area()</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-options"> +<title>CSS Anchor Positioning: <'inset-area'> value</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -40,32 +40,32 @@ </div> <script> -// Test that a given inset-area() produces the same result as a reference +// Test that a given <'inset-area'> produces the same result as a reference // element that is styled with an inset-area declaration directly. -function test_inset_area_fn(inset_area_function, inset_area_expected) { +function test_inset_area_fn(inset_area) { test((t) => { t.add_cleanup(() => { style.textContent = ''; }); style.textContent = ` #target { - position-try-options: ${inset_area_function}; + position-try-fallbacks: ${inset_area}; } #ref { - inset-area: ${inset_area_expected}; + inset-area: ${inset_area}; } `; assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft'); assert_equals(target.offsetTop, ref.offsetTop, 'offsetTop'); - }, `${inset_area_function}, ${inset_area_expected}`); + }, `${inset_area}`); } -test_inset_area_fn('inset-area(top left)', 'top left'); -test_inset_area_fn('inset-area(span-top left)', 'span-top left'); -test_inset_area_fn('inset-area(top span-left)', 'top span-left'); -test_inset_area_fn('inset-area(top center)', 'top center'); -test_inset_area_fn('inset-area(left center)', 'left center'); -test_inset_area_fn('inset-area(start center)', 'start center'); -test_inset_area_fn('inset-area(center start)', 'center start'); +test_inset_area_fn('top left'); +test_inset_area_fn('span-top left'); +test_inset_area_fn('top span-left'); +test_inset_area_fn('top center'); +test_inset_area_fn('left center'); +test_inset_area_fn('start center'); +test_inset_area_fn('center start'); </script> diff --git a/tests/wpt/tests/css/css-anchor-position/last-successful-basic.html b/tests/wpt/tests/css/css-anchor-position/last-successful-basic.html index b88b9ec77dc..cda0eed6fba 100644 --- a/tests/wpt/tests/css/css-anchor-position/last-successful-basic.html +++ b/tests/wpt/tests/css/css-anchor-position/last-successful-basic.html @@ -1,6 +1,6 @@ <!DOCTYPE html> -<title>CSS Anchor Positioning: basic last successful position option</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-option"> +<title>CSS Anchor Positioning: basic last successful position fallback</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-fallback"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/test-common.js"></script> @@ -22,7 +22,7 @@ } #anchored { position-anchor: --a; - position-try-options: flip-block; + position-try-fallbacks: flip-block; position: absolute; width: 100px; height: 200px; @@ -53,5 +53,5 @@ await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame(); assert_equals(anchored.offsetTop, 0); - }, "Base position without option now successful"); + }, "Base position without fallback now successful"); </script> diff --git a/tests/wpt/tests/css/css-anchor-position/last-successful-change-options.html b/tests/wpt/tests/css/css-anchor-position/last-successful-change-fallbacks.html index 86df1afa67a..ed4f8a43626 100644 --- a/tests/wpt/tests/css/css-anchor-position/last-successful-change-options.html +++ b/tests/wpt/tests/css/css-anchor-position/last-successful-change-fallbacks.html @@ -1,6 +1,6 @@ <!DOCTYPE html> -<title>CSS Anchor Positioning: changing position-try-options invalidates last successful position option</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-option"> +<title>CSS Anchor Positioning: changing position-try-fallbacks invalidates last successful position fallback</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-fallback"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/test-common.js"></script> @@ -22,7 +22,7 @@ } #anchored { position-anchor: --a; - position-try-options: flip-block; + position-try-fallbacks: flip-block; position: absolute; width: 100px; height: 200px; @@ -49,9 +49,9 @@ }, "No successful position, keep flip-block"); promise_test(async () => { - anchored.style.positionTryOptions = "flip-block, --foo"; + anchored.style.positionTryFallbacks = "flip-block, --foo"; await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame(); assert_equals(anchored.offsetTop, -50); - }, "No successful position, last successful invalidated by position-try-options change"); + }, "No successful position, last successful invalidated by position-try-fallbacks change"); </script> diff --git a/tests/wpt/tests/css/css-anchor-position/last-successful-change-try-rule.html b/tests/wpt/tests/css/css-anchor-position/last-successful-change-try-rule.html index c0560ea1132..205aba014c3 100644 --- a/tests/wpt/tests/css/css-anchor-position/last-successful-change-try-rule.html +++ b/tests/wpt/tests/css/css-anchor-position/last-successful-change-try-rule.html @@ -1,6 +1,6 @@ <!DOCTYPE html> -<title>CSS Anchor Positioning: changing @position-try rules invalidates last successful position option</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-option"> +<title>CSS Anchor Positioning: changing @position-try rules invalidates last successful position fallback</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-fallback"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/test-common.js"></script> @@ -22,7 +22,7 @@ } #anchored { position-anchor: --a; - position-try-options: --try; + position-try-fallbacks: --try; position: absolute; width: 100px; height: 200px; diff --git a/tests/wpt/tests/css/css-anchor-position/last-successful-intermediate-ignored.html b/tests/wpt/tests/css/css-anchor-position/last-successful-intermediate-ignored.html index a2876191559..82bf1e8aca9 100644 --- a/tests/wpt/tests/css/css-anchor-position/last-successful-intermediate-ignored.html +++ b/tests/wpt/tests/css/css-anchor-position/last-successful-intermediate-ignored.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: last successful updated on resizeObserver timing</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-option"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-fallback"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/test-common.js"></script> @@ -22,7 +22,7 @@ } #anchored { position-anchor: --a; - position-try-options: flip-block; + position-try-fallbacks: flip-block; position: absolute; width: 100px; height: 200px; diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-computed.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-computed.html new file mode 100644 index 00000000000..2a5cf605c0a --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-computed.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Anchor Positioning Test: Computed position-try</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-prop"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +<div id="target"></div> +<script> + test_computed_value("position-try", "none"); + test_computed_value("position-try", "normal none", "none"); + test_computed_value("position-try", "flip-block"); + test_computed_value("position-try", "most-width none"); + test_computed_value("position-try", "most-height flip-block, flip-inline"); + test_computed_value("position-try", "most-width --foo, --bar"); + test_computed_value("position-try", "normal --foo", "--foo"); +</script> diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-computed.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-computed.html new file mode 100644 index 00000000000..ed189016c1d --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-computed.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Anchor Positioning Test: Computed position-try-fallbacks</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +<script src="/css/support/inheritance-testcommon.js"></script> +<div id="container"> + <div id="target"></div> +</div> +<script> + test_computed_value("position-try-fallbacks", "none"); + test_computed_value("position-try-fallbacks", "flip-block"); + test_computed_value("position-try-fallbacks", "flip-inline"); + test_computed_value("position-try-fallbacks", "flip-start"); + test_computed_value("position-try-fallbacks", "flip-block, flip-inline"); + test_computed_value("position-try-fallbacks", "--foo, --bar"); + test_computed_value("position-try-fallbacks", "flip-start flip-inline flip-block"); + test_computed_value("position-try-fallbacks", "flip-start --flop", "--flop flip-start"); + test_computed_value("position-try-fallbacks", "--flop flip-start"); + test_computed_value("position-try-fallbacks", "left top"); + test_computed_value("position-try-fallbacks", "top left", "left top"); + test_computed_value("position-try-fallbacks", "start start", "start"); + test_computed_value("position-try-fallbacks", "left, right"); + test_computed_value("position-try-fallbacks", "--foo, left"); + test_computed_value("position-try-fallbacks", "--foo, left, --bar"); + test_computed_value("position-try-fallbacks", "--foo, flip-start, left"); + test_computed_value("position-try-fallbacks", "--foo flip-start, left"); + test_computed_value("position-try-fallbacks", "left, --bar flip-start"); + + assert_not_inherited("position-try-fallbacks", "none", "flip-inline"); +</script> diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing.html new file mode 100644 index 00000000000..4c64b77ca27 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing.html @@ -0,0 +1,54 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Anchor Positioning Test: Parsing of position-try-fallbacks</title> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +<div id="target"></div> +<script> + test_valid_value("position-try-fallbacks", "initial"); + test_valid_value("position-try-fallbacks", "inherit"); + test_valid_value("position-try-fallbacks", "unset"); + test_valid_value("position-try-fallbacks", "revert"); + test_valid_value("position-try-fallbacks", "none"); + test_valid_value("position-try-fallbacks", "flip-block"); + test_valid_value("position-try-fallbacks", "flip-block ", 'flip-block'); + test_valid_value("position-try-fallbacks", "flip-start, flip-block"); + test_valid_value("position-try-fallbacks", "flip-start flip-inline, flip-block"); + test_valid_value("position-try-fallbacks", "flip-start, flip-start"); + test_valid_value("position-try-fallbacks", "flip-start flip-inline flip-block"); + test_valid_value("position-try-fallbacks", "flip-block, --foo"); + test_valid_value("position-try-fallbacks", "--bar, flip-block flip-start"); + test_valid_value("position-try-fallbacks", "--foo, --bar, --baz"); + test_valid_value("position-try-fallbacks", "--bar flip-block"); + test_valid_value("position-try-fallbacks", "--bar flip-inline flip-block"); + test_valid_value("position-try-fallbacks", "flip-inline --foo", "--foo flip-inline"); + test_valid_value("position-try-fallbacks", "flip-inline flip-start --foo", "--foo flip-inline flip-start"); + test_valid_value("position-try-fallbacks", "left top"); + test_valid_value("position-try-fallbacks", "top left", "left top"); + test_valid_value("position-try-fallbacks", "start start", "start"); + test_valid_value("position-try-fallbacks", "left, right"); + test_valid_value("position-try-fallbacks", "--foo, left"); + test_valid_value("position-try-fallbacks", "--foo, left, --bar"); + test_valid_value("position-try-fallbacks", "--foo, flip-start, left"); + test_valid_value("position-try-fallbacks", "--foo flip-start, left"); + test_valid_value("position-try-fallbacks", "left, --bar flip-start"); + + test_invalid_value("position-try-fallbacks", "none, flip-start"); + test_invalid_value("position-try-fallbacks", "flip-block flip-block"); + test_invalid_value("position-try-fallbacks", "flip-block flip-inline flip-inline"); + test_invalid_value("position-try-fallbacks", "flip-block, flip-inline flip-inline"); + test_invalid_value("position-try-fallbacks", "--bar flip-block --foo"); + test_invalid_value("position-try-fallbacks", "--foo --bar"); + test_invalid_value("position-try-fallbacks", "flip-inline --bar flip-block"); + test_invalid_value("position-try-fallbacks", "-foo"); + test_invalid_value("position-try-fallbacks", "foo"); + test_invalid_value("position-try-fallbacks", "flip-start 123"); + test_invalid_value("position-try-fallbacks", "--foo 123"); + test_invalid_value("position-try-fallbacks", "--foo left"); + test_invalid_value("position-try-fallbacks", "flip-start left"); + test_invalid_value("position-try-fallbacks", "left --foo "); + test_invalid_value("position-try-fallbacks", "left flip-start"); + test_invalid_value("position-try-fallbacks", "--foo, none"); +</script> diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-computed.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-computed.html deleted file mode 100644 index 91b27d4f317..00000000000 --- a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-computed.html +++ /dev/null @@ -1,33 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Anchor Positioning Test: Computed position-try-options</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-options"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/css/support/computed-testcommon.js"></script> -<script src="/css/support/inheritance-testcommon.js"></script> -<div id="container"> - <div id="target"></div> -</div> -<script> - test_computed_value("position-try-options", "none"); - test_computed_value("position-try-options", "flip-block"); - test_computed_value("position-try-options", "flip-inline"); - test_computed_value("position-try-options", "flip-start"); - test_computed_value("position-try-options", "flip-block, flip-inline"); - test_computed_value("position-try-options", "--foo, --bar"); - test_computed_value("position-try-options", "flip-start flip-inline flip-block"); - test_computed_value("position-try-options", "flip-start --flop", "--flop flip-start"); - test_computed_value("position-try-options", "--flop flip-start"); - test_computed_value("position-try-options", "inset-area(left top)"); - test_computed_value("position-try-options", "inset-area(top left)", "inset-area(left top)"); - test_computed_value("position-try-options", "inset-area(start start)", "inset-area(start)"); - test_computed_value("position-try-options", "inset-area(left), inset-area(right)"); - test_computed_value("position-try-options", "--foo, inset-area(left)"); - test_computed_value("position-try-options", "--foo, inset-area(left), --bar"); - test_computed_value("position-try-options", "--foo, flip-start, inset-area(left)"); - test_computed_value("position-try-options", "--foo flip-start, inset-area(left)"); - test_computed_value("position-try-options", "inset-area(left), --bar flip-start"); - - assert_not_inherited("position-try-options", "none", "flip-inline"); -</script> diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-parsing.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-parsing.html deleted file mode 100644 index 375bef170c1..00000000000 --- a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-parsing.html +++ /dev/null @@ -1,54 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Anchor Positioning Test: Parsing of position-try-options</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-options"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="/css/support/parsing-testcommon.js"></script> -<div id="target"></div> -<script> - test_valid_value("position-try-options", "initial"); - test_valid_value("position-try-options", "inherit"); - test_valid_value("position-try-options", "unset"); - test_valid_value("position-try-options", "revert"); - test_valid_value("position-try-options", "none"); - test_valid_value("position-try-options", "flip-block"); - test_valid_value("position-try-options", "flip-block ", 'flip-block'); - test_valid_value("position-try-options", "flip-start, flip-block"); - test_valid_value("position-try-options", "flip-start flip-inline, flip-block"); - test_valid_value("position-try-options", "flip-start, flip-start"); - test_valid_value("position-try-options", "flip-start flip-inline flip-block"); - test_valid_value("position-try-options", "flip-block, --foo"); - test_valid_value("position-try-options", "--bar, flip-block flip-start"); - test_valid_value("position-try-options", "--foo, --bar, --baz"); - test_valid_value("position-try-options", "--bar flip-block"); - test_valid_value("position-try-options", "--bar flip-inline flip-block"); - test_valid_value("position-try-options", "flip-inline --foo", "--foo flip-inline"); - test_valid_value("position-try-options", "flip-inline flip-start --foo", "--foo flip-inline flip-start"); - test_valid_value("position-try-options", "left top"); - test_valid_value("position-try-options", "top left", "left top"); - test_valid_value("position-try-options", "start start", "start"); - test_valid_value("position-try-options", "left, right"); - test_valid_value("position-try-options", "--foo, left"); - test_valid_value("position-try-options", "--foo, left, --bar"); - test_valid_value("position-try-options", "--foo, flip-start, left"); - test_valid_value("position-try-options", "--foo flip-start, left"); - test_valid_value("position-try-options", "left, --bar flip-start"); - - test_invalid_value("position-try-options", "none, flip-start"); - test_invalid_value("position-try-options", "flip-block flip-block"); - test_invalid_value("position-try-options", "flip-block flip-inline flip-inline"); - test_invalid_value("position-try-options", "flip-block, flip-inline flip-inline"); - test_invalid_value("position-try-options", "--bar flip-block --foo"); - test_invalid_value("position-try-options", "--foo --bar"); - test_invalid_value("position-try-options", "flip-inline --bar flip-block"); - test_invalid_value("position-try-options", "-foo"); - test_invalid_value("position-try-options", "foo"); - test_invalid_value("position-try-options", "flip-start 123"); - test_invalid_value("position-try-options", "--foo 123"); - test_invalid_value("position-try-options", "--foo left"); - test_invalid_value("position-try-options", "flip-start left"); - test_invalid_value("position-try-options", "left --foo "); - test_invalid_value("position-try-options", "left flip-start"); - test_invalid_value("position-try-options", "--foo, none"); -</script> diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-parsing.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-parsing.html index 7f504597106..ef0ede045a4 100644 --- a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-parsing.html +++ b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-parsing.html @@ -23,22 +23,22 @@ test_shorthand_value("position-try", "flip-inline", { "position-try-order": "normal", - "position-try-options": "flip-inline", + "position-try-fallbacks": "flip-inline", }); test_shorthand_value("position-try", "most-width none", { "position-try-order": "most-width", - "position-try-options": "none", + "position-try-fallbacks": "none", }); test_shorthand_value("position-try", "--foo, --bar", { "position-try-order": "normal", - "position-try-options": "--foo, --bar", + "position-try-fallbacks": "--foo, --bar", }); test_shorthand_value("position-try", "most-inline-size --foo, flip-inline", { "position-try-order": "most-inline-size", - "position-try-options": "--foo, flip-inline", + "position-try-fallbacks": "--foo, flip-inline", }); test_shorthand_value("position-try", "most-inline-size flip-inline flip-block, --foo, --bar", { "position-try-order": "most-inline-size", - "position-try-options": "flip-inline flip-block, --foo, --bar", + "position-try-fallbacks": "flip-inline flip-block, --foo, --bar", }); </script> diff --git a/tests/wpt/tests/css/css-anchor-position/position-anchor-001.html b/tests/wpt/tests/css/css-anchor-position/position-anchor-001.html index d927b6b902c..b0a964485c6 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-anchor-001.html +++ b/tests/wpt/tests/css/css-anchor-position/position-anchor-001.html @@ -13,7 +13,7 @@ .target { position: fixed; background: lime; - position-try-options: --pf; + position-try-fallbacks: --pf; left: 999999px; /* force fallback */ } diff --git a/tests/wpt/tests/css/css-anchor-position/position-anchor-002.html b/tests/wpt/tests/css/css-anchor-position/position-anchor-002.html index d55338e1e97..a9248ef694f 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-anchor-002.html +++ b/tests/wpt/tests/css/css-anchor-position/position-anchor-002.html @@ -13,7 +13,7 @@ .target { position: fixed; background: lime; - position-try-options: --pf; + position-try-fallbacks: --pf; left: 999999px; /* force fallback */ } diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-001.html b/tests/wpt/tests/css/css-anchor-position/position-try-001.html index 47fcbb83939..739e09f6a7b 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-001.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-001.html @@ -26,7 +26,7 @@ } .target { position: absolute; - position-try-options: --f1, --f2, --f3, --f4; + position-try-fallbacks: --f1, --f2, --f3, --f4; width: 40px; height: 15px; margin: 5px; diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-002.html b/tests/wpt/tests/css/css-anchor-position/position-try-002.html index c3d550adb1e..a97f9ecbab0 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-002.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-002.html @@ -22,7 +22,7 @@ } .target { position: absolute; - position-try-options: --f1, --f2; + position-try-fallbacks: --f1, --f2; width: min-content; height: 100px; background: orange; diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-003.html b/tests/wpt/tests/css/css-anchor-position/position-try-003.html index 196b7b0304b..a0d4c139383 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-003.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-003.html @@ -42,7 +42,7 @@ body { margin: 0; } containing block, so that the first two positions will exceed the end edges of the IMCB, and the last position will be used. */ .exceeds-end { - position-try-options: --exceeds-end-1, --exceeds-end-2; + position-try-fallbacks: --exceeds-end-1, --exceeds-end-2; left: 0; right: anchor(--a left); width: 100px; @@ -68,7 +68,7 @@ body { margin: 0; } of its containing block, so that the first two positions will exceed the start edges of the IMCB, and the last position will be used. */ .exceeds-start { - position-try-options: --exceeds-start-1, --exceeds-start-2; + position-try-fallbacks: --exceeds-start-1, --exceeds-start-2; bottom: 0; top: anchor(--a bottom); height: 100px; @@ -92,7 +92,7 @@ body { margin: 0; } /* Both inset sides are `auto`, but the size is too big to fit in the containing block. */ .exceeds-size { - position-try-options: --exceeds-size-1, --exceeds-size-2; + position-try-fallbacks: --exceeds-size-1, --exceeds-size-2; top: anchor(--a bottom); left: auto; right: auto; diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-004.html b/tests/wpt/tests/css/css-anchor-position/position-try-004.html index b172f2e8bf3..ded0efb4e65 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-004.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-004.html @@ -33,7 +33,7 @@ body { width: 100px; height: 100px; background: lime; - position-try-options: --fallback; + position-try-fallbacks: --fallback; top: anchor(--a top); right: anchor(--a left); margin-top: 10px; diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-backdrop.html b/tests/wpt/tests/css/css-anchor-position/position-try-backdrop.html index 6bf2262c69a..93b1b81ecc4 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-backdrop.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-backdrop.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<title>CSS Anchor Positioning: position-try-options on ::backdrop</title> +<title>CSS Anchor Positioning: position-try-fallbacks on ::backdrop</title> <link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#fallback-apply"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> @@ -19,7 +19,7 @@ width:100px; height:100px; left: 9999px; /* Force overflow */ - position-try-options: --pt; + position-try-fallbacks: --pt; } </style> <div id=anchor>Anchor</div> @@ -29,5 +29,5 @@ dialog.showModal(); let style = getComputedStyle(dialog, '::backdrop'); assert_equals(style.left, '300px'); - }, '::backdrop can use position-try-options'); + }, '::backdrop can use position-try-fallbacks'); </script> diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-cascade-layer-reorder.html b/tests/wpt/tests/css/css-anchor-position/position-try-cascade-layer-reorder.html index 4f38806f604..dc707e11ca8 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-cascade-layer-reorder.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-cascade-layer-reorder.html @@ -21,7 +21,7 @@ body { margin: 0; } width: 100px; height: 100px; color: lime; - position-try-options: --fallback; + position-try-fallbacks: --fallback; left: 999999px; /* force fallback */ } </style> diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-cascade.html b/tests/wpt/tests/css/css-anchor-position/position-try-cascade.html index d73ddd586a5..bec0aa1bf41 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-cascade.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-cascade.html @@ -18,7 +18,7 @@ top: 0px; width: 150px; /* force fallback */ height: 25px; - position-try-options: --pf; + position-try-fallbacks: --pf; } @position-try --pf { width: 50px; @@ -106,7 +106,7 @@ <!-- revert / revert-layer --> <style> #abs_revert { - position-try-options: --pf-revert; + position-try-fallbacks: --pf-revert; } @layer author-layer { #abs_revert { diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-container-query.html b/tests/wpt/tests/css/css-anchor-position/position-try-container-query.html index 528217c917c..e5acc8b9854 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-container-query.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-container-query.html @@ -13,7 +13,7 @@ #target1 { container-type: inline-size; container-name: target1; - position-try-options: --fallback1; + position-try-fallbacks: --fallback1; background: green; position: absolute; top: 0px; @@ -37,7 +37,7 @@ #target2 { container-type: inline-size; container-name: target2; - position-try-options: --fallback2, --fallback3; + position-try-fallbacks: --fallback2, --fallback3; background: orange; position: absolute; top: 0px; diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-custom-property.html b/tests/wpt/tests/css/css-anchor-position/position-try-custom-property.html index 69ca0d12f43..aee288bce41 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-custom-property.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-custom-property.html @@ -26,7 +26,7 @@ } .target { position: absolute; - position-try-options: --fallback1; + position-try-fallbacks: --fallback1; width: 40px; height: 15px; margin: 5px; @@ -35,10 +35,10 @@ --top: anchor(--a1 top); } .fallback1 { - position-try-options: --fallback1; + position-try-fallbacks: --fallback1; } .fallback2 { - position-try-options: --fallback2; + position-try-fallbacks: --fallback2; } @position-try --fallback1 { /* Position to the right of the anchor. */ diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-dynamic.html b/tests/wpt/tests/css/css-anchor-position/position-try-dynamic.html index fad3db62a31..016b8023e6f 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-dynamic.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-dynamic.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<title>CSS Anchor Positioning Test: Dynamically change position via position-try-options property</title> +<title>CSS Anchor Positioning Test: Dynamically change position via position-try-fallbacks property</title> <link rel="help" href="https://drafts.csswg.org/css-anchor-1/#fallback"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> @@ -29,7 +29,7 @@ }, "Initial static left position is 0"); test(() => { - anchored.style.positionTryOptions = "--fallback1"; + anchored.style.positionTryFallbacks = "--fallback1"; assert_equals(anchored.offsetLeft, 100); }, "Left position set to right edge of anchor with @position-try"); </script> diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-options-limit.html b/tests/wpt/tests/css/css-anchor-position/position-try-fallbacks-limit.html index 32a4f592fa0..1b1e76e12c8 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-options-limit.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-fallbacks-limit.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<title>CSS Anchor Positioning Test: position options list limit</title> +<title>CSS Anchor Positioning Test: position fallbacks list limit</title> <link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#fallback-apply"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> @@ -22,9 +22,9 @@ } #t1 { /* If --foo is not found, we should still try --bar even if we limit the - number of applied position options to five because the --foo's are not - added to the `position options list` per spec. */ - position-try-options: --foo, --foo, --foo, --foo, --foo, --foo, --foo, --bar; + number of applied position fallbacks to five because the --foo's are not + added to the `position fallbacks list` per spec. */ + position-try-fallbacks: --foo, --foo, --foo, --foo, --foo, --foo, --foo, --bar; } /* --f1 .. --f4 all overflowing #container */ @@ -34,7 +34,7 @@ @position-try --f4 { left: 10px; } @position-try --f5 { left: 20px; width: 20px; /* not overflowing #container */ } #t2 { - position-try-options: --f1, --f2, --f3, --f4, --f5; + position-try-fallbacks: --f1, --f2, --f3, --f4, --f5; } </style> @@ -44,10 +44,10 @@ </div> <script> test(() => { - assert_equals(t1.offsetLeft, 0, "The --bar try option should be applied"); - }, "Try options which are not found are not part of the limit"); + assert_equals(t1.offsetLeft, 0, "The --bar try fallback should be applied"); + }, "Try fallbacks which are not found are not part of the limit"); test(() => { - assert_equals(t2.offsetLeft, 20, "The --f5 try option should be applied"); - }, "Must support At least five try options"); + assert_equals(t2.offsetLeft, 20, "The --f5 try fallback should be applied"); + }, "Must support At least five try fallbacks"); </script> diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-grid-001.html b/tests/wpt/tests/css/css-anchor-position/position-try-grid-001.html index 74888f25486..08b88fd59f2 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-grid-001.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-grid-001.html @@ -33,7 +33,7 @@ grid-column: 2 / 4; grid-row: 2 / 4; position: absolute; - position-try-options: --f1, --f2, --f3; + position-try-fallbacks: --f1, --f2, --f3; width: 100px; height: 100px; background: lime; diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-initial-transition.html b/tests/wpt/tests/css/css-anchor-position/position-try-initial-transition.html index 0e81607ae65..163e2dc3b6d 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-initial-transition.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-initial-transition.html @@ -20,7 +20,7 @@ left: 10px; width: 150px; /* force fallback */ height: 25px; - position-try-options: --pf; + position-try-fallbacks: --pf; transition-property: top, left; transition-duration: 10s; transition-timing-function: steps(2, start); diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-invalid-anchor-crash.html b/tests/wpt/tests/css/css-anchor-position/position-try-invalid-anchor-crash.html index dc09bb4b3f8..27ea1942a34 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-invalid-anchor-crash.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-invalid-anchor-crash.html @@ -3,4 +3,4 @@ <style> @position-try --f1 { top: 50px; } </style> -<div style="position: absolute; position-anchor: --x; position-try-options: --f1">INVALID ANCHOR</div> +<div style="position: absolute; position-anchor: --x; position-try-fallbacks: --f1">INVALID ANCHOR</div> diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html b/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html index d1c74e7b9fd..c7705a71bbb 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html @@ -147,7 +147,7 @@ test_order('--left', '--left'); test_order('--top', '--top'); test_order('--bottom', '--bottom'); -// position-try-order:normal just picks the first option. +// position-try-order:normal just picks the first fallback. test_order('--right, --left, --bottom, --top', '--right'); test_order('normal --right, --left, --bottom, --top', '--right'); test_order('normal --top, --left, --bottom, --right', '--top'); diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-area.html b/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-area.html index 98e606a7d8f..71ae5d78deb 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-area.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-area.html @@ -146,7 +146,7 @@ test_inset_area_order('--left', '--left'); test_inset_area_order('--top', '--top'); test_inset_area_order('--bottom', '--bottom'); -// position-try-order:normal just picks the first option. +// position-try-order:normal just picks the first fallback. test_inset_area_order('--right, --left, --bottom, --top', '--right'); test_inset_area_order('normal --right, --left, --bottom, --top', '--right'); test_inset_area_order('normal --top, --left, --bottom, --right', '--top'); diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-position-anchor.html b/tests/wpt/tests/css/css-anchor-position/position-try-position-anchor.html index 7355c23f53b..d26dfd9f2b5 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-position-anchor.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-position-anchor.html @@ -29,7 +29,7 @@ width: 300px; height: 100px; position-anchor: --a; - position-try-options: --pf; + position-try-fallbacks: --pf; } @position-try --pf { position-anchor: --b; diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-pseudo-element.html b/tests/wpt/tests/css/css-anchor-position/position-try-pseudo-element.html index 5895f2a4077..23c572a4104 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-pseudo-element.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-pseudo-element.html @@ -12,7 +12,7 @@ left: 999999px; /* force fallback */ } #target::before { - position-try-options: --f1, --f2; + position-try-fallbacks: --f1, --f2; background: lime; position: absolute; left: 200px; @@ -22,7 +22,7 @@ content: ""; } #target::after { - position-try-options: --f1, --f2; + position-try-fallbacks: --f1, --f2; background: green; position: absolute; left: 100px; diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-switch-from-fixed-anchor.html b/tests/wpt/tests/css/css-anchor-position/position-try-switch-from-fixed-anchor.html index 904aa55180d..df398e0090d 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-switch-from-fixed-anchor.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-switch-from-fixed-anchor.html @@ -32,7 +32,7 @@ body { #anchored { position-anchor: --anchor1; inset-area: top; - position-try-options: --fixed; + position-try-fallbacks: --fixed; position: fixed; width: 50px; height: 50px; diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-switch-to-fixed-anchor.html b/tests/wpt/tests/css/css-anchor-position/position-try-switch-to-fixed-anchor.html index 54fcb2e4df3..469064e7e28 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-switch-to-fixed-anchor.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-switch-to-fixed-anchor.html @@ -31,7 +31,7 @@ body { #anchored { position-anchor: --anchor1; inset-area: top; - position-try-options: --fixed; + position-try-fallbacks: --fixed; position: fixed; width: 50px; height: 50px; diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-transition-basic.html b/tests/wpt/tests/css/css-anchor-position/position-try-transition-basic.html index 3bb982f073a..eb4222090bd 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-transition-basic.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-transition-basic.html @@ -20,7 +20,7 @@ width: 50px; height: 50px; background: skyblue; - position-try-options: --200; + position-try-fallbacks: --200; } #target.anim { transition: left 1000s steps(2, start); @@ -43,7 +43,7 @@ assert_equals(target.offsetLeft, 300); cb.classList.add('shrink'); target.classList.add('anim'); - // Now we take the --200 option: + // Now we take the --200 fallback: assert_equals(target.offsetLeft, 250); }, 'Transition when @position-try is applied'); diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-transition-flip.html b/tests/wpt/tests/css/css-anchor-position/position-try-transition-flip.html index 6adacadfd42..e8e692a7295 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-transition-flip.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-transition-flip.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: Transition to a flipped state</title> <link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#fallback-apply"> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -32,7 +32,7 @@ width: 50px; height: 50px; background: skyblue; - position-try-options: flip-start; + position-try-fallbacks: flip-start; } #target.anim { transition: left 1000s steps(2, start); diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-tree-scoped.html b/tests/wpt/tests/css/css-anchor-position/position-try-tree-scoped.html index d0c94fd6797..b1cec4e4ef2 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-tree-scoped.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-tree-scoped.html @@ -18,9 +18,9 @@ left: 999999px; /* force fallback */ } - #doc_pf_doc { position-try-options: --doc; } - #doc_pf_outer { position-try-options: --outer; } - #doc_pf_inner { position-options: --inner; } + #doc_pf_doc { position-try-fallbacks: --doc; } + #doc_pf_outer { position-try-fallbacks: --outer; } + #doc_pf_inner { position-try-fallbacks: --inner; } </style> <div id="doc_pf_doc" class="abs"></div> @@ -38,9 +38,9 @@ left: 999999px; /* force fallback */ } - #outer_pf_doc { position-try-options: --doc; } - #outer_pf_outer { position-try-options: --outer; } - #outer_pf_inner { position-try-options: --inner; } + #outer_pf_doc { position-try-fallbacks: --doc; } + #outer_pf_outer { position-try-fallbacks: --outer; } + #outer_pf_inner { position-try-fallbacks: --inner; } </style> <div id="outer_pf_doc" class="abs"></div> <div id="outer_pf_outer" class="abs"></div> @@ -57,9 +57,9 @@ left: 999999px; /* force fallback */ } - #inner_pf_doc { position-try-options: --doc; } - #inner_pf_outer { position-try-options: --outer; } - #inner_pf_inner { position-try-options: --inner; } + #inner_pf_doc { position-try-fallbacks: --doc; } + #inner_pf_outer { position-try-fallbacks: --outer; } + #inner_pf_inner { position-try-fallbacks: --inner; } </style> <div id="inner_pf_doc" class="abs"></div> <div id="inner_pf_outer" class="abs"></div> @@ -78,7 +78,7 @@ left: 1px; } #host_slotted_part::part(part) { - position-try-options: --host-slot-part; + position-try-fallbacks: --host-slot-part; } </style> <div id="host_slotted_part"> @@ -90,7 +90,7 @@ ::slotted(#slotted), :host { position: absolute; left: 999999px; /* force fallback */ - position-try-options: --host-slot-part; + position-try-fallbacks: --host-slot-part; } #part { position: absolute; @@ -107,42 +107,42 @@ <script> test(() => { assert_equals(doc_pf_doc.offsetLeft, 100); - }, "Document position-try-options matches @position-try in document scope"); + }, "Document position-try-fallbacks matches @position-try in document scope"); test(() => { assert_equals(doc_pf_outer.offsetLeft, 999999); - }, "Document position-try-options does not match @position-try in #outer_host scope"); + }, "Document position-try-fallbacks does not match @position-try in #outer_host scope"); test(() => { assert_equals(doc_pf_inner.offsetLeft, 999999); - }, "Document position-try-options does not match @position-try in #inner_host scope"); + }, "Document position-try-fallbacks does not match @position-try in #inner_host scope"); const outer_root = outer_host.shadowRoot; const inner_root = outer_root.querySelector("#inner_host").shadowRoot; test(() => { assert_equals(outer_root.querySelector("#outer_pf_doc").offsetLeft, 100); - }, "Outer position-try-options matches @position-try in document scope"); + }, "Outer position-try-fallbacks matches @position-try in document scope"); test(() => { assert_equals(outer_root.querySelector("#outer_pf_outer").offsetLeft, 200); - }, "Outer position-try-options matches @position-try in #outer_host scope"); + }, "Outer position-try-fallbacks matches @position-try in #outer_host scope"); test(() => { assert_equals(outer_root.querySelector("#outer_pf_inner").offsetLeft, 999999); - }, "Outer position-try-options does not match @position-try in #inner_host scope"); + }, "Outer position-try-fallbacks does not match @position-try in #inner_host scope"); test(() => { assert_equals(inner_root.querySelector("#inner_pf_doc").offsetLeft, 100) - }, "Inner position-try-options matches @position-try in document scope"); + }, "Inner position-try-fallbacks matches @position-try in document scope"); test(() => { assert_equals(inner_root.querySelector("#inner_pf_outer").offsetLeft, 200); - }, "Inner position-try-options matches @position-try in #outer_host scope"); + }, "Inner position-try-fallbacks matches @position-try in #outer_host scope"); test(() => { assert_equals(inner_root.querySelector("#inner_pf_inner").offsetLeft, 300); - }, "Inner position-try-options matches @position-try in #inner_host scope"); + }, "Inner position-try-fallbacks matches @position-try in #inner_host scope"); test(() => { assert_equals(host_slotted_part.offsetLeft, 2); diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-typed-om.html b/tests/wpt/tests/css/css-anchor-position/position-try-typed-om.html index 76ec9411b8d..56e0aaf4e77 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-typed-om.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-typed-om.html @@ -30,7 +30,7 @@ background: skyblue; position-anchor: --a; left: 9999px; /* force overflow */ - position-try-options: --pt; + position-try-fallbacks: --pt; } </style> @@ -51,5 +51,5 @@ assert_unit_value(target.computedStyleMap().get('top'), CSS.px(50)); assert_unit_value(target.computedStyleMap().get('width'), CSS.px(20)); assert_unit_value(target.computedStyleMap().get('height'), CSS.px(40)); - }, 'Effects of position-try-options are visible in the computed values'); + }, 'Effects of position-try-fallbacks are visible in the computed values'); </script> diff --git a/tests/wpt/tests/css/css-anchor-position/property-interpolations.html b/tests/wpt/tests/css/css-anchor-position/property-interpolations.html index ddfad852f89..5687e34cfd6 100644 --- a/tests/wpt/tests/css/css-anchor-position/property-interpolations.html +++ b/tests/wpt/tests/css/css-anchor-position/property-interpolations.html @@ -41,27 +41,27 @@ }); test_no_interpolation({ - property: 'position-try-options', + property: 'position-try-fallbacks', from: 'none', to: '--foo', }); test_no_interpolation({ - property: 'position-try-options', + property: 'position-try-fallbacks', from: 'none', to: 'flip-block', }); test_no_interpolation({ - property: 'position-try-options', + property: 'position-try-fallbacks', from: 'flip-inline', to: 'flip-block', }); test_no_interpolation({ - property: 'position-try-options', + property: 'position-try-fallbacks', from: '--foo', to: '--bar', }); test_no_interpolation({ - property: 'position-try-options', + property: 'position-try-fallbacks', from: '--foo', to: 'flip-block', }); diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-alignment.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-alignment.html index 39595276d5c..b39a9298371 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-alignment.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-alignment.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: try-tactic, justify/align-self</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -59,14 +59,14 @@ function test_justify_flip(try_tactic, untransformed, transformed, direction, wr ${untransformed} } #target { - position-try-options: --pf ${try_tactic}; + position-try-fallbacks: --pf ${try_tactic}; } @position-try --ref { inset: 0; ${transformed} } #ref { - position-try-options: --ref; + position-try-fallbacks: --ref; } `; assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft'); @@ -146,7 +146,7 @@ function test_computed_value(try_tactic, property, value, expected) { ${property}:${value}; } #target { - position-try-options: --pf ${try_tactic}; + position-try-fallbacks: --pf ${try_tactic}; } `; assert_equals(getComputedStyle(target).getPropertyValue(property), expected); diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-anchor.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-anchor.html index 8dc45dc6e8a..a40ed9fc36d 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-anchor.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-anchor.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: try-tactic, anchor()</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -53,14 +53,14 @@ function test_anchor_flip(try_tactic, untransformed, transformed) { ${untransformed} } #target { - position-try-options: --pf ${try_tactic}; + position-try-fallbacks: --pf ${try_tactic}; } @position-try --ref { inset: auto; ${transformed} } #ref { - position-try-options: --ref; + position-try-fallbacks: --ref; } `; assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft'); @@ -197,7 +197,7 @@ function test_anchor_size_flip(try_tactic, flip_expected) { height: anchor-size(height); } #target { - position-try-options: --pf ${try_tactic}; + position-try-fallbacks: --pf ${try_tactic}; } `; @@ -242,7 +242,7 @@ test((t) => { right: var(--anchor-left); } #target { - position-try-options: --pf; + position-try-fallbacks: --pf; } `; // Initially positioned to the left of the anchor. @@ -251,7 +251,7 @@ test((t) => { // Now positioned to the right of the anchor. style.textContent += ` #target { - position-try-options: --pf flip-inline; + position-try-fallbacks: --pf flip-inline; } `; assert_equals(target.offsetLeft, 210, 'offsetLeft'); diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-back-to-base.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-back-to-base.html index 9a11fc7fffc..96c2ee86950 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-back-to-base.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-back-to-base.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: try-tactic, back to base values</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -18,7 +18,7 @@ left: 180px; top: 190px; /* ... and neither does this. */ - position-try-options: flip-block; + position-try-fallbacks: flip-block; background-color: coral; } diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-base.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-base.html index b52c3d15e0f..c0a7ed739c8 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-base.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-base.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: try-tactic, base values</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -27,7 +27,7 @@ assert_equals(cs.width, '150px'); assert_equals(cs.height, '300px'); - target.style.positionTryOptions = 'flip-start'; + target.style.positionTryFallbacks = 'flip-start'; assert_equals(cs.width, '300px'); assert_equals(cs.height, '150px'); diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-basic.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-basic.html index 472e204096d..36077b33f49 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-basic.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-basic.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: try-tactic</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -27,13 +27,13 @@ </div> <script> function test_try_tactic(try_tactic, expected_offsets) { - target.style.positionTryOptions = `--pf ${try_tactic}`; + target.style.positionTryFallbacks = `--pf ${try_tactic}`; test(() => { assert_equals(target.offsetLeft, expected_offsets.left, 'offsetLeft'); assert_equals(target.offsetTop, expected_offsets.top, 'offsetTop'); assert_equals(target.offsetWidth, expected_offsets.width, 'offsetWidth'); assert_equals(target.offsetHeight, expected_offsets.height, 'offsetHeight'); - }, target.style.positionTryOptions); + }, target.style.positionTryFallbacks); } test_try_tactic('', {left:10, top:20, width:30, height:40}); diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-inset-area.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-inset-area.html index 32af18a1494..9e53fab91fc 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-inset-area.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-inset-area.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: try-tactic, inset-area</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -53,7 +53,7 @@ function test_computed_value(try_tactic, property, value, expected, direction, w ${property}:${value}; } #target { - position-try-options: --pf ${try_tactic}; + position-try-fallbacks: --pf ${try_tactic}; } `; assert_equals(getComputedStyle(target).getPropertyValue(property), expected); diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-margin.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-margin.html index ab627315b8b..7e0b25652c7 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-margin.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-margin.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: try-tactic (margin)</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -28,13 +28,13 @@ </div> <script> function test_try_tactic(try_tactic, expected_offsets) { - target.style.positionTryOptions = `--pf ${try_tactic}`; + target.style.positionTryFallbacks = `--pf ${try_tactic}`; test(() => { assert_equals(target.offsetLeft, expected_offsets.left, 'offsetLeft'); assert_equals(target.offsetTop, expected_offsets.top, 'offsetTop'); assert_equals(target.offsetWidth, expected_offsets.width, 'offsetWidth'); assert_equals(target.offsetHeight, expected_offsets.height, 'offsetHeight'); - }, target.style.positionTryOptions); + }, target.style.positionTryFallbacks); } let w = 30; diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-percentage.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-percentage.html index 20cf0f87e05..41b5926e2cd 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-percentage.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-percentage.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: try-tactic, percentage</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -50,14 +50,14 @@ function test_anchor_flip(try_tactic, untransformed, transformed) { ${untransformed} } #target { - position-try-options: --pf ${try_tactic}; + position-try-fallbacks: --pf ${try_tactic}; } @position-try --ref { inset: auto; ${transformed} } #ref { - position-try-options: --ref; + position-try-fallbacks: --ref; } `; assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft'); diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-sizing.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-sizing.html index 432992491dd..1a55ccf8011 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-sizing.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-sizing.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: try-tactic, sizing properties</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -32,7 +32,7 @@ </div> <script> test(() => { - target.style.positionTryOptions = '--pf flip-block'; + target.style.positionTryFallbacks = '--pf flip-block'; let cs = getComputedStyle(target); assert_equals(cs.width, '30px'); assert_equals(cs.height, '40px'); @@ -43,7 +43,7 @@ }, 'flip-block does not affect sizing'); test(() => { - target.style.positionTryOptions = '--pf flip-inline'; + target.style.positionTryFallbacks = '--pf flip-inline'; let cs = getComputedStyle(target); assert_equals(cs.width, '30px'); assert_equals(cs.height, '40px'); @@ -54,7 +54,7 @@ }, 'flip-inline does not affect sizing'); test(() => { - target.style.positionTryOptions = '--pf flip-start'; + target.style.positionTryFallbacks = '--pf flip-start'; let cs = getComputedStyle(target); assert_equals(cs.width, '40px'); assert_equals(cs.height, '30px'); diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-wm.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-wm.html index bc1c82c35d1..8dcf98f8939 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-wm.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-wm.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Anchor Positioning: try-tactic under different writing modes</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic"> +<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <style> @@ -28,7 +28,7 @@ <script> function test_try_tactic_wm(try_tactic, writing_mode, direction, expected_offsets) { - target.style.positionTryOptions = `--pf ${try_tactic}`; + target.style.positionTryFallbacks = `--pf ${try_tactic}`; target.style.writingMode = writing_mode; target.style.direction = direction; test(() => { diff --git a/tests/wpt/tests/css/css-cascade/scope-container.html b/tests/wpt/tests/css/css-cascade/scope-container.html index 3e976088e2c..ce7207b42eb 100644 --- a/tests/wpt/tests/css/css-cascade/scope-container.html +++ b/tests/wpt/tests/css/css-cascade/scope-container.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <title>@scope - inner @container</title> <link rel="help" href="https://drafts.csswg.org/css-cascade-6/#scope-atrule"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule"> <link rel="help" href="https://drafts.csswg.org/css-cascade-5/#scope-scope"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/animation-container-size.html b/tests/wpt/tests/css/css-conditional/container-queries/animation-container-size.html index fefb721cbc9..e620335c358 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/animation-container-size.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/animation-container-size.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Queries - Animating container size</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/animation-container-type-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/animation-container-type-dynamic.html index 835e8e1be1d..473c914d8a5 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/animation-container-type-dynamic.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/animation-container-type-dynamic.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Queries - Animated container creating new containers</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-animation.html b/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-animation.html index 7f1ae854ae8..b956fed2b4c 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-animation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-animation.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>Container Queries - Animations within animating container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-transition.html b/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-transition.html index 934f995a979..ca8808664ef 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-transition.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-transition.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Queries - Animated container with inner transition</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/aspect-ratio-feature-evaluation.html b/tests/wpt/tests/css/css-conditional/container-queries/aspect-ratio-feature-evaluation.html index 843f34732b6..9b68e8679d0 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/aspect-ratio-feature-evaluation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/aspect-ratio-feature-evaluation.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container queries with aspect-ratio</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#aspect-ratio"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#aspect-ratio"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html index b0196b5e5a1..b8872e89a45 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container: parsing</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html index 141062a8d47..7e6e3e99452 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries: @container serialization</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html index 36fda2e3663..3ee22be9f5b 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container: style queries parsing</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-serialization.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-serialization.html index a4fb25378cb..a30acef9ac2 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-serialization.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-serialization.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries: style() conditionText serialization</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/auto-scrollbars.html b/tests/wpt/tests/css/css-conditional/container-queries/auto-scrollbars.html index 44074ed2133..96f082f38aa 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/auto-scrollbars.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/auto-scrollbars.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: scrollbar stability for @container queries and overflow:auto</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollbar-layout"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/backdrop-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/backdrop-invalidation.html index 6a59a2f8941..6f7d52cc386 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/backdrop-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/backdrop-invalidation.html @@ -1,6 +1,6 @@ <!doctype html> <title>Test that ::backdrop responds to container size changes</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/calc-evaluation.html b/tests/wpt/tests/css/css-conditional/container-queries/calc-evaluation.html index 71a5e23764e..60fd59e9cd4 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/calc-evaluation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/calc-evaluation.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Queries Test: calc()</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://drafts.csswg.org/mediaqueries-4/#units"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-001.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-001.html index f904d1fe249..bd9fd3ddc49 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-001.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-001.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Canvas as size container for focusable child</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html"> <style> @supports (container-type: size) { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-002.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-002.html index 689feeb5fff..7c2d44f6824 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-002.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-002.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Absolute positioned canvas as size container for focusable child</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html"> <style> @supports (container-type: size) { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-003.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-003.html index 74199cc72b7..0115052b76d 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-003.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-003.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Canvas as size container for focusable child with display</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html"> <style> @supports (container-type: size) { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-004.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-004.html index b23846382b7..7e1ec8d733a 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-004.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-004.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Absolute positioned canvas as size container for focusable child with display</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html"> <style> @supports (container-type: size) { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-005.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-005.html index 9132592434c..3068ce708e6 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-005.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-005.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Canvas as dynamic size container for focusable child with display</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-006.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-006.html index 02dbce62753..0fbb6f6d833 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-006.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-006.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Absolute positioned canvas as dynamic size container for focusable child with display</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/change-display-in-container.html b/tests/wpt/tests/css/css-conditional/container-queries/change-display-in-container.html index 8c58d22b7de..978c3e81bce 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/change-display-in-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/change-display-in-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Change display and box inside a container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="match" href="change-display-in-container-ref.html"> <style> .fail { display: inline; } diff --git a/tests/wpt/tests/css/css-conditional/container-queries/chrome-legacy-skip-recalc.html b/tests/wpt/tests/css/css-conditional/container-queries/chrome-legacy-skip-recalc.html index b86a4091a2c..675f649bf82 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/chrome-legacy-skip-recalc.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/chrome-legacy-skip-recalc.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Chrome legacy layout skipping style recalc</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://crbug.com/1288879"> <link rel="match" href="/css/reference/pass_if_pass_below.html"> <style> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/column-spanner-in-container.html b/tests/wpt/tests/css/css-conditional/container-queries/column-spanner-in-container.html index d494e28504f..0f0b5f7850f 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/column-spanner-in-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/column-spanner-in-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Column-spanner depending on container in column</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/conditional-container-status.html b/tests/wpt/tests/css/css-conditional/container-queries/conditional-container-status.html index e9762f93239..d0dfb97e9cb 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/conditional-container-status.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/conditional-container-status.html @@ -1,6 +1,6 @@ <!doctype html> <title>Conditionally removing container status</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-computed.html b/tests/wpt/tests/css/css-conditional/container-queries/container-computed.html index 2be304481ba..fa56ab77402 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-computed.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-computed.html @@ -1,8 +1,8 @@ <!doctype html> <meta charset="utf-8"> -<title>CSS Containment Test: Computed values of container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<title>CSS Conditional Test: Computed values of container</title> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/support/computed-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-for-cue.html b/tests/wpt/tests/css/css-conditional/container-queries/container-for-cue.html index a460f79af06..802f6143428 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-for-cue.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-for-cue.html @@ -2,7 +2,7 @@ <html class="reftest-wait"> <head> <title>CSS Container Queries Test: Container for pseudo elements</title> - <link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> + <link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="match" href="container-for-cue-ref.html"> <script src="/common/reftest-wait.js"></script> <style> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-for-shadow-dom.html b/tests/wpt/tests/css/css-conditional/container-queries/container-for-shadow-dom.html index 63d58f76982..d79b3a9d554 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-for-shadow-dom.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-for-shadow-dom.html @@ -1,7 +1,7 @@ <!doctype html> <meta charset="utf-8"> <title>CSS Container Queries Test: query container for Shadow DOM</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-inheritance.html b/tests/wpt/tests/css/css-conditional/container-queries/container-inheritance.html index b333b691fd7..9fc8cadc3e4 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-inheritance.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-inheritance.html @@ -1,8 +1,8 @@ <!doctype html> <meta charset="utf-8"> -<title>CSS Containment Test: Inheritance of container-*</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<title>CSS Conditional Test: Inheritance of container-*</title> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/support/inheritance-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-inner-at-rules.html b/tests/wpt/tests/css/css-conditional/container-queries/container-inner-at-rules.html index ac180029298..4f0d6e02589 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-inner-at-rules.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-inner-at-rules.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container: inner at-rules</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-inside-multicol-with-table.html b/tests/wpt/tests/css/css-conditional/container-queries/container-inside-multicol-with-table.html index 8688159da3c..1046d57ef25 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-inside-multicol-with-table.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-inside-multicol-with-table.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: container inside multicol with table</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-longhand-animation-type.html b/tests/wpt/tests/css/css-conditional/container-queries/container-longhand-animation-type.html index aded2a3ec8b..efc9a817d94 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-longhand-animation-type.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-longhand-animation-type.html @@ -1,7 +1,7 @@ <!doctype html> <title>Container Queries - The container longhands are not animatable</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#propdef-container-name"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#propdef-container-type"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#propdef-container-name"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#propdef-container-type"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-name-computed.html b/tests/wpt/tests/css/css-conditional/container-queries/container-name-computed.html index f58d54744e4..abd2ebe0860 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-name-computed.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-name-computed.html @@ -1,7 +1,7 @@ <!doctype html> <meta charset="utf-8"> -<title>CSS Containment Test: Computed values of container-name</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name"> +<title>CSS Conditional Test: Computed values of container-name</title> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/support/computed-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-name-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-name-invalidation.html index aad225def9d..e918f182e2c 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-name-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-name-invalidation.html @@ -1,6 +1,6 @@ <!doctype html> <title>container-name invalidation</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-name-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/container-name-parsing.html index 4f385cca524..895b73ee66e 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-name-parsing.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-name-parsing.html @@ -1,7 +1,7 @@ <!doctype html> <meta charset="utf-8"> -<title>CSS Containment Test: Parsing of container-name</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name"> +<title>CSS Conditional Test: Parsing of container-name</title> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/support/parsing-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-name-tree-scoped.html b/tests/wpt/tests/css/css-conditional/container-queries/container-name-tree-scoped.html index e0890aab32d..de633282e88 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-name-tree-scoped.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-name-tree-scoped.html @@ -1,7 +1,7 @@ <!doctype html> <meta charset="utf-8"> <title>CSS Container Queries Test: Tree scoped container-name</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <link rel="help" href="https://drafts.csswg.org/css-scoping-1/#shadow-names"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-nested.html b/tests/wpt/tests/css/css-conditional/container-queries/container-nested.html index 3ad35bd2be8..dfe30ac0ae1 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-nested.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-nested.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container (nested)</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/container-parsing.html index 87b3bdd48cd..ab04102b569 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-parsing.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-parsing.html @@ -1,8 +1,8 @@ <!doctype html> <meta charset="utf-8"> -<title>CSS Containment Test: Parsing of container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<title>CSS Conditional Test: Parsing of container</title> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/support/parsing-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-selection-unknown-features.html b/tests/wpt/tests/css/css-conditional/container-queries/container-selection-unknown-features.html index 8e0e34db9a5..5c2c67caaf1 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-selection-unknown-features.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-selection-unknown-features.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>@container: selection using name and implicit selection</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-selection.html b/tests/wpt/tests/css/css-conditional/container-queries/container-selection.html index cef20f85a2f..d262da9ddfd 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-selection.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-selection.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container: selection using name and implicit selection</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation-after-load.html b/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation-after-load.html index cf5687aa39d..2d66b0990fd 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation-after-load.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation-after-load.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>@container: invalidation of container size after load event</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation.html index ab269717498..14433c9c3cf 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container-dependent elements respond to container size changes</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-size-nested-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-size-nested-invalidation.html index a549f6d8482..c13c80ed385 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-size-nested-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-size-nested-invalidation.html @@ -1,6 +1,6 @@ <!doctype html> <title>Nested @container-dependent elements respond to outer container size changes</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-size-shadow-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-size-shadow-invalidation.html index b2e02a10916..4d2300701ae 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-size-shadow-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-size-shadow-invalidation.html @@ -1,7 +1,7 @@ <!doctype html> <meta charset="utf-8"> <title>CSS Container Queries Test: Invalidate size container query for Shadow DOM</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-type-computed.html b/tests/wpt/tests/css/css-conditional/container-queries/container-type-computed.html index 0b5e033a0f3..60d5ab5a05a 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-type-computed.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-type-computed.html @@ -1,7 +1,7 @@ <!doctype html> <meta charset="utf-8"> <title>Computed values of container-type</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/support/computed-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-type-containment.html b/tests/wpt/tests/css/css-conditional/container-queries/container-type-containment.html index 66500a6a71c..ba97b385d6c 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-type-containment.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-type-containment.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: applied containment for container-type</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-type-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-type-invalidation.html index 90e0b4acd1d..e4f02028a74 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-type-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-type-invalidation.html @@ -1,6 +1,6 @@ <!doctype html> <title>container-type invalidation</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-type-layout-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-type-layout-invalidation.html index 3103de81f79..27c7b8a012d 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-type-layout-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-type-layout-invalidation.html @@ -1,6 +1,6 @@ <!doctype html> <title>container-type layout invalidation</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-type-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/container-type-parsing.html index 5805a927b32..1e106852c5b 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-type-parsing.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-type-parsing.html @@ -1,7 +1,7 @@ <!doctype html> <meta charset="utf-8"> -<title>CSS Containment Test: Parsing of container-type</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<title>CSS Conditional Test: Parsing of container-type</title> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/support/parsing-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-animation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-animation.html index cf1b9a8f345..79e59dc2a18 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-animation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-animation.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Relative Units: Animation</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-basic.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-basic.html index 166a003a29b..84f55d550ea 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-basic.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-basic.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Relative Units: cqi, cqb, etc</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-computational-independence.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-computational-independence.html index 694b665c793..94d786dfe51 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-computational-independence.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-computational-independence.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Relative Units: Computationally independent</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1/#computationally-independent"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-content-box.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-content-box.html index 89a76e868ce..0fc18b3175f 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-content-box.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-content-box.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Relative Units: evaluate against the content box</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient-invalidation.html index 665a14dcaa1..a0fa974fc29 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient-invalidation.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class=reftest-wait> <title>Container Relative Units in gradients</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="container-units-gradient-ref.html"> <script src="/common/reftest-wait.js"></script> <script src="/common/rendering-utils.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient.html index 3d6f5378c22..6965bf8c0d0 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>Container Relative Units in gradients</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="container-units-gradient-ref.html"> <style> .container { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-dynamic.html index c1f929241ca..978d5a60051 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-dynamic.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-dynamic.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Relative Units: in @container prelude (dynamic)</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-fallback.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-fallback.html index 3784499c387..fe7af8e38ea 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-fallback.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-fallback.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>Container Relative Units: container relative units fall back to small viewport</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container.html index 9ddca55ec15..9faf62ffc0c 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Relative Units: in @container prelude</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-ineligible-container.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-ineligible-container.html index 8882d4a38ba..61565de6e28 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-ineligible-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-ineligible-container.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <meta charset="utf-8"> <title>Container Relative Units: ineligible container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com"> <style> #grandparent, #parent { container-type: size; } diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-invalidation.html index abb766cd0c7..602f6b69dc2 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-invalidation.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Relative Units: Invalidation</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-media-queries.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-media-queries.html index 7b76f654e5c..b46e0cb715a 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-media-queries.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-media-queries.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>Container-relative units in @media</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-rule-cache.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-rule-cache.html index cc93f7793ae..3ff8e29e64f 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-rule-cache.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-rule-cache.html @@ -1,6 +1,6 @@ <!doctype html> <meta charset="utf-8"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1832481"> <link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> <link rel="author" href="https://mozilla.org" title="Mozilla"> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-selection.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-selection.html index 16a44cd1766..66ab3e24580 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-selection.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-selection.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Relative Units: Advanced Container Selection</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-shadow.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-shadow.html index 66ae1c976cc..3c672ad5426 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-shadow.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-shadow.html @@ -1,7 +1,7 @@ <!doctype html> <title>Container Relative Units: Shadow DOM</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-sharing-via-rule-node.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-sharing-via-rule-node.html index e1a5c714516..dcb22f20ccf 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-sharing-via-rule-node.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-sharing-via-rule-node.html @@ -1,6 +1,6 @@ <!doctype html> <meta charset="utf-8"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1835179"> <link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> <link rel="author" href="https://mozilla.org" title="Mozilla"> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-small-viewport-fallback.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-small-viewport-fallback.html index 6c8851681fb..d1c95d33b8f 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-small-viewport-fallback.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-small-viewport-fallback.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Relative Units: fall back to small viewport</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-svglength.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-svglength.html index 8bb227c0498..e39c21e3461 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-svglength.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-svglength.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Queries Test: container-relative units in SVGLength</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="help" href="https://svgwg.org/svg2-draft/types.html#InterfaceSVGLength"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-typed-om.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-typed-om.html index 6da3306fdfa..4ebb3518ac2 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-typed-om.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-typed-om.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Relative Units: CSS Typed OM</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#stylepropertymap"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/counters-flex-circular.html b/tests/wpt/tests/css/css-conditional/container-queries/counters-flex-circular.html index d60049e26c7..04af2e2dc06 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/counters-flex-circular.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/counters-flex-circular.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: counters inside container should not affect container size via flex layout</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <link rel="stylesheet" href="/fonts/ahem.css"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container-dynamic.html index d85ab6cb425..9542b34095b 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container-dynamic.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container-dynamic.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: counter updates</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <link rel="match" href="counters-ref.html"> <style> #container { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container.html b/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container.html index 376f52ea7c2..e94aba63264 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: counters depending on container queries</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type"> <link rel="match" href="counters-ref.html"> <style> #container { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/br-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/br-crash.html index 6631ba2fd56..35d029706a8 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/br-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/br-crash.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>Don't crash for blocky <br> (etc) with inline-size containment</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#contain-property"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#contain-property"> <link rel="help" href="https://crbug.com/1313444"> <br style="container-type:inline-size; display:block;"> <wbr style="container-type:inline-size; display:block;"> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/canvas-as-container-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/canvas-as-container-crash.html index ae7fe8dc168..45bb49f1800 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/canvas-as-container-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/canvas-as-container-crash.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Absolute positioned canvas container crash</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://crbug.com/1289850"> <p>Pass if there is no crash.</p> <canvas id="canv" style="display:block;position:absolute;container-type:inline-size"></canvas> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-001-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-001-crash.html index fe421500dad..b66ca8d30bd 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-001-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-001-crash.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: TR container with multicol TD crashes Chrome</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://crbug.com/1291471"> <p>Pass if test does not crash.</p> <table> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-002-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-002-crash.html index 24b9f1aab20..1c6f2cfbb0a 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-002-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-002-crash.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: container with multicol table-header-group crashes Chrome</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://crbug.com/1307656"> <p>Pass if test does not crash.</p> <div id="container" style="container-type:inline-size"> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-in-canvas-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-in-canvas-crash.html index 215c6a04db7..af21a9541f7 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-in-canvas-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-in-canvas-crash.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>Don't crash with a container query container inside canvas</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5"> <link rel="help" href="https://crbug.com/1321471"> <canvas> <div> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-type-change-chrome-legacy-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-type-change-chrome-legacy-crash.html index 609142a2c5f..d49b2ae8e65 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-type-change-chrome-legacy-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-type-change-chrome-legacy-crash.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Changing container-type in Chrome legacy layout</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://crbug.com/1286773"> <p>Pass if there is no crash.</p> <span style="column-count: 1"><table></table></span> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/focus-inside-content-visibility-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/focus-inside-content-visibility-crash.html index 1bf68d6686c..eb2788d03f3 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/focus-inside-content-visibility-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/focus-inside-content-visibility-crash.html @@ -1,6 +1,6 @@ <!doctype html> <title>Container Queries Test: size change detected while focusing inside content-visibility: auto container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="help" href="https://drafts.csswg.org/css-contain-2/#using-cv-auto"> <link rel="help" href="https://crbug.com/1270848"> <link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/force-sibling-style-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/force-sibling-style-crash.html index 093a01b809d..751a646931a 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/force-sibling-style-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/force-sibling-style-crash.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>getComputedStyle on sibling of style-dirty container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://crbug.com/1306385"> <div id=ancestor style="--x:foo"> <div id=container style="container-type:size;width:100px;"> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/inline-multicol-inside-container-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/inline-multicol-inside-container-crash.html index 7e209f7ffd3..853f1744b3b 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/inline-multicol-inside-container-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/inline-multicol-inside-container-crash.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Inline multicol inside size container - crash</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://crbug.com/829028"> <style> #container { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-column-group-container-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-column-group-container-crash.html index 5e520a45cff..bd1d77cd60d 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-column-group-container-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-column-group-container-crash.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: </title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="help" href="https://crbug.com/1282782"> <p>Pass if this test does not crash</p> <span style="column-count: 1"> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-placeholder-inline-size-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-placeholder-inline-size-crash.html index 4b1284e5cb3..a5c7cf62b33 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-placeholder-inline-size-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-placeholder-inline-size-crash.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Crash: input inline-size container with placeholder</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://crbug.com/1288692"> <p>Pass if this test does not crash</p> <input id="input" style="container-type:size"> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/marker-gcs-after-disconnect-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/marker-gcs-after-disconnect-crash.html index 3680c795122..b92213d98c8 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/marker-gcs-after-disconnect-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/marker-gcs-after-disconnect-crash.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>Don't crash during getComputedStyle which removes ::marker</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5"> <link rel="help" href="https://crbug.com/1349732"> <style> #container { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/math-block-container-child-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/math-block-container-child-crash.html index 00b6836655e..db6c8df7f31 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/math-block-container-child-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/math-block-container-child-crash.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Math block container child crash</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://crbug.com/1294268"> <p>Pass if there is no crash.</p> <math id="m" style="display:block math"></math> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/pseudo-container-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/pseudo-container-crash.html index f998c3a4464..203e48e85f2 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/pseudo-container-crash.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/pseudo-container-crash.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: No crash when ::after is a container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <link rel="help" href="https://crbug.com/1225381"> <style> div::after { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/custom-layout-container-001.https.html b/tests/wpt/tests/css/css-conditional/container-queries/custom-layout-container-001.https.html index 8f301e8ebf6..40594a431e4 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/custom-layout-container-001.https.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/custom-layout-container-001.https.html @@ -1,7 +1,7 @@ <!doctype html> <html class=reftest-wait> <title>CSS Container Queries Test: Size queries on CSS Layout API containers</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://drafts.css-houdini.org/css-layout-api/"> <link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html"> <script src="/common/reftest-wait.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-queries.html b/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-queries.html index d9152432ed1..96a80904521 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-queries.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-queries.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: custom property style queries</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#style-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#style-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-query-change.html b/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-query-change.html index 6669ede31da..ac15092b4cd 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-query-change.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-query-change.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: custom property style query changes</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#style-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#style-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/deep-nested-inline-size-containers.html b/tests/wpt/tests/css/css-conditional/container-queries/deep-nested-inline-size-containers.html index 00bc8b0a6b2..40012b41f21 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/deep-nested-inline-size-containers.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/deep-nested-inline-size-containers.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Deeply nested inline-size container queries</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-create.html b/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-create.html index ef74973addc..a962a963557 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-create.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-create.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: ::backdrop appearing conditionally on dialog container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="match" href="top-layer-dialog-backdrop-ref.html"> <style> html { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-remove.html b/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-remove.html index 47b40304924..1cb1cc92d47 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-remove.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-remove.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: ::backdrop disappearing conditionally on dialog container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="match" href="top-layer-dialog-backdrop-ref.html"> <style> html { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/display-contents-dynamic-style-queries.html b/tests/wpt/tests/css/css-conditional/container-queries/display-contents-dynamic-style-queries.html index 782cf566552..466992f628f 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/display-contents-dynamic-style-queries.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/display-contents-dynamic-style-queries.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Invalidate style queries and display:contents</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#style-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#style-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/display-contents.html b/tests/wpt/tests/css/css-conditional/container-queries/display-contents.html index d96a46d06a8..3dd50caff38 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/display-contents.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/display-contents.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container and display:contents</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://drafts.csswg.org/css-contain-2/#containment-size"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/display-in-container.html b/tests/wpt/tests/css/css-conditional/container-queries/display-in-container.html index a2a4cd731c8..4666ab64b2b 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/display-in-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/display-in-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: @container queries affecting display type</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="match" href="display-in-container-ref.html"> <style> .container, .not_a_container { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/display-none.html b/tests/wpt/tests/css/css-conditional/container-queries/display-none.html index 8d07ec09dde..4949cbbb715 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/display-none.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/display-none.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container in display:none</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://drafts.csswg.org/css-contain-2/#containment-size"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/fieldset-legend-change.html b/tests/wpt/tests/css/css-conditional/container-queries/fieldset-legend-change.html index 15b44a0e523..51cd8c19533 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/fieldset-legend-change.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/fieldset-legend-change.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: inline-size query changes rendered legend in fieldset</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="match" href="fieldset-legend-change-ref.html"> <p>Pass if the rendered legend below is "PASS"</p> <style> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-calc-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-calc-dynamic.html index 54f01d45a39..927dda9ffa1 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-calc-dynamic.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-calc-dynamic.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: font-relative calc - dynamic</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units-dynamic.html index 9dfaceeed6b..60c668a71c7 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units-dynamic.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units-dynamic.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: font-relative units - dynamic</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html index ba4a60dda21..38d19028255 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: font-relative units</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/fragmented-container-001.html b/tests/wpt/tests/css/css-conditional/container-queries/fragmented-container-001.html index 886f179054c..f5f4d7de7bd 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/fragmented-container-001.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/fragmented-container-001.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Query fragmented inline-size container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/get-animations.html b/tests/wpt/tests/css/css-conditional/container-queries/get-animations.html index dca41c6adad..228f52ecf58 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/get-animations.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/get-animations.html @@ -1,6 +1,6 @@ <!doctype html> <title>getAnimations depending on container query</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/grid-container.html b/tests/wpt/tests/css/css-conditional/container-queries/grid-container.html index 60278e09c69..c7002f696f6 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/grid-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/grid-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Grid container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/grid-item-container.html b/tests/wpt/tests/css/css-conditional/container-queries/grid-item-container.html index f1c66efc26d..f097c18b2ae 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/grid-item-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/grid-item-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Grid item container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/idlharness.html b/tests/wpt/tests/css/css-conditional/container-queries/idlharness.html index ac1a677bb94..177531d0d06 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/idlharness.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/idlharness.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries: CSSContainer Rule IDL tests</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/resources/WebIDLParser.js"></script> @@ -16,7 +16,7 @@ </style> <script> idl_test( - ['css-contain-3'], + ['css-conditional-5'], ['css-conditional', 'cssom', 'dom'], idl_array => { idl_array.add_objects({ diff --git a/tests/wpt/tests/css/css-conditional/container-queries/iframe-in-container-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/iframe-in-container-invalidation.html index f43d1ce7899..4c904d2d4b4 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/iframe-in-container-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/iframe-in-container-invalidation.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>@container-dependent elements respond to size changes of an @container-dependent iframe</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/iframe-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/iframe-invalidation.html index 51f2be9cfa3..c68fd4b16a9 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/iframe-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/iframe-invalidation.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container-dependent elements respond to iframe size changes</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/ineligible-containment.html b/tests/wpt/tests/css/css-conditional/container-queries/ineligible-containment.html index 36ce68d8643..1e1cace51e7 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/ineligible-containment.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/ineligible-containment.html @@ -1,6 +1,6 @@ <!doctype html> <title>Containers ineligible for containment</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://drafts.csswg.org/css-contain-2/#containment-size"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inheritance-from-container.html b/tests/wpt/tests/css/css-conditional/container-queries/inheritance-from-container.html index 97dfff2fd02..4b815d68aa3 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/inheritance-from-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/inheritance-from-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>Containers and inheritance</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-and-min-width.html b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-and-min-width.html index 8ddcbc614ca..91e8c48a93a 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-and-min-width.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-and-min-width.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: query of inline-size container is affected by min-width property</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-bfc-floats.html b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-bfc-floats.html index 88b81c67599..f4d5af65f56 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-bfc-floats.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-bfc-floats.html @@ -1,7 +1,7 @@ <!doctype html> <title>CSS Container Queries Test: inline-size constrained by floats - layout moving forwards</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#containment-inline-size"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#containment-inline-size"> <link rel="match" href="inline-size-bfc-floats-ref.html"> <style> .float { float: left; background-color: blue; } diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment-vertical-rl.html b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment-vertical-rl.html index 38c88f2df79..44fa62c7935 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment-vertical-rl.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment-vertical-rl.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: query of inline-size container in vertical-rl</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> <style> #ancestry { writing-mode: vertical-rl; } diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment.html b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment.html index d519322bd27..154a0a47ce1 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: query of inline-size container is affected by min-width property</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> <style> #keg { container-type: inline-size; } diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inner-first-line-non-matching.html b/tests/wpt/tests/css/css-conditional/container-queries/inner-first-line-non-matching.html index 5f39124e514..01d46a037f5 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/inner-first-line-non-matching.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/inner-first-line-non-matching.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Non-matching ::first-line in @container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="match" href="inner-first-line-non-matching-ref.html"> <style> #outer::first-line { color: green } diff --git a/tests/wpt/tests/css/css-conditional/container-queries/layout-dependent-focus.html b/tests/wpt/tests/css/css-conditional/container-queries/layout-dependent-focus.html index a16370ac566..3e28f4a1da1 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/layout-dependent-focus.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/layout-dependent-focus.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries: Input losing focus as a result of a size query</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/multicol-container-001.html b/tests/wpt/tests/css/css-conditional/container-queries/multicol-container-001.html index 3032170ac61..9785b6b0c62 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/multicol-container-001.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/multicol-container-001.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Query multicol container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/multicol-inside-container.html b/tests/wpt/tests/css/css-conditional/container-queries/multicol-inside-container.html index 9fc8393a513..73febc303a9 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/multicol-inside-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/multicol-inside-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Multicol inside size container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html"> <style> #container { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/nested-query-containers.html b/tests/wpt/tests/css/css-conditional/container-queries/nested-query-containers.html index 83cc3c2fecd..348e3d1529e 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/nested-query-containers.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/nested-query-containers.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>Nested query containers affecting each other</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://drafts.csswg.org/css-contain-2/#containment-size"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/nested-size-style-container-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/nested-size-style-container-invalidation.html index 8d04bf589a2..87256703884 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/nested-size-style-container-invalidation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/nested-size-style-container-invalidation.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>Nested size/style @container-dependent elements respond to container size changes</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/never-match-container.html b/tests/wpt/tests/css/css-conditional/container-queries/never-match-container.html index 9d5ff6d2272..5acded7cc5a 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/never-match-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/never-match-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: @container querying size of elements without layout containment</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/orthogonal-wm-container-query.html b/tests/wpt/tests/css/css-conditional/container-queries/orthogonal-wm-container-query.html index 1ad52bf499c..630226500ef 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/orthogonal-wm-container-query.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/orthogonal-wm-container-query.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Orthogonal writing-mode change in @container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/percentage-padding-orthogonal.html b/tests/wpt/tests/css/css-conditional/container-queries/percentage-padding-orthogonal.html index 0c419d18a9d..dac71be0bca 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/percentage-padding-orthogonal.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/percentage-padding-orthogonal.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: @container queries affecting height affecting percentage padding</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-001.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-001.html index 0baef0bfc2b..e147da5d9e8 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-001.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-001.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Queries Test: Container for elements with pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002.html index a44c64c7007..1198fb959d0 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Queries Test: Container for ::before/::after pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="match" href="pseudo-elements-002-ref.html"> <style> .container { container-type: inline-size; } diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002b.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002b.html index e1874e035b0..e1159c33bfe 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002b.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002b.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Queries Test: Container for ::first-letter/::first-line pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="match" href="pseudo-elements-002b-ref.html"> <style> .container { container-type: inline-size; } diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-003.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-003.html index 2d7647f7104..d7bec8a6e18 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-003.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-003.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container: originating element container for pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-004.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-004.html index db199f22050..6c0babfae23 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-004.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-004.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container: originating element container for pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-005.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-005.html index 575b66d6f83..163349adc86 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-005.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-005.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Style container for pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-006.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-006.html index 65aee97f758..39c00d70dc2 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-006.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-006.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container: originating element container for pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-007.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-007.html index 951f4226f49..575cb73af65 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-007.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-007.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container: originating element container for pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-008.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-008.html index 859deb2206e..dfa07922368 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-008.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-008.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container: originating element container for pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-009.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-009.html index 769a5962ff7..913b8ca5b13 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-009.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-009.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Queries Test: Container for highlight pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <link rel="match" href="pseudo-elements-009-ref.html"> <style> #container { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-010.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-010.html index e2e8f8659c5..c090488d193 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-010.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-010.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class="reftest-wait"> <title>CSS Container Queries Test: Container for highlight pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <link rel="match" href="pseudo-elements-010-ref.html"> <script src="/common/reftest-wait.js"></script> <style> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-011.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-011.html index 26dabbe1dfe..364d7ec3851 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-011.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-011.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Queries Test: ::highlight pseudo element on size container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <link rel="match" href="pseudo-elements-010-ref.html"> <style> #container { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-012.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-012.html index 7c36d9270d9..31617f838b6 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-012.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-012.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <html class="reftest-wait"> <title>CSS Container Queries Test: ::highlight pseudo size container change</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <link rel="match" href="pseudo-elements-010-ref.html"> <script src="/common/reftest-wait.js"></script> <style> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-013.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-013.html index 870b5891153..e41fc7611a4 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-013.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-013.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container: originating element container for highlight pseudo elements</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/query-content-box.html b/tests/wpt/tests/css/css-conditional/container-queries/query-content-box.html index 5f6cc9fdbe0..b689acdb095 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/query-content-box.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/query-content-box.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Size queries match content-box</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation-style.html b/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation-style.html index bf059f795a3..75876dd1ac3 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation-style.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation-style.html @@ -1,6 +1,6 @@ <!doctype html> <title>Evaluation of style queries</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation.html b/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation.html index 469b7b0d7a2..d5c77c3a7e4 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation.html @@ -1,6 +1,6 @@ <!doctype html> <title>Evaluation of queries</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/reattach-container-with-dirty-child.html b/tests/wpt/tests/css/css-conditional/container-queries/reattach-container-with-dirty-child.html index 680d9caa84a..914155a6602 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/reattach-container-with-dirty-child.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/reattach-container-with-dirty-child.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: @container changing display type while descendant styles change</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/registered-color-style-queries.html b/tests/wpt/tests/css/css-conditional/container-queries/registered-color-style-queries.html index 6e2bfb896bb..fd663d2c2d8 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/registered-color-style-queries.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/registered-color-style-queries.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Queries Test: registered color syntax style queries</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#style-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#style-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/resize-while-content-visibility-hidden.html b/tests/wpt/tests/css/css-conditional/container-queries/resize-while-content-visibility-hidden.html index a3658f7f34f..da4218b88bd 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/resize-while-content-visibility-hidden.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/resize-while-content-visibility-hidden.html @@ -1,7 +1,7 @@ <!doctype html> <html class="reftest-wait"> <title>CSS Container Queries Test: condition change while content-visibility: hidden</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="help" href="https://drafts.csswg.org/css-contain-2/#content-visibility"> <link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> <link rel="match" href="resize-while-content-visibility-hidden-ref.html"> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/sibling-layout-dependency.html b/tests/wpt/tests/css/css-conditional/container-queries/sibling-layout-dependency.html index 5e30a998d23..eb3df2ba410 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/sibling-layout-dependency.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/sibling-layout-dependency.html @@ -1,6 +1,6 @@ <!doctype html> <title>@container-dependent styles respond to layout changes</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="help" href="https://drafts.csswg.org/css-contain-2/#containment-size"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <script src="/resources/testharness.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/size-container-no-principal-box.html b/tests/wpt/tests/css/css-conditional/container-queries/size-container-no-principal-box.html index 4bff0681ab6..730bb1d7361 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/size-container-no-principal-box.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/size-container-no-principal-box.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: size container types apply to elements without a principal box</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/size-container-with-quotes.html b/tests/wpt/tests/css/css-conditional/container-queries/size-container-with-quotes.html index b88f882cd04..30a4191d337 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/size-container-with-quotes.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/size-container-with-quotes.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Queries Test: <q> element as a size container must generate quotes</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="match" href="size-container-with-quotes-ref.html"> <style> q { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/size-feature-evaluation.html b/tests/wpt/tests/css/css-conditional/container-queries/size-feature-evaluation.html index 600a266fce2..282233dec9d 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/size-feature-evaluation.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/size-feature-evaluation.html @@ -1,6 +1,6 @@ <!doctype html> <title>Evaluation of size features</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/style-change-in-container.html b/tests/wpt/tests/css/css-conditional/container-queries/style-change-in-container.html index ed4baa7e8b6..abbb1266e69 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/style-change-in-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/style-change-in-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: recompute style inside a @container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/style-container-for-shadow-dom.html b/tests/wpt/tests/css/css-conditional/container-queries/style-container-for-shadow-dom.html index e8297be941f..22ab9b9c3e8 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/style-container-for-shadow-dom.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/style-container-for-shadow-dom.html @@ -1,7 +1,7 @@ <!doctype html> <meta charset="utf-8"> <title>CSS Container Queries Test: style query container for Shadow DOM</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/style-container-invalidation-inheritance.html b/tests/wpt/tests/css/css-conditional/container-queries/style-container-invalidation-inheritance.html index b7aef69d3e1..9d2ab561101 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/style-container-invalidation-inheritance.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/style-container-invalidation-inheritance.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Query Test: named style container query change with inherited custom property</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/style-not-sharing-float.html b/tests/wpt/tests/css/css-conditional/container-queries/style-not-sharing-float.html index 7c76bb32bf2..c3633949113 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/style-not-sharing-float.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/style-not-sharing-float.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Check style is not sharing between cousins in the case of Container Queries</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/style-query-with-unknown-width.html b/tests/wpt/tests/css/css-conditional/container-queries/style-query-with-unknown-width.html index 8b05d6c1120..52f250c2d0d 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/style-query-with-unknown-width.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/style-query-with-unknown-width.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>CSS Container Queries Test: style and size query against container without a principal box</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-child-container.html b/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-child-container.html index 898fc22c2ba..8dc98a6321c 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-child-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-child-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: size query container inside foreignObject</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-no-size-container.html b/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-no-size-container.html index 38fc493a162..38f7230e187 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-no-size-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-no-size-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: SVG <foreignObject> element not a size query container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="match" href="svg-foreignobject-no-size-container-ref.html"> <style> foreignObject { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/svg-g-no-size-container.html b/tests/wpt/tests/css/css-conditional/container-queries/svg-g-no-size-container.html index ed9e8536767..a4a089a5beb 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/svg-g-no-size-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/svg-g-no-size-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: SVG <g> element not a size query container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <link rel="match" href="svg-g-no-size-container-ref.html"> <style> g { diff --git a/tests/wpt/tests/css/css-conditional/container-queries/svg-root-size-container.html b/tests/wpt/tests/css/css-conditional/container-queries/svg-root-size-container.html index 70ce40c0bce..ccdcf557d51 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/svg-root-size-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/svg-root-size-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: SVG root as a size query container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/table-inside-container-changing-display.html b/tests/wpt/tests/css/css-conditional/container-queries/table-inside-container-changing-display.html index 33a4f4fe721..5ae71aad2d0 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/table-inside-container-changing-display.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/table-inside-container-changing-display.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: table inside @container changing display type</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="help" href="https://crbug.com/1284918"> <link rel="match" href="table-inside-container-changing-display-ref.html"> <style> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-backdrop.html b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-backdrop.html index 25635167a54..207d0ab43ce 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-backdrop.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-backdrop.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: ::backdrop depending on @container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="match" href="top-layer-dialog-backdrop-ref.html"> <style> html { background: green; } diff --git a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-container.html b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-container.html index 5627a6cea0d..40a611bc918 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-container.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-container.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Top layer element as a @container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog.html b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog.html index 9d18b1862d1..255b42acff6 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: @container with modal dialog child</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-nested-dialog.html b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-nested-dialog.html index 1a6d573f24f..a988efe02f6 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-nested-dialog.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-nested-dialog.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: Nested top layer elements and @container</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/transition-scrollbars.html b/tests/wpt/tests/css/css-conditional/container-queries/transition-scrollbars.html index 60d82d26b4a..9d3f3a1c6c6 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/transition-scrollbars.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/transition-scrollbars.html @@ -1,7 +1,7 @@ <!doctype html> <title>Container Queries - Scrollbars do not cause transitions</title> <link rel="help" href="https://drafts.csswg.org/css-transitions/#starting"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event-002.html b/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event-002.html index dc9297004d7..f5b32c6fa0e 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event-002.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event-002.html @@ -2,7 +2,7 @@ <meta charset="utf-8"> <title>Container Queries - Style Change Event for transitions</title> <link rel="help" href="https://drafts.csswg.org/css-transitions/#starting"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event.html b/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event.html index 4cc1772979d..8940284f990 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event.html @@ -2,7 +2,7 @@ <meta charset="utf-8"> <title>Container Queries - Style Change Event for transitions</title> <link rel="help" href="https://drafts.csswg.org/css-transitions/#starting"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/unsupported-axis.html b/tests/wpt/tests/css/css-conditional/container-queries/unsupported-axis.html index 308de2f4245..80bbf9776df 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/unsupported-axis.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/unsupported-axis.html @@ -1,6 +1,6 @@ <!doctype html> <title>Query against unsupported axis</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/viewport-units-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/viewport-units-dynamic.html index 2339533deee..10f65efc0ae 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/viewport-units-dynamic.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/viewport-units-dynamic.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: @container-dependent elements respond to viewport unit changes</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/viewport-units.html b/tests/wpt/tests/css/css-conditional/container-queries/viewport-units.html index 9b8bb42c434..498a9c7eb2d 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/viewport-units.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/viewport-units.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: viewport units</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="support/cq-testcommon.js"></script> diff --git a/tests/wpt/tests/css/css-conditional/container-queries/whitespace-update-after-removal.html b/tests/wpt/tests/css/css-conditional/container-queries/whitespace-update-after-removal.html index a7df55efc6e..066f4254d24 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/whitespace-update-after-removal.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/whitespace-update-after-removal.html @@ -1,6 +1,6 @@ <!doctype html> <title>CSS Container Queries Test: whitespace changes in container which changes evaluation</title> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries"> <link rel="match" href="change-display-in-container-ref.html"> <style> #container { diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-001.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-001.html index 1e22dcc9924..397718c79c3 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-001.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-001.html @@ -3,7 +3,7 @@ <title>CSS Highlight API Test: Highlights using container sizes</title> <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> <link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="custom-highlight-container-metrics-001-ref.html"> <meta name="assert" value="lengths depending on containers take the correct values in a universal highlight with no container"> <head> @@ -28,4 +28,4 @@ r1.setEnd(h1, 1); CSS.highlights.set("highlight1", new Highlight(r1)); </script> -</body>
\ No newline at end of file +</body> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-002.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-002.html index 0a805cf7ea4..bc519922048 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-002.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-002.html @@ -3,7 +3,7 @@ <title>CSS Highlight API Test: Highlights using container sizes</title> <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> <link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="custom-highlight-container-metrics-002-ref.html"> <meta name="assert" value="lengths depending on containers take the correct values inside and outside a container"> <meta name="fuzzy" content="0-60;0-25"> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-003.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-003.html index 189db49bd3e..7a7cede8fca 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-003.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-003.html @@ -3,7 +3,7 @@ <title>CSS Highlight API Test: Highlights using container sizes</title> <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> <link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="custom-highlight-container-metrics-003-ref.html"> <meta name="assert" value="lengths depending on containers take the correct values and a highlight defined inside the container renders only within the container"> <head> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-004.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-004.html index 158f4ee12c9..e1112fe7bdc 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-004.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-004.html @@ -3,7 +3,7 @@ <title>CSS Highlight API Test: Highlights using container sizes</title> <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> <link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="custom-highlight-container-metrics-004-ref.html"> <meta name="assert" value="lengths depending on containers take the correct values inside and outside a container"> <meta name="fuzzy" content="0-60;0-25"> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-005.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-005.html index d7be78d1fdb..b6a5e4af4f8 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-005.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-005.html @@ -3,7 +3,7 @@ <title>CSS Highlight API Test: Highlights using container sizes</title> <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> <link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="custom-highlight-container-metrics-003-ref.html"> <meta name="assert" value="a highlight on a container itself renders at the correct size"> <head> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-006.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-006.html index 4bcae073b5d..14b24676016 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-006.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-006.html @@ -3,7 +3,7 @@ <title>CSS Highlight API Test: Highlights using container sizes</title> <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> <link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="custom-highlight-container-metrics-002-ref.html"> <meta name="assert" value="lengths depending on containers take the correct values inside and outside a container"> <meta name="fuzzy" content="0-60;0-25"> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-001.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-001.html index 2c28f7d132a..29efae8f9d9 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-001.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-001.html @@ -4,7 +4,7 @@ <title>CSS Highlight API Test: Highlights using container sizes update on container changes</title> <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> <link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="custom-highlight-dynamic-container-metrics-001-ref.html"> <meta name="assert" value="lengths depending on containers take the correct values in a universal highlight with no container when the container size changes"> <script src="/common/reftest-wait.js"></script> @@ -29,4 +29,4 @@ } iframe.onload = runtest; </script> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-002.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-002.html index 1a0cbe87a55..32f78c6d2a5 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-002.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-002.html @@ -4,7 +4,7 @@ <title>CSS Highlight API Test: Highlights using dynamic container sizes</title> <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> <link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="custom-highlight-container-metrics-002-ref.html"> <meta name="assert" value="lengths depending on containers take the correct values when the container size chnages"> <meta name="fuzzy" content="0-60;0-25"> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-003.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-003.html index 38246a15aff..463daf52969 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-003.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-003.html @@ -3,7 +3,7 @@ <title>CSS Highlight API Test: Highlights using dynamic container sizes</title> <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> <link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="custom-highlight-container-metrics-003-ref.html"> <meta name="assert" value="lengths depending on containers update correctly for a highlight defined only inside a container query"> <head> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-004.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-004.html index fbdbea32efc..54f7a7c178d 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-004.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-004.html @@ -3,7 +3,7 @@ <title>CSS Highlight API Test: Highlights using container sizes</title> <link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/"> <link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths"> <link rel="match" href="custom-highlight-container-metrics-003-ref.html"> <meta name="assert" value="a highlight on a container itself renders at the correct size when the container changes"> <head> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html index 22662336845..a8ec613fbca 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html @@ -5,9 +5,12 @@ body { text-decoration: 2px green underline; } - #highlight { + .foo { color:blue; text-decoration: 2px blue underline; } + .bar { + text-decoration: 2px currentColor underline; + } </style> -<body><span id="highlight">This part should be blue</span> and this part should be black +<body><span class="foo">This part should be blue</span> and <span class="bar">this part should be black</span> diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html index 8c5ccbf020c..69c0fb817b4 100644 --- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html +++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html @@ -5,7 +5,7 @@ <link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-text"> <link rel="match" href="custom-highlight-painting-019-ref.html"> <meta name="assert" value="When painting non-overlapping highlights the current color should be resolved against the next layer beneath the highlight at the current location within the span."> -<meta name="fuzzy" content="0-130;0-4"> +<meta name="fuzzy" content="0-250;0-6"> <style> body { text-decoration: 2px green underline; @@ -36,4 +36,4 @@ CSS.highlights.set("foo", h1); CSS.highlights.set("bar", h2); -</script>
\ No newline at end of file +</script> diff --git a/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-ruby-start-002.html b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-ruby-start-002.html new file mode 100644 index 00000000000..9fd8be7dfc5 --- /dev/null +++ b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-ruby-start-002.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-inline-3/#propdef-text-box-edge"> +<link rel="help" href="https://drafts.csswg.org/css-inline-3/#propdef-text-box-trim"> +<link rel="match" href="text-box-trim-ruby-start-001-ref.html"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> +<style> +.spacer { + height: 40px; + background: lightgray; +} +.target { + font-family: Ahem; + font-size: 40px; + line-height: 1; + text-box-trim: start; + text-box-edge: text; + text-emphasis: dot transparent; +} +rt { + /* The Ruby annotation positioning is UA-dependent. In order to ref-test the + trimming of parts above the ascent, hide the Ruby annotation. */ + color: transparent; +} +</style> +<div class="spacer"></div> +<div class="target">A <ruby>BASE<rt>RUBY</rt></ruby> B</div> +<div class="spacer"></div> diff --git a/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001-ref.html b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001-ref.html new file mode 100644 index 00000000000..96e0c5a3208 --- /dev/null +++ b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001-ref.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> +<style> +.spacer { + height: 40px; + background: lightgray; +} +.target { + font-family: Ahem; + font-size: 40px; + line-height: 1; + text-box-trim: start; + text-box-edge: text; +} +</style> +<div class="spacer"></div> +<div class="target">It is important!</div> diff --git a/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001.html b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001.html new file mode 100644 index 00000000000..2c38611ee32 --- /dev/null +++ b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-inline-3/#propdef-text-box-edge"> +<link rel="help" href="https://drafts.csswg.org/css-inline-3/#propdef-text-box-trim"> +<link rel="match" href="text-box-trim-text-emphasis-start-001-ref.html"> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css"/> +<style> +.spacer { + height: 40px; + background: lightgray; +} +.target { + font-family: Ahem; + font-size: 40px; + line-height: 1; + text-box-trim: start; + text-box-edge: text; + text-emphasis: dot transparent; +} +</style> +<div class="spacer"></div> +<div class="target">It is important!</div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001-ref.html new file mode 100644 index 00000000000..699f559c6aa --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001-ref.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: currentColor; + background-color: black; + } +</style> +<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001.html new file mode 100644 index 00000000000..92f9d1c96d8 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’."> +<link rel="match" href="highlight-painting-currentcolor-001-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: currentColor; + background-color: black; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectNodeContents(target); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a-ref.html new file mode 100644 index 00000000000..114487e478f --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a-ref.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: currentColor; + background-color: black; + } +</style> +<div class="highlight_reftest" id="target"><span class="b">te<span class="selection">st</span></span><span class="selection"> </span><span class="a"><span class="selection">te</span>st</span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a.html new file mode 100644 index 00000000000..125a76760a3 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’."> +<link rel="match" href="highlight-painting-currentcolor-001a-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: currentColor; + background-color: black; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectRangeWith(range => { + range.selectNodeContents(target); + range.setStart(target.firstChild, 2); + range.setEnd(target.firstChild, 7); + }); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002-ref.html new file mode 100644 index 00000000000..35891efedd4 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002-ref.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: currentColor; + background-color: currentColor; + } +</style> +<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002.html new file mode 100644 index 00000000000..dcbec06439c --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘background-color’ of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘background-color’."> +<link rel="match" href="highlight-painting-currentcolor-002-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: currentColor; + background-color: currentColor; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectNodeContents(target); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a-ref.html new file mode 100644 index 00000000000..c58b5f48e6f --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a-ref.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: currentColor; + background-color: currentColor; + } +</style> +<div class="highlight_reftest" id="target"><span class="b">te<span class="selection">st</span></span><span class="selection"> </span><span class="a"><span class="selection">te</span>st</span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a.html new file mode 100644 index 00000000000..be31b013c3c --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘background-color’ of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘background-color’."> +<link rel="match" href="highlight-painting-currentcolor-002a-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: currentColor; + background-color: currentColor; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectRangeWith(range => { + range.selectNodeContents(target); + range.setStart(target.firstChild, 2); + range.setEnd(target.firstChild, 7); + }); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b-ref.html new file mode 100644 index 00000000000..6330c7b9717 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b-ref.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: green; + background-color: currentColor; + } +</style> +<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b.html new file mode 100644 index 00000000000..014ddb085f5 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘background-color’ (but not ‘color’) of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection does not take the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘background-color’ and ‘color’ is not ‘currentColor’."> +<link rel="match" href="highlight-painting-currentcolor-002b-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: green; + background-color: currentColor; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectNodeContents(target); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003-ref.html new file mode 100644 index 00000000000..f2d14a4cd63 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003-ref.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: currentColor; + background-color: black; + text-decoration: /* currentColor */ underline; + } +</style> +<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003.html new file mode 100644 index 00000000000..bfab5694c86 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘text-decoration-color’ of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘text-decoration-color’."> +<link rel="match" href="highlight-painting-currentcolor-003-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: currentColor; + background-color: black; + text-decoration: /* currentColor */ underline; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectNodeContents(target); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a-ref.html new file mode 100644 index 00000000000..be16f519c0f --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a-ref.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: currentColor; + background-color: black; + text-decoration: /* currentColor */ underline; + } +</style> +<div class="highlight_reftest" id="target"><span class="b">te<span class="selection">st</span></span><span class="selection"> </span><span class="a"><span class="selection">te</span>st</span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a.html new file mode 100644 index 00000000000..dd471c96007 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘text-decoration-color’ of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘text-decoration-color’."> +<link rel="match" href="highlight-painting-currentcolor-003a-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: currentColor; + background-color: black; + text-decoration: /* currentColor */ underline; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectRangeWith(range => { + range.selectNodeContents(target); + range.setStart(target.firstChild, 2); + range.setEnd(target.firstChild, 7); + }); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b-ref.html new file mode 100644 index 00000000000..cfdb4659727 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b-ref.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: green; + background-color: black; + text-decoration: /* currentColor */ underline; + } +</style> +<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b.html new file mode 100644 index 00000000000..51e643ec68b --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘text-decoration-color’ (but not ‘color’) of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection does not take the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘text-decoration-color’ and ‘color’ is not ‘currentColor’."> +<link rel="match" href="highlight-painting-currentcolor-003b-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: green; + background-color: black; + text-decoration: /* currentColor */ underline; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectNodeContents(target); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004-ref.html new file mode 100644 index 00000000000..0963a7d831c --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004-ref.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: currentColor; + background-color: black; + text-shadow: 0 2em red, 0 4em currentColor; + } +</style> +<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004.html new file mode 100644 index 00000000000..d9cce5b0804 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘text-shadow’ of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘text-shadow’."> +<link rel="match" href="highlight-painting-currentcolor-004-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: currentColor; + background-color: black; + text-shadow: 0 2em red, 0 4em currentColor; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectNodeContents(target); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a-ref.html new file mode 100644 index 00000000000..a29a035dc64 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a-ref.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: currentColor; + background-color: black; + text-shadow: 0 2em red, 0 4em currentColor; + } +</style> +<div class="highlight_reftest" id="target"><span class="b">te<span class="selection">st</span></span><span class="selection"> </span><span class="a"><span class="selection">te</span>st</span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a.html new file mode 100644 index 00000000000..0ac021c156b --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘text-shadow’ of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘text-shadow’."> +<link rel="match" href="highlight-painting-currentcolor-004a-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: currentColor; + background-color: black; + text-shadow: 0 2em red, 0 4em currentColor; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectRangeWith(range => { + range.selectNodeContents(target); + range.setStart(target.firstChild, 2); + range.setEnd(target.firstChild, 7); + }); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b-ref.html new file mode 100644 index 00000000000..0e0dee02c4c --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b-ref.html @@ -0,0 +1,20 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="stylesheet" href="support/highlights.css"> +<style> + .a { + color: yellow; + background-color: blue; + } + .b { + color: lime; + background-color: blue; + } + .selection { + color: green; + background-color: black; + text-shadow: 0 2em red, 0 4em currentColor; + } +</style> +<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div> diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b.html new file mode 100644 index 00000000000..856c2232b71 --- /dev/null +++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b.html @@ -0,0 +1,31 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘text-shadow’ (but not ‘color’) of overlapping highlights</title> +<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting"> +<meta name="assert" content="This test checks that ::selection does not take the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘text-shadow’ and ‘color’ is not ‘currentColor’."> +<link rel="match" href="highlight-painting-currentcolor-004b-ref.html"> +<meta name="fuzzy" content="0-120;0-10"> +<link rel="stylesheet" href="support/highlights.css"> +<script src="support/selections.js"></script> +<style> + ::highlight(a) { + color: yellow; + background-color: blue; + } + ::highlight(b) { + color: lime; + background-color: blue; + } + ::selection { + color: green; + background-color: black; + text-shadow: 0 2em red, 0 4em currentColor; + } +</style> +<div class="highlight_reftest" id="target">test test</div> +<script> + CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4))); + CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9))); + selectNodeContents(target); +</script> diff --git a/tests/wpt/tests/css/css-pseudo/support/selections.js b/tests/wpt/tests/css/css-pseudo/support/selections.js index d0cd3409a73..4396bfa326b 100644 --- a/tests/wpt/tests/css/css-pseudo/support/selections.js +++ b/tests/wpt/tests/css/css-pseudo/support/selections.js @@ -70,3 +70,14 @@ function trySpellcheck(...nodes) { } }, 250); } + +function createRangeForTextOnly(element, start, end) { + const textNode = element.firstChild; + if (element.childNodes.length != 1 || textNode.nodeName != '#text') { + throw new Error('element must contain a single #text node only'); + } + const range = document.createRange(); + range.setStart(textNode, start); + range.setEnd(textNode, end); + return range; +} diff --git a/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-003.html b/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-003.html new file mode 100644 index 00000000000..d23b45c3bce --- /dev/null +++ b/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-003.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<meta name="viewport" content="width=device-width,initial-scale=0.5"> +<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#unreachable" /> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1905247"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> +.content { + overflow-x: scroll; + scroll-snap-type: x mandatory; + white-space: nowrap; + max-width: 800px; + border: 2px solid black; + /* padding-bottom so you can see the scrollbar: */ + padding-bottom: 10px; +} +.item { + width: 500px; + height: 200px; + border: 3px solid orange; + box-sizing: border-box; + scroll-snap-align: start; + display: inline-block; +} +</style> + +<div id="scroller" class="content"> + <!-- There's intentionally no whitespace between these tags, so that they're + laid out flush with each other with no space character between them. --> + <div class="item" style="width: 610px; background:teal"></div + ><div class="item" style="width: 200px; background:pink"></div> +</div> + +<script> +test(() => { + scroller.scrollLeft = 6; + assert_equals(scroller.scrollLeft, 10); +}, "Snaps to the positions defined by the element as much as possible"); +</script> diff --git a/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-004.html b/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-004.html new file mode 100644 index 00000000000..408f09777f4 --- /dev/null +++ b/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-004.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#unreachable" /> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1905247"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> +.content { + overflow-y: scroll; + scroll-snap-type: y mandatory; + white-space: nowrap; + max-height: 800px; + border: 2px solid black; + /* padding-right so you can see the scrollbar: */ + padding-right: 10px; + writing-mode: vertical-lr; +} +.item { + height: 500px; + width: 200px; + border: 3px solid orange; + box-sizing: border-box; + scroll-snap-align: start; + display: inline-block; + writing-mode: horitontal-tb; +} +</style> + +<div id="scroller" class="content"> + <!-- There's intentionally no whitespace between these tags, so that they're + laid out flush with each other with no space character between them. --> + <div class="item" style="height: 610px; background:teal"></div + ><div class="item" style="height: 200px; background:pink"></div> +</div> + +<script> +test(() => { + scroller.scrollTop = 6; + assert_equals(scroller.scrollTop, 10); +}, "Snaps to the positions defined by the element as much as possible"); +</script> diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002-ref.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002-ref.html new file mode 100644 index 00000000000..2c7e7abd0f6 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002-ref.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<title>CSS aspect-ratio reference: Test that fieldset's block size honors automatic content-based minimum, but capped by its maximum block-size</title> +<style> + fieldset { + inline-size: 200px; + block-size: 20px; + background: yellow; + } + + legend { + background: black; + color: white; + padding: 3px 6px; + } +</style> + +<form> + <fieldset> + <legend>Choose one item:</legend> + + <input type="radio" id="item1" name="item"> + <label for="item1">item 1</label><br/> + + <input type="radio" id="item2" name="item"> + <label for="item2">item 2</label><br/> + + <input type="radio" id="item3" name="item"> + <label for="item3">item 3</label> + </fieldset> +</form> diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002.html new file mode 100644 index 00000000000..5483330fe70 --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<title>CSS aspect-ratio: Test that fieldset's block size honors automatic content-based minimum, but capped by its maximum block-size</title> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="mozilla" href="https://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum"> +<link rel="match" href="fieldset-element-002-ref.html"> + +<style> + fieldset { + inline-size: 200px; + aspect-ratio: 20 / 1; + max-block-size: 20px; + background: yellow; + } + + legend { + background: black; + color: white; + padding: 3px 6px; + } +</style> + +<form> + <fieldset> + <legend>Choose one item:</legend> + + <input type="radio" id="item1" name="item"> + <label for="item1">item 1</label><br/> + + <input type="radio" id="item2" name="item"> + <label for="item2">item 2</label><br/> + + <input type="radio" id="item3" name="item"> + <label for="item3">item 3</label> + </fieldset> +</form> diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-043.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-043.html new file mode 100644 index 00000000000..a1cd972d4da --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-043.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<title>CSS aspect-ratio: Test the definite max-block-size wins the automatic content-based minimum block-size in flex container's cross axis (block axis)</title> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="https://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum"> +<link rel="match" href="../../reference/ref-filled-green-100px-square.xht"> + +<style> +#container { + display: flex; + inline-size: 100px; + aspect-ratio: 2 / 1; + background: green; + max-block-size: 100px; +} +#item { + flex: 1; + block-size: 200px; +} +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div id="container"> + <div id="item"></div> +</div> diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-044.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-044.html new file mode 100644 index 00000000000..76f6ac115bd --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-044.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<title>CSS aspect-ratio: Test the definite max-block-size wins the automatic content-based minimum block-size in flex container's main axis (block axis)</title> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="https://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum"> +<link rel="match" href="../../reference/ref-filled-green-100px-square.xht"> + +<style> +#container { + display: flex; + flex-direction: column; + inline-size: 100px; + aspect-ratio: 2 / 1; + background: green; + max-block-size: 100px; +} +#item { + flex: 0 0 200px; +} +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div id="container"> + <div id="item"></div> +</div> diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-042.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-042.html new file mode 100644 index 00000000000..7f836164ada --- /dev/null +++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-042.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<title>CSS aspect-ratio: Test that grid container's block size honors automatic content-based minimum, but capped by its maximum block-size</title> +<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com"> +<link rel="author" title="Mozilla" href="https://www.mozilla.org/"> +<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum"> +<link rel="match" href="../../reference/ref-filled-green-100px-square.xht"> + +<style> +#container { + display: grid; + inline-size: 100px; + aspect-ratio: 2 / 1; + background: green; + max-block-size: 100px; +} +#item { + inline-size: 100%; + block-size: 200px; +} +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div id="container"> + <div id="item"></div> +</div> diff --git a/tests/wpt/tests/css/css-text-decor/crashtests/text-decoration-first-line-multi-crash.html b/tests/wpt/tests/css/css-text-decor/crashtests/text-decoration-first-line-multi-crash.html new file mode 100644 index 00000000000..f6176334ad6 --- /dev/null +++ b/tests/wpt/tests/css/css-text-decor/crashtests/text-decoration-first-line-multi-crash.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<link rel="help" href="https://crbug.com/345562934"> +<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#text-decoration-line-property"> +<style> +.c7 { + text-decoration: underline; + appearance: button; +} + +.c7::first-line { + text-decoration: overline; +} + +.c15 { + text-decoration: line-through; +} +</style> +<dfn class="c7"><strong class="c15">test</strong></dfn> diff --git a/tests/wpt/tests/css/css-transforms/animation/transform-interpolation-007.html b/tests/wpt/tests/css/css-transforms/animation/transform-interpolation-007.html new file mode 100644 index 00000000000..61ee7618570 --- /dev/null +++ b/tests/wpt/tests/css/css-transforms/animation/transform-interpolation-007.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>transform interpolation</title> +<link rel="help" href="https://drafts.csswg.org/css-transforms-1/#matrix-interpolation"> +<meta name="assert" content="transform does not interpolate between non-invertible and invertible matrices"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> + <template id="target-template"> + <div></div> + </template> +</body> + +<script> +test_no_interpolation({ + property: 'transform', + from: 'matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)', + to: 'matrix(3, 0, 0, 3, 0, 0)', +}); +</script> diff --git a/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html new file mode 100644 index 00000000000..8267b01d01f --- /dev/null +++ b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html @@ -0,0 +1,5 @@ +<!DOCTYPE html> +<html> +<body> +</body> +</html>
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html new file mode 100644 index 00000000000..fae924d9849 --- /dev/null +++ b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html @@ -0,0 +1,34 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<head> +<title>Animating the "transform" property with a non-invertible matrix should not yield an animation</title> +<link rel="help" href="https://drafts.csswg.org/css-transforms/"> +<link rel="match" href="transform-non-invertible-discrete-interpolation-ref.html"> +<script src="../../../common/reftest-wait.js"></script> +<style> + +div { + width: 100px; + height: 100px; + background-color: black; + animation: anim 100s linear forwards; +} + +@keyframes anim { + from { transform: matrix3d(2,0,0,0, 0,2,0,0, 0,0,0,0, 0,0,0,1) } +} + +</style> +</head> +<body> +<div></div> +<script> +(async function() { + await Promise.all(document.getAnimations().map(animation => animation.ready)); + await new Promise(requestAnimationFrame); + await new Promise(requestAnimationFrame); + takeScreenshot(); +})(); +</script> +</body> +</html>
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-no-transition.html b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-no-transition.html new file mode 100644 index 00000000000..bbb5181a1bd --- /dev/null +++ b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-no-transition.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>transform interpolation</title> +<link rel="help" href="https://drafts.csswg.org/css-transforms-1/#matrix-interpolation"> +<meta name="assert" content="transform does not transition between non-invertible and invertible matrices"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/css-transitions/support/helper.js"></script> + +<style> + +#target { + transition: transform 1s; +} + +</style> +<div id="target"></div> +<script> +promise_test(async t => { + await waitForAnimationFrames(1); + const target = document.getElementById("target"); + getComputedStyle(target).transform; // ensure there's a before-change style + target.style.transform = "matrix3d(2,0,0,0, 0,2,0,0, 0,0,0,0, 0,0,0,1)"; + assert_equals(document.getAnimations().length, 0, "No transitions"); +}, "Setting 'transform' to a non-invertible matrix does not yield a CSS Transition"); +</script> diff --git a/tests/wpt/tests/css/css-transitions/CSSTransition-not-canceling.tentative.html b/tests/wpt/tests/css/css-transitions/CSSTransition-not-canceling.tentative.html new file mode 100644 index 00000000000..4198e665a30 --- /dev/null +++ b/tests/wpt/tests/css/css-transitions/CSSTransition-not-canceling.tentative.html @@ -0,0 +1,40 @@ +<!doctype html> +<meta charset=utf-8> +<title>Not canceling a CSS transition</title> +<link rel="help" href="https://drafts.csswg.org/css-transitions/#starting"> +<!-- TODO: Add a more specific link for this once it is specified. --> +<link rel="help" href="https://drafts.csswg.org/css-transitions-2/#csstransition"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="support/helper.js"></script> +<div id="log"></div> +<script> +'use strict'; + +const runDisplayNoneTransitionTest = displayTransitionStyle => { + promise_test(async t => { + const div = addDiv(t, { style: 'margin-left: 0px' }); + getComputedStyle(div).marginLeft; + + div.style.transition = 'margin-left 100s'; + div.style.marginLeft = '1000px'; + + const transition = div.getAnimations()[0]; + await transition.ready; + await waitForFrame(); + + assert_not_equals(getComputedStyle(div).marginLeft, '1000px', + 'transform style is animated before setting "display: none"'); + + div.style.transition = `${div.style.transition}, ${displayTransitionStyle}`; + div.style.display = 'none'; + + assert_not_equals(getComputedStyle(div).marginLeft, '1000px', + 'transform style is animated after setting "display: none"'); + }, `Setting "display: none" with "display" set to transition using "${displayTransitionStyle}" does not cancel running transitions`); +}; + +runDisplayNoneTransitionTest('display 100s allow-discrete'); +runDisplayNoneTransitionTest('display 100s, all allow-discrete 100s'); + +</script> diff --git a/tests/wpt/tests/css/css-transitions/starting-style-size-container.html b/tests/wpt/tests/css/css-transitions/starting-style-size-container.html index 1ad609dd909..946ab92e147 100644 --- a/tests/wpt/tests/css/css-transitions/starting-style-size-container.html +++ b/tests/wpt/tests/css/css-transitions/starting-style-size-container.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <title>CSS Transitions Test: @starting-style inside size @container</title> <link rel="help" href="https://drafts.csswg.org/css-transitions-2/#defining-before-change-style-the-starting-style-rule"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/css-transitions/support/helper.js"></script> diff --git a/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-001-ref.html b/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-001-ref.html index c9d6eb720f1..91a9600e180 100644 --- a/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-001-ref.html +++ b/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-001-ref.html @@ -4,38 +4,60 @@ <link rel="help" href="https://drafts.csswg.org/css-ui-4/#widget-accent"> <style> -div { +.container { border: solid orange; padding: 1ch; margin: 1ch; float: left; } -#t1 input { color-scheme: light;} -#t1 input { accent-color: white; } - -#t2 input { color-scheme: light;} -#t2 input { accent-color: #7f7fff; } - -#t3 { background: orange;} -#t3 input { color-scheme: light;} -#t3 input { accent-color: #7f7fff; } +input, #extract-canvas { color-scheme: light; } +#extract-canvas { background-color: canvas; } +#t3 { background: orange; } </style> -<p>Test passes if in each box bellow, you see a pair of identically colored check-boxes. +<p>Test passes if in each box below, you see a pair of identically colored check-boxes. -<div id=t1> +<div id="extract-canvas"></div> +<div id=t1 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> -<div id=t2> +<div id=t2 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> -<div id=t3> +<div id=t3 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> + +<script> + + const testColors = [[255,0,0,0], [0,0,255,0.5], [0,0,255,0.5]]; + + function getColorComponents(color) { + return color.substring(color.indexOf("(") + 1).replace(/\s/g,"").split(",").map(parseFloat); + } + + function constructCSSColor(components) { + return (components.length == 4 ? "rgba(" : "rgb(") + components.join(", ") + ")"; + } + + function computeExpectedColor(canvasColor, colorWithAlpha) { + const expected = []; + for (let i = 0; i < 3; i++) + expected.push(canvasColor[i] - canvasColor[i] * colorWithAlpha[3] + colorWithAlpha[i] * colorWithAlpha[3]); + return expected; + } + + const canvasColorComponents = getColorComponents(getComputedStyle(document.getElementById("extract-canvas")).backgroundColor); + for (const [i, container] of document.querySelectorAll(".container").entries()) { + container.getElementsByClassName("test")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i])); + container.getElementsByClassName("ref")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i])); + } + +</script>
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-002-ref.html b/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-002-ref.html index 819a5852460..db70dede945 100644 --- a/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-002-ref.html +++ b/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-002-ref.html @@ -4,38 +4,60 @@ <link rel="help" href="https://drafts.csswg.org/css-ui-4/#widget-accent"> <style> -div { +.container { border: solid orange; padding: 1ch; margin: 1ch; float: left; } -#t1 input { color-scheme: dark;} -#t1 input { accent-color: black; } - -#t2 input { color-scheme: dark;} -#t2 input { accent-color: #00007f; } - -#t3 { background: orange;} -#t3 input { color-scheme: dark;} -#t3 input { accent-color: #00007f; } +input, #extract-canvas { color-scheme: dark; } +#extract-canvas { background-color: canvas; } +#t3 { background: orange; } </style> -<p>Test passes if in each box bellow, you see a pair of identically colored check-boxes. +<p>Test passes if in each box below, you see a pair of identically colored check-boxes. -<div id=t1> +<div id="extract-canvas"></div> +<div id=t1 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> -<div id=t2> +<div id=t2 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> -<div id=t3> +<div id=t3 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> + +<script> + + const testColors = [[255,0,0,0], [0,0,255,0.5], [0,0,255,0.5]]; + + function getColorComponents(color) { + return color.substring(color.indexOf("(") + 1).replace(/\s/g,"").split(",").map(parseFloat); + } + + function constructCSSColor(components) { + return (components.length == 4 ? "rgba(" : "rgb(") + components.join(", ") + ")"; + } + + function computeExpectedColor(canvasColor, colorWithAlpha) { + const expected = []; + for (let i = 0; i < 3; i++) + expected.push(canvasColor[i] - canvasColor[i] * colorWithAlpha[3] + colorWithAlpha[i] * colorWithAlpha[3]); + return expected; + } + + const canvasColorComponents = getColorComponents(getComputedStyle(document.getElementById("extract-canvas")).backgroundColor); + for (const [i, container] of document.querySelectorAll(".container").entries()) { + container.getElementsByClassName("test")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i])); + container.getElementsByClassName("ref")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i])); + } + +</script>
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-ui/transparent-accent-color-001.html b/tests/wpt/tests/css/css-ui/transparent-accent-color-001.html index 219e24c1689..5a5ad4f0a41 100644 --- a/tests/wpt/tests/css/css-ui/transparent-accent-color-001.html +++ b/tests/wpt/tests/css/css-ui/transparent-accent-color-001.html @@ -3,44 +3,64 @@ <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net"> <link rel="help" href="https://drafts.csswg.org/css-ui-4/#widget-accent"> <link rel="match" href="reference/transparent-accent-color-001-ref.html"> -<meta name="assert" content="If the color supplied is partially or fully transparent, it is precomposed over white when in light mode."> +<meta name="assert" content="If the color supplied is partially or fully transparent, it is precomposed over the color of the light mode canvas."> +<meta name="fuzzy" content="maxDifference=0-1; totalPixels=0-450"> <style> -div { +.container { border: solid orange; padding: 1ch; margin: 1ch; float: left; } -#t1 input { color-scheme: light;} -#t1 .test { accent-color: #ff000000;} -#t1 .ref { accent-color: white; } - -#t2 input { color-scheme: light;} -#t2 .test { accent-color: #0000ff80;} -#t2 .ref { accent-color: #7f7fff; } - -#t3 { background: orange;} -#t3 input { color-scheme: light;} -#t3 .test { accent-color: #0000ff80;} -#t3 .ref { accent-color: #7f7fff; } +input, #extract-canvas { color-scheme: light; } +#extract-canvas { background-color: canvas; } +#t3 { background: orange; } </style> -<p>Test passes if in each box bellow, you see a pair of identically colored check-boxes. +<p>Test passes if in each box below, you see a pair of identically colored check-boxes. -<div id=t1> +<div id="extract-canvas"></div> +<div id=t1 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> -<div id=t2> +<div id=t2 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> -<div id=t3> +<div id=t3 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> + +<script> + + const testColors = [[255,0,0,0], [0,0,255,0.5], [0,0,255,0.5]]; + + function getColorComponents(color) { + return color.substring(color.indexOf("(") + 1).replace(/\s/g,"").split(",").map(parseFloat); + } + + function constructCSSColor(components) { + return (components.length == 4 ? "rgba(" : "rgb(") + components.join(", ") + ")"; + } + + function computeExpectedColor(canvasColor, colorWithAlpha) { + const expected = []; + for (let i = 0; i < 3; i++) + expected.push(canvasColor[i] - canvasColor[i] * colorWithAlpha[3] + colorWithAlpha[i] * colorWithAlpha[3]); + return expected; + } + + const canvasColorComponents = getColorComponents(getComputedStyle(document.getElementById("extract-canvas")).backgroundColor); + for (const [i, container] of document.querySelectorAll(".container").entries()) { + container.getElementsByClassName("test")[0].style.accentColor = constructCSSColor(testColors[i]); + container.getElementsByClassName("ref")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i])); + } + +</script>
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-ui/transparent-accent-color-002.html b/tests/wpt/tests/css/css-ui/transparent-accent-color-002.html index 46b9835d0c1..9bc5022c562 100644 --- a/tests/wpt/tests/css/css-ui/transparent-accent-color-002.html +++ b/tests/wpt/tests/css/css-ui/transparent-accent-color-002.html @@ -3,44 +3,64 @@ <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net"> <link rel="help" href="https://drafts.csswg.org/css-ui-4/#widget-accent"> <link rel="match" href="reference/transparent-accent-color-002-ref.html"> -<meta name="assert" content="If the color supplied is partially or fully transparent, it is precomposed over black when in dark mode."> +<meta name="assert" content="If the color supplied is partially or fully transparent, it is precomposed over the color of the dark mode canvas."> +<meta name="fuzzy" content="maxDifference=0-1; totalPixels=0-450"> <style> -div { +.container { border: solid orange; padding: 1ch; margin: 1ch; float: left; } -#t1 input { color-scheme: dark;} -#t1 .test { accent-color: #ff000000;} -#t1 .ref { accent-color: black; } - -#t2 input { color-scheme: dark;} -#t2 .test { accent-color: #0000ff80;} -#t2 .ref { accent-color: #00007f; } - -#t3 { background: orange;} -#t3 input { color-scheme: dark;} -#t3 .test { accent-color: #0000ff80;} -#t3 .ref { accent-color: #00007f; } +input, #extract-canvas { color-scheme: dark; } +#extract-canvas { background-color: canvas; } +#t3 { background: orange; } </style> -<p>Test passes if in each box bellow, you see a pair of identically colored check-boxes. +<p>Test passes if in each box below, you see a pair of identically colored check-boxes. -<div id=t1> +<div id="extract-canvas"></div> +<div id=t1 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> -<div id=t2> +<div id=t2 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> -<div id=t3> +<div id=t3 class="container"> <input class=test type=checkbox checked> <input class=ref type=checkbox checked> </div> + +<script> + + const testColors = [[255,0,0,0], [0,0,255,0.5], [0,0,255,0.5]]; + + function getColorComponents(color) { + return color.substring(color.indexOf("(") + 1).replace(/\s/g,"").split(",").map(parseFloat); + } + + function constructCSSColor(components) { + return (components.length == 4 ? "rgba(" : "rgb(") + components.join(", ") + ")"; + } + + function computeExpectedColor(canvasColor, colorWithAlpha) { + const expected = []; + for (let i = 0; i < 3; i++) + expected.push(canvasColor[i] - canvasColor[i] * colorWithAlpha[3] + colorWithAlpha[i] * colorWithAlpha[3]); + return expected; + } + + const canvasColorComponents = getColorComponents(getComputedStyle(document.getElementById("extract-canvas")).backgroundColor); + for (const [i, container] of document.querySelectorAll(".container").entries()) { + container.getElementsByClassName("test")[0].style.accentColor = constructCSSColor(testColors[i]); + container.getElementsByClassName("ref")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i])); + } + +</script>
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-values/attr-all-types.html b/tests/wpt/tests/css/css-values/attr-all-types.html new file mode 100644 index 00000000000..129e1fd6c73 --- /dev/null +++ b/tests/wpt/tests/css/css-values/attr-all-types.html @@ -0,0 +1,153 @@ +<!DOCTYPE html> +<title>CSS Values and Units Test: attr</title> +<meta name="assert" content="test attr values"> +<link rel="help" href="https://drafts.csswg.org/css-values-5/#attr-notations"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<html> + <body> + <div id="attr"></div> + <div id="expected"></div> + </body> +</html> + +<script> + const dimensionTypeToUnits = { + "length": ["em", "ex", "cap", "ch", "ic", "rem", "lh", "rlh", "vw", "vh ", "vi", "vb", "vmin", "vmax"], + "angle": ["deg", "grad", "rad", "turn"], + "time": ["ms", "ms"], + "frequency": ["Hz", "kHz"], + "flex": ["fr"] + }; + const dimensionTypeToProperty = { + "length": ["width"], + "angle": ["font-style"], + "time": ["transition-duration"], + "flex": ["grid-template-columns"] + } + + function test_valid_attr(property, attrString, attrValue, expectedValue) { + var elem = document.getElementById("attr"); + elem.setAttribute("data-foo", attrValue); + elem.style[property]= attrString; + + var expectedElem = document.getElementById("expected"); + expectedElem.style[property] = expectedValue; + + test(() => { + assert_equals(window.getComputedStyle(elem).getPropertyValue(property), + window.getComputedStyle(expectedElem).getPropertyValue(property), + "Value \'" + attrString + "\', where \'data-foo=" + attrValue + + "\' should be valid for the property \'" + property + "\'."); + }); + + elem.style[property] = null; + expectedElem.style[property] = null; + } + + function test_invalid_attr(property, attrString, attrValue) { + var elem = document.getElementById("attr"); + var expectedValue = window.getComputedStyle(elem).getPropertyValue(property); + + elem.setAttribute("data-foo", attrValue); + elem.style[property]= attrString; + + test(() => { + assert_equals(window.getComputedStyle(elem).getPropertyValue(property), expectedValue, + "Setting property \'" + property + "\' to the value \'" + attrString + + "\', where \'data-foo=" + attrValue + "\' should not change it's value."); + }); + elem.style[property] = null; + } + + function test_dimension_types_and_units() { + for(const [type, units] of Object.entries(dimensionTypeToUnits)) { + const property = dimensionTypeToProperty[type]; + const val = "3"; + units.forEach(unit => { + const expectedValue = val + unit; + + const dimensionTypeAttrString = 'attr(data-foo ' + type + ')'; + test_valid_attr(property, dimensionTypeAttrString, expectedValue, expectedValue); + + const dimensionUnitAttrString = 'attr(data-foo ' + unit + ')'; + test_valid_attr(property, dimensionUnitAttrString, val, expectedValue); + }); + } + } + + test_valid_attr('content', 'attr(data-foo string)', 'abc', '"abc"'); + test_valid_attr('content', 'attr(data-foo string)', 'attr(data-foo)', '"attr(data-foo)"'); + + test_valid_attr('background-color', 'attr(data-foo color)', 'red', 'red'); + test_valid_attr('background-color', 'attr(data-foo color)', '#ff0099aa', '#ff0099aa'); + test_valid_attr('background-color', 'attr(data-foo color, red)', '10', 'red'); + test_valid_attr('background-color', 'attr(data-foo color, green)', '1000px', 'green'); + test_valid_attr('background-color', 'attr(data-foo color, green)', 'rgb(255, 0, 0)', 'green'); + + test_valid_attr('font-weight', 'attr(data-foo number)', '10', '10'); + test_valid_attr('font-weight', 'attr(data-foo number, 30)', '10px', '30'); + test_valid_attr('font-weight', 'attr(data-foo number, calc(10 + 20))', '10px', '30'); + + test_valid_attr('font-size', 'attr(data-foo percentage)', '10%', '10%'); + test_valid_attr('font-size', 'attr(data-foo percentage, 10px)', 'abc', '10px'); + test_valid_attr('--x', 'attr(data-foo percentage, abc)', '10', 'abc'); + + test_valid_attr('width', 'attr(data-foo length)', '10px', '10px'); + test_valid_attr('width', 'attr(data-foo length, red)', '10px', '10px'); + test_valid_attr('width', 'attr(data-foo length, 42px)', 'calc(1px + 3px)', '42px'); + + test_valid_attr('font-style', 'attr(data-foo angle)', '10deg', '10deg'); + test_valid_attr('font-style', 'attr(data-foo angle, 10deg)', '30', '10deg'); + test_valid_attr('font-style', 'attr(data-foo angle, italic)', '30', 'italic'); + + test_valid_attr('transition-duration', 'attr(data-foo time)', '10ms', '10ms'); + test_valid_attr('transition-duration', 'attr(data-foo time, 30s)', '10m', '30s'); + test_valid_attr('transition-duration', 'attr(data-foo time, calc(10s + 20s))', '10m', '30s'); + + test_valid_attr('grid-template-columns', '30px attr(data-foo flex)', '1fr', '30px 1fr'); + test_valid_attr('grid-template-columns', 'attr(data-foo flex, 3fr)', '1fr 1fr', '3fr'); + test_valid_attr('grid-template-columns', 'attr(data-foo flex, calc(1px + 2px))', '10px', '3px'); + + test_valid_attr('height', 'attr(data-foo px)', '10', '10px'); + test_valid_attr('width', 'calc(attr(data-foo px) + 1px)', '10', '11px'); + test_valid_attr('--x', 'attr(data-foo px) 11px', '10', '10px 11px'); + + test_dimension_types_and_units(); + + test_invalid_attr('background-color', 'attr(data-foo color)', 'rgb(0 255 0)'); + test_invalid_attr('background-color', 'attr(data-foo color)', 'color-mix(in lch, red, pink)'); + test_invalid_attr('background-color', 'attr(data-foo color)', 'light-dark(#333b3c, #efefec)'); + test_invalid_attr('background-color', 'attr(data-foo red)', 'abc'); + test_invalid_attr('background-color', 'attr(data-foo, red)', 'abc'); + + test_invalid_attr('font-size', 'attr(data-foo number)', '10'); + test_invalid_attr('font-weight', 'attr(data-foo number,)', '10'); + test_invalid_attr('font-weight', 'attr(data-foo number)', 'calc(1 + 3)'); + + test_invalid_attr('font-size', 'attr(data-foo percentage)', 'abc'); + test_invalid_attr('font-size', 'attr(data-foo percentage)', '10% a'); + test_invalid_attr('font-size', 'attr(data-foo percentage, 10rad)', 'abc'); + + test_invalid_attr('width', 'attr(data-foo length)', '10'); + test_invalid_attr('width', 'attr(data-foo length, 30)', 'calc(10 + 20)'); + test_invalid_attr('width', 'attr(data-foo length, calc(10 + 20))', 'abc'); + + test_invalid_attr('font-style', 'attr(data-foo angle)', '10%'); + test_invalid_attr('font-style', 'attr(data-foo angle)', 'calc(10px + 20px)'); + test_invalid_attr('font-style', 'attr(data-foo angle, calc(10 + 20))', 'calc(10px + 20px)'); + + test_invalid_attr('transition-duration', 'attr(data-foo time)', '10'); + test_invalid_attr('transition-duration', 'attr(data-foo time)', '10 ms'); + test_invalid_attr('transition-duration', 'attr(data-foo time)', 'calc(1ms + 2ms)s'); + + test_invalid_attr('grid-template-columns', 'attr(data-foo flex)', '10px'); + test_invalid_attr('grid-template-columns', 'attr(data-foo flex)', '"30fr"'); + test_invalid_attr('grid-template-columns', 'attr(data-foo flex, calc(1deg + 2deg))', '10px'); + + test_invalid_attr('width', 'attr(data-foo px)', '10px'); + test_invalid_attr('height', 'attr(data-foo fr)', '10'); + test_invalid_attr('transition-duration', 'attr(data-foo ms)', '10px'); + test_invalid_attr('transition-duration', 'attr(data-foo ms)', '10px foo'); +</script>
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-values/attr-invalidation.html b/tests/wpt/tests/css/css-values/attr-invalidation.html new file mode 100644 index 00000000000..a48556e5ff7 --- /dev/null +++ b/tests/wpt/tests/css/css-values/attr-invalidation.html @@ -0,0 +1,27 @@ +<!DOCTYPE html> +<title>CSS Values and Units Test: attr() invalidation</title> +<meta name="assert" content="Test attr() invalidation"> +<link rel="help" href="https://drafts.csswg.org/css-values/#attr-notation"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + div { + width: attr(data-foo length); + } +</style> + +<html> + <body> + <div id="div" data-foo="10px"></div> + </body> +</html> + +<script> + setup({ single_test: true }); + let elem = document.getElementById("div"); + let old_width = window.getComputedStyle(elem).getPropertyValue("width"); + elem.setAttribute("data-foo", "30px"); + let new_width = window.getComputedStyle(elem).getPropertyValue("width"); + assert_not_equals(new_width, old_width); + done(); +</script>
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-view-transitions/element-escapes-clip-with-abspos-child-ref.html b/tests/wpt/tests/css/css-view-transitions/content-escapes-clip-with-abspos-child-ref.html index 1e22d6f66d7..1e22d6f66d7 100644 --- a/tests/wpt/tests/css/css-view-transitions/element-escapes-clip-with-abspos-child-ref.html +++ b/tests/wpt/tests/css/css-view-transitions/content-escapes-clip-with-abspos-child-ref.html diff --git a/tests/wpt/tests/css/css-view-transitions/new-content-escapes-clip-with-abspos-child.html b/tests/wpt/tests/css/css-view-transitions/new-content-escapes-clip-with-abspos-child.html new file mode 100644 index 00000000000..4c90a78b505 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/new-content-escapes-clip-with-abspos-child.html @@ -0,0 +1,63 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<title>View transitions: view-transition-name element, when captured escapes its clips even if it has an abspos child</title> +<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> +<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m"> +<link rel="match" href="content-escapes-clip-with-abspos-child-ref.html"> +<script src="/common/reftest-wait.js"></script> + +<style> +#clipper { + border-radius: 20px; + overflow: hidden; + width: max-content; +} +#target { + width: 100px; + height: 100px; + background: lightblue; + view-transition-name: target; +} +#abspos { + position: absolute; + left: 0; + width: 50px; + height: 50px; + background: pink; +} + +:root { view-transition-name: none } + +::view-transition { + background: rebeccapurple; +} + +::view-transition-old(*) { + animation: unset; + opacity: 0; +} +::view-transition-new(*) { + animation: unset; + opacity: 1; +} +::view-transition-group(*) { + animation-play-state: paused; +} +</style> + + +<div id=clipper> + <div id=target> + <div id=abspos></div> + </div> +</div> + +<script> +function runTest() { + document.startViewTransition().ready.then(takeScreenshot); +} + +requestAnimationFrame(() => requestAnimationFrame(() => { + requestAnimationFrame(runTest); +})); +</script> diff --git a/tests/wpt/tests/css/css-view-transitions/element-escapes-clip-with-abspos-child.html b/tests/wpt/tests/css/css-view-transitions/old-content-escapes-clip-with-abspos-child.html index b16b02bd632..652bc9f952a 100644 --- a/tests/wpt/tests/css/css-view-transitions/element-escapes-clip-with-abspos-child.html +++ b/tests/wpt/tests/css/css-view-transitions/old-content-escapes-clip-with-abspos-child.html @@ -3,7 +3,7 @@ <title>View transitions: view-transition-name element, when captured escapes its clips even if it has an abspos child</title> <link rel="help" href="https://www.w3.org/TR/css-transitions-1/"> <link rel="author" href="mailto:vmpstr@chromium.org"> -<link rel="match" href="element-escapes-clip-with-abspos-child-ref.html"> +<link rel="match" href="content-escapes-clip-with-abspos-child-ref.html"> <script src="/common/reftest-wait.js"></script> <style> diff --git a/tests/wpt/tests/css/css-view-transitions/root-scrollbar-with-fixed-background-ref.html b/tests/wpt/tests/css/css-view-transitions/root-scrollbar-with-fixed-background-ref.html index ae1ff38f2f6..bc2c5862bf5 100644 --- a/tests/wpt/tests/css/css-view-transitions/root-scrollbar-with-fixed-background-ref.html +++ b/tests/wpt/tests/css/css-view-transitions/root-scrollbar-with-fixed-background-ref.html @@ -1,4 +1,5 @@ -<!DOCTYPE html > +<!DOCTYPE html> +<html class="reftest-wait"> <title>View transitions: capture root element with scrollbar (ref)</title> <link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> <link rel="author" href="mailto:khushalsagar@chromium.org"> @@ -20,7 +21,7 @@ body { </style> <div id=container> - <div id=first></div> + <div id=first></div> </div> <script> diff --git a/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-nested.html b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-nested.html new file mode 100644 index 00000000000..e34903a4a22 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-nested.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<title>View transitions: nested shadow parts should work with view-transition-name</title> +<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> +<link rel="match" href="names-are-tree-scoped-ref.html"> +<script src="/common/reftest-wait.js"></script> +<style> +div { + width: 100px; + height: 100px; + background: red; +} + +::part(party) { + view-transition-name: party; +} + +:root { view-transition-name: none; } +html::view-transition-group(*) { animation-play-state: paused; } +html::view-transition-old(*) { animation: unset; opacity: 0 } +html::view-transition-new(*) { animation: unset; opacity: 0 } +html::view-transition-group(party) { + position: absolute; + width: 100px; + height: 100px; + background: green; +} +</style> + +<custom-component> + <template shadowrootmode="open"> + <nested-component exportparts="party"> + <style> + div { + width: 100px; + height: 100px; + } + </style> + <div part="party"></div> + </nested-component> + </template> +</custom-component> + +<script> +failIfNot(document.startViewTransition, "Missing document.startViewTransition"); + +function runTest() { + document.startViewTransition().ready.then(takeScreenshot); +} +onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); +</script> + +</body>
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-overridden-by-important.html b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-overridden-by-important.html new file mode 100644 index 00000000000..139fbd01b76 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-overridden-by-important.html @@ -0,0 +1,59 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<title>View transitions: shadow parts should give precedence to !important</title> +<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> +<link rel="match" href="names-are-tree-scoped-ref.html"> +<script src="/common/reftest-wait.js"></script> +<style> +div { + width: 100px; + height: 100px; + background: green; + position: absolute; +} + +::part(party) { + view-transition-name: animate-me; +} + +html { + view-transition-name: none; +} + +html::view-transition-group(*) { animation-play-state: paused; } +html::view-transition-old(*) { animation: unset; opacity: 0 } +html::view-transition-new(*) { animation: unset; opacity: 0 } +html::view-transition-group(animate-me) { + position: absolute; + width: 100px; + height: 100px; + background: red; +} +</style> + +<div></div> + +<custom-component> + <template shadowrootmode="open"> + <style> + div { + width: 100px; + height: 100px; + position: absolute; + view-transition-name: please-dont-animate-me !important; + } + </style> + <div part="party"></div> + </template> +</custom-component> + +<script> +failIfNot(document.startViewTransition, "Missing document.startViewTransition"); + +function runTest() { + document.startViewTransition().ready.then(takeScreenshot); +} +onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); +</script> + +</body> diff --git a/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name.html b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name.html new file mode 100644 index 00000000000..192fbca20c9 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name.html @@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<title>View transitions: shadow parts </title> +<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> +<link rel="match" href="names-are-tree-scoped-ref.html"> +<script src="/common/reftest-wait.js"></script> +<style> +div { + width: 100px; + height: 100px; + background: red; +} + +::part(party) { + view-transition-name: party; +} + +:root { view-transition-name: none; } +html::view-transition-group(*) { animation-play-state: paused; } +html::view-transition-old(*) { animation: unset; opacity: 0 } +html::view-transition-new(*) { animation: unset; opacity: 0 } +html::view-transition-group(party) { + position: absolute; + width: 100px; + height: 100px; + background: green; +} +</style> + +<custom-component> + <template shadowrootmode="open"> + <style> + div { + width: 100px; + height: 100px; + } + </style> + <div part="party"></div> + </template> +</custom-component> + +<script> +failIfNot(document.startViewTransition, "Missing document.startViewTransition"); + +function runTest() { + document.startViewTransition().ready.then(takeScreenshot); +} +onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); +</script> + +</body> diff --git a/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple-ref.html b/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple-ref.html new file mode 100644 index 00000000000..8443768cc74 --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple-ref.html @@ -0,0 +1,5 @@ +<!doctype html> +<meta charset="utf-8"> +<svg width="200" height="200" viewBox="0 0 40 40"> + <path fill="#333333" d="M32 14h2v14h-2z"></path> +</svg> diff --git a/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple.html b/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple.html new file mode 100644 index 00000000000..aebea6ea1fb --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple.html @@ -0,0 +1,8 @@ +<!doctype html> +<meta charset="utf-8"> +<link rel="help" href="https://drafts.csswg.org/css-viewport/#zoom-property"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1906270"> +<link rel="match" href="svg-path-simple-ref.html"> +<svg style="zoom: 2" width="100" height="100" viewBox="0 0 20 20"> + <path fill="#333333" d="M16 7h1v7h-1z"></path> +</svg> diff --git a/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox-ref.html b/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox-ref.html new file mode 100644 index 00000000000..b58eb47a23c --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox-ref.html @@ -0,0 +1,7 @@ +<!doctype html> +<div class="container"> +<svg width="46" height="46" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg"> + <circle cx="11.5" cy="11.5" r="11.5" fill="yellow"></circle> + <path d="M17.351 14.579c-.855-.064-1.645-.28-3.188-.99a.58.58 0 00-.741.23l-.683 1.148a.43.43 0 01-.607.14 16.749 16.749 0 01-2.316-1.923 16.748 16.748 0 01-1.923-2.316.43.43 0 01.14-.607l1.148-.683a.58.58 0 00.23-.741c-.71-1.544-.926-2.334-.99-3.188a.657.657 0 00-.71-.647h-.835c-.46 0-.895.215-1.174.583-.783 1.033-.803 2.196-.577 3.39A11.13 11.13 0 008.21 14.79a11.13 11.13 0 005.813 3.086c1.195.226 2.358.206 3.391-.577.368-.279.583-.713.583-1.174v-.835a.657.657 0 00-.647-.71z" fill="#2F9FBC"></path> +</svg> +</div> diff --git a/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox.html b/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox.html new file mode 100644 index 00000000000..d5c2336bdd0 --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox.html @@ -0,0 +1,10 @@ +<!doctype html> +<meta charset="utf-8"> +<link rel="help" href="https://drafts.csswg.org/css-viewport/#zoom-property"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1905023"> +<link rel="match" href="svg-viewBox-ref.html"> +<svg width="23" height="23" style="zoom: 2" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg"> + <circle cx="11.5" cy="11.5" r="11.5" fill="yellow"></circle> + <path d="M17.351 14.579c-.855-.064-1.645-.28-3.188-.99a.58.58 0 00-.741.23l-.683 1.148a.43.43 0 01-.607.14 16.749 16.749 0 01-2.316-1.923 16.748 16.748 0 01-1.923-2.316.43.43 0 01.14-.607l1.148-.683a.58.58 0 00.23-.741c-.71-1.544-.926-2.334-.99-3.188a.657.657 0 00-.71-.647h-.835c-.46 0-.895.215-1.174.583-.783 1.033-.803 2.196-.577 3.39A11.13 11.13 0 008.21 14.79a11.13 11.13 0 005.813 3.086c1.195.226 2.358.206 3.391-.577.368-.279.583-.713.583-1.174v-.835a.657.657 0 00-.647-.71z" fill="#2F9FBC"> + </path> +</svg> diff --git a/tests/wpt/tests/css/cssom/CSSContainerRule.tentative.html b/tests/wpt/tests/css/cssom/CSSContainerRule.tentative.html index 4e01c0b4700..4258aeb8ff8 100644 --- a/tests/wpt/tests/css/cssom/CSSContainerRule.tentative.html +++ b/tests/wpt/tests/css/cssom/CSSContainerRule.tentative.html @@ -3,7 +3,7 @@ <title>CSSContainerRule</title> <link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> <link rel="author" title="Mozilla" href="https://mozilla.org"> -<link rel="help" href="https://drafts.csswg.org/css-contain-3/#the-csscontainerrule-interface"> +<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#the-csscontainerrule-interface"> <script src=/resources/testharness.js></script> <script src=/resources/testharnessreport.js></script> <style id="sheet"></style> diff --git a/tests/wpt/tests/css/cssom/page-descriptors.html b/tests/wpt/tests/css/cssom/page-descriptors.html index 5cf0a6a703d..e77b0df8de7 100644 --- a/tests/wpt/tests/css/cssom/page-descriptors.html +++ b/tests/wpt/tests/css/cssom/page-descriptors.html @@ -3,9 +3,22 @@ <head> <link rel="author" title="Mozilla" href="https://mozilla.org"> <link rel="help" href="https://drafts.csswg.org/cssom/#the-cssstyledeclaration-interface"> - <title>Page descriptors shouldn't be exposed to CSS Style declarations</title> + <title>CSSPageDescriptors properties tests</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> + <style> +@page { + size: a3; + page-orientation: rotate-right; + margin: 1em 24px 2in 101.5mm; +} +@page { + size: jis-b5 landscape; +} +@page { + size: 216mm; +} + </style> </head> <body> <div id="target"></div> @@ -15,8 +28,16 @@ let element = document.getElementById("target"); let computedStyle = window.getComputedStyle(element); let style = element.style; +let styleSheet = document.styleSheets[0]; +let marginNames = ["left", "right", "top", "bottom"]; +let pageDescriptors = ["margin", "page-orientation", "size"]; +marginNames.forEach(function(n){ + pageDescriptors.push("margin-" + n); + pageDescriptors.push("margin" + n[0].toUpperCase() + n.slice(1)); +}); test(t => { + // Check that size isn't exposed on all CSS style declarations. assert_equals(computedStyle.size, undefined, "computed style should not have size property"); assert_equals(computedStyle.getPropertyValue("size"), "", @@ -34,6 +55,63 @@ test(t => { assert_equals(style.getPropertyValue("size"), "", "style getPropertyValue(\"size\") should be empty after assigning size=" + val); } + pageDescriptors.forEach(function(prop){ + assert_own_property(styleSheet.cssRules[0].style.__proto__, prop, + "CSSPageDescriptors should have property " + prop); + }); + assert_equals(styleSheet.cssRules[0].style.size, "a3"); + assert_equals(styleSheet.cssRules[0].style.pageOrientation, "rotate-right"); + assert_equals(styleSheet.cssRules[0].style.getPropertyValue("page-orientation"), "rotate-right", + 'Value of page-orientation should match pageOrientation from CSS'); + assert_equals(styleSheet.cssRules[1].style.size, "jis-b5 landscape"); + assert_equals(styleSheet.cssRules[2].style.size, "216mm"); + + // Ensure we can set the size property to a valid value. + styleSheet.cssRules[2].style.size = "portrait"; + assert_equals(styleSheet.cssRules[2].style.size, "portrait", + 'Should have been able to set size property to "portrait" on CSSPageDescriptors'); + // Ensure we cannot set the size property to an invalid property. + styleSheet.cssRules[2].style.size = "notarealsize"; + assert_equals(styleSheet.cssRules[2].style.size, "portrait", + 'Should not have been able to set size property to "notarealsize" on CSSPageDescriptors'); + + // Ensure we can set the orientation property to a valid value. + styleSheet.cssRules[2].style.pageOrientation = "rotate-left"; + assert_equals(styleSheet.cssRules[2].style.pageOrientation, "rotate-left", + 'Should have been able to set pageOrientation property to "rotate-left" on CSSPageDescriptors'); + assert_equals(styleSheet.cssRules[2].style.getPropertyValue("page-orientation"), "rotate-left", + 'Value of page-orientation should match pageOrientation after setting from script'); + // Ensure we cannot set the orientation property to an invalid property. + styleSheet.cssRules[2].style.pageOrientation = "schmotate-schmeft"; + assert_equals(styleSheet.cssRules[2].style.pageOrientation, "rotate-left", + 'Should not have been able to set pageOrientation property to "schmotate-schmeft" on CSSPageDescriptors'); + + // Ensure we cannot set invalid page properties. + styleSheet.cssRules[2].style.setProperty("float", "left"); + assert_equals(styleSheet.cssRules[2].style.cssFloat, undefined); + + assert_equals(styleSheet.cssRules[0].style.marginLeft, "101.5mm"); + assert_equals(styleSheet.cssRules[0].style.marginRight, "24px"); + assert_equals(styleSheet.cssRules[0].style.marginTop, "1em"); + assert_equals(styleSheet.cssRules[0].style.marginBottom, "2in"); + marginNames.forEach(function(name){ + let name1 = "margin-" + name; + let name2 = "margin" + name[0].toUpperCase() + name.slice(1); + assert_equals(styleSheet.cssRules[0].style[name1], + styleSheet.cssRules[0].style[name2], + "CSSPageDescriptors " + name1 + " and " + name2 + " should be the same."); + // Attempt setting through each name and ensure it is represented in the other. + styleSheet.cssRules[0].style[name1] = "99px"; + assert_equals(styleSheet.cssRules[0].style[name1], "99px", + "Should have been able to set " + name1 + " property on CSSPageDescriptors"); + assert_equals(styleSheet.cssRules[0].style[name2], "99px", + "Setting " + name1 + " on CSSPageDescriptors should also set " + name2); + styleSheet.cssRules[0].style[name2] = "216px"; + assert_equals(styleSheet.cssRules[0].style[name2], "216px", + "Should have been able to set " + name2 + " property on CSSPageDescriptors"); + assert_equals(styleSheet.cssRules[0].style[name1], "216px", + "Setting " + name2 + " on CSSPageDescriptors should also set " + name1); + }); }); </script> </body> diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-basic-blur.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-basic-blur.html new file mode 100644 index 00000000000..03b6c25fee0 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-basic-blur.html @@ -0,0 +1,46 @@ +<!DOCTYPE html> +<title>'backdrop-filter'</title> +<meta name=fuzzy content="maxDifference=0-40;totalPixels=0-30000"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<link rel="match" href="reference/backdrop-filter-basic-blur-ref.html"> +<div> + <p>Expected: A red box with three blurred boxes on top of it.</p> + <p>All three should have similar levels of blur and opacity applied.</p> +</div> +<div class="colorbox"> + <div class="filterbox box1"></div> + <div class="filterbox box2"></div> + <div class="filterbox box3"></div> +</div> + +<style> +.colorbox { + width: 200px; height: 200px; + background: red; + position: absolute; + left: 150px; + top: 150px; +} +.filterbox { + display: block; + position: absolute; + left: 100px; + width: 150px; + height: 100px; + margin: 0px auto; + border: 1px solid blue; + backdrop-filter: blur(10px); +} +.box1 { + top: -50px; + background: #0000ff7f; +} +.box2 { + top: 150px; +} +.box3 { + top: 50px; + left: -100px; + opacity: 0.6; +} +</style> diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-boundary.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-boundary.html new file mode 100644 index 00000000000..9f371387abf --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-boundary.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<meta name=fuzzy content="maxDifference=0-20;totalPixels=0-100000"> +<title>backdrop-filter: Correctly apply backdrop-filter with an SVG filter</title> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<link rel="match" href="reference/backdrop-filter-boundary-ref.html"> +<style> +.bg { + position: relative; + display: inline-block; + width: 160px; + height: 90px; + background-image: url("resources/reference.png"); +} +.fg { + position: absolute; + left: 5px; + top: 5px; + width: 150px; + height: 80px; +} +body { + background-color: lime; +} +</style> +<div style="width:550px"> + <div class="bg"><div class="fg" style="backdrop-filter: blur(3px);"></div></div> + <div class="bg"><div class="fg" style="backdrop-filter: blur(6px);"></div></div> + <div class="bg"><div class="fg" style="backdrop-filter: blur(12px);"></div></div> + <div class="bg"><div class="fg" style="backdrop-filter: blur(24px);"></div></div> + <div class="bg"><div class="fg" style="backdrop-filter: blur(48px);"></div></div> + <div class="bg"><div class="fg" style="backdrop-filter: blur(96px);"></div></div> +</div> + +<!-- This should show an increasing series of blurred blocks. No lime green should + be brought in to the blurred regions. --> diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-clipping-2.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-clipping-2.html new file mode 100644 index 00000000000..0c9bed73c89 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-clipping-2.html @@ -0,0 +1,58 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<meta name=fuzzy content="maxDifference=0-20;totalPixels=0-10000"> +<title>backdrop-filter: Filter input is at element bounds</title> +<link rel="author" href="mailto:masonf@chromium.org"> +<link rel="author" href="mailto:flackr@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<link rel="match" href="reference/backdrop-filter-edge-clipping-2-ref.html"> + +<!-- Expected: A white box with a blue border, surrounded by green. + A red blurred region should be seen at the bottom of the white box. + No green should be observed within the white box. + No dark/black should be observed within the white box either. --> + +<div class="greenbox top"></div> +<div class="greenbox right"></div> +<div class="greenbox bottom"></div> +<div class="redline"></div> +<div class="filterbox"></div> +<style> +.filterbox { + position: absolute; + width: 100px; + height: 100px; + top: 150px; + left: 0px; + backdrop-filter: blur(10px); +} +.greenbox { + position:absolute; + width: 160px; + height: 50px; + background: green; +} +.redline { + position:absolute; + width: 90px; + height: 5px; + top:245px; + left:5px; + background: red; +} +.top { + top:100px; + left: 0; +} +.right { + top:130px; + left: 102px; + width: 58px; + height: 150px; +} +.bottom { + top:250px; + left: 0; + height: 60px; +} +</style> diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror-ref.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror-ref.html deleted file mode 100644 index c80dcb04e5c..00000000000 --- a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror-ref.html +++ /dev/null @@ -1,42 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>backdrop-filter: Sampled pixels beyond edge should mirror back into the content.</title> -<link rel="author" href="mailto:flackr@chromium.org"> - -<div class="clip"> - <div class="filter"> - <div class="border"></div> - </div> -</div> -<div style="position:absolute;top:100px;will-change:transform;"> - <p>Expected above: A pure white box with a very small hint of the 1px blue border blurred inside.</p> -</div> - -<style> -.clip { - position: absolute; - width: 100px; - height: 100px; - top: 8px; - left: 8px; - overflow: clip; -} -.filter { - position: absolute; - width: 100px; - height: 100px; - top: 0px; - left: 0px; - filter: blur(10px); -} -.border { - position: absolute; - width: 302px; - height: 302px; - top: -101px; - left: -101px; - background: - repeating-linear-gradient(0deg, blue 0px, blue 2px, transparent 2px, transparent 100px), - repeating-linear-gradient(90deg, blue 0px, blue 2px, transparent 2px, transparent 100px); -} -</style> diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror.html index c11d2f2733e..b56bddf7ad2 100644 --- a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror.html +++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror.html @@ -4,7 +4,7 @@ <title>backdrop-filter: Sampled pixels beyond edge should mirror back into the content.</title> <link rel="author" href="mailto:flackr@chromium.org"> <link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#backdrop-filter-operation"> -<link rel="match" href="backdrop-filter-edge-mirror-ref.html"> +<link rel="match" href="reference/backdrop-filter-edge-mirror-ref.html"> <div class="box border"></div> <div class="box filter"></div> diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-pixels-2.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-pixels-2.html new file mode 100644 index 00000000000..8b87ef95c02 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-pixels-2.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<meta name=fuzzy content="maxDifference=0-20;totalPixels=0-30000"> +<link rel="author" href="mailto:masonf@chromium.org"> +<link rel="author" href="mailto:flackr@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<link rel="match" href="reference/backdrop-filter-edge-pixels-2-ref.html"> + +<div class="red_square"></div> +<div class="filter"></div> + +<style> +div { + width: 100px; + position: absolute; +} +body { overflow: hidden; margin: 0;} +.red_square { + height: 100px; + left:30px; + top: 20px; + background: red; + transform: rotate(30deg); +} +.filter { + height: 200px; + background: transparent; + backdrop-filter: blur(20px); +} +</style> diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-svg-blur.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-svg-blur.html new file mode 100644 index 00000000000..eff40c9e0fa --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-svg-blur.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<meta name=fuzzy content="maxDifference=0-20;totalPixels=0-10000"> +<title>backdrop-filter: Correctly apply backdrop-filter with an SVG filter</title> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<link rel="match" href="reference/backdrop-filter-svg-blur-ref.html"> + +<p>The green box should filter the blue box.</p> + +<svg width="200" height="200"> + <rect width="50" height="50" fill="blue"></rect> + <rect x="20" y="20" width="50" height="50" fill="green" opacity="0.5" style="backdrop-filter: blur(10px);"></rect> +</svg> diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-basic-blur-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-basic-blur-ref.html new file mode 100644 index 00000000000..20775bc22f3 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-basic-blur-ref.html @@ -0,0 +1,49 @@ +<!DOCTYPE html> +<title>'backdrop-filter'</title> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<script src="../support/simulate-backdrop-blur.js"></script> +<div> + <p>Expected: A red box with three blurred boxes on top of it.</p> + <p>All three should have similar levels of blur and opacity applied.</p> +</div> +<div class="colorbox"> + <div class="filterbox box1"></div> + <div class="filterbox box2"></div> + <div class="filterbox box3"></div> +</div> + +<style> +.colorbox { + width: 200px; height: 200px; + background: red; + position: absolute; + left: 150px; + top: 150px; +} +.filterbox { + display: block; + position: absolute; + left: 100px; + width: 150px; + height: 100px; + margin: 0px auto; + border: 1px solid blue; +} +.box1 { + top: -50px; + background: #0000ff7f; +} +.box2 { + top: 150px; +} +.box3 { + top: 50px; + left: -100px; + opacity: 0.6; +} +</style> +<script> + for (let box of document.querySelectorAll('.filterbox')) { + simulateBackdropBlur(box, [document.querySelector('.colorbox')], 10); + } +</script> diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-boundary-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-boundary-ref.html new file mode 100644 index 00000000000..6cf03dde8c5 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-boundary-ref.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>backdrop-filter: Correctly apply backdrop-filter with an SVG filter</title> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<script src="../support/simulate-backdrop-blur.js"></script> +<style> +.bg { + position: relative; + display: inline-block; + width: 160px; + height: 90px; + background-image: url("../resources/reference.png"); +} +.fg { + position: absolute; + left: 5px; + top: 5px; + width: 150px; + height: 80px; +} +body { + background-color: lime; +} +</style> +<div style="width:550px"> + <div class="bg"><div class="fg" data-blur="3px"></div></div> + <div class="bg"><div class="fg" data-blur="6px"></div></div> + <div class="bg"><div class="fg" data-blur="12px"></div></div> + <div class="bg"><div class="fg" data-blur="24px"></div></div> + <div class="bg"><div class="fg" data-blur="48px"></div></div> + <div class="bg"><div class="fg" data-blur="96px"></div></div> +</div> + +<script> + for (let fg of document.querySelectorAll(".fg")) { + simulateBackdropBlur(fg, [fg.parentElement], parseInt(fg.getAttribute('data-blur'))); + } +</script> + +<!-- This should show an increasing series of blurred blocks. No lime green should + be brought in to the blurred regions. --> diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-clipping-2-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-clipping-2-ref.html new file mode 100644 index 00000000000..5d035cb195a --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-clipping-2-ref.html @@ -0,0 +1,60 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>backdrop-filter: Filter input is at element bounds</title> +<link rel="author" href="mailto:masonf@chromium.org"> +<link rel="author" href="mailto:flackr@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<script src="../support/simulate-backdrop-blur.js"></script> + +<!-- Expected: A white box with a blue border, surrounded by green. + A red blurred region should be seen at the bottom of the white box. + No green should be observed within the white box. + No dark/black should be observed within the white box either. --> + +<div class="greenbox top"></div> +<div class="greenbox right"></div> +<div class="greenbox bottom"></div> +<div class="redline"></div> +<div class="filterbox"></div> +<style> +.filterbox { + position: absolute; + width: 100px; + height: 100px; + top: 150px; + left: 0px; +} +.greenbox { + position:absolute; + width: 160px; + height: 50px; + background: green; +} +.redline { + position:absolute; + width: 90px; + height: 5px; + top:245px; + left:5px; + background: red; +} +.top { + top:100px; + left: 0; +} +.right { + top:130px; + left: 102px; + width: 58px; + height: 150px; +} +.bottom { + top:250px; + left: 0; + height: 60px; +} +</style> +<script> + const filterBox = document.querySelector('.filterbox'); + simulateBackdropBlur(filterBox, Array.prototype.slice.apply(document.body.querySelectorAll('div')).filter(c => c != filterBox), 10); +</script> diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-mirror-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-mirror-ref.html new file mode 100644 index 00000000000..4c1dc985082 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-mirror-ref.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>backdrop-filter: Sampled pixels beyond edge should mirror back into the content.</title> +<link rel="author" href="mailto:flackr@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#backdrop-filter-operation"> +<script src="../support/simulate-backdrop-blur.js"></script> + +<div class="box border"></div> +<div class="box filter"></div> +<div style="position:absolute;top:100px;will-change:transform;"> + <p>Expected above: A pure white box with a very small hint of the 1px blue border blurred inside.</p> +</div> + +<style> +.box { + position: absolute; + width: 100px; + height: 100px; + top: 8px; + left: 8px; + box-sizing: border-box; +} +.border { + border: 1px solid blue; +} +</style> +<script> +simulateBackdropBlur(document.querySelector('.filter'), [document.querySelector('.border')], 10); +</script> diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-pixels-2-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-pixels-2-ref.html new file mode 100644 index 00000000000..bb482e67ffa --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-pixels-2-ref.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<link rel="author" href="mailto:masonf@chromium.org"> +<link rel="author" href="mailto:flackr@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<script src="../support/simulate-backdrop-blur.js"></script> +<div class="red_square"></div> +<div class="filter"></div> + +<style> +div { + width: 100px; + position: absolute; +} +body { overflow: hidden; margin: 0;} +.red_square { + height: 100px; + left:30px; + top: 20px; + background: red; + transform: rotate(30deg); +} +.filter { + height: 200px; + background: transparent; +} +</style> +<script> +simulateBackdropBlur(document.querySelector('.filter'), [document.querySelector('.red_square')], 20); +</script> diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-svg-blur-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-svg-blur-ref.html new file mode 100644 index 00000000000..f9bcb1c22d9 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-svg-blur-ref.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>backdrop-filter: Correctly apply backdrop-filter with an SVG filter</title> +<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty"> +<script src="../support/simulate-backdrop-blur.js"></script> +<style> + .container { + position: relative; + width: 200px; + height: 200px; + contain: paint; + } + .container .box { + width: 50px; + height: 50px; + position: absolute; + } + div.blue { background: blue;} + .green { background: green;} + .green { + left: 20px; + top: 20px; + opacity: 0.5; + } +</style> + +<p>The green box should filter the blue box.</p> + +<div class="container"> + <div class="blue box"></div> + <div class="green box"></div> +</div> + +<script> +simulateBackdropBlur(document.querySelector('.green'), [document.querySelector('.blue')], 10); +</script> diff --git a/tests/wpt/tests/css/filter-effects/support/simulate-backdrop-blur.js b/tests/wpt/tests/css/filter-effects/support/simulate-backdrop-blur.js new file mode 100644 index 00000000000..20f2cd55986 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/support/simulate-backdrop-blur.js @@ -0,0 +1,101 @@ +/** + * Simulates a backdrop-filter: blur with the given radius by creating copies + * of the blurred content mirrored at edges. + * @param {Element} div The element to display the blurred content in. + * @param {Element[]} blurNodes The elements to include in the blur. + * @param {number} blurRadius The radius of the backdrop blur. + */ +function simulateBackdropBlur(div, blurNodes, blurRadius) { + // The amount to assume blur may oversample by beyond the blur radius. + const BLUR_OVERSAMPLE = 2; + + const isAncestor = function(ancestor, div) { + while (div && div != ancestor) { + div = div.offsetParent; + } + return !!div; + } + + const commonAncestor = function(a, b) { + while (!isAncestor(a, b)) + a = a.offsetParent; + return a; + } + + const computeOffset = function(from, to) { + const ancestor = commonAncestor(from, to); + let offset = {left: 0, top: 0}; + while (from != ancestor) { + offset.left += from.offsetLeft; + offset.top += from.offsetTop; + from = from.offsetParent; + } + while (to != ancestor) { + offset.left -= to.offsetLeft; + offset.top -= to.offsetTop; + to = to.offsetParent; + } + return offset; + } + + // Compute the number of copies needed in each direction. + const w = div.offsetWidth; + const h = div.offsetHeight; + const copiesY = Math.ceil(BLUR_OVERSAMPLE * blurRadius / h); + const copiesX = Math.ceil(BLUR_OVERSAMPLE * blurRadius / w); + + let clipNode = document.createElement('div'); + clipNode.style.backgroundColor = 'white'; + clipNode.style.position = 'absolute'; + clipNode.style.overflow = 'clip'; + clipNode.style.width = `${w}px`; + clipNode.style.height = `${h}px`; + clipNode.style.left = `${div.offsetLeft}px`; + clipNode.style.top = `${div.offsetTop}px`; + clipNode.style.opacity = getComputedStyle(div).opacity; + let filterNode = document.createElement('div'); + clipNode.appendChild(filterNode); + filterNode.style.width = `${w * (2*copiesX+1)}px`; + filterNode.style.height = `${h * (2*copiesY+1)}px`; + filterNode.style.position = 'absolute'; + filterNode.style.lineHeight = '0'; + filterNode.style.top = `${-copiesY * h}px`; + filterNode.style.left = `${-copiesX * w}px`; + filterNode.style.filter = `blur(${blurRadius}px)`; + + // Helper to clone everything except the node blurring the content in case + // the "backdrop" content to blur is an ancestor. + const cloneExcept = function(div, exclude) { + let cloned = div.cloneNode(false); + for (let child of div.children) { + if (child != exclude) { + cloned.appendChild(child.cloneNode(true)); + } + } + return cloned; + } + + for (let y = -copiesY; y <= copiesY; y++) { + for (let x = -copiesX; x <= copiesX; x++) { + let copy = document.createElement('div'); + copy.style.position = 'relative'; + copy.style.width = `${w}px`; + copy.style.height = `${h}px`; + copy.style.display = 'inline-block'; + copy.style.overflow = 'clip'; + copy.setAttribute('data-x', x); + copy.setAttribute('data-y', y); + copy.style.transform = `scale(${Math.abs(x)%2 == 0 ? 1 : -1}, ${Math.abs(y)%2 == 0 ? 1 : -1})` + for (let child of blurNodes) { + const cloned = cloneExcept(child, div); + cloned.style.position = 'absolute'; + const offset = computeOffset(child, div); + cloned.style.top = `${offset.top}px`; + cloned.style.left = `${offset.left}px`; + copy.appendChild(cloned); + } + filterNode.appendChild(copy); + } + } + div.parentElement.insertBefore(clipNode, div); +} diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-001.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-001.html new file mode 100644 index 00000000000..96c38531362 --- /dev/null +++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-001.html @@ -0,0 +1,22 @@ +<!doctype html> +<title>Test: support for calc with sign() in Media Queries</title> +<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org"> +<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation"> +<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<style> + div { + width: 100px; + height: 100px; + background-color: red; + } + + @media (width > calc(1px * (1 + sign(16px - 1rem)))) { + div { + background-color: green; + } + } +</style> + +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div></div>
\ No newline at end of file diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-002.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-002.html new file mode 100644 index 00000000000..31ff421ea2a --- /dev/null +++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-002.html @@ -0,0 +1,21 @@ +<!doctype html> +<title>Test: support for calc with sign() in Media Queries</title> +<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org"> +<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation"> +<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<style> + div { + width: 100px; + height: 100px; + background-color: red; + } + + @media (width > calc(-1px * sign(15px - 1rem))) { + div { + background-color: green; + } + } +</style> +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div></div>
\ No newline at end of file diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-003.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-003.html new file mode 100644 index 00000000000..423948f722d --- /dev/null +++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-003.html @@ -0,0 +1,21 @@ +<!doctype html> +<title>Test: support for calc with sign() in Media Queries</title> +<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org"> +<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation"> +<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<style> + div { + width: 100px; + height: 100px; + background-color: red; + } + + @media screen and (aspect-ratio > calc(sign(17px - 1rem) * 59) / calc(79 * sign(17px - 1rem))) { + div { + background-color: green; + } + } +</style> +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div></div>
\ No newline at end of file diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-004.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-004.html new file mode 100644 index 00000000000..219f0c15272 --- /dev/null +++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-004.html @@ -0,0 +1,21 @@ +<!doctype html> +<title>Test: support for calc with sign() in Media Queries</title> +<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org"> +<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation"> +<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<style> + div { + width: 100px; + height: 100px; + background-color: red; + } + + @media (resolution > calc(-1dppx * sign(17px - 1rem))) { + div { + background-color: green; + } + } +</style> +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div></div>
\ No newline at end of file diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-005.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-005.html new file mode 100644 index 00000000000..ca5fecb338b --- /dev/null +++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-005.html @@ -0,0 +1,21 @@ +<!doctype html> +<title>Test: support for calc with sign() in Media Queries</title> +<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org"> +<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation"> +<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<style> + div { + width: 100px; + height: 100px; + background-color: red; + } + + @media (grid: calc(2 * sign(16px - 1rem))) { + div { + background-color: green; + } + } +</style> +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div></div>
\ No newline at end of file diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-006.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-006.html new file mode 100644 index 00000000000..239748d205f --- /dev/null +++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-006.html @@ -0,0 +1,21 @@ +<!doctype html> +<title>Test: support for calc with sign() in Media Queries</title> +<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org"> +<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation"> +<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units"> +<link rel="match" href="../reference/ref-filled-green-100px-square.xht"> +<style> + div { + width: 100px; + height: 100px; + background-color: green; + } + + @media (grid: calc(2 * sign(17px - 1rem))) { + div { + background-color: red; + } + } +</style> +<p>Test passes if there is a filled green square and <strong>no red</strong>.</p> +<div></div>
\ No newline at end of file diff --git a/tests/wpt/tests/css/selectors/media/WEB_FEATURES.yml b/tests/wpt/tests/css/selectors/media/WEB_FEATURES.yml new file mode 100644 index 00000000000..4cd0fc27262 --- /dev/null +++ b/tests/wpt/tests/css/selectors/media/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: media-pseudos + files: "**" diff --git a/tests/wpt/tests/digital-credentials/META.yml b/tests/wpt/tests/digital-credentials/META.yml index 8a7db924976..fc8f6a62cda 100644 --- a/tests/wpt/tests/digital-credentials/META.yml +++ b/tests/wpt/tests/digital-credentials/META.yml @@ -2,3 +2,4 @@ spec: https://github.com/wicg/digital-credentials suggested_reviewers: - marcoscaceres - samuelgoto + - tplooker diff --git a/tests/wpt/tests/digital-credentials/identity-get.tentative.https.html b/tests/wpt/tests/digital-credentials/identity-get.tentative.https.html index 850533cd262..15597ed594a 100644 --- a/tests/wpt/tests/digital-credentials/identity-get.tentative.https.html +++ b/tests/wpt/tests/digital-credentials/identity-get.tentative.https.html @@ -17,22 +17,8 @@ const host = get_host_info(); const basePath = window.location.pathname.replace(/\/[^\/]*$/, '/'); const remoteBaseURL = host.HTTPS_REMOTE_ORIGIN + basePath; -async function createIframeAndWaitForMessage(test, iframeUrl) { - const messageWatcher = new EventWatcher(test, window, "message"); - var iframe = document.createElement("iframe"); - iframe.src = iframeUrl; - document.body.appendChild(iframe); - const message = await messageWatcher.wait_for("message"); - return message.data; -} - // Requires browser to have mode where OS-presented digital-identity-prompt is // bypassed in favour of returning "fake_test_token" directly. -promise_test(async t=>{ - assert_false(navigator.userActivation.isActive); - let request = buildValidNavigatorIdentityRequest(); - await promise_rejects_dom(t, "NetworkError", navigator.identity.get(request)); -}, "navigator.identity.get() fails if the page doesn't have user activation"); promise_test(async t => { let request = buildValidNavigatorIdentityRequest(); @@ -45,11 +31,4 @@ promise_test(async t => { request.digital.providers = []; await promise_rejects_js(t, TypeError, requestIdentityWithActivation(test_driver, request)); }, "navigator.identity.get() API fails if there are no providers."); - -promise_test(async t=> { - const message = await createIframeAndWaitForMessage( - t, remoteBaseURL + "support/iframe.html"); - assert_equals(message.result, "Fail"); - assert_equals(message.errorType, "NotAllowedError"); -}, "navigator.identity.get() fails in cross-origin iframe"); </script> diff --git a/tests/wpt/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers b/tests/wpt/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers index 661a357effc..8ed57bbc951 100644 --- a/tests/wpt/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers +++ b/tests/wpt/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers @@ -1,3 +1,4 @@ Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: require-corp Permissions-Policy: direct-sockets=() +Origin-Agent-Cluster: ?0 diff --git a/tests/wpt/tests/direct-sockets/tcp_socket.https.html.headers b/tests/wpt/tests/direct-sockets/tcp_socket.https.html.headers index 177feb102db..b20aae031ea 100644 --- a/tests/wpt/tests/direct-sockets/tcp_socket.https.html.headers +++ b/tests/wpt/tests/direct-sockets/tcp_socket.https.html.headers @@ -1,3 +1,4 @@ Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: require-corp Permissions-Policy: direct-sockets=(self) +Origin-Agent-Cluster: ?0 diff --git a/tests/wpt/tests/direct-sockets/udp_socket.https.html.headers b/tests/wpt/tests/direct-sockets/udp_socket.https.html.headers index 177feb102db..b20aae031ea 100644 --- a/tests/wpt/tests/direct-sockets/udp_socket.https.html.headers +++ b/tests/wpt/tests/direct-sockets/udp_socket.https.html.headers @@ -1,3 +1,4 @@ Cross-Origin-Opener-Policy: same-origin Cross-Origin-Embedder-Policy: require-corp Permissions-Policy: direct-sockets=(self) +Origin-Agent-Cluster: ?0 diff --git a/tests/wpt/tests/fedcm/support/continue_on.py b/tests/wpt/tests/fedcm/support/continue_on.py index 0195e478e29..5447ab96e4f 100644 --- a/tests/wpt/tests/fedcm/support/continue_on.py +++ b/tests/wpt/tests/fedcm/support/continue_on.py @@ -12,5 +12,7 @@ def main(request, response): account = request.POST.get(b"account_id").decode("utf-8") nonce = request.POST.get(b"nonce").decode("utf-8") + if nonce == "token": + return "{\"token\": \"account=%s\"}" % (account) return "{\"continue_on\": \"resolve.html?selected=%s&%s\"}" % (account, nonce) diff --git a/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition-ref.html b/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition-ref.html new file mode 100644 index 00000000000..b47795f2054 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition-ref.html @@ -0,0 +1,69 @@ +<html> +<meta charset="utf-8"> +<style> +canvas { + margin: 5px; +} +</style> +<script> +src = document.createElement("canvas"); +src.width = "100"; +src.height = "100"; +scx = src.getContext("2d"); +scx.font = "64px Segoe UI Emoji, sans-serif"; +scx.fillText("\u{1F63A}",5,65); + +function test(op) { + cv = document.createElement("canvas"); + cv.width = "100"; + cv.height = "100"; + document.body.appendChild(cv); + cx = cv.getContext("2d"); + cx.fillStyle = "#888888"; + cx.fillRect(0,0,100,50); + cx.globalCompositeOperation = op; + cx.drawImage(src, 0, 0); +} + +function br() { + document.body.appendChild(document.createElement("br")); +} + +window.onload = ( ) => { + test("source-over"); + test("source-in"); + test("source-out"); + test("source-atop"); + br(); + test("destination-over"); + test("destination-in"); + test("destination-out"); + test("destination-atop"); + br(); + test("copy"); + test("lighter"); + test("xor"); + test("multiply"); + br(); + test("screen"); + test("overlay"); + test("darken"); + test("lighten"); + br(); + test("color-dodge"); + test("color-burn"); + test("hard-light"); + test("soft-light"); + br(); + test("difference"); + test("exclusion"); + test("hue"); + test("saturation"); + br(); + test("color"); + test("luminosity"); +}; +</script> +<body> +</body> +</html>
\ No newline at end of file diff --git a/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition.html b/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition.html new file mode 100644 index 00000000000..ed372a2613c --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition.html @@ -0,0 +1,67 @@ +<html> +<meta charset="utf-8"> +<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1902253"> +<link rel="match" href="colr-glyph-composition-ref.html"> +<style> +canvas { + margin: 5px; +} +</style> +<script> +function test(op) { + cv = document.createElement("canvas"); + cv.width = "100"; + cv.height = "100"; + document.body.appendChild(cv); + cx = cv.getContext("2d"); + cx.fillStyle = "#888888"; + cx.fillRect(0,0,100,50); + cx.globalCompositeOperation=op; + cx.fillStyle = "black"; + cx.font = "64px Segoe UI Emoji, sans-serif"; + cx.fillText("\u{1F63A}",5,65); +} + +function br() { + document.body.appendChild(document.createElement("br")); +} + +window.onload = ( ) => { + test("source-over"); + test("source-in"); + test("source-out"); + test("source-atop"); + br(); + test("destination-over"); + test("destination-in"); + test("destination-out"); + test("destination-atop"); + br(); + test("copy"); + test("lighter"); + test("xor"); + test("multiply"); + br(); + test("screen"); + test("overlay"); + test("darken"); + test("lighten"); + br(); + test("color-dodge"); + test("color-burn"); + test("hard-light"); + test("soft-light"); + br(); + test("difference"); + test("exclusion"); + test("hue"); + test("saturation"); + br(); + test("color"); + test("luminosity"); +}; +</script> +<body> +</body> +</html>
\ No newline at end of file diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations-with-promises.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations-with-promises.html index 8e81bffdfb6..e3af9a32a36 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations-with-promises.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations-with-promises.html @@ -6,6 +6,8 @@ <script src="/html/canvas/resources/canvas-tests.js"></script> <link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css"> +<h1>2d.layer.malformed-operations-with-promises</h1> + <script> promise_test(async t => { diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations.html index cf6e7a80db0..d27e1bf6eba 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations.html @@ -6,6 +6,8 @@ <script src="/html/canvas/resources/canvas-tests.js"></script> <link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css"> +<h1>2d.layer.malformed-operations</h1> + <script> test(t => { diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations-with-promises.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations-with-promises.html index 7b8f9b09434..6641d9d4170 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations-with-promises.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations-with-promises.html @@ -5,6 +5,8 @@ <script src="/resources/testharnessreport.js"></script> <script src="/html/canvas/resources/canvas-tests.js"></script> +<h1>2d.layer.malformed-operations-with-promises</h1> + <script> promise_test(async t => { diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations.html index a810665faf5..c3a92553646 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations.html @@ -5,6 +5,8 @@ <script src="/resources/testharnessreport.js"></script> <script src="/html/canvas/resources/canvas-tests.js"></script> +<h1>2d.layer.malformed-operations</h1> + <script> test(t => { diff --git a/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py b/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py index ab6f4e1cd08..a453c6ff924 100644 --- a/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py +++ b/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py @@ -360,6 +360,7 @@ class _Variant(): 'variant_name': '', 'images': [], 'svgimages': [], + 'fonts': [], } params.update(test) return _Variant(params) @@ -639,6 +640,7 @@ class _VariantGrid: 'notes': self._unique_param('notes'), 'images': self._param_set('images'), 'svgimages': self._param_set('svgimages'), + 'fonts': self._param_set('fonts'), } if self.template_type in (_TemplateType.REFERENCE, _TemplateType.HTML_REFERENCE): diff --git a/tests/wpt/tests/html/canvas/tools/templates/testharness_element_grid.html b/tests/wpt/tests/html/canvas/tools/templates/testharness_element_grid.html index ee2360f72c2..50d75238923 100644 --- a/tests/wpt/tests/html/canvas/tools/templates/testharness_element_grid.html +++ b/tests/wpt/tests/html/canvas/tools/templates/testharness_element_grid.html @@ -7,6 +7,8 @@ <script src="/html/canvas/resources/canvas-tests.js"></script> <link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css"> +<h1>{{ name }}</h1> + {% if fonts %} <style> {% for font in fonts %} diff --git a/tests/wpt/tests/html/canvas/tools/templates/testharness_offscreen_grid.html b/tests/wpt/tests/html/canvas/tools/templates/testharness_offscreen_grid.html index 6e5628036ba..31d86e705a0 100644 --- a/tests/wpt/tests/html/canvas/tools/templates/testharness_offscreen_grid.html +++ b/tests/wpt/tests/html/canvas/tools/templates/testharness_offscreen_grid.html @@ -6,6 +6,8 @@ <script src="/resources/testharnessreport.js"></script> <script src="/html/canvas/resources/canvas-tests.js"></script> +<h1>{{ name }}</h1> + <script> {% for variant in offscreen_variants %} diff --git a/tests/wpt/tests/html/rendering/widgets/input-number-text-size-ref.html b/tests/wpt/tests/html/rendering/widgets/input-number-text-size-ref.html index 4c9b244990d..6c831941f08 100644 --- a/tests/wpt/tests/html/rendering/widgets/input-number-text-size-ref.html +++ b/tests/wpt/tests/html/rendering/widgets/input-number-text-size-ref.html @@ -2,7 +2,6 @@ <input type=number><br> <input type=number><br> <input type=number><br> -<input type=number><br> <input type=number size=10><br> <input type=number><br> <input type=number size=1><br> diff --git a/tests/wpt/tests/html/rendering/widgets/input-number-text-size.tentative.html b/tests/wpt/tests/html/rendering/widgets/input-number-text-size.tentative.html index e7b1a1990dc..0850f0558e3 100644 --- a/tests/wpt/tests/html/rendering/widgets/input-number-text-size.tentative.html +++ b/tests/wpt/tests/html/rendering/widgets/input-number-text-size.tentative.html @@ -4,7 +4,6 @@ <title>Test `size` attribute behavior on number input</title> <link rel="match" href="input-number-text-size-ref.html"> <input type=number><br> -<input type=number size=20><br> <input type=number min=0><br> <input type=number max=1><br> <input type=number size=10 min=0 max=1><br> diff --git a/tests/wpt/tests/input-events/input-events-typing.html b/tests/wpt/tests/input-events/input-events-typing.html index cff32a44d15..8a083dc9669 100644 --- a/tests/wpt/tests/input-events/input-events-typing.html +++ b/tests/wpt/tests/input-events/input-events-typing.html @@ -128,6 +128,45 @@ promise_test(async function() { promise_test(async function () { this.add_cleanup(resetRich); + rich.innerHTML = '<p>Preexisting <i id="caret">C</i>ontent</p>'; + + const expectedResult = [ + // Pressing 'a', 'b' + 'insertText', + 'insertText', + // Delete twice + 'deleteContentForward', + 'deleteContentForward', + // Pressing 'c', 'd' + 'insertText', + 'insertText', + // Backspace + 'deleteContentBackward' + ]; + const result = []; + + rich.addEventListener("input", (inputEvent) => { + result.push(inputEvent.inputType); + }); + + await test_driver.click(document.querySelector('#caret')); // Preexisting |Content + await test_driver.send_keys(rich, "a"); // Preexisting a|Content + await test_driver.send_keys(rich, "b"); // Preexisting ab|Content + // Delete + await test_driver.send_keys(rich, "\uE017"); // Preexisting ab|ontent + // Delete + await test_driver.send_keys(rich, "\uE017"); // Preexisting ab|ntent + await test_driver.send_keys(rich, "c"); // Preexisting abc|ntent + await test_driver.send_keys(rich, "d"); // Preexisting abcd|ntent + // Backspace + await test_driver.send_keys(rich, "\uE003"); // Preexisting abc|ntent + + assert_equals(result.length, expectedResult.length); + expectedResult.forEach((er, index) => assert_equals(result[index], er)); +}, 'Input events have correct inputType updated when different inputs are typed'); + +promise_test(async function () { + this.add_cleanup(resetRich); rich.innerHTML = '<p>Preexisting <i id="caret">c</i>ontent</p>'; const expectedResult = [ @@ -169,8 +208,8 @@ promise_test(async function () { // Delete await test_driver.send_keys(rich, "\uE017"); // | - assert_equals(expectedResult.length, result.length); - expectedResult.forEach((er, index) => assert_equals(er, result[index])); + assert_equals(result.length, expectedResult.length); + expectedResult.forEach((er, index) => assert_equals(result[index], er)); }, 'Input events have correct inputType when selected text is removed with Backspace or Delete'); promise_test(async function() { @@ -326,7 +365,7 @@ promise_test(async function() { .keyUp('\uE008') .send(); - assert_equals(expectedResult.length, result.length); - expectedResult.forEach((er, index) => assert_equals(er, result[index])); + assert_equals(result.length, expectedResult.length); + expectedResult.forEach((er, index) => assert_equals(result[index], er)); }, 'InputEvents have correct data/order when typing on textarea and contenteditable'); </script> diff --git a/tests/wpt/tests/interfaces/WebCryptoAPI.idl b/tests/wpt/tests/interfaces/WebCryptoAPI.idl index 0e68ea82f59..ae85c1cfe46 100644 --- a/tests/wpt/tests/interfaces/WebCryptoAPI.idl +++ b/tests/wpt/tests/interfaces/WebCryptoAPI.idl @@ -68,7 +68,7 @@ interface SubtleCrypto { sequence<KeyUsage> keyUsages ); Promise<ArrayBuffer> deriveBits(AlgorithmIdentifier algorithm, CryptoKey baseKey, - unsigned long length); + optional unsigned long? length = null); Promise<CryptoKey> importKey(KeyFormat format, (BufferSource or JsonWebKey) keyData, diff --git a/tests/wpt/tests/interfaces/css-contain-3.idl b/tests/wpt/tests/interfaces/css-conditional-5.idl index 0ecf3804954..b1919213ebc 100644 --- a/tests/wpt/tests/interfaces/css-contain-3.idl +++ b/tests/wpt/tests/interfaces/css-conditional-5.idl @@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) -// Source: CSS Containment Module Level 3 (https://drafts.csswg.org/css-contain-3/) +// Source: CSS Conditional Rules Module Level 5 (https://drafts.csswg.org/css-conditional-5/) [Exposed=Window] interface CSSContainerRule : CSSConditionRule { diff --git a/tests/wpt/tests/interfaces/css-nesting.idl b/tests/wpt/tests/interfaces/css-nesting.idl index 58d3247f904..1ad0404ecf9 100644 --- a/tests/wpt/tests/interfaces/css-nesting.idl +++ b/tests/wpt/tests/interfaces/css-nesting.idl @@ -4,6 +4,6 @@ // Source: CSS Nesting Module (https://drafts.csswg.org/css-nesting-1/) [Exposed=Window] -interface CSSNestRule : CSSGroupingRule { +interface CSSNestedDeclarations : CSSRule { [SameObject, PutForwards=cssText] readonly attribute CSSStyleProperties style; }; diff --git a/tests/wpt/tests/interfaces/cssom.idl b/tests/wpt/tests/interfaces/cssom.idl index 005496e7ede..1e70e1f8bca 100644 --- a/tests/wpt/tests/interfaces/cssom.idl +++ b/tests/wpt/tests/interfaces/cssom.idl @@ -130,6 +130,7 @@ interface CSSPageDescriptors : CSSStyleDeclaration { attribute [LegacyNullToEmptyString] CSSOMString margin-bottom; attribute [LegacyNullToEmptyString] CSSOMString margin-left; attribute [LegacyNullToEmptyString] CSSOMString size; + attribute [LegacyNullToEmptyString] CSSOMString orientation; attribute [LegacyNullToEmptyString] CSSOMString marks; attribute [LegacyNullToEmptyString] CSSOMString bleed; }; diff --git a/tests/wpt/tests/interfaces/fenced-frame.idl b/tests/wpt/tests/interfaces/fenced-frame.idl index a3ec8d731bb..e15cbf11da2 100644 --- a/tests/wpt/tests/interfaces/fenced-frame.idl +++ b/tests/wpt/tests/interfaces/fenced-frame.idl @@ -35,6 +35,8 @@ typedef (USVString or FencedFrameConfig) UrnOrConfig; partial interface Navigator { Promise<undefined> deprecatedReplaceInURN( UrnOrConfig urnOrConfig, record<USVString, USVString> replacements); + Promise<USVString> deprecatedURNtoURL( + UrnOrConfig urnOrConfig, optional boolean send_reports = false); sequence<USVString> adAuctionComponents(unsigned short numAdComponents); }; diff --git a/tests/wpt/tests/interfaces/geolocation.idl b/tests/wpt/tests/interfaces/geolocation.idl index 8c0acfc6cc1..062a38bebc5 100644 --- a/tests/wpt/tests/interfaces/geolocation.idl +++ b/tests/wpt/tests/interfaces/geolocation.idl @@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) -// Source: Geolocation API (https://w3c.github.io/geolocation-api/) +// Source: Geolocation (https://w3c.github.io/geolocation/) partial interface Navigator { [SameObject] readonly attribute Geolocation geolocation; diff --git a/tests/wpt/tests/interfaces/handwriting-recognition.idl b/tests/wpt/tests/interfaces/handwriting-recognition.idl new file mode 100644 index 00000000000..2bac6b5d9ca --- /dev/null +++ b/tests/wpt/tests/interfaces/handwriting-recognition.idl @@ -0,0 +1,100 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: Handwriting Recognition API (https://wicg.github.io/handwriting-recognition/) + +[SecureContext] +partial interface Navigator { + Promise<HandwritingRecognizerQueryResult?> + queryHandwritingRecognizer(HandwritingModelConstraint constraint); +}; + +dictionary HandwritingModelConstraint { + required sequence<DOMString> languages; +}; + +dictionary HandwritingRecognizerQueryResult { + boolean textAlternatives; + boolean textSegmentation; + HandwritingHintsQueryResult hints; +}; + +dictionary HandwritingHintsQueryResult { + sequence<HandwritingRecognitionType> recognitionType; + sequence<HandwritingInputType> inputType; + boolean textContext; + boolean alternatives; +}; + +enum HandwritingRecognitionType{ + "text", "per-character" +}; + +enum HandwritingInputType { + "mouse", "stylus", "touch" +}; + +[SecureContext] +partial interface Navigator { + Promise<HandwritingRecognizer> + createHandwritingRecognizer(HandwritingModelConstraint constraint); +}; + +[Exposed=Window, SecureContext] +interface HandwritingRecognizer { + HandwritingDrawing startDrawing(optional HandwritingHints hints = {}); + + undefined finish(); +}; + +dictionary HandwritingHints { + DOMString recognitionType = "text"; + DOMString inputType = "mouse"; + DOMString textContext; + unsigned long alternatives = 3; +}; + +[Exposed=Window, SecureContext] +interface HandwritingDrawing { + undefined addStroke(HandwritingStroke stroke); + undefined removeStroke(HandwritingStroke stroke); + undefined clear(); + sequence<HandwritingStroke> getStrokes(); + + Promise<sequence<HandwritingPrediction>> getPrediction(); +}; + +[SecureContext, Exposed=Window] +interface HandwritingStroke { + constructor(); + undefined addPoint(HandwritingPoint point); + sequence<HandwritingPoint> getPoints(); + undefined clear(); +}; + +dictionary HandwritingPoint { + required double x; + required double y; + + // Optional. Number of milliseconds since a reference time point for a + // drawing. + DOMHighResTimeStamp t; +}; + +dictionary HandwritingPrediction { + required DOMString text; + sequence<HandwritingSegment> segmentationResult; +}; + +dictionary HandwritingSegment { + required DOMString grapheme; + required unsigned long beginIndex; + required unsigned long endIndex; + required sequence<HandwritingDrawingSegment> drawingSegments; +}; + +dictionary HandwritingDrawingSegment { + required unsigned long strokeIndex; + required unsigned long beginPointIndex; + required unsigned long endPointIndex; +}; diff --git a/tests/wpt/tests/interfaces/html.idl b/tests/wpt/tests/interfaces/html.idl index b5bf3573579..4d6c0229bc1 100644 --- a/tests/wpt/tests/interfaces/html.idl +++ b/tests/wpt/tests/interfaces/html.idl @@ -48,7 +48,7 @@ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement; [LegacyOverrideBuiltIns] partial interface Document { - static Document parseHTMLUnsafe(HTMLString html); + static Document parseHTMLUnsafe((TrustedHTML or DOMString) html); // resource metadata management [PutForwards=href, LegacyUnforgeable] readonly attribute Location? location; @@ -452,7 +452,7 @@ interface HTMLIFrameElement : HTMLElement { [HTMLConstructor] constructor(); [CEReactions] attribute USVString src; - [CEReactions] attribute HTMLString srcdoc; + [CEReactions] attribute (TrustedHTML or DOMString) srcdoc; [CEReactions] attribute DOMString name; [SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox; [CEReactions] attribute DOMString allow; @@ -2293,19 +2293,19 @@ Window includes WindowOrWorkerGlobalScope; WorkerGlobalScope includes WindowOrWorkerGlobalScope; partial interface Element { - [CEReactions] undefined setHTMLUnsafe(HTMLString html); + [CEReactions] undefined setHTMLUnsafe((TrustedHTML or DOMString) html); DOMString getHTML(optional GetHTMLOptions options = {}); - [CEReactions] attribute [LegacyNullToEmptyString] HTMLString innerHTML; - [CEReactions] attribute [LegacyNullToEmptyString] HTMLString outerHTML; - [CEReactions] undefined insertAdjacentHTML(DOMString position, HTMLString string); + [CEReactions] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML; + [CEReactions] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) outerHTML; + [CEReactions] undefined insertAdjacentHTML(DOMString position, (TrustedHTML or DOMString) string); }; partial interface ShadowRoot { - [CEReactions] undefined setHTMLUnsafe(HTMLString html); + [CEReactions] undefined setHTMLUnsafe((TrustedHTML or DOMString) html); DOMString getHTML(optional GetHTMLOptions options = {}); - [CEReactions] attribute [LegacyNullToEmptyString] HTMLString innerHTML; + [CEReactions] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML; }; dictionary GetHTMLOptions { @@ -2317,7 +2317,7 @@ dictionary GetHTMLOptions { interface DOMParser { constructor(); - [NewObject] Document parseFromString(HTMLString string, DOMParserSupportedType type); + [NewObject] Document parseFromString((TrustedHTML or DOMString) string, DOMParserSupportedType type); }; enum DOMParserSupportedType { @@ -2329,7 +2329,7 @@ enum DOMParserSupportedType { }; partial interface Range { - [CEReactions, NewObject] DocumentFragment createContextualFragment(HTMLString string); + [CEReactions, NewObject] DocumentFragment createContextualFragment((TrustedHTML or DOMString) string); }; [Exposed=Window] @@ -2544,7 +2544,7 @@ interface WorkerGlobalScope : EventTarget { readonly attribute WorkerGlobalScope self; readonly attribute WorkerLocation location; readonly attribute WorkerNavigator navigator; - undefined importScripts(ScriptURLString... urls); + undefined importScripts((TrustedScriptURL or USVString)... urls); attribute OnErrorEventHandler onerror; attribute EventHandler onlanguagechange; @@ -2582,7 +2582,7 @@ interface mixin AbstractWorker { [Exposed=(Window,DedicatedWorker,SharedWorker)] interface Worker : EventTarget { - constructor(ScriptURLString scriptURL, optional WorkerOptions options = {}); + constructor((TrustedScriptURL or USVString) scriptURL, optional WorkerOptions options = {}); undefined terminate(); @@ -2604,7 +2604,7 @@ Worker includes AbstractWorker; [Exposed=Window] interface SharedWorker : EventTarget { - constructor(ScriptURLString scriptURL, optional (DOMString or WorkerOptions) options = {}); + constructor((TrustedScriptURL or USVString) scriptURL, optional (DOMString or WorkerOptions) options = {}); readonly attribute MessagePort port; }; diff --git a/tests/wpt/tests/interfaces/intersection-observer.idl b/tests/wpt/tests/interfaces/intersection-observer.idl index 8502a11357f..eb7f18f5213 100644 --- a/tests/wpt/tests/interfaces/intersection-observer.idl +++ b/tests/wpt/tests/interfaces/intersection-observer.idl @@ -12,6 +12,8 @@ interface IntersectionObserver { readonly attribute DOMString rootMargin; readonly attribute DOMString scrollMargin; readonly attribute FrozenArray<double> thresholds; + readonly attribute long delay; + readonly attribute boolean trackVisibility; undefined observe(Element target); undefined unobserve(Element target); undefined disconnect(); @@ -26,6 +28,7 @@ interface IntersectionObserverEntry { readonly attribute DOMRectReadOnly boundingClientRect; readonly attribute DOMRectReadOnly intersectionRect; readonly attribute boolean isIntersecting; + readonly attribute boolean isVisible; readonly attribute double intersectionRatio; readonly attribute Element target; }; @@ -36,6 +39,7 @@ dictionary IntersectionObserverEntryInit { required DOMRectInit boundingClientRect; required DOMRectInit intersectionRect; required boolean isIntersecting; + required boolean isVisible; required double intersectionRatio; required Element target; }; @@ -45,4 +49,6 @@ dictionary IntersectionObserverInit { DOMString rootMargin = "0px"; DOMString scrollMargin = "0px"; (double or sequence<double>) threshold = 0; + long delay = 0; + boolean trackVisibility = false; }; diff --git a/tests/wpt/tests/interfaces/mediacapture-streams.idl b/tests/wpt/tests/interfaces/mediacapture-streams.idl index 62b846db0b4..f6c8e2b82da 100644 --- a/tests/wpt/tests/interfaces/mediacapture-streams.idl +++ b/tests/wpt/tests/interfaces/mediacapture-streams.idl @@ -61,6 +61,7 @@ dictionary MediaTrackSupportedConstraints { boolean channelCount = true; boolean deviceId = true; boolean groupId = true; + boolean backgroundBlur = true; }; dictionary MediaTrackCapabilities { @@ -79,6 +80,7 @@ dictionary MediaTrackCapabilities { ULongRange channelCount; DOMString deviceId; DOMString groupId; + sequence<boolean> backgroundBlur; }; dictionary MediaTrackConstraints : MediaTrackConstraintSet { @@ -101,6 +103,7 @@ dictionary MediaTrackConstraintSet { ConstrainULong channelCount; ConstrainDOMString deviceId; ConstrainDOMString groupId; + ConstrainBoolean backgroundBlur; }; dictionary MediaTrackSettings { @@ -119,6 +122,7 @@ dictionary MediaTrackSettings { unsigned long channelCount; DOMString deviceId; DOMString groupId; + boolean backgroundBlur; }; enum VideoFacingModeEnum { @@ -183,6 +187,7 @@ interface InputDeviceInfo : MediaDeviceInfo { interface DeviceChangeEvent : Event { constructor(DOMString type, optional DeviceChangeEventInit eventInitDict = {}); [SameObject] readonly attribute FrozenArray<MediaDeviceInfo> devices; + [SameObject] readonly attribute FrozenArray<MediaDeviceInfo> userInsertedDevices; }; dictionary DeviceChangeEventInit : EventInit { diff --git a/tests/wpt/tests/interfaces/permissions-policy.idl b/tests/wpt/tests/interfaces/permissions-policy.idl index 16945e3a9b7..5878d8d150a 100644 --- a/tests/wpt/tests/interfaces/permissions-policy.idl +++ b/tests/wpt/tests/interfaces/permissions-policy.idl @@ -21,6 +21,7 @@ partial interface HTMLIFrameElement { [Exposed=Window] interface PermissionsPolicyViolationReportBody : ReportBody { + [Default] object toJSON(); readonly attribute DOMString featureId; readonly attribute DOMString? sourceFile; readonly attribute long? lineNumber; diff --git a/tests/wpt/tests/interfaces/pointerlock.idl b/tests/wpt/tests/interfaces/pointerlock.idl index 0204bf53424..afe19cc9ee6 100644 --- a/tests/wpt/tests/interfaces/pointerlock.idl +++ b/tests/wpt/tests/interfaces/pointerlock.idl @@ -3,8 +3,12 @@ // (https://github.com/w3c/webref) // Source: Pointer Lock 2.0 (https://w3c.github.io/pointerlock/) +dictionary PointerLockOptions { + boolean unadjustedMovement = false; +}; + partial interface Element { - undefined requestPointerLock(); + Promise<undefined> requestPointerLock(optional PointerLockOptions options = {}); }; partial interface Document { @@ -14,7 +18,7 @@ partial interface Document { }; partial interface mixin DocumentOrShadowRoot { - readonly attribute Element ? pointerLockElement; + readonly attribute Element? pointerLockElement; }; partial interface MouseEvent { diff --git a/tests/wpt/tests/interfaces/shared-storage.idl b/tests/wpt/tests/interfaces/shared-storage.idl index c40344e74d2..9582f872f94 100644 --- a/tests/wpt/tests/interfaces/shared-storage.idl +++ b/tests/wpt/tests/interfaces/shared-storage.idl @@ -8,7 +8,7 @@ typedef (USVString or FencedFrameConfig) SharedStorageResponse; [Exposed=(Window)] interface SharedStorageWorklet : Worklet { Promise<SharedStorageResponse> selectURL(DOMString name, - FrozenArray<SharedStorageUrlWithMetadata> urls, + sequence<SharedStorageUrlWithMetadata> urls, optional SharedStorageRunOperationMethodOptions options = {}); Promise<any> run(DOMString name, optional SharedStorageRunOperationMethodOptions options = {}); @@ -47,7 +47,7 @@ dictionary SharedStorageSetMethodOptions { [Exposed=(Window)] interface WindowSharedStorage : SharedStorage { Promise<SharedStorageResponse> selectURL(DOMString name, - FrozenArray<SharedStorageUrlWithMetadata> urls, + sequence<SharedStorageUrlWithMetadata> urls, optional SharedStorageRunOperationMethodOptions options = {}); Promise<any> run(DOMString name, optional SharedStorageRunOperationMethodOptions options = {}); diff --git a/tests/wpt/tests/interfaces/trusted-types.idl b/tests/wpt/tests/interfaces/trusted-types.idl index a0f88e4e6c3..b6008e18725 100644 --- a/tests/wpt/tests/interfaces/trusted-types.idl +++ b/tests/wpt/tests/interfaces/trusted-types.idl @@ -58,9 +58,6 @@ callback CreateHTMLCallback = DOMString? (DOMString input, any... arguments); callback CreateScriptCallback = DOMString? (DOMString input, any... arguments); callback CreateScriptURLCallback = USVString? (DOMString input, any... arguments); -typedef [StringContext=TrustedHTML] DOMString HTMLString; -typedef [StringContext=TrustedScript] DOMString ScriptString; -typedef [StringContext=TrustedScriptURL] USVString ScriptURLString; typedef (TrustedHTML or TrustedScript or TrustedScriptURL) TrustedType; partial interface mixin WindowOrWorkerGlobalScope { diff --git a/tests/wpt/tests/interfaces/turtledove.idl b/tests/wpt/tests/interfaces/turtledove.idl index d4cc8c6bc5d..b7a1775a2ce 100644 --- a/tests/wpt/tests/interfaces/turtledove.idl +++ b/tests/wpt/tests/interfaces/turtledove.idl @@ -64,6 +64,7 @@ partial interface Navigator { [SecureContext] partial interface Navigator { Promise<(USVString or FencedFrameConfig)?> runAdAuction(AuctionAdConfig config); + readonly attribute boolean deprecatedRunAdAuctionEnforcesKAnonymity; }; dictionary AuctionAdConfig { @@ -101,6 +102,11 @@ dictionary AuctionAdConfig { [SecureContext] partial interface Navigator { + boolean canLoadAdAuctionFencedFrame(); +}; + +[SecureContext] +partial interface Navigator { Promise<DOMString> createAuctionNonce(); }; diff --git a/tests/wpt/tests/interfaces/webauthn.idl b/tests/wpt/tests/interfaces/webauthn.idl index 3d5a453addc..e52b62b055e 100644 --- a/tests/wpt/tests/interfaces/webauthn.idl +++ b/tests/wpt/tests/interfaces/webauthn.idl @@ -357,17 +357,6 @@ dictionary AuthenticationExtensionsLargeBlobOutputs { boolean written; }; -partial dictionary AuthenticationExtensionsClientInputs { - boolean uvm; -}; - -typedef sequence<unsigned long> UvmEntry; -typedef sequence<UvmEntry> UvmEntries; - -partial dictionary AuthenticationExtensionsClientOutputs { - UvmEntries uvm; -}; - dictionary AuthenticationExtensionsSupplementalPubKeysInputs { required sequence<DOMString> scopes; DOMString attestation = "indirect"; diff --git a/tests/wpt/tests/interfaces/webgpu.idl b/tests/wpt/tests/interfaces/webgpu.idl index 4a1b339a002..00584589d5b 100644 --- a/tests/wpt/tests/interfaces/webgpu.idl +++ b/tests/wpt/tests/interfaces/webgpu.idl @@ -118,6 +118,7 @@ enum GPUFeatureName { "bgra8unorm-storage", "float32-filterable", "clip-distances", + "dual-source-blending", }; [Exposed=(Window, Worker), SecureContext] @@ -751,6 +752,10 @@ enum GPUBlendFactor { "src-alpha-saturated", "constant", "one-minus-constant", + "src1", + "one-minus-src1", + "src1-alpha", + "one-minus-src1-alpha", }; enum GPUBlendOperation { @@ -1184,12 +1189,22 @@ enum GPUCanvasAlphaMode { "premultiplied", }; +enum GPUCanvasToneMappingMode { + "standard", + "extended", +}; + +dictionary GPUCanvasToneMapping { + GPUCanvasToneMappingMode mode = "standard"; +}; + dictionary GPUCanvasConfiguration { required GPUDevice device; required GPUTextureFormat format; GPUTextureUsageFlags usage = 0x10; // GPUTextureUsage.RENDER_ATTACHMENT sequence<GPUTextureFormat> viewFormats = []; PredefinedColorSpace colorSpace = "srgb"; + GPUCanvasToneMapping toneMapping = {}; GPUCanvasAlphaMode alphaMode = "opaque"; }; diff --git a/tests/wpt/tests/interfaces/webnn.idl b/tests/wpt/tests/interfaces/webnn.idl index 29c88122adc..ac8710049ab 100644 --- a/tests/wpt/tests/interfaces/webnn.idl +++ b/tests/wpt/tests/interfaces/webnn.idl @@ -11,7 +11,8 @@ WorkerNavigator includes NavigatorML; enum MLDeviceType { "cpu", - "gpu" + "gpu", + "npu" }; enum MLPowerPreference { @@ -131,7 +132,6 @@ dictionary MLClampOptions { partial interface MLGraphBuilder { MLOperand clamp(MLOperand input, optional MLClampOptions options = {}); - MLActivation clamp(optional MLClampOptions options = {}); }; partial interface MLGraphBuilder { @@ -513,7 +513,6 @@ partial interface MLGraphBuilder { partial interface MLGraphBuilder { MLOperand softmax(MLOperand input, unsigned long axis); - MLActivation softmax(unsigned long axis); }; partial interface MLGraphBuilder { diff --git a/tests/wpt/tests/interfaces/webrtc.idl b/tests/wpt/tests/interfaces/webrtc.idl index de6ba1420ce..6bfbdb898c5 100644 --- a/tests/wpt/tests/interfaces/webrtc.idl +++ b/tests/wpt/tests/interfaces/webrtc.idl @@ -345,13 +345,10 @@ dictionary RTCRtpCodecParameters : RTCRtpCodec { }; dictionary RTCRtpCapabilities { - required sequence<RTCRtpCodecCapability> codecs; + required sequence<RTCRtpCodec> codecs; required sequence<RTCRtpHeaderExtensionCapability> headerExtensions; }; -dictionary RTCRtpCodecCapability : RTCRtpCodec { -}; - dictionary RTCRtpHeaderExtensionCapability { required DOMString uri; }; diff --git a/tests/wpt/tests/interfaces/webxr-hit-test.idl b/tests/wpt/tests/interfaces/webxr-hit-test.idl index fa4fb71c9de..d01bffe2703 100644 --- a/tests/wpt/tests/interfaces/webxr-hit-test.idl +++ b/tests/wpt/tests/interfaces/webxr-hit-test.idl @@ -11,13 +11,13 @@ enum XRHitTestTrackableType { dictionary XRHitTestOptionsInit { required XRSpace space; - FrozenArray<XRHitTestTrackableType> entityTypes; + sequence<XRHitTestTrackableType> entityTypes; XRRay offsetRay; }; dictionary XRTransientInputHitTestOptionsInit { required DOMString profile; - FrozenArray<XRHitTestTrackableType> entityTypes; + sequence<XRHitTestTrackableType> entityTypes; XRRay offsetRay; }; @@ -48,8 +48,8 @@ partial interface XRSession { }; partial interface XRFrame { - FrozenArray<XRHitTestResult> getHitTestResults(XRHitTestSource hitTestSource); - FrozenArray<XRTransientInputHitTestResult> getHitTestResultsForTransientInput(XRTransientInputHitTestSource hitTestSource); + sequence<XRHitTestResult> getHitTestResults(XRHitTestSource hitTestSource); + sequence<XRTransientInputHitTestResult> getHitTestResultsForTransientInput(XRTransientInputHitTestSource hitTestSource); }; dictionary XRRayDirectionInit { diff --git a/tests/wpt/tests/permissions-policy/payment-allowed-by-permissions-policy.https.sub.html b/tests/wpt/tests/permissions-policy/payment-allowed-by-permissions-policy.https.sub.html index 27583d3c9c5..38f681593d1 100644 --- a/tests/wpt/tests/permissions-policy/payment-allowed-by-permissions-policy.https.sub.html +++ b/tests/wpt/tests/permissions-policy/payment-allowed-by-permissions-policy.https.sub.html @@ -48,7 +48,7 @@ expect_feature_available: expect_feature_unavailable_default, is_promise_test: true, }); - }, `${header} disallows Payment Request API cross-origin iframes.`); + }, `Payment Request API is disabled in cross-origin iframe if allow="payment" is not set and ${header}.`); promise_test(async (test) => { return test_feature_availability({ diff --git a/tests/wpt/tests/permissions-policy/payment-disabled-by-permissions-policy.https.sub.html b/tests/wpt/tests/permissions-policy/payment-disabled-by-permissions-policy.https.sub.html index b53eff996a4..ca86e4450ec 100644 --- a/tests/wpt/tests/permissions-policy/payment-disabled-by-permissions-policy.https.sub.html +++ b/tests/wpt/tests/permissions-policy/payment-disabled-by-permissions-policy.https.sub.html @@ -40,6 +40,7 @@ test, src: cross_origin_src, expect_feature_available: expect_feature_unavailable_default, + feature_name: "payment", is_promise_test: true, }); }, `${header} disallows Payment Request API in cross-origin iframes.`); diff --git a/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.html b/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.html index bd24daf6171..eb405d26c33 100644 --- a/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.html +++ b/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.html @@ -19,7 +19,7 @@ <p>Press left button down and then press middle button while holding down left button. Then release the buttons</p> <div id="target0"></div> <script> - var test_pointerrawupdate = async_test("pointerrawupdate event received"); + var test_pointerrawupdate = async_test("pointerrawupdate event not received"); var actions_promise; var pointerrawupdateReceived = false; diff --git a/tests/wpt/tests/resources/chromium/mock-pressure-service.js b/tests/wpt/tests/resources/chromium/mock-pressure-service.js index 016c6d97e73..8e205d31cb7 100644 --- a/tests/wpt/tests/resources/chromium/mock-pressure-service.js +++ b/tests/wpt/tests/resources/chromium/mock-pressure-service.js @@ -1,11 +1,12 @@ -import {PressureManager, PressureManagerReceiver, PressureStatus} from '/gen/services/device/public/mojom/pressure_manager.mojom.m.js' +import {PressureStatus} from '/gen/services/device/public/mojom/pressure_manager.mojom.m.js' import {PressureSource, PressureState} from '/gen/services/device/public/mojom/pressure_update.mojom.m.js' +import {WebPressureManager, WebPressureManagerReceiver} from '/gen/third_party/blink/public/mojom/compute_pressure/web_pressure_manager.mojom.m.js' -class MockPressureService { +class MockWebPressureService { constructor() { - this.receiver_ = new PressureManagerReceiver(this); + this.receiver_ = new WebPressureManagerReceiver(this); this.interceptor_ = - new MojoInterfaceInterceptor(PressureManager.$interfaceName); + new MojoInterfaceInterceptor(WebPressureManager.$interfaceName); this.interceptor_.oninterfacerequest = e => { this.receiver_.$.bindHandle(e.handle); }; @@ -124,4 +125,4 @@ class MockPressureService { } } -export const mockPressureService = new MockPressureService(); +export const mockPressureService = new MockWebPressureService(); diff --git a/tests/wpt/tests/resources/testdriver.js b/tests/wpt/tests/resources/testdriver.js index 2d1a89690cc..af7b3e06cd9 100644 --- a/tests/wpt/tests/resources/testdriver.js +++ b/tests/wpt/tests/resources/testdriver.js @@ -1100,6 +1100,14 @@ throw new Error("get_named_cookie() is not implemented by testdriver-vendor.js"); }, + async get_computed_role(element) { + throw new Error("get_computed_role is a testdriver.js function which cannot be run in this context."); + }, + + async get_computed_name(element) { + throw new Error("get_computed_name is a testdriver.js function which cannot be run in this context."); + }, + async send_keys(element, keys) { if (this.in_automation) { throw new Error("send_keys() is not implemented by testdriver-vendor.js"); diff --git a/tests/wpt/tests/scroll-animations/css/scroll-timeline-in-container-query.html b/tests/wpt/tests/scroll-animations/css/scroll-timeline-in-container-query.html index 742c35b2580..b22e8c90679 100644 --- a/tests/wpt/tests/scroll-animations/css/scroll-timeline-in-container-query.html +++ b/tests/wpt/tests/scroll-animations/css/scroll-timeline-in-container-query.html @@ -1,7 +1,7 @@ <!DOCTYPE html> <title>scroll-timeline and container queries</title> <link rel="help" src="https://drafts.csswg.org/scroll-animations-1/#scroll-timeline-shorthand"> -<link rel="help" src="https://drafts.csswg.org/css-contain-3/#container-queries"> +<link rel="help" src="https://drafts.csswg.org/css-conditional-5/#container-queries"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/web-animations/testcommon.js"></script> diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html new file mode 100644 index 00000000000..fac5882b056 --- /dev/null +++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html @@ -0,0 +1,21 @@ +<!doctype html> +<title>Same document navigation to text fragment directives, with force-load-at-top</title> +<meta charset=utf-8> +<link rel="help" href="https://wicg.github.io/ScrollToTextFragment/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/util.js"></script> +<script src="same-document-tests.js"></script> +<style> + div { + margin: 200vh 0 200vh 0; + } +</style> +<body onload="runTests()"> + <div id="text"> + This is a line of text. + </div> + <div id="elementid"> + This div has an id: 'elementid'. + </div> +</body> diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html.headers b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html.headers new file mode 100644 index 00000000000..33dcdbb01ff --- /dev/null +++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html.headers @@ -0,0 +1 @@ +Document-Policy: force-load-at-top diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html new file mode 100644 index 00000000000..85b9237755c --- /dev/null +++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html @@ -0,0 +1,21 @@ +<!doctype html> +<title>Same document navigation to text fragment directives, with force-load-at-top set to false</title> +<meta charset=utf-8> +<link rel="help" href="https://wicg.github.io/ScrollToTextFragment/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/util.js"></script> +<script src="same-document-tests.js"></script> +<style> + div { + margin: 200vh 0 200vh 0; + } +</style> +<body onload="runTests()"> + <div id="text"> + This is a line of text. + </div> + <div id="elementid"> + This div has an id: 'elementid'. + </div> +</body> diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html.headers b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html.headers new file mode 100644 index 00000000000..e500009f91c --- /dev/null +++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html.headers @@ -0,0 +1 @@ +Document-Policy: force-load-at-top=?0 diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.html b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.html index 85db2de0a22..ab96fb56e04 100644 --- a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.html +++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.html @@ -5,47 +5,7 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="resources/util.js"></script> -<script> - function reset() { - location.hash = ''; - window.scrollTo(0, 0); - } - - function runTests() { - // Ensure a simple text directive works correctly when navigated to the - // same document using `location.hash`. - promise_test(async t => { - assert_implements(document.fragmentDirective, 'Text directive not implemented'); - reset(); - - location.hash = ':~:text=line%20of%20text'; - await t.step_wait(() => window.scrollY > 0, "Wait for scroll"); - assert_true(isInViewport(document.getElementById('text')), 'Scrolled to text'); - }, 'Basic text directive navigation'); - - // Test that we correctly fallback to the element id when we have a text - // directive that doesn't match any text in the page. - promise_test(async t => { - assert_implements(document.fragmentDirective, 'Text directive not implemented'); - reset(); - - location.hash = 'elementid:~:text=textDoesntExist'; - await t.step_wait(() => window.scrollY > 0, "Wait for scroll"); - assert_true(isInViewport(document.getElementById('elementid')), 'Scrolled to `elementid`'); - }, 'Basic element id fallback'); - - // Test that we correctly fallback to the element id when we have a text - // directive that's malformed and won't be parsed. - promise_test(async t => { - assert_implements(document.fragmentDirective, 'Text directive not implemented'); - reset(); - - location.hash = 'elementid:~:text=,,,,,'; - await t.step_wait(() => window.scrollY > 0, "Wait for scroll"); - assert_true(isInViewport(document.getElementById('elementid')), 'Scrolled to `elementid`'); - }, 'Malformed text directive element id fallback'); - } -</script> +<script src="same-document-tests.js"></script> <style> div { margin: 200vh 0 200vh 0; diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.js b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.js new file mode 100644 index 00000000000..6531c8aec19 --- /dev/null +++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.js @@ -0,0 +1,48 @@ +function reset() { + location.hash = ''; + window.scrollTo(0, 0); +} + +function runTests() { + promise_test(async t => { + assert_implements(document.fragmentDirective, 'Text directive not implemented'); + reset(); + + location.hash = 'elementid'; + await t.step_wait(() => window.scrollY > 0, "Wait for scroll"); + assert_true(isInViewport(document.getElementById('elementid')), 'Scrolled to text'); + }, 'Basic element fragment navigation'); + + // Ensure a simple text directive works correctly when navigated to the + // same document using `location.hash`. + promise_test(async t => { + assert_implements(document.fragmentDirective, 'Text directive not implemented'); + reset(); + + location.hash = ':~:text=line%20of%20text'; + await t.step_wait(() => window.scrollY > 0, "Wait for scroll"); + assert_true(isInViewport(document.getElementById('text')), 'Scrolled to text'); + }, 'Basic text directive navigation'); + + // Test that we correctly fallback to the element id when we have a text + // directive that doesn't match any text in the page. + promise_test(async t => { + assert_implements(document.fragmentDirective, 'Text directive not implemented'); + reset(); + + location.hash = 'elementid:~:text=textDoesntExist'; + await t.step_wait(() => window.scrollY > 0, "Wait for scroll"); + assert_true(isInViewport(document.getElementById('elementid')), 'Scrolled to `elementid`'); + }, 'Basic element id fallback'); + + // Test that we correctly fallback to the element id when we have a text + // directive that's malformed and won't be parsed. + promise_test(async t => { + assert_implements(document.fragmentDirective, 'Text directive not implemented'); + reset(); + + location.hash = 'elementid:~:text=,,,,,'; + await t.step_wait(() => window.scrollY > 0, "Wait for scroll"); + assert_true(isInViewport(document.getElementById('elementid')), 'Scrolled to `elementid`'); + }, 'Malformed text directive element id fallback'); +} diff --git a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-across-scopes.html b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-across-scopes.html index 9f7772b9118..76e5af8c74b 100644 --- a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-across-scopes.html +++ b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-across-scopes.html @@ -18,15 +18,17 @@ } </style> +<!-- Since C is a direct reading flow item, it is visited first. --> +<!-- Since B,A are inside a display: contents, they are visited after. --> <div class="test-case" data-expect="C,B,A" - data-description="Grid items in shadow root that is a display contents grid item"> - <div class=wrapper id="root"> + data-description="Grid items in shadow host that is a display contents grid item"> + <div class=wrapper> <div style="display: contents"> <template shadowrootmode=open> <slot></slot> </template> - <button id="A2" style="order: 2">A</button> - <button id="B2" style="order: 1">B</button> + <button id="A" style="order: 2">A</button> + <button id="B" style="order: 1">B</button> </div> <button id="C" style="order: 3">C</button> </div> diff --git a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-on-shadow-host.html b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-on-shadow-host.html index f5a8b3c313e..c83e2283f50 100644 --- a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-on-shadow-host.html +++ b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-on-shadow-host.html @@ -18,9 +18,9 @@ } </style> -<div class="test-case" data-expect="root/B,root/A" +<div class="test-case" data-expect="host/B,host/A" data-description="Grid items in shadow host with delegatesFocus"> - <div id="root" class="wrapper" tabindex="0"> + <div id="host" class="wrapper" tabindex="0"> <template shadowrootmode="open" shadowrootdelegatesfocus> <button id="A" style="order: 2">A</button> <button id="B" style="order: 1">B</button> @@ -28,9 +28,9 @@ </div> </div> -<div class="test-case" data-expect="root2,root2/B,root2/A" +<div class="test-case" data-expect="host2,host2/B,host2/A" data-description="Grid items in shadow host without delegatesFocus"> - <div id="root2" class="wrapper" tabindex="0"> + <div id="host2" class="wrapper" tabindex="0"> <template shadowrootmode="open"> <button id="A" style="order: 2">A</button> <button id="B" style="order: 1">B</button> diff --git a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-with-slots.html b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-with-slots.html index 4cfdc79fa40..f52c9ebdc81 100644 --- a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-with-slots.html +++ b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-with-slots.html @@ -19,7 +19,7 @@ } </style> -<span id="root1" class="test-case" data-expect="b1,a1,c1" +<span id="host1" class="test-case" data-expect="b1,a1,c1" data-description="Slot assigned element is a grid with reading-flow."> <template shadowrootmode="open"> <style> @@ -38,7 +38,7 @@ </span> <br> -<span id="root2" class="test-case" data-expect="b2,a2,c2" +<span id="host2" class="test-case" data-expect="b2,a2,c2" data-description="Slot is a grid with reading-flow."> <template shadowrootmode="open"> <style> @@ -55,7 +55,7 @@ </span> <br> -<span id="root3" class="test-case" data-expect="root3/o2,root3/o4,o1,o3,o5" +<span id="host3" class="test-case" data-expect="host3/o2,host3/o4,o1,o3,o5" data-description="Slot is inside a grid container with reading-flow."> <template shadowrootmode="open"> <style> @@ -70,14 +70,14 @@ <button style="order: 2" id="o2">Order 2</button> </div> </template> - <button style="order: 5" id="o5">Order 5</button> - <button style="order: 1" id="o1">Order 1</button> - <button style="order: 3" id="o3">Order 3</button> + <button style="order: 5" id="o5">Slotted 5</button> + <button style="order: 1" id="o1">Slotted 1</button> + <button style="order: 3" id="o3">Slotted 3</button> </span> <br> -<span id="root4" class="test-case" - data-expect="root4/after,root4/before,b4,a4,d42,d41,d43,c4" +<span id="host4" class="test-case" + data-expect="host4/after,host4/before,b4,a4,d42,d41,d43,c4" data-description="Slot is a grid with reading-flow inside a grid container with reading-flow."> <template shadowrootmode="open"> <style> @@ -103,8 +103,8 @@ </span> <br> -<span id="root5" class="test-case" data-expect="b51,a51,c51,b52,a52,c52" - data-description="Slot is not inside a shadow root."> +<span id="host5" class="test-case" data-expect="b51,a51,c51,b52,a52,c52" + data-description="Slot is not inside a shadow host."> <div class="wrapper"> <slot name=slot1> <button style="order: 2" id="a51">Item A</button> @@ -120,7 +120,7 @@ </span> <br> -<span id="root6" class="test-case" data-expect="root6/after,root6/before,b6,a6" +<span id="host6" class="test-case" data-expect="host6/after,host6/before,b6,a6" data-description="Slot is a display contents inside a grid container."> <template shadowrootmode="open"> <style> @@ -140,7 +140,7 @@ </span> <br> -<span id="root7" class="test-case" data-expect="a7,b7,root7/after,root7/before" +<span id="host7" class="test-case" data-expect="a7,b7,host7/after,host7/before" data-description="Slot is a display block inside a grid container."> <template shadowrootmode="open"> <style> diff --git a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order.html b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order.html index 358f5c2988c..b2dd197413e 100644 --- a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order.html +++ b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order.html @@ -73,6 +73,20 @@ </div> </div> +<div class="test-case" data-expect="order1B,order2B,order3B,order4B,div1B,div2B" + data-description="Items in display contents are sorted in same grid container, with focusable display contents divs at the end of the focus sequence."> + <div class="wrapper"> + <div id="div1B" style="display: contents" tabindex="0"> + <button id="order3B" style="order: 3">Order 3</button> + <button id="order1B" style="order: 1">Order 1</button> + <div id="div2B" style="display: contents" tabindex="0"> + <button id="order4B" style="order: 4">Order 4</button> + <button id="order2B" style="order: 2">Order 2</button> + </div> + </div> + </div> +</div> + <div class="test-case" data-expect="d4,b4,c4,a4" data-description="Items in display block are not in parent grid container."> <div class="wrapper"> diff --git a/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe-iframe.html b/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe-iframe.html index 77f1163f363..cfc7d599a1b 100644 --- a/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe-iframe.html +++ b/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe-iframe.html @@ -310,6 +310,22 @@ handle_shared_worker.port.postMessage("Same-origin handle access"); break; } + case "unpartitioned": { + await MaybeSetStorageAccess("*", "*", "allowed"); + await test_driver.set_permission({ name: 'storage-access' }, 'denied'); + let hasUnpartitionedCookieAccess = await document.hasUnpartitionedCookieAccess(); + if (!hasUnpartitionedCookieAccess) { + message = "First-party cookies should be readable as the state is unpartitioned."; + } + const handle = await document.requestStorageAccess({BroadcastChannel: true}); + const handle_channel = handle.BroadcastChannel(id); + handle_channel.postMessage("Same-origin handle access"); + handle_channel.close(); + const local_channel = new BroadcastChannel(id); + local_channel.postMessage("Same-origin local access"); + local_channel.close(); + break; + } default: { message = "Unexpected type " + type; break; diff --git a/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html b/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html index a9247a00020..3d9f5bb1ef2 100644 --- a/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html +++ b/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html @@ -16,12 +16,24 @@ window.addEventListener("message", async (e) => { // Step 4 (storage-access-api/storage-access-beyond-cookies.{}.tentative.sub.https.html) try { await MaybeSetStorageAccess("*", "*", "blocked"); - await test_driver.set_permission({ name: 'storage-access' }, 'granted'); if (type == "cookies") { + await test_driver.set_permission({ name: 'storage-access' }, 'denied'); + let didSeeError = false; + try { + await document.requestStorageAccess({cookies: true}); + } catch (e) { + didSeeError = true; + } + if (!didSeeError) { + message = "First-party cookies should not be readable if storage access is denied."; + } + await test_driver.set_permission({ name: 'storage-access' }, 'granted'); let hasUnpartitionedCookieAccess = await document.hasUnpartitionedCookieAccess(); if (hasUnpartitionedCookieAccess) { message = "First-party cookies should not be readable before handle is loaded."; } + } else { + await test_driver.set_permission({ name: 'storage-access' }, 'granted'); } const handle = await test_driver.bless("fake user interaction", () => document.requestStorageAccess({all: true})); if (type == "cookies") { @@ -121,6 +133,12 @@ window.addEventListener("message", async (e) => { shared_worker.port.postMessage("Cross-origin handle access"); break; } + case "unpartitioned": { + const channel = handle.BroadcastChannel(id); + channel.postMessage("Cross-origin handle access"); + channel.close(); + break; + } default: { message = "Unexpected type " + type; break; diff --git a/tests/wpt/tests/storage-access-api/storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.js b/tests/wpt/tests/storage-access-api/storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.js new file mode 100644 index 00000000000..ddc5b49f481 --- /dev/null +++ b/tests/wpt/tests/storage-access-api/storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.js @@ -0,0 +1,40 @@ +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js + +'use strict'; + +// Here's the set-up for this test: +// Step 1 (top-frame) Set up listener for "HasAccess" message. +// Step 2 (top-frame) Open channel first-party broadcast. +// Step 3 (top-frame) Embed an iframe that's cross-site with top-frame. +// Step 4 (sub-frame) Try to use storage access API and send first-party broadcast. +// Step 5 (sub-frame) Embed an iframe that's same-origin with top-frame. +// Step 6 (sub-sub-frame) Try to use storage access API and send first-party broadcast when unpartitioned. +// Step 7 (sub-sub-frame) Send "HasAccess for unpartitioned" message to top-frame. +// Step 8 (top-frame) Receive "HasAccess for unpartitioned" message and cleanup. + +async_test(t => { + let broadcasts = []; + // Step 1 + window.addEventListener("message", t.step_func(e => { + if (e.data.type != "result") { + return; + } + // Step 8 + assert_equals(e.data.message, "HasAccess for unpartitioned", "Storage Access API should be accessible and return first-party data"); + assert_array_equals(broadcasts, ["Same-origin handle access"], "Should have only seen same-origin handle broadcasts"); + t.done(); + })); + + // Step 2 + const id = Date.now(); + const channel = new BroadcastChannel(id); + channel.onmessage = (event) => { + broadcasts.push(event.data); + }; + + // Step 3 + let iframe = document.createElement("iframe"); + iframe.src = "https://{{hosts[alt][]}}:{{ports[https][0]}}/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html?type=unpartitioned&id="+id; + document.body.appendChild(iframe); +}, "Verify StorageAccessAPIBeyondCookies when unpartitioned"); diff --git a/tests/wpt/tests/svg/painting/reftests/non-scaling-stroke-003.html b/tests/wpt/tests/svg/painting/reftests/non-scaling-stroke-003.html new file mode 100644 index 00000000000..147bf814d30 --- /dev/null +++ b/tests/wpt/tests/svg/painting/reftests/non-scaling-stroke-003.html @@ -0,0 +1,33 @@ +<!DOCTYPE html> +<html> +<title>non-scaling-stroke with screen transform</title> +<link rel="help" href="https://svgwg.org/svg2-draft/painting.html#PaintingVectorEffects" /> +<link rel="match" href="green-100x100.svg" /> +<body> + <style> + body { + border: none; + margin: 0; + width: 200px; + height: 200px; + transform: scale(0.5); + } + svg { + width: 100px; + height: 100px; + transform: scale(2) translate(-25px, -25px); + transform-origin: center; + transform-bxox: fill-box; + } + rect { + fill: red; + stroke: green; + stroke-width: 75px; + vector-effect: non-scaling-stroke screen; + } + </style> + <svg> + <rect width="75" height="75"/> + </svg> +</body> +</html> diff --git a/tests/wpt/tests/svg/styling/vector-effect-invalid.html b/tests/wpt/tests/svg/styling/vector-effect-invalid.html new file mode 100644 index 00000000000..ec49b88c599 --- /dev/null +++ b/tests/wpt/tests/svg/styling/vector-effect-invalid.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>vector-effect test: parsing vector-effect with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/SVG2/coords.html#VectorEffects"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_invalid_value("vector-effect", "none none"); +test_invalid_value("vector-effect", "none non-scaling-stroke"); +test_invalid_value("vector-effect", "non-scaling-stroke viewport screen"); +test_invalid_value("vector-effect", "none viewport"); +test_invalid_value("vector-effect", "none screen"); +test_invalid_value("vector-effect", "viewport"); +test_invalid_value("vector-effect", "screen"); +test_invalid_value("vector-effect", "screen non-scaling-stroke"); +</script> +</body> +</html> diff --git a/tests/wpt/tests/svg/styling/vector-effect-valid.html b/tests/wpt/tests/svg/styling/vector-effect-valid.html new file mode 100644 index 00000000000..9563db0523b --- /dev/null +++ b/tests/wpt/tests/svg/styling/vector-effect-valid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>vector-effect test: parsing vector-effect with invalid values</title> +<link rel="help" href="https://www.w3.org/TR/SVG2/coords.html#VectorEffects"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +</head> +<body> +<script> +test_valid_value("vector-effect", "none"); +test_valid_value("vector-effect", "non-scaling-stroke"); +test_valid_value("vector-effect", "non-scaling-stroke viewport", "non-scaling-stroke"); +test_valid_value("vector-effect", "non-scaling-stroke screen"); +</script> +</body> +</html> diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py index 4523f67e9c9..46c5885271a 100644 --- a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py +++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py @@ -241,3 +241,14 @@ class Network(BidiModule): def remove_intercept(self, intercept: str) -> Mapping[str, Any]: params: MutableMapping[str, Any] = {"intercept": intercept} return params + + @command + def set_cache_bypass( + self, bypass: bool, contexts: Optional[List[str]] = None + ) -> Mapping[str, Any]: + params: MutableMapping[str, Any] = {"bypass": bypass} + + if contexts is not None: + params["contexts"] = contexts + + return params diff --git a/tests/wpt/tests/tools/wptrunner/requirements.txt b/tests/wpt/tests/tools/wptrunner/requirements.txt index ae71bbbad6d..565055c6e3d 100644 --- a/tests/wpt/tests/tools/wptrunner/requirements.txt +++ b/tests/wpt/tests/tools/wptrunner/requirements.txt @@ -7,4 +7,4 @@ packaging==24.0 pillow==10.3.0 requests==2.32.3 six==1.16.0 -urllib3==2.2.1 +urllib3==2.2.2 diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py index 3b1bd6411e2..d0d9f1d3421 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py @@ -119,6 +119,8 @@ def executor_kwargs(logger, test_type, test_environment, run_info_data, subsuite # flag is no-op. Required to avoid flakiness in tests, as the infobar # changes the viewport, which can happen during the test run. chrome_options["args"].append("--disable-infobars") + # For WebNN tests. + chrome_options["args"].append("--enable-features=WebMachineLearningNeuralNetwork") # Classify `http-private`, `http-public` and https variants in the # appropriate IP address spaces. diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py b/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py index 0a5dfb1fd18..003a6acbd99 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py @@ -478,19 +478,18 @@ class TestRunnerManager(threading.Thread): self.logger.debug("TestRunnerManager main loop terminating, starting cleanup") skipped_tests = [] - while True: - _, _, test, _, _ = self.get_next_test() - if test is None: - break + test_group, subsuite, _, _ = self.test_source.current_group + while test_group is not None and len(test_group) > 0: + test = test_group.popleft() skipped_tests.append(test) if skipped_tests: self.logger.critical( - f"Tests left in the queue: {skipped_tests[0].id!r} " + f"Tests left in the queue: {subsuite}:{skipped_tests[0].id!r} " f"and {len(skipped_tests) - 1} others" ) for test in skipped_tests[1:]: - self.logger.debug(f"Test left in the queue: {test.id!r}") + self.logger.debug(f"Test left in the queue: {subsuite}:{test.id!r}") force_stop = (not isinstance(self.state, RunnerManagerState.stop) or self.state.force_stop) @@ -957,6 +956,8 @@ class TestRunnerManager(threading.Thread): try: self.browser.stop(force=force) self.ensure_runner_stopped() + except (OSError, PermissionError): + self.logger.error("Failed to stop the runner") finally: self.cleanup() diff --git a/tests/wpt/tests/touch-events/single-touch-vertical-rl.html b/tests/wpt/tests/touch-events/single-touch-vertical-rl.html index 3c34a6d9c96..623e57e8a11 100644 --- a/tests/wpt/tests/touch-events/single-touch-vertical-rl.html +++ b/tests/wpt/tests/touch-events/single-touch-vertical-rl.html @@ -12,28 +12,44 @@ <script> setup({explicit_done: true}); - async function run() { - document.documentElement.addEventListener("touchstart", function onTouchStart(event) { - test(function() { - assert_equals(event.changedTouches[0].clientX, 10, "clientX"); - assert_equals(event.changedTouches[0].clientY, 20, "clientY"); - }, "touchstart client coordinates are correct in vertical-rl"); + function onEvent(target, eventName, validator) { + return new Promise((resolve) => { + const listener = (event) => { + validator(event); + resolve(); + }; + target.addEventListener(eventName, listener, { once: true }); }); + } - document.documentElement.addEventListener("click", function onClick(event) { - test(function() { - assert_equals(event.clientX, 10, "clientX"); - assert_equals(event.clientY, 20, "clientY"); - }, "click client coordinates are correct in vertical-rl"); - done(); - }); + async function run() { + promise_test(async () => { + const touchstart_promise = onEvent(document.documentElement, + "touchstart", (event) => { + assert_equals(event.changedTouches[0].clientX, 10, + "touchstart clientX coordinates are correct in vertical-rl"); + assert_equals(event.changedTouches[0].clientY, 20, + "touchstart clientX coordinates are correct in vertical-rl"); + }); + + const click_promise = onEvent(document.documentElement, + "click", (event) => { + assert_equals(event.clientX, 10, + "click clientX coordinates are correct in vertical-rl"); + assert_equals(event.clientY, 20, + "click clientY coordinates are correct in vertical-rl"); + }); - let actions = new test_driver.Actions() + const actions = new test_driver.Actions() .addPointer("touchPointer1", "touch") .pointerMove(10, 20) .pointerDown() .pointerUp(); - await actions.send(); + + const actions_promise = actions.send(); + await Promise.all([actions_promise, click_promise, touchstart_promise]); + done(); + }, "touch & click events in vertical-rl mode have correct coordinates"); } </script> <style> diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting.html b/tests/wpt/tests/trusted-types/trusted-types-reporting.html index 42759093604..5a7a64b52bd 100644 --- a/tests/wpt/tests/trusted-types/trusted-types-reporting.html +++ b/tests/wpt/tests/trusted-types/trusted-types-reporting.html @@ -89,7 +89,8 @@ function flush() { expect_throws(_ => { var o = document.createElement('object'); - o.type = "application/x-shockwave-flash"; + o.type = "video/mp4"; + o.data = "dummy.webm"; document.body.appendChild(o); }); } diff --git a/tests/wpt/tests/url/resources/toascii.json b/tests/wpt/tests/url/resources/toascii.json index bca28b4a1e4..d02c4c7e866 100644 --- a/tests/wpt/tests/url/resources/toascii.json +++ b/tests/wpt/tests/url/resources/toascii.json @@ -172,5 +172,31 @@ { "input": "≯", "output": "xn--hdh" + }, + { + "comment": "NFC normalization (forbidden < and > characters are normalized to valid ones)", + "input": "=\u0338", + "output": "xn--1ch" + }, + { + "input": "<\u0338", + "output": "xn--gdh" + }, + { + "input": ">\u0338", + "output": "xn--hdh" + }, + { + "comment": "Same with inserted IDNA ignored code point", + "input": "=\u00AD\u0338", + "output": "xn--1ch" + }, + { + "input": "<\u00AD\u0338", + "output": "xn--gdh" + }, + { + "input": ">\u00AD\u0338", + "output": "xn--hdh" } ] diff --git a/tests/wpt/tests/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html b/tests/wpt/tests/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html index c1232730eab..0d5c7ca6ed5 100644 --- a/tests/wpt/tests/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html +++ b/tests/wpt/tests/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html @@ -1,6 +1,6 @@ <!DOCTYPE html> <title>script-src blocks Wasm execution</title> -<meta http-equiv="Content-Security-Policy" content="script-src 'unsafe-inline';"> +<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script> @@ -18,4 +18,4 @@ assert_array_equals(log, ["script-src-elem"]); })); </script> -<script type="module" src="./resources/execute-start.wasm"></script> +<script type="module" src="https://{{hosts[alt][]}}/resources/execute-start.wasm"></script> diff --git a/tests/wpt/tests/webcodecs/video-encoder-h264.https.any.js b/tests/wpt/tests/webcodecs/video-encoder-h264.https.any.js index 82370a8338c..e63024a64b4 100644 --- a/tests/wpt/tests/webcodecs/video-encoder-h264.https.any.js +++ b/tests/wpt/tests/webcodecs/video-encoder-h264.https.any.js @@ -5,22 +5,37 @@ // META: variant=?baseline // META: variant=?main // META: variant=?high +// META: variant=?high-6.2 promise_test(async t => { const codecString = { '?baseline': 'avc1.42001e', '?main': 'avc1.4d001e', '?high': 'avc1.64001e', + '?high-6.2': 'avc1.64003e', }[location.search]; - let encoderConfig = { - codec: codecString, - width: 640, - height: 480, - displayWidth: 800, - displayHeight: 600, - avc: {format: 'avc'}, // AVC makes it easy to check the profile. - }; + var encoderConfig; + if (location.search != "?high-6.2") { + encoderConfig = { + codec: codecString, + width: 640, + height: 480, + displayWidth: 800, + displayHeight: 600, + avc: {format: 'avc'}, // AVC makes it easy to check the profile. + }; + } else { + // high profile + level 6.2 + encoderConfig = { + codec: codecString, + width: 7680, + height: 4320, + displayWidth: 7680, + displayHeight: 4320, + avc: {format: 'avc'}, // AVC makes it easy to check the profile. + }; + } let supported = false; try { @@ -44,8 +59,8 @@ promise_test(async t => { let encoder = new VideoEncoder(codecInit); encoder.configure(encoderConfig); - let frame1 = createFrame(640, 480, 0); - let frame2 = createFrame(640, 480, 33333); + let frame1 = createFrame(encoderConfig.width, encoderConfig.height, 0); + let frame2 = createFrame(encoderConfig.width, encoderConfig.height, 33333); t.add_cleanup(() => { frame1.close(); frame2.close(); diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py index fb690807f21..14fa2260561 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py @@ -9,7 +9,7 @@ from .. import assert_navigation_info pytestmark = pytest.mark.asyncio -EMPTY_PAGE = "/webdriver/tests/bidi/support/empty.html" +EMPTY_PAGE = "/webdriver/tests/bidi/browsing_context/support/empty.html" FRAGMENT_NAVIGATED_EVENT = "browsingContext.fragmentNavigated" @@ -88,7 +88,7 @@ async def test_navigation_id( await subscribe_events([FRAGMENT_NAVIGATED_EVENT]) - on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + on_fragment_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) target_url = url(EMPTY_PAGE + '#foo') result = await bidi_session.browsing_context.navigate( @@ -101,7 +101,7 @@ async def test_navigation_id( 'timestamp': any_int, 'url': target_url }, - await wait_for_future_safe(on_frame_navigated), + await wait_for_future_safe(on_fragment_navigated), ) @@ -111,7 +111,7 @@ async def test_url_with_base_tag(bidi_session, subscribe_events, inline, new_tab await subscribe_events(events=[FRAGMENT_NAVIGATED_EVENT]) - on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + on_fragment_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) target_url = url + '#foo' await bidi_session.browsing_context.navigate(context=new_tab["context"], url=target_url, wait="complete") @@ -121,7 +121,7 @@ async def test_url_with_base_tag(bidi_session, subscribe_events, inline, new_tab 'context': new_tab["context"], 'url': target_url }, - await wait_for_future_safe(on_frame_navigated), + await wait_for_future_safe(on_fragment_navigated), ) @@ -143,7 +143,7 @@ async def test_iframe( await subscribe_events([FRAGMENT_NAVIGATED_EVENT]) - on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + on_fragment_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) target_url = url(EMPTY_PAGE + '#bar') await bidi_session.browsing_context.navigate( @@ -155,7 +155,7 @@ async def test_iframe( 'timestamp': any_int, 'url': target_url }, - await wait_for_future_safe(on_frame_navigated), + await wait_for_future_safe(on_fragment_navigated), ) @@ -178,7 +178,7 @@ async def test_document_location( await subscribe_events([FRAGMENT_NAVIGATED_EVENT]) - on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + on_fragment_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) target_url = url(EMPTY_PAGE + hash_after) @@ -200,7 +200,7 @@ async def test_document_location( 'timestamp': any_int, 'url': target_url }, - await wait_for_future_safe(on_frame_navigated), + await wait_for_future_safe(on_fragment_navigated), ) @@ -223,7 +223,7 @@ async def test_browsing_context_navigate( await subscribe_events([FRAGMENT_NAVIGATED_EVENT]) - on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + on_fragment_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) target_url = url(EMPTY_PAGE + hash_after) @@ -236,7 +236,7 @@ async def test_browsing_context_navigate( 'timestamp': any_int, 'url': target_url }, - await wait_for_future_safe(on_frame_navigated), + await wait_for_future_safe(on_fragment_navigated), ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py index 0af0a71c2b8..8ae06d28904 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py @@ -6,7 +6,7 @@ from ... import any_int, recursive_compare pytestmark = pytest.mark.asyncio -EMPTY_PAGE = "/webdriver/tests/bidi/support/empty.html" +EMPTY_PAGE = "/webdriver/tests/bidi/browsing_context/support/empty.html" FRAGMENT_NAVIGATED_EVENT = "browsingContext.fragmentNavigated" diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py index c562ddbd9a2..5bbc616960f 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py @@ -113,8 +113,7 @@ async def test_prompt( @pytest.mark.capabilities({"unhandledPromptBehavior": {'default': 'ignore'}}) -@pytest.mark.parametrize("accept", [False]) -# @pytest.mark.parametrize("accept", [True, False]) +@pytest.mark.parametrize("accept", [True, False]) async def test_beforeunload( bidi_session, subscribe_events, diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/navigate.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/navigate.py index 934fd3554f7..1f003f4aa69 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/navigate.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/navigate.py @@ -1,6 +1,7 @@ import asyncio import pytest +from webdriver.bidi.modules.script import ContextTarget from . import navigate_and_assert from ... import any_string @@ -86,3 +87,23 @@ async def test_relative_url(bidi_session, new_tab, url): url_after = url_before.replace("empty.html", "other.html") await navigate_and_assert(bidi_session, new_tab, url_after, "interactive") + + +async def test_same_document_navigation_in_before_unload(bidi_session, new_tab, url): + url_before = url( + "/webdriver/tests/bidi/browsing_context/support/empty.html" + ) + + await navigate_and_assert(bidi_session, new_tab, url_before, "complete") + + await bidi_session.script.evaluate( + expression="""window.addEventListener( + 'beforeunload', + () => history.replaceState(null, 'initial', window.location.href), + false + );""", + target=ContextTarget(new_tab["context"]), + await_promise=False) + + url_after = url_before.replace("empty.html", "other.html") + await navigate_and_assert(bidi_session, new_tab, url_after, "complete") diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/handler.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/handler.py new file mode 100644 index 00000000000..2aa67056f80 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/handler.py @@ -0,0 +1,63 @@ +import pytest +import pytest_asyncio + +from ... import recursive_compare + +pytestmark = pytest.mark.asyncio + +USER_PROMPT_OPENED_EVENT = "browsingContext.userPromptOpened" + + +@pytest_asyncio.fixture +async def check_handler( + bidi_session, + subscribe_events, + inline, + new_tab, + wait_for_event, + wait_for_future_safe, +): + async def check_handler(expected_handler): + await subscribe_events(events=[USER_PROMPT_OPENED_EVENT]) + on_entry = wait_for_event(USER_PROMPT_OPENED_EVENT) + + await bidi_session.browsing_context.navigate( + context=new_tab["context"], + url=inline(f"<script>window.alert('foo')</script>"), + ) + + event = await wait_for_future_safe(on_entry) + + expected = { + "context": new_tab["context"], + "type": "alert", + "handler": expected_handler, + } + recursive_compare(expected, event) + + return check_handler + + +@pytest.mark.capabilities({"unhandledPromptBehavior": "accept"}) +async def test_accept(check_handler): + await check_handler("accept") + + +@pytest.mark.capabilities({"unhandledPromptBehavior": "accept and notify"}) +async def test_accept_and_notify(check_handler): + await check_handler("accept") + + +@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss"}) +async def test_dismiss(check_handler): + await check_handler("dismiss") + + +@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss and notify"}) +async def test_dismiss_and_notify(check_handler): + await check_handler("dismiss") + + +@pytest.mark.capabilities({"unhandledPromptBehavior": "ignore"}) +async def test_ignore(check_handler): + await check_handler("ignore") diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/cookies.py b/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/cookies.py index 5f594c4b029..d403f279d51 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/cookies.py +++ b/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/cookies.py @@ -31,7 +31,7 @@ async def test_modify_cookies( # Navigate away from about:blank to make sure document.cookies can be used. await bidi_session.browsing_context.navigate( context=top_context["context"], - url=url("/webdriver/tests/bidi/support/empty.html"), + url=url("/webdriver/tests/bidi/network/support/empty.html"), wait="complete" ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/headers.py b/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/headers.py index d6af7094a64..ed4839ee806 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/headers.py +++ b/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/headers.py @@ -79,7 +79,7 @@ async def test_override_cookies( # Navigate away from about:blank to make sure document.cookies can be used. await bidi_session.browsing_context.navigate( context=top_context["context"], - url=url("/webdriver/tests/bidi/support/empty.html"), + url=url("/webdriver/tests/bidi/network/support/empty.html"), wait="complete" ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/continue_with_auth/action.py b/tests/wpt/tests/webdriver/tests/bidi/network/continue_with_auth/action.py index e4cf6da08f4..dccdd6a9308 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/network/continue_with_auth/action.py +++ b/tests/wpt/tests/webdriver/tests/bidi/network/continue_with_auth/action.py @@ -17,13 +17,24 @@ async def test_cancel( setup_blocked_request, subscribe_events, wait_for_event, bidi_session, wait_for_future_safe ): request = await setup_blocked_request("authRequired") + + # Additionally subscribe to network.responseCompleted await subscribe_events(events=[RESPONSE_COMPLETED_EVENT]) + # Track all received network.responseCompleted events in the events array + events = [] + + async def on_event(method, data): + events.append(data) + + remove_listener = bidi_session.add_event_listener( + RESPONSE_COMPLETED_EVENT, on_event + ) + on_response_completed = wait_for_event(RESPONSE_COMPLETED_EVENT) await bidi_session.network.continue_with_auth(request=request, action="cancel") - await on_response_completed - response_event = await wait_for_future_safe(on_response_completed) + assert_response_event( response_event, expected_response={ @@ -32,6 +43,13 @@ async def test_cancel( }, ) + # check no other responseCompleted event was received + wait = AsyncPoll(bidi_session, timeout=0.5) + with pytest.raises(TimeoutException): + await wait.until(lambda _: len(events) > 1) + + remove_listener() + async def test_default( setup_blocked_request, subscribe_events, bidi_session @@ -63,7 +81,7 @@ async def test_default( async def test_provideCredentials( - setup_blocked_request, subscribe_events, bidi_session + setup_blocked_request, subscribe_events, wait_for_event, bidi_session, wait_for_future_safe ): # Setup unique username / password because browsers cache credentials. username = "test_provideCredentials" @@ -84,17 +102,25 @@ async def test_provideCredentials( ) credentials = AuthCredentials(username=username, password=password) + + on_response_completed = wait_for_event(RESPONSE_COMPLETED_EVENT) await bidi_session.network.continue_with_auth( request=request, action="provideCredentials", credentials=credentials ) + response_event = await wait_for_future_safe(on_response_completed) - # TODO: At the moment, the specification does not expect to receive a - # responseCompleted event for each authentication attempt, so only assert - # the last event. See https://github.com/w3c/webdriver-bidi/issues/627 + assert_response_event( + response_event, + expected_response={ + "status": 200, + "statusText": "OK", + }, + ) - # Wait until a a responseCompleted event with status 200 OK is received. - wait = AsyncPoll(bidi_session, message="Didn't receive response completed events") - await wait.until(lambda _: len(events) > 0 and events[-1]["response"]["status"] == 200) + # check no other responseCompleted event was received + wait = AsyncPoll(bidi_session, timeout=0.5) + with pytest.raises(TimeoutException): + await wait.until(lambda _: len(events) > 1) remove_listener() @@ -132,16 +158,24 @@ async def test_provideCredentials_wrong_credentials( # Continue with the correct credentials correct_credentials = AuthCredentials(username=username, password=password) + + on_response_completed = wait_for_event(RESPONSE_COMPLETED_EVENT) await bidi_session.network.continue_with_auth( request=request, action="provideCredentials", credentials=correct_credentials ) + response_event = await wait_for_future_safe(on_response_completed) - # TODO: At the moment, the specification does not expect to receive a - # responseCompleted event for each authentication attempt, so only assert - # the last event. See https://github.com/w3c/webdriver-bidi/issues/627 + assert_response_event( + response_event, + expected_response={ + "status": 200, + "statusText": "OK", + }, + ) - # Wait until a a responseCompleted event with status 200 OK is received. - wait = AsyncPoll(bidi_session, message="Didn't receive response completed events") - await wait.until(lambda _: len(events) > 0 and events[-1]["response"]["status"] == 200) + # check no other responseCompleted event was received + wait = AsyncPoll(bidi_session, timeout=0.5) + with pytest.raises(TimeoutException): + await wait.until(lambda _: len(events) > 1) remove_listener() diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/__init__.py new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/__init__.py diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/conftest.py b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/conftest.py new file mode 100644 index 00000000000..969641b8fd2 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/conftest.py @@ -0,0 +1,17 @@ +import pytest_asyncio + +from .. import RESPONSE_COMPLETED_EVENT + + +@pytest_asyncio.fixture +async def is_request_from_cache( + wait_for_event, fetch, wait_for_future_safe, top_context +): + async def is_request_from_cache(url, context=top_context): + on_response_completed = wait_for_event(RESPONSE_COMPLETED_EVENT) + await fetch(url, context=context) + event = await wait_for_future_safe(on_response_completed) + + return event["response"]["fromCache"] + + return is_request_from_cache diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/contexts_tentative.py b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/contexts_tentative.py new file mode 100644 index 00000000000..946d6d9a7eb --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/contexts_tentative.py @@ -0,0 +1,99 @@ +import pytest +import random + +from .. import RESPONSE_COMPLETED_EVENT + +pytestmark = pytest.mark.asyncio + + +async def test_one_context( + bidi_session, + setup_network_test, + top_context, + new_tab, + url, + inline, + is_request_from_cache, +): + await bidi_session.browsing_context.navigate( + context=new_tab["context"], + url=inline("foo"), + wait="complete", + ) + + await setup_network_test( + events=[RESPONSE_COMPLETED_EVENT], + contexts=[top_context["context"], new_tab["context"]], + ) + + cached_url = url( + f"/webdriver/tests/support/http_handlers/cached.py?status=200&nocache={random.random()}" + ) + + # The first request/response is used to fill the browser cache, + # so we expect fromCache to be False here. + assert await is_request_from_cache(url=cached_url, context=top_context) is False + + # In the second tab it will request from cache. + assert await is_request_from_cache(url=cached_url, context=new_tab) is True + + # Disable cache only in one context. + await bidi_session.network.set_cache_bypass( + bypass=True, contexts=[new_tab["context"]] + ) + + assert await is_request_from_cache(url=cached_url, context=top_context) is True + assert await is_request_from_cache(url=cached_url, context=new_tab) is False + + # Reset to default behavior. + await bidi_session.network.set_cache_bypass( + bypass=False, contexts=[new_tab["context"]] + ) + + +@pytest.mark.parametrize("type_hint", ["tab", "window"]) +async def test_new_context( + bidi_session, + setup_network_test, + top_context, + url, + inline, + is_request_from_cache, + type_hint, +): + await setup_network_test(events=[RESPONSE_COMPLETED_EVENT]) + + cached_url = url( + f"/webdriver/tests/support/http_handlers/cached.py?status=200&nocache={random.random()}" + ) + + # The first request/response is used to fill the browser cache, + # so we expect fromCache to be False here. + assert await is_request_from_cache(url=cached_url) is False + + # In the second tab it will request from cache. + assert await is_request_from_cache(url=cached_url) is True + + # Disable cache only in one context. + await bidi_session.network.set_cache_bypass( + bypass=True, contexts=[top_context["context"]] + ) + + assert await is_request_from_cache(url=cached_url, context=top_context) is False + + # Create a new tab. + new_context = await bidi_session.browsing_context.create(type_hint=type_hint) + + await bidi_session.browsing_context.navigate( + context=new_context["context"], + url=inline("<div>foo</div>"), + wait="complete", + ) + + # Make sure that the new context still has cache enabled. + assert await is_request_from_cache(cached_url, context=new_context) is True + + # Reset to default behavior. + await bidi_session.network.set_cache_bypass( + bypass=False, contexts=[top_context["context"]] + ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/invalid_tentative.py b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/invalid_tentative.py new file mode 100644 index 00000000000..678d5d313f8 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/invalid_tentative.py @@ -0,0 +1,32 @@ +import pytest +import webdriver.bidi.error as error + +pytestmark = pytest.mark.asyncio + + +@pytest.mark.parametrize("value", [None, "foo", 42, {}, []]) +async def test_params_bypass_invalid_type(bidi_session, value): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.network.set_cache_bypass(bypass=value) + + +@pytest.mark.parametrize("value", ["foo", 42, False, {}]) +async def test_params_contexts_invalid_type(bidi_session, value): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.network.set_cache_bypass(bypass=True, contexts=value) + + +async def test_params_contexts_invalid_value_empty_array(bidi_session): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.network.set_cache_bypass(bypass=True, contexts=[]) + + +@pytest.mark.parametrize("value", [None, 42, False, {}, []]) +async def test_params_contexts_invalid_array_element_type(bidi_session, value): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.network.set_cache_bypass(bypass=True, contexts=[value]) + + +async def test_params_contexts_invalid_array_element_value(bidi_session): + with pytest.raises(error.NoSuchFrameException): + await bidi_session.network.set_cache_bypass(bypass=True, contexts=["foo"]) diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/set_cache_bypass_tentative.py b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/set_cache_bypass_tentative.py new file mode 100644 index 00000000000..42166ef253b --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/set_cache_bypass_tentative.py @@ -0,0 +1,68 @@ +import pytest +import random + +from .. import RESPONSE_COMPLETED_EVENT + +pytestmark = pytest.mark.asyncio + + +async def test_set_cache_bypass( + bidi_session, setup_network_test, url, is_request_from_cache +): + await setup_network_test(events=[RESPONSE_COMPLETED_EVENT]) + + cached_url = url( + f"/webdriver/tests/support/http_handlers/cached.py?status=200&nocache={random.random()}" + ) + + # The first request/response is used to fill the browser cache, + # so we expect fromCache to be False here. + assert await is_request_from_cache(cached_url) is False + + # The second request for the same URL has to be read from the local cache. + assert await is_request_from_cache(cached_url) is True + + await bidi_session.network.set_cache_bypass(bypass=True) + + assert await is_request_from_cache(cached_url) is False + + await bidi_session.network.set_cache_bypass(bypass=False) + + assert await is_request_from_cache(cached_url) is True + + +@pytest.mark.parametrize("type_hint", ["tab", "window"]) +async def test_new_context( + bidi_session, setup_network_test, url, inline, is_request_from_cache, type_hint +): + await setup_network_test(events=[RESPONSE_COMPLETED_EVENT]) + + cached_url = url( + f"/webdriver/tests/support/http_handlers/cached.py?status=200&nocache={random.random()}" + ) + + # The first request/response is used to fill the browser cache, + # so we expect fromCache to be False here. + assert await is_request_from_cache(cached_url) is False + + # The second request for the same URL has to be read from the local cache. + assert await is_request_from_cache(cached_url) is True + + await bidi_session.network.set_cache_bypass(bypass=True) + + assert await is_request_from_cache(cached_url) is False + + # Create a new tab. + new_context = await bidi_session.browsing_context.create(type_hint=type_hint) + + await bidi_session.browsing_context.navigate( + context=new_context["context"], + url=inline("<div>foo</div>"), + wait="complete", + ) + + # Make sure that the new context still has cache disabled. + assert await is_request_from_cache(cached_url, context=new_context) is False + + # Reset to default behavior. + await bidi_session.network.set_cache_bypass(bypass=False) diff --git a/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py b/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py index 3e97cfe3ce4..7c88abcd2e0 100644 --- a/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py +++ b/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py @@ -558,7 +558,7 @@ def fetch(bidi_session, top_context, configuration): body_arg = "" if post_data is not None: - body_arg = f"body: {post_data}," + body_arg = f"body: {json.dumps(post_data)}," timeout_in_seconds = timeout_in_seconds * configuration["timeout_multiplier"] # Wait for fetch() to resolve a response and for response.text() to diff --git a/tests/wpt/tests/webnn/resources/test_data/gelu.json b/tests/wpt/tests/webnn/resources/test_data/gelu.json index 41422797591..3adf4b6a2b6 100644 --- a/tests/wpt/tests/webnn/resources/test_data/gelu.json +++ b/tests/wpt/tests/webnn/resources/test_data/gelu.json @@ -107,6 +107,73 @@ } }, { + "name": "gelu float32 1D constant tensor", + "inputs": { + "input": { + "shape": [24], + "data": [ + 0.878292441368103, + -0.09706497937440872, + 0.1367187649011612, + 0.46406492590904236, + -0.26635801792144775, + -0.8252315521240234, + 0.8530909419059753, + 0.3846154808998108, + 0.6772316694259644, + -0.4811072051525116, + 0.2983909249305725, + 0.6777864098548889, + -0.526228129863739, + 0.3497541546821594, + -0.12918996810913086, + 0.5853934288024902, + -0.8950720429420471, + 0.028302494436502457, + -0.09901237487792969, + -0.8838679790496826, + -0.596120297908783, + 0.31863871216773987, + 0.4794037640094757, + -0.06489315629005432 + ], + "type": "float32", + "constant": true + } + }, + "expected": { + "name": "output", + "shape": [24], + "data": [ + 0.7115113139152527, + -0.0447796992957592, + 0.07579325884580612, + 0.3149605691432953, + -0.10520657151937485, + -0.16885890066623688, + 0.6851989030838013, + 0.24989959597587585, + 0.508513331413269, + -0.1516546905040741, + 0.18419598042964935, + 0.509049117565155, + -0.15753419697284698, + 0.22270187735557556, + -0.05795508995652199, + 0.42198580503463745, + -0.1659233123064041, + 0.014470770955085754, + -0.04560155048966408, + -0.1665063202381134, + -0.1642593890428543, + 0.19914908707141876, + 0.3279957175254822, + -0.030767757445573807 + ], + "type": "float32" + } + }, + { "name": "gelu float16 1D tensor", "inputs": { "input": { diff --git a/tests/wpt/tests/webnn/resources/utils_validation.js b/tests/wpt/tests/webnn/resources/utils_validation.js index 2ac308242a1..119450be4c1 100644 --- a/tests/wpt/tests/webnn/resources/utils_validation.js +++ b/tests/wpt/tests/webnn/resources/utils_validation.js @@ -213,6 +213,13 @@ function validateTwoInputsBroadcastable(operationName) { } promise_test(async t => { for (let dataType of allWebNNOperandDataTypes) { + if (!context.opSupportLimits().input.dataTypes.includes(dataType)) { + assert_throws_js( + TypeError, + () => builder.input( + `inputA${++inputAIndex}`, {dataType, dimensions1D})); + continue; + } for (let dimensions of allWebNNDimensionsArray) { if (dimensions.length > 0) { const inputA = builder.input(`inputA${++inputAIndex}`, {dataType, dimensions}); @@ -245,9 +252,24 @@ function validateTwoInputsOfSameDataType(operationName) { for (let subOperationName of operationNameArray) { promise_test(async t => { for (let dataType of allWebNNOperandDataTypes) { + if (!context.opSupportLimits().input.dataTypes.includes(dataType)) { + assert_throws_js( + TypeError, + () => builder.input( + `inputA${++inputAIndex}`, {dataType, dimensions1D})); + continue; + } for (let dimensions of allWebNNDimensionsArray) { const inputA = builder.input(`inputA${++inputAIndex}`, {dataType, dimensions}); for (let dataTypeB of allWebNNOperandDataTypes) { + if (!context.opSupportLimits().input.dataTypes.includes( + dataTypeB)) { + assert_throws_js( + TypeError, + () => builder.input( + `inputB${++inputBIndex}`, {dataTypeB, dimensions1D})); + continue; + } if (dataType !== dataTypeB) { const inputB = builder.input(`inputB${++inputBIndex}`, {dataType: dataTypeB, dimensions}); assert_throws_js( @@ -283,6 +305,13 @@ function validateOptionsAxes(operationName) { // TypeError is expected if any of options.axes elements is not an unsigned long interger promise_test(async t => { for (let dataType of allWebNNOperandDataTypes) { + if (!context.opSupportLimits().input.dataTypes.includes(dataType)) { + assert_throws_js( + TypeError, + () => builder.input( + `inputA${++inputAIndex}`, {dataType, dimensions1D})); + continue; + } for (let dimensions of allWebNNDimensionsArray) { const rank = getRank(dimensions); if (rank >= 1) { @@ -310,6 +339,13 @@ function validateOptionsAxes(operationName) { // to the size of input promise_test(async t => { for (let dataType of allWebNNOperandDataTypes) { + if (!context.opSupportLimits().input.dataTypes.includes(dataType)) { + assert_throws_js( + TypeError, + () => builder.input( + `inputA${++inputAIndex}`, {dataType, dimensions1D})); + continue; + } for (let dimensions of allWebNNDimensionsArray) { const rank = getRank(dimensions); if (rank >= 1) { @@ -329,6 +365,13 @@ function validateOptionsAxes(operationName) { // TypeError is expected if two or more values are same in the axes sequence promise_test(async t => { for (let dataType of allWebNNOperandDataTypes) { + if (!context.opSupportLimits().input.dataTypes.includes(dataType)) { + assert_throws_js( + TypeError, + () => builder.input( + `inputA${++inputAIndex}`, {dataType, dimensions1D})); + continue; + } for (let dimensions of allWebNNDimensionsArray) { const rank = getRank(dimensions); if (rank >= 2) { @@ -357,35 +400,41 @@ function validateOptionsAxes(operationName) { */ function validateUnaryOperation( operationName, supportedDataTypes, alsoBuildActivation = false) { - // TODO: crbug.com/345271830 - use context.opSupportLimits to get supported - // data types for current context. - for (let dataType of supportedDataTypes) { - for (let dimensions of allWebNNDimensionsArray) { - promise_test( - async t => { - const input = builder.input(`input`, {dataType, dimensions}); - const output = builder[operationName](input); - assert_equals(output.dataType(), dataType); - assert_array_equals(output.shape(), dimensions); - }, - `[${operationName}] Test building an operator, dataType = ${ - dataType}, dimensions = [${dimensions}]`); + promise_test(async t => { + for (let dataType of supportedDataTypes) { + if (!context.opSupportLimits().input.dataTypes.includes(dataType)) { + assert_throws_js( + TypeError, + () => builder.input( + `inputA${++inputAIndex}`, {dataType, dimensions1D})); + continue; + } + for (let dimensions of allWebNNDimensionsArray) { + const input = builder.input(`input`, {dataType, dimensions}); + const output = builder[operationName](input); + assert_equals(output.dataType(), dataType); + assert_array_equals(output.shape(), dimensions); + } } - } + }, `[${operationName}] Test building an unary operator with supported type.`); const unsupportedDataTypes = new Set(allWebNNOperandDataTypes).difference(new Set(supportedDataTypes)); - for (let dataType of unsupportedDataTypes) { - for (let dimensions of allWebNNDimensionsArray) { - promise_test( - async t => { - const input = builder.input(`input`, {dataType, dimensions}); - assert_throws_js(TypeError, () => builder[operationName](input)); - }, - `[${operationName}] Throw if the dataType is not supported, dataType = ${ - dataType}, dimensions = [${dimensions}]`); + promise_test(async t => { + for (let dataType of unsupportedDataTypes) { + if (!context.opSupportLimits().input.dataTypes.includes(dataType)) { + assert_throws_js( + TypeError, + () => builder.input( + `inputA${++inputAIndex}`, {dataType, dimensions1D})); + continue; + } + for (let dimensions of allWebNNDimensionsArray) { + const input = builder.input(`input`, {dataType, dimensions}); + assert_throws_js(TypeError, () => builder[operationName](input)); + } } - } + }, `[${operationName}] Throw if the dataType is not supported for an unary operator.`); if (alsoBuildActivation) { promise_test(async t => { diff --git a/tests/wpt/tests/webnn/validation_tests/clamp.https.any.js b/tests/wpt/tests/webnn/validation_tests/clamp.https.any.js index ce1394802ed..96600c22f8b 100644 --- a/tests/wpt/tests/webnn/validation_tests/clamp.https.any.js +++ b/tests/wpt/tests/webnn/validation_tests/clamp.https.any.js @@ -10,6 +10,13 @@ validateUnaryOperation('clamp', allWebNNOperandDataTypes); promise_test(async t => { const options = {minValue: 1.0, maxValue: 3.0}; + if (!context.opSupportLimits().input.dataTypes.includes('uint32')) { + assert_throws_js( + TypeError, + () => builder.input( + 'input', {dataType: 'uint32', dimensions: [1, 2, 3]})); + return; + } const input = builder.input('input', {dataType: 'uint32', dimensions: [1, 2, 3]}); const output = builder.clamp(input, options); @@ -19,6 +26,13 @@ promise_test(async t => { promise_test(async t => { const options = {minValue: 0, maxValue: 0}; + if (!context.opSupportLimits().input.dataTypes.includes('int32')) { + assert_throws_js( + TypeError, + () => builder.input( + 'input', {dataType: 'int32', dimensions: [1, 2, 3, 4]})); + return; + } const input = builder.input('input', {dataType: 'int32', dimensions: [1, 2, 3, 4]}); const output = builder.clamp(input, options); @@ -28,6 +42,13 @@ promise_test(async t => { promise_test(async t => { const options = {minValue: 3.0, maxValue: 1.0}; + if (!context.opSupportLimits().input.dataTypes.includes('uint8')) { + assert_throws_js( + TypeError, + () => + builder.input('input', {dataType: 'uint8', dimensions: [1, 2, 3]})); + return; + } const input = builder.input('input', {dataType: 'uint8', dimensions: [1, 2, 3]}); assert_throws_js(TypeError, () => builder.clamp(input, options)); diff --git a/tests/wpt/tests/webnn/validation_tests/elementwise-binary.https.any.js b/tests/wpt/tests/webnn/validation_tests/elementwise-binary.https.any.js index 7b3fec938bb..8e86731a0fd 100644 --- a/tests/wpt/tests/webnn/validation_tests/elementwise-binary.https.any.js +++ b/tests/wpt/tests/webnn/validation_tests/elementwise-binary.https.any.js @@ -53,6 +53,24 @@ const tests = [ function runElementWiseBinaryTests(operatorName, tests) { tests.forEach(test => { promise_test(async t => { + if (!context.opSupportLimits().input.dataTypes.includes( + test.a.dataType)) { + assert_throws_js( + TypeError, + () => builder.input( + 'a', + {dataType: test.a.dataType, dimensions: test.a.dimensions})); + return; + } + if (!context.opSupportLimits().input.dataTypes.includes( + test.b.dataType)) { + assert_throws_js( + TypeError, + () => builder.input( + 'b', + {dataType: test.b.dataType, dimensions: test.b.dimensions})); + return; + } const a = builder.input( 'a', {dataType: test.a.dataType, dimensions: test.a.dimensions}); const b = builder.input( diff --git a/tests/wpt/tests/webrtc/RTCDataChannel-close.html b/tests/wpt/tests/webrtc/RTCDataChannel-close.html index 64534fc5070..e215d95ed9a 100644 --- a/tests/wpt/tests/webrtc/RTCDataChannel-close.html +++ b/tests/wpt/tests/webrtc/RTCDataChannel-close.html @@ -45,6 +45,40 @@ for (const options of [{}, {negotiated: true, id: 0}]) { assert_true(closingSeen, 'Closing event was seen'); }, `Close ${mode} causes closing and close event to be called`); + promise_test(async t => { + const pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc2.close()); + const mainChannel1 = pc1.createDataChannel('not-counted', options); + exchangeIceCandidates(pc1, pc2); + await exchangeOfferAnswer(pc1, pc2); + if (!options.negotiated) { + await new Promise(r => pc2.ondatachannel = r); + } + + for (let i = 1; i <= 10; i++) { + if ('id' in options) { + options.id = i; + } + const sender = pc1.createDataChannel(`dc ${i}`, options); + const senderOpen = new Promise(r => sender.onopen = r); + let receiver; + if (options.negotiated) { + receiver = pc2.createDataChannel(`dc ${i}`, options); + } else { + receiver = (await new Promise(r => pc2.ondatachannel = r)).channel; + } + receiver.onmessage = ({data}) => receiver.send(data); + await senderOpen; + sender.send(`ping ${i}`); + const {data} = await new Promise(r => sender.onmessage = r); + assert_equals(data, `ping ${i}`); + sender.close(); + await new Promise(r => receiver.onclose = r); + } + }, `Repeated open/send/echo/close ${mode} works`); + promise_test(async t => { const pc1 = new RTCPeerConnection(); t.add_cleanup(() => pc1.close()); |