diff options
author | Servo WPT Sync <32481905+servo-wpt-sync@users.noreply.github.com> | 2024-01-01 15:22:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-01 20:22:51 +0000 |
commit | f58541e65263daf60d3f5c3f8ad075b09d25223b (patch) | |
tree | 62beb0b6d04b2cde5bd37e15b8bea3d6dea53836 | |
parent | 7964a4f582d5697e0ea55203dd4ec25d69dbed97 (diff) | |
download | servo-f58541e65263daf60d3f5c3f8ad075b09d25223b.tar.gz servo-f58541e65263daf60d3f5c3f8ad075b09d25223b.zip |
Sync WPT with upstream (01-01-2024) (#30962)
* Update web-platform-tests to revision b'2a639a9fe4cdefd4ecd124a3f30caf631150eea5'
* Update expectations
---------
Co-authored-by: sagudev <16504129+sagudev@users.noreply.github.com>
114 files changed, 2933 insertions, 140 deletions
diff --git a/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini index 282ab0b2525..cdeaf7f7080 100644 --- a/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/meta-legacy-layout/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -7,7 +7,7 @@ expected: FAIL [Opening a blob URL in a new window immediately before revoking it works.] - expected: FAIL + expected: TIMEOUT [Opening a blob URL in a noopener about:blank window immediately before revoking it works.] expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/ec_importKey.https.any.js.ini b/tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/ec_importKey.https.any.js.ini index b3b3f10b250..3a18f6eda12 100644 --- a/tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/ec_importKey.https.any.js.ini +++ b/tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/ec_importKey.https.any.js.ini @@ -647,6 +647,96 @@ [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] expected: FAIL + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-256}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-256}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-384}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-384}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-521}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-521}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + [ec_importKey.https.any.worker.html] [Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, [\])] @@ -1296,3 +1386,93 @@ [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-256}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-256}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-384}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-384}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-521}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-521}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/meta-legacy-layout/css/CSS2/linebox/inline-negative-margin-001.html.ini index a057f038339..5e3a96e5999 100644 --- a/tests/wpt/meta-legacy-layout/css/CSS2/linebox/inline-negative-margin-001.html.ini +++ b/tests/wpt/meta-legacy-layout/css/CSS2/linebox/inline-negative-margin-001.html.ini @@ -8,8 +8,5 @@ [[data-expected-height\] 3] expected: FAIL - [[data-expected-height\] 1] - expected: FAIL - - [[data-expected-height\] 2] + [[data-expected-height\] 4] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-color/animation/opacity-animation-ending-correctly-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-color/animation/opacity-animation-ending-correctly-001.html.ini deleted file mode 100644 index 304b1579ca4..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-color/animation/opacity-animation-ending-correctly-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[opacity-animation-ending-correctly-001.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-color/oklch-l-over-1-1.html.ini b/tests/wpt/meta-legacy-layout/css/css-color/oklch-l-over-1-1.html.ini new file mode 100644 index 00000000000..3a1231976ac --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-color/oklch-l-over-1-1.html.ini @@ -0,0 +1,2 @@ +[oklch-l-over-1-1.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-color/oklch-l-over-1-2.html.ini b/tests/wpt/meta-legacy-layout/css/css-color/oklch-l-over-1-2.html.ini new file mode 100644 index 00000000000..9f918b7b99f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-color/oklch-l-over-1-2.html.ini @@ -0,0 +1,2 @@ +[oklch-l-over-1-2.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transitions/parsing/transition-computed.html.ini b/tests/wpt/meta-legacy-layout/css/css-transitions/parsing/transition-computed.html.ini index 715a238447f..260afeb675a 100644 --- a/tests/wpt/meta-legacy-layout/css/css-transitions/parsing/transition-computed.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-transitions/parsing/transition-computed.html.ini @@ -43,3 +43,9 @@ [Default transition value] expected: FAIL + + [Property transition value 'all, all'] + expected: FAIL + + [Transition with a delay but no duration] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transitions/render-blocking/no-transition-from-ua-to-blocking-stylesheet.html.ini b/tests/wpt/meta-legacy-layout/css/css-transitions/render-blocking/no-transition-from-ua-to-blocking-stylesheet.html.ini deleted file mode 100644 index e35a452a186..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-transitions/render-blocking/no-transition-from-ua-to-blocking-stylesheet.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[no-transition-from-ua-to-blocking-stylesheet.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-values/round-function.html.ini b/tests/wpt/meta-legacy-layout/css/css-values/round-function.html.ini index 97413927e24..ec981e25fe1 100644 --- a/tests/wpt/meta-legacy-layout/css/css-values/round-function.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-values/round-function.html.ini @@ -610,3 +610,231 @@ [calc(0px - round(to-zero, -18px, 10px)) should be used-value-equivalent to 10px] expected: FAIL + + [round(23, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(18, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(15, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(13, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(-13, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(-18, 10) should be used-value-equivalent to -20] + expected: FAIL + + [round(nearest, 23, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(nearest, 18, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(nearest, 15, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(nearest, 13, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(nearest, -13, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(nearest, -18, 10) should be used-value-equivalent to -20] + expected: FAIL + + [round(down, 23, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(down, 18, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(down, 15, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(down, 13, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(down, -13, 10) should be used-value-equivalent to -20] + expected: FAIL + + [round(down, -18, 10) should be used-value-equivalent to -20] + expected: FAIL + + [round(up, 23, 10) should be used-value-equivalent to 30] + expected: FAIL + + [round(up, 18, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(up, 15, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(up, 13, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(up, -13, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(up, -18, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(to-zero, 23, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(to-zero, 18, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(to-zero, 15, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(to-zero, 13, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(to-zero, -13, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(to-zero, -18, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(23, -10) should be used-value-equivalent to 20] + expected: FAIL + + [round(18, -10) should be used-value-equivalent to 20] + expected: FAIL + + [round(15, -10) should be used-value-equivalent to 20] + expected: FAIL + + [round(13, -10) should be used-value-equivalent to 10] + expected: FAIL + + [round(-13, -10) should be used-value-equivalent to -10] + expected: FAIL + + [round(-18, -10) should be used-value-equivalent to -20] + expected: FAIL + + [round(10, 5) should be used-value-equivalent to 10] + expected: FAIL + + [round(nearest, 10, 5) should be used-value-equivalent to 10] + expected: FAIL + + [round(down, 10, 5) should be used-value-equivalent to 10] + expected: FAIL + + [round(up, 10, 5) should be used-value-equivalent to 10] + expected: FAIL + + [round(to-zero, 10, 5) should be used-value-equivalent to 10] + expected: FAIL + + [round(-10, 5) should be used-value-equivalent to -10] + expected: FAIL + + [round(nearest, -10, 5) should be used-value-equivalent to -10] + expected: FAIL + + [round(down, -10, 5) should be used-value-equivalent to -10] + expected: FAIL + + [round(up, -10, 5) should be used-value-equivalent to -10] + expected: FAIL + + [round(to-zero, -10, 5) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(23, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(18, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(15, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(13, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(-13, 10)) should be used-value-equivalent to 10] + expected: FAIL + + [calc(0 - round(-18, 10)) should be used-value-equivalent to 20] + expected: FAIL + + [calc(0 - round(nearest, 23, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(nearest, 18, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(nearest, 15, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(nearest, 13, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(nearest, -13, 10)) should be used-value-equivalent to 10] + expected: FAIL + + [calc(0 - round(nearest, -18, 10)) should be used-value-equivalent to 20] + expected: FAIL + + [calc(0 - round(down, 23, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(down, 18, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(down, 15, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(down, 13, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(down, -13, 10)) should be used-value-equivalent to 20] + expected: FAIL + + [calc(0 - round(down, -18, 10)) should be used-value-equivalent to 20] + expected: FAIL + + [calc(0 - round(up, 23, 10)) should be used-value-equivalent to -30] + expected: FAIL + + [calc(0 - round(up, 18, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(up, 15, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(up, 13, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(up, -13, 10)) should be used-value-equivalent to 10] + expected: FAIL + + [calc(0 - round(up, -18, 10)) should be used-value-equivalent to 10] + expected: FAIL + + [calc(0 - round(to-zero, 23, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(to-zero, 18, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(to-zero, 15, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(to-zero, 13, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(to-zero, -13, 10)) should be used-value-equivalent to 10] + expected: FAIL + + [calc(0 - round(to-zero, -18, 10)) should be used-value-equivalent to 10] + 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 d52a3e77a70..314dca9c1f5 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 @@ -1,6 +1,3 @@ [MediaQueryList-addListener-removeListener.html] [listeners are called when <iframe> is resized] expected: FAIL - - [listeners are called correct number of times] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/cssom-view/scroll-behavior-smooth-navigation.html.ini b/tests/wpt/meta-legacy-layout/css/cssom-view/scroll-behavior-smooth-navigation.html.ini index f4121525268..647c7fb29b2 100644 --- a/tests/wpt/meta-legacy-layout/css/cssom-view/scroll-behavior-smooth-navigation.html.ini +++ b/tests/wpt/meta-legacy-layout/css/cssom-view/scroll-behavior-smooth-navigation.html.ini @@ -4,3 +4,6 @@ [Make sure the page is ready for animation.] expected: FAIL + + [Smooth scrolling while doing history navigation.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/selectors/invalidation/part-dir.html.ini b/tests/wpt/meta-legacy-layout/css/selectors/invalidation/part-dir.html.ini new file mode 100644 index 00000000000..282bbbc4feb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/selectors/invalidation/part-dir.html.ini @@ -0,0 +1,2 @@ +[part-dir.html] + expected: ERROR diff --git a/tests/wpt/meta-legacy-layout/css/selectors/invalidation/part-lang.html.ini b/tests/wpt/meta-legacy-layout/css/selectors/invalidation/part-lang.html.ini new file mode 100644 index 00000000000..397cee29510 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/selectors/invalidation/part-lang.html.ini @@ -0,0 +1,2 @@ +[part-lang.html] + expected: ERROR diff --git a/tests/wpt/meta-legacy-layout/css/selectors/invalidation/state-in-has.html.ini b/tests/wpt/meta-legacy-layout/css/selectors/invalidation/state-in-has.html.ini new file mode 100644 index 00000000000..1fc3633c748 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/selectors/invalidation/state-in-has.html.ini @@ -0,0 +1,4 @@ +[state-in-has.html] + expected: ERROR + [Test :has() invalidation with :state() pseudo-classes] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/selectors/parsing/parse-part.html.ini b/tests/wpt/meta-legacy-layout/css/selectors/parsing/parse-part.html.ini index 43cb05fcda9..9b36dc69a56 100644 --- a/tests/wpt/meta-legacy-layout/css/selectors/parsing/parse-part.html.ini +++ b/tests/wpt/meta-legacy-layout/css/selectors/parsing/parse-part.html.ini @@ -52,3 +52,9 @@ [":dir(ltr)::part(foo)" should be a valid selector] expected: FAIL + + ["::part(foo):lang(en)" should be a valid selector] + expected: FAIL + + ["::part(foo):dir(ltr)" should be a valid selector] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-images.sub.tentative.html.ini b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-images.sub.tentative.html.ini index f9de5391ad6..53e4435fa09 100644 --- a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-images.sub.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-images.sub.tentative.html.ini @@ -146,3 +146,15 @@ [list-style-image sec-fetch-site - HTTPS downgrade-upgrade] expected: FAIL + + [background-image sec-fetch-site - Not sent to non-trustworthy same-origin destination] + expected: TIMEOUT + + [border-image sec-fetch-site - Not sent to non-trustworthy cross-site destination] + expected: FAIL + + [background-image sec-fetch-site - HTTPS downgrade (header not sent)] + expected: TIMEOUT + + [border-image sec-fetch-site - HTTPS downgrade (header not sent)] + 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 1bca09f21d6..5f9a07f92f0 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 link click] - expected: FAIL - [Navigating to a different document with form submission] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini index d19311abec9..51fd557bd7f 100644 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini @@ -7,9 +7,3 @@ [load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank#foo'] expected: FAIL - - [load & pageshow events do not fire on contentWindow of <iframe> element created with src=''] - expected: FAIL - - [load & pageshow events do not fire on contentWindow of <iframe> element created with src='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 deleted file mode 100644 index 7dc346632a4..00000000000 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini +++ /dev/null @@ -1,3 +0,0 @@ -[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/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini deleted file mode 100644 index 5d17a8e9419..00000000000 --- a/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[traverse_the_history_2.html] - [Multiple history traversals, last would be aborted] - expected: FAIL diff --git a/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini index d6188c03424..d6188c03424 100644 --- a/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini diff --git a/tests/wpt/meta/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini index 4b4820d1729..4b4820d1729 100644 --- a/tests/wpt/meta/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/the-window-object/open-close/creating_browsing_context_test_01.html.ini diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html.ini deleted file mode 100644 index addd810a23d..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/manual/drawing-text-to-the-canvas/canvas.2d.disconnected-font-size-math.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[canvas.2d.disconnected-font-size-math.html] - expected: CRASH 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 962b70e3442..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: [FAIL, PASS, 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/supported-elements.html.ini b/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini index 8acae84e1e4..d169bd2e9fa 100644 --- a/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini +++ b/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini @@ -1,5 +1,4 @@ [supported-elements.html] - expected: TIMEOUT [Contenteditable element should support autofocus] expected: FAIL @@ -10,7 +9,7 @@ expected: FAIL [Area element should support autofocus] - expected: TIMEOUT + expected: FAIL [Host element with delegatesFocus should support autofocus] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index e5994e21efc..25d9964f057 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,5 +1,4 @@ [iframe_sandbox_popups_escaping-1.html] type: testharness - expected: CRASH [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini index 6f7461b9472..f9138fb999a 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini @@ -1,4 +1,5 @@ [iframe_sandbox_popups_nonescaping-1.html] type: testharness + expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index d5fd800f09d..ff6467094b8 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,4 +1,3 @@ [iframe_sandbox_popups_nonescaping-3.html] - expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini index 7682a4830bf..7682a4830bf 100644 --- a/tests/wpt/meta/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini diff --git a/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/text-plain.window.js.ini b/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/text-plain.window.js.ini index 1f6bcc936e8..eb09f8a4ada 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/text-plain.window.js.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/text-plain.window.js.ini @@ -178,3 +178,9 @@ [text/plain: backslash in name (formdata event)] expected: FAIL + + [text/plain: \\r\\n in name (formdata event)] + expected: FAIL + + [text/plain: single quote in name (normal form)] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/forms/the-input-element/range.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/forms/the-input-element/range.html.ini index d29bdc28652..9517557c3a6 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/forms/the-input-element/range.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/forms/the-input-element/range.html.ini @@ -5,3 +5,6 @@ [Skip ASCII whitespace within input] expected: FAIL + + [range overflow styles] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini index cc18f512574..071b4378add 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini @@ -11,6 +11,3 @@ [Check that rel=noopener with target=_parent does a normal load] expected: FAIL - - [Check that rel=noopener with target=_self does a normal load] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini new file mode 100644 index 00000000000..6339abba6d9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/semantics/scripting-1/the-script-element/defer-script/async-script.html.ini @@ -0,0 +1,4 @@ +[async-script.html?reload] + expected: ERROR + +[async-script.html?default] 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 deleted file mode 100644 index b8bdf33cb65..00000000000 --- a/tests/wpt/meta-legacy-layout/html/syntax/parsing/DOMContentLoaded-defer.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[DOMContentLoaded-defer.html] - [The end: DOMContentLoaded and defer scripts] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/webappapis/dynamic-markup-insertion/document-write/module-delayed.html.ini b/tests/wpt/meta-legacy-layout/html/webappapis/dynamic-markup-insertion/document-write/module-delayed.html.ini new file mode 100644 index 00000000000..fc0233f5241 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/webappapis/dynamic-markup-insertion/document-write/module-delayed.html.ini @@ -0,0 +1,3 @@ +[module-delayed.html] + [async document.write in a module] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini b/tests/wpt/meta-legacy-layout/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini index 6dcac6f75ac..7237f5792de 100644 --- a/tests/wpt/meta-legacy-layout/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini +++ b/tests/wpt/meta-legacy-layout/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini @@ -4,7 +4,7 @@ expected: FAIL [Rejection handler on pending-then-rejected promise] - expected: FAIL + expected: TIMEOUT [Thenable resolution] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini b/tests/wpt/meta-legacy-layout/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini index 8bcf3a07de4..31bfd644df0 100644 --- a/tests/wpt/meta-legacy-layout/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini +++ b/tests/wpt/meta-legacy-layout/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini @@ -1,10 +1,9 @@ [promise-job-entry.html] - expected: TIMEOUT [Fulfillment handler on fulfilled promise] expected: FAIL [Rejection handler on pending-then-rejected promise] - expected: TIMEOUT + expected: FAIL [Sanity check: this all works as expected with no promises involved] expected: FAIL @@ -16,4 +15,4 @@ expected: FAIL [Fulfillment handler on pending-then-fulfilled promise] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/streams/readable-streams/crashtests/strategy-worker-terminate.html.ini b/tests/wpt/meta-legacy-layout/streams/readable-streams/crashtests/strategy-worker-terminate.html.ini deleted file mode 100644 index 964697e81e9..00000000000 --- a/tests/wpt/meta-legacy-layout/streams/readable-streams/crashtests/strategy-worker-terminate.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[strategy-worker-terminate.html] - expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/meta-legacy-layout/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index 507ad3c1831..b00949498c2 100644 --- a/tests/wpt/meta-legacy-layout/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/meta-legacy-layout/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -925,3 +925,9 @@ [X SNR (-103.80436093960746 dB) is not greater than or equal to 65.737. Got -103.80436093960746.] expected: FAIL + + [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[15073\]\t-5.6928118767401656e-15\t6.4605611562728882e-1\t6.4605611562729448e-1\t1.0000000000000087e+0\t3.8985999999999999e-3\n\t[15074\]\t2.5936898589134216e-1\t5.9696805477142334e-1\t3.3759906888008118e-1\t5.6552283858697683e-1\t3.8985999999999999e-3\n\tMax AbsError of 6.4605611562729448e-1 at index of 15073.\n\tMax RelError of 1.0000000000000087e+0 at index of 15073.\n] + expected: FAIL + + [X SNR (46.132795778267024 dB) is not greater than or equal to 65.737. Got 46.132795778267024.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/webmessaging/with-ports/017.html.ini b/tests/wpt/meta-legacy-layout/webmessaging/with-ports/017.html.ini new file mode 100644 index 00000000000..c7946fc91b4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/webmessaging/with-ports/017.html.ini @@ -0,0 +1,4 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/workers/semantics/run-a-worker/003.html.ini b/tests/wpt/meta-legacy-layout/workers/semantics/run-a-worker/003.html.ini index f4318e59a8d..e083d83077b 100644 --- a/tests/wpt/meta-legacy-layout/workers/semantics/run-a-worker/003.html.ini +++ b/tests/wpt/meta-legacy-layout/workers/semantics/run-a-worker/003.html.ini @@ -1,5 +1,4 @@ [003.html] type: testharness - expected: ERROR [shared] expected: FAIL diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 368180deb31..95fac131cbc 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -5187,6 +5187,13 @@ {} ] ], + "delete-from-ruby-at-start-of-button.html": [ + "0159e5281594b6736b5bacae4d9f4f0d3e35c53c", + [ + null, + {} + ] + ], "delete-immediately-after-changing-input-type-from-time.html": [ "e608b8c86612d73f731d3127127e768328c7644c", [ @@ -155355,6 +155362,32 @@ {} ] ], + "oklch-l-over-1-1.html": [ + "4eb3cda8462639e740c4e606252fc9784dab580e", + [ + null, + [ + [ + "/css/css-color/oklch-l-over-1-ref.html", + "==" + ] + ], + {} + ] + ], + "oklch-l-over-1-2.html": [ + "de8b1a6cdd05c32267cded3a633456db04127888", + [ + null, + [ + [ + "/css/css-color/oklch-l-over-1-ref.html", + "==" + ] + ], + {} + ] + ], "opacity-overlapping-letters.html": [ "65ab3742de39205341e04b18001deea3f7be192d", [ @@ -195484,6 +195517,19 @@ {} ] ], + "stretch-grid-item-button-overflow.html": [ + "0b86a7e9ac9ca874c3b4a3121cec61f3ec40a766", + [ + null, + [ + [ + "/css/css-grid/stretch-grid-item-button-overflow-ref.html", + "==" + ] + ], + {} + ] + ], "stretch-grid-item-checkbox-input.html": [ "c6a34a8288db1e034dfba0856ef0e4f9ec16d8f8", [ @@ -195510,6 +195556,19 @@ {} ] ], + "stretch-grid-item-text-input-overflow.html": [ + "0814b3dcf058f4fba01ba6517480078469a492f7", + [ + null, + [ + [ + "/css/css-grid/stretch-grid-item-text-input-overflow-ref.html", + "==" + ] + ], + {} + ] + ], "subgrid": { "abs-pos-001.html": [ "e524ec2d767c043516546733411d7e25e6eff05b", @@ -225064,6 +225123,19 @@ } ] ], + "position-sticky-in-fixed-container.html": [ + "359ec2fd337e76e5ba1540754c87375c4090c1e2", + [ + null, + [ + [ + "/css/css-position/sticky/position-sticky-in-fixed-container-ref.html", + "==" + ] + ], + {} + ] + ], "position-sticky-inline.html": [ "6bd49befe5a66f66ea554d066ae52e5b7bb40ab9", [ @@ -342578,7 +342650,46 @@ {} ] ] - } + }, + "side-effects-of-animations-current.html": [ + "b0de72bdbf9bcffef88ca5dc12bbe0f9ef239823", + [ + null, + [ + [ + "/web-animations/animation-model/side-effects-of-animations-current-ref.html", + "==" + ] + ], + {} + ] + ], + "side-effects-of-animations-in-effect.html": [ + "ff53c98d79373bd048f5ec96051cb129d7ed5795", + [ + null, + [ + [ + "/web-animations/animation-model/side-effects-of-animations-in-effect-ref.html", + "==" + ] + ], + {} + ] + ], + "side-effects-of-animations-none.html": [ + "b460ecc27fd1487075b9871e656e5a3bdbfb5399", + [ + null, + [ + [ + "/web-animations/animation-model/side-effects-of-animations-none-ref.html", + "==" + ] + ], + {} + ] + ] }, "responsive": { "toggle-animated-iframe-visibility.html": [ @@ -369849,6 +369960,10 @@ } }, "nonce-hiding": { + "dangling-html-or-body.html.headers": [ + "67d4c81e589d487b25bdb73a89f8ba1c49a0c431", + [] + ], "nonces.html.headers": [ "daf482b5aba4ff052b94c99f422910727c600aae", [] @@ -393205,6 +393320,10 @@ "fd1deb36f4a7632beaf6cda83b4fa2ba9f46cf96", [] ], + "oklch-l-over-1-ref.html": [ + "2c7815c5f0e408197241367e2bb38e7b7df8dfdc", + [] + ], "opacity-overlapping-letters-ref.html": [ "bab1f80f685f9e52ea74b8b98f5153dcd9516624", [] @@ -407153,6 +407272,10 @@ [] ] }, + "stretch-grid-item-button-overflow-ref.html": [ + "900c794af10e750ce98b50dd5d15016d963f471e", + [] + ], "stretch-grid-item-checkbox-input-ref.html": [ "6a75b0fcfb985a932c3cad3e982af38cba8047dd", [] @@ -407161,6 +407284,10 @@ "401a2bfc72d354d9ea3e1d11d5b09649cc4fce00", [] ], + "stretch-grid-item-text-input-overflow-ref.html": [ + "ebc0c8ef9cee175211c0e7823b611b40c452ab50", + [] + ], "subgrid": { "WEB_FEATURES.yml": [ "9fffbbfce96606a6ee1ec889e01b80ff976ba42a", @@ -412704,6 +412831,10 @@ "88d45a7e6db3fbf7c52b28a0602686f27f1e64af", [] ], + "position-sticky-in-fixed-container-ref.html": [ + "7d8e1489951bbdcdceef43c3c98f41f1ddd3bab0", + [] + ], "position-sticky-inline-ref.html": [ "d3b4869afe639ba723f97a73767e66df8a6c5707", [] @@ -431794,7 +431925,7 @@ [] ], "delete.js": [ - "3c2855e28f535ec95ef3c870169d067cdb6efa23", + "131c99b1d5af0fcef45c270ea76596bc31af12a0", [] ], "fontname.js": [ @@ -431814,7 +431945,7 @@ [] ], "forwarddelete.js": [ - "5e76ee898853bd77ab812566494dbed20b422f9d", + "ea590a4fbba137fa1b265f15effe5bd03a7f2225", [] ], "hilitecolor.js": [ @@ -431834,7 +431965,7 @@ [] ], "inserthtml.js": [ - "841f5493c90ee915f435028252e23b6c993ad3bd", + "350f0a15569cdfe06f94b7bb65a59e804fb3a669", [] ], "insertimage.js": [ @@ -431850,7 +431981,7 @@ [] ], "insertparagraph.js": [ - "608b7ceccebafe6aadba0a9c02a97bee1b56e395", + "7a5fe7158b2c6db56da0b97bf759dba33680bfe6", [] ], "inserttext.js": [ @@ -431886,7 +432017,7 @@ [] ], "multitest.js": [ - "aeda7b2e7b6bc26eb851ed361f5a1338160b6dfc", + "e85f54addfc80919bed813b8a9236ee3fd508360", [] ], "outdent.js": [ @@ -482814,7 +482945,19 @@ "1e7f250c48fb093160a509b3d98c0b265085179f", [] ] - } + }, + "side-effects-of-animations-current-ref.html": [ + "acc0465b074c2dddfeb1ac427d49a55e5dcecd64", + [] + ], + "side-effects-of-animations-in-effect-ref.html": [ + "24160cb267788196430c4299e12dc6c010183fc0", + [] + ], + "side-effects-of-animations-none-ref.html": [ + "4d1ea997f4cb6923f6c1a22409469652d7170d87", + [] + ] }, "resources": { "easing-tests.js": [ @@ -503013,7 +503156,7 @@ ], "import_export": { "ec_importKey.https.any.js": [ - "31f062e313f6fe9dc735fc9a5588df0c098fde98", + "a01bfbb0ef2e1881e83aaefe76f1ca39805c9304", [ "WebCryptoAPI/import_export/ec_importKey.https.any.html", { @@ -520078,6 +520221,13 @@ ] }, "nonce-hiding": { + "dangling-html-or-body.html": [ + "4ba65e05b885cbc780fab7f1650689016f257ac2", + [ + null, + {} + ] + ], "nonce-hiding-move-document.html": [ "49de893ba03fbd25125fcf13eff8c352e4992d85", [ @@ -531817,7 +531967,7 @@ }, "content-visibility": { "animation-display-lock.html": [ - "7960ba0f59dbaa5f9ce8a7f23b05111d9731c4ed", + "0a03768fc358dfc8169f1c91e6ac4935ea5cd6cb", [ null, {} @@ -532192,7 +532342,7 @@ ] ], "content-visibility-vs-scrollIntoView-003.html": [ - "65e48663a917d029238feb767395c132ecf8a43d", + "93b085a5318c0cc2fcaf44fbb1fe3f50485b6319", [ null, {} @@ -553121,14 +553271,14 @@ ], "parsing": { "transition-behavior.html": [ - "08ad3a6adf4da0cea53b4d3110eba16221d6ba6d", + "6e4729f9dba2bfe6eff05af07a218598b479cc66", [ null, {} ] ], "transition-computed.html": [ - "a82551372f160fa77fdd0dcc7ac7d62d546db20d", + "51ec1baa8ab1a3b91c2c591bf4b7f3cebaaeb0cb", [ null, {} @@ -557240,7 +557390,7 @@ ] ], "round-function.html": [ - "d21f56d6c8a70b9f0c5e6ac0f88232467d1b8cd2", + "29ec60ea44585b87386d0cc5b6e4df2b5b1230a2", [ null, {} @@ -562966,6 +563116,20 @@ {} ] ], + "part-dir.html": [ + "6672d267be3dfd97430a5f5eb63bac2c0e1a48d9", + [ + null, + {} + ] + ], + "part-lang.html": [ + "438098b8ef5b1867261235b21816ed073e091d91", + [ + null, + {} + ] + ], "placeholder-shown.html": [ "71233ed2a28c46930c6e56755676404fa6aaa9f3", [ @@ -563001,6 +563165,13 @@ {} ] ], + "state-in-has.html": [ + "15dec18feb59392a4e8c5e22224addca1701b92d", + [ + null, + {} + ] + ], "subject-has-invalidation-with-display-none-anchor-element.html": [ "6c87560c691c7ee21f613b531e0209600939e495", [ @@ -563287,7 +563458,7 @@ ] ], "parse-part.html": [ - "d6ee5d54d839070b36955a6b303a7d337ec471bf", + "f0bec6fbc9b9ace2b7489ed4b655711f43abd470", [ null, {} @@ -645293,7 +645464,7 @@ }, "dom": { "aria-attribute-reflection.html": [ - "e201d4660eb754b9560d1b48f22dd2c063d04658", + "8970938ac92162ecaeb0608d8bc42905fb2818f7", [ null, {} @@ -657406,7 +657577,7 @@ ] ], "range.html": [ - "093c60ba577816355f7934a418d103c6057fc920", + "27cc6abe9c1221f66bacb2cebebce08c839f85a2", [ null, {} diff --git a/tests/wpt/meta/WebCryptoAPI/import_export/ec_importKey.https.any.js.ini b/tests/wpt/meta/WebCryptoAPI/import_export/ec_importKey.https.any.js.ini index b3b3f10b250..3a18f6eda12 100644 --- a/tests/wpt/meta/WebCryptoAPI/import_export/ec_importKey.https.any.js.ini +++ b/tests/wpt/meta/WebCryptoAPI/import_export/ec_importKey.https.any.js.ini @@ -647,6 +647,96 @@ [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] expected: FAIL + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-256}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-256}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-384}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-384}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-521}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-521}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + [ec_importKey.https.any.worker.html] [Good parameters: P-256 bits (spki, buffer(91), {name: ECDSA, namedCurve: P-256}, true, [\])] @@ -1296,3 +1386,93 @@ [Good parameters: P-521 bits (jwk, object(kty, crv, x, y, d), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-256}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-256}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-256 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-256}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-384}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-384}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-384 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-384}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-521}, true, [\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, true, [deriveKey, deriveBits, deriveKey, deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, alg), {name: ECDH, namedCurve: P-521}, false, [\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveBits, deriveKey\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveBits\])] + expected: FAIL + + [ECDH any JWK alg: P-521 bits (jwk, object(kty, crv, x, y, d, alg), {name: ECDH, namedCurve: P-521}, false, [deriveKey, deriveBits, deriveKey, deriveBits\])] + 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 deleted file mode 100644 index eb3cf41a070..00000000000 --- a/tests/wpt/meta/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[opacity-animation-ending-correctly-002.html] - expected: TIMEOUT diff --git a/tests/wpt/meta/css/css-color/oklch-l-over-1-1.html.ini b/tests/wpt/meta/css/css-color/oklch-l-over-1-1.html.ini new file mode 100644 index 00000000000..3a1231976ac --- /dev/null +++ b/tests/wpt/meta/css/css-color/oklch-l-over-1-1.html.ini @@ -0,0 +1,2 @@ +[oklch-l-over-1-1.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-color/oklch-l-over-1-2.html.ini b/tests/wpt/meta/css/css-color/oklch-l-over-1-2.html.ini new file mode 100644 index 00000000000..9f918b7b99f --- /dev/null +++ b/tests/wpt/meta/css/css-color/oklch-l-over-1-2.html.ini @@ -0,0 +1,2 @@ +[oklch-l-over-1-2.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/variations/at-font-face-font-matching.html.ini b/tests/wpt/meta/css/css-fonts/variations/at-font-face-font-matching.html.ini index 16cb4cf699b..a29e2657d89 100644 --- a/tests/wpt/meta/css/css-fonts/variations/at-font-face-font-matching.html.ini +++ b/tests/wpt/meta/css/css-fonts/variations/at-font-face-font-matching.html.ini @@ -301,3 +301,27 @@ [Matching font-style: 'oblique -21deg' should prefer 'oblique -21deg' over 'oblique -60deg -40deg'] expected: FAIL + + [Matching font-style: 'italic' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'] + expected: FAIL + + [Matching font-style: 'oblique 20deg' should prefer 'oblique 20deg' over 'oblique 30deg 60deg'] + expected: FAIL + + [Matching font-style: 'oblique 20deg' should prefer 'oblique 40deg 50deg' over 'oblique 10deg'] + expected: FAIL + + [Matching font-style: 'oblique 20deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'] + expected: FAIL + + [Matching font-style: 'oblique 21deg' should prefer 'oblique 20deg' over 'oblique 10deg'] + expected: FAIL + + [Matching font-style: 'oblique 0deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'] + expected: FAIL + + [Matching font-style: 'oblique -10deg' should prefer 'oblique -5deg' over 'oblique -1deg 0deg'] + expected: FAIL + + [Matching font-style: 'oblique -20deg' should prefer 'oblique -10deg' over 'italic'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-transitions/parsing/transition-computed.html.ini b/tests/wpt/meta/css/css-transitions/parsing/transition-computed.html.ini index 7ba4f25deff..b44ff35fa69 100644 --- a/tests/wpt/meta/css/css-transitions/parsing/transition-computed.html.ini +++ b/tests/wpt/meta/css/css-transitions/parsing/transition-computed.html.ini @@ -22,3 +22,9 @@ [Default transition value] expected: FAIL + + [Property transition value 'all, all'] + expected: FAIL + + [Transition with a delay but no duration] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/round-function.html.ini b/tests/wpt/meta/css/css-values/round-function.html.ini index 602b55fab9c..15fe573f603 100644 --- a/tests/wpt/meta/css/css-values/round-function.html.ini +++ b/tests/wpt/meta/css/css-values/round-function.html.ini @@ -322,3 +322,231 @@ [calc(0px - round(to-zero, -18px, 10px)) should be used-value-equivalent to 10px] expected: FAIL + + [round(23, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(18, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(15, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(13, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(-13, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(-18, 10) should be used-value-equivalent to -20] + expected: FAIL + + [round(nearest, 23, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(nearest, 18, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(nearest, 15, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(nearest, 13, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(nearest, -13, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(nearest, -18, 10) should be used-value-equivalent to -20] + expected: FAIL + + [round(down, 23, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(down, 18, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(down, 15, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(down, 13, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(down, -13, 10) should be used-value-equivalent to -20] + expected: FAIL + + [round(down, -18, 10) should be used-value-equivalent to -20] + expected: FAIL + + [round(up, 23, 10) should be used-value-equivalent to 30] + expected: FAIL + + [round(up, 18, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(up, 15, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(up, 13, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(up, -13, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(up, -18, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(to-zero, 23, 10) should be used-value-equivalent to 20] + expected: FAIL + + [round(to-zero, 18, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(to-zero, 15, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(to-zero, 13, 10) should be used-value-equivalent to 10] + expected: FAIL + + [round(to-zero, -13, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(to-zero, -18, 10) should be used-value-equivalent to -10] + expected: FAIL + + [round(23, -10) should be used-value-equivalent to 20] + expected: FAIL + + [round(18, -10) should be used-value-equivalent to 20] + expected: FAIL + + [round(15, -10) should be used-value-equivalent to 20] + expected: FAIL + + [round(13, -10) should be used-value-equivalent to 10] + expected: FAIL + + [round(-13, -10) should be used-value-equivalent to -10] + expected: FAIL + + [round(-18, -10) should be used-value-equivalent to -20] + expected: FAIL + + [round(10, 5) should be used-value-equivalent to 10] + expected: FAIL + + [round(nearest, 10, 5) should be used-value-equivalent to 10] + expected: FAIL + + [round(down, 10, 5) should be used-value-equivalent to 10] + expected: FAIL + + [round(up, 10, 5) should be used-value-equivalent to 10] + expected: FAIL + + [round(to-zero, 10, 5) should be used-value-equivalent to 10] + expected: FAIL + + [round(-10, 5) should be used-value-equivalent to -10] + expected: FAIL + + [round(nearest, -10, 5) should be used-value-equivalent to -10] + expected: FAIL + + [round(down, -10, 5) should be used-value-equivalent to -10] + expected: FAIL + + [round(up, -10, 5) should be used-value-equivalent to -10] + expected: FAIL + + [round(to-zero, -10, 5) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(23, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(18, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(15, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(13, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(-13, 10)) should be used-value-equivalent to 10] + expected: FAIL + + [calc(0 - round(-18, 10)) should be used-value-equivalent to 20] + expected: FAIL + + [calc(0 - round(nearest, 23, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(nearest, 18, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(nearest, 15, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(nearest, 13, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(nearest, -13, 10)) should be used-value-equivalent to 10] + expected: FAIL + + [calc(0 - round(nearest, -18, 10)) should be used-value-equivalent to 20] + expected: FAIL + + [calc(0 - round(down, 23, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(down, 18, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(down, 15, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(down, 13, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(down, -13, 10)) should be used-value-equivalent to 20] + expected: FAIL + + [calc(0 - round(down, -18, 10)) should be used-value-equivalent to 20] + expected: FAIL + + [calc(0 - round(up, 23, 10)) should be used-value-equivalent to -30] + expected: FAIL + + [calc(0 - round(up, 18, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(up, 15, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(up, 13, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(up, -13, 10)) should be used-value-equivalent to 10] + expected: FAIL + + [calc(0 - round(up, -18, 10)) should be used-value-equivalent to 10] + expected: FAIL + + [calc(0 - round(to-zero, 23, 10)) should be used-value-equivalent to -20] + expected: FAIL + + [calc(0 - round(to-zero, 18, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(to-zero, 15, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(to-zero, 13, 10)) should be used-value-equivalent to -10] + expected: FAIL + + [calc(0 - round(to-zero, -13, 10)) should be used-value-equivalent to 10] + expected: FAIL + + [calc(0 - round(to-zero, -18, 10)) should be used-value-equivalent to 10] + expected: FAIL diff --git a/tests/wpt/meta/css/selectors/invalidation/part-dir.html.ini b/tests/wpt/meta/css/selectors/invalidation/part-dir.html.ini new file mode 100644 index 00000000000..282bbbc4feb --- /dev/null +++ b/tests/wpt/meta/css/selectors/invalidation/part-dir.html.ini @@ -0,0 +1,2 @@ +[part-dir.html] + expected: ERROR diff --git a/tests/wpt/meta/css/selectors/invalidation/part-lang.html.ini b/tests/wpt/meta/css/selectors/invalidation/part-lang.html.ini new file mode 100644 index 00000000000..397cee29510 --- /dev/null +++ b/tests/wpt/meta/css/selectors/invalidation/part-lang.html.ini @@ -0,0 +1,2 @@ +[part-lang.html] + expected: ERROR diff --git a/tests/wpt/meta/css/selectors/invalidation/state-in-has.html.ini b/tests/wpt/meta/css/selectors/invalidation/state-in-has.html.ini new file mode 100644 index 00000000000..1fc3633c748 --- /dev/null +++ b/tests/wpt/meta/css/selectors/invalidation/state-in-has.html.ini @@ -0,0 +1,4 @@ +[state-in-has.html] + expected: ERROR + [Test :has() invalidation with :state() pseudo-classes] + expected: FAIL diff --git a/tests/wpt/meta/css/selectors/parsing/parse-part.html.ini b/tests/wpt/meta/css/selectors/parsing/parse-part.html.ini index 43cb05fcda9..9b36dc69a56 100644 --- a/tests/wpt/meta/css/selectors/parsing/parse-part.html.ini +++ b/tests/wpt/meta/css/selectors/parsing/parse-part.html.ini @@ -52,3 +52,9 @@ [":dir(ltr)::part(foo)" should be a valid selector] expected: FAIL + + ["::part(foo):lang(en)" should be a valid selector] + expected: FAIL + + ["::part(foo):dir(ltr)" should be a valid selector] + expected: FAIL 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 410ec4c1d39..4648085f98d 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,3 +41,6 @@ [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/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html.ini new file mode 100644 index 00000000000..3e07e6b7d1f --- /dev/null +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/empty-iframe-load-event.html.ini @@ -0,0 +1,6 @@ +[empty-iframe-load-event.html] + [Check execution order from nested timeout] + expected: FAIL + + [Check execution order on load handler] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini index 574b2fd8927..c2a30741798 100644 --- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini @@ -7,3 +7,6 @@ [load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank'] expected: FAIL + + [load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank#foo'] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini index bcda478adb1..5a245d61359 100644 --- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-referrer.window.js.ini @@ -1,10 +1,6 @@ [javascript-url-referrer.window.html] - expected: TIMEOUT [unsafe-url referrer policy used to create the starting page] expected: FAIL [origin referrer policy used to create the starting page] expected: FAIL - - [no-referrer referrer policy used to create the starting page] - expected: TIMEOUT diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html.ini index f27acdd3b9d..5031c9a6429 100644 --- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html.ini +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-return-value-handling-dynamic.html.ini @@ -4,3 +4,6 @@ [Test javascript URL string return values in direct and indirect (target) frame contexts. 9] expected: FAIL + + [0041 set in href="" targeting a frame and clicked] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini b/tests/wpt/meta/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/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/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini deleted file mode 100644 index 5d17a8e9419..00000000000 --- a/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[traverse_the_history_2.html] - [Multiple history traversals, last would be aborted] - expected: FAIL diff --git a/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini b/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini index 962b70e3442..8b8af2b9c2e 100644 --- a/tests/wpt/meta/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini +++ b/tests/wpt/meta/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: [FAIL, PASS, TIMEOUT] [window.open() gets base url from initiator not opener.] expected: [FAIL, PASS, TIMEOUT] diff --git a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini index fdc27d37788..830aeb8ae48 100644 --- a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini +++ b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini @@ -1,6 +1,7 @@ [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: FAIL + expected: TIMEOUT diff --git a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini index 16db1ea9c58..ddd65fdcec8 100644 --- a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini +++ b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini @@ -1,16 +1,15 @@ [supported-elements.html] - expected: TIMEOUT [Contenteditable element should support autofocus] expected: FAIL [Host element with delegatesFocus including no focusable descendants should be skipped] - expected: TIMEOUT + expected: FAIL [Element with tabindex should support autofocus] expected: FAIL [Area element should support autofocus] - expected: NOTRUN + expected: FAIL [Host element with delegatesFocus should support autofocus] expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index 24903b5f66f..7d28d586f51 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,4 +1,3 @@ [iframe_sandbox_popups_escaping-1.html] - expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - 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 26704422bbe..841bafc6eca 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,3 @@ [iframe_sandbox_popups_escaping-2.html] - expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini index e8872b3585b..bbc1f35d8d9 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini @@ -1,4 +1,3 @@ [iframe_sandbox_popups_nonescaping-1.html] - expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html.ini deleted file mode 100644 index b4de496f4a0..00000000000 --- a/tests/wpt/meta/html/semantics/embedded-content/the-img-element/image-loading-lazy-slow.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[image-loading-lazy-slow.html] - expected: FAIL diff --git a/tests/wpt/meta/html/semantics/forms/form-submission-0/multipart-formdata.window.js.ini b/tests/wpt/meta/html/semantics/forms/form-submission-0/multipart-formdata.window.js.ini index 76507c61aef..dc35eb36afd 100644 --- a/tests/wpt/meta/html/semantics/forms/form-submission-0/multipart-formdata.window.js.ini +++ b/tests/wpt/meta/html/semantics/forms/form-submission-0/multipart-formdata.window.js.ini @@ -53,9 +53,6 @@ [multipart/form-data: \\r in value (formdata event)] expected: FAIL - [multipart/form-data: \\r\\n in value (normal form)] - expected: FAIL - [multipart/form-data: \\n\\r in value (normal form)] expected: FAIL diff --git a/tests/wpt/meta/html/semantics/forms/form-submission-0/text-plain.window.js.ini b/tests/wpt/meta/html/semantics/forms/form-submission-0/text-plain.window.js.ini index e7d2bc8560d..4211b5742f1 100644 --- a/tests/wpt/meta/html/semantics/forms/form-submission-0/text-plain.window.js.ini +++ b/tests/wpt/meta/html/semantics/forms/form-submission-0/text-plain.window.js.ini @@ -181,3 +181,6 @@ [text/plain: double quote in value (formdata event)] expected: FAIL + + [text/plain: Basic File test (formdata event)] + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini b/tests/wpt/meta/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini index 0532bf902a1..8f3b9f95aac 100644 --- a/tests/wpt/meta/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini +++ b/tests/wpt/meta/html/semantics/forms/form-submission-0/urlencoded2.window.js.ini @@ -149,9 +149,6 @@ [application/x-www-form-urlencoded: 0x00 in name (formdata event)] expected: FAIL - [application/x-www-form-urlencoded: backslash in value (normal form)] - expected: FAIL - [application/x-www-form-urlencoded: character not in encoding in filename (formdata event)] expected: FAIL diff --git a/tests/wpt/meta/html/semantics/forms/the-input-element/range.html.ini b/tests/wpt/meta/html/semantics/forms/the-input-element/range.html.ini new file mode 100644 index 00000000000..e13f7b82cd3 --- /dev/null +++ b/tests/wpt/meta/html/semantics/forms/the-input-element/range.html.ini @@ -0,0 +1,3 @@ +[range.html] + [range overflow styles] + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini b/tests/wpt/meta/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini index 90317c9bf28..dcd52d2fee8 100644 --- a/tests/wpt/meta/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini +++ b/tests/wpt/meta/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener.html.ini @@ -1,13 +1,12 @@ [htmlanchorelement_noopener.html] - expected: TIMEOUT [Check that targeting of rel=noopener with a given name reuses an existing window with that name] expected: FAIL [Check that rel=noopener with target=_top does a normal load] - expected: NOTRUN + expected: FAIL [Check that rel=noopener with target=_parent does a normal load] - expected: NOTRUN + expected: FAIL [Check that rel=noopener with target=_self does a normal load] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/meta/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/meta/html/syntax/parsing/DOMContentLoaded-defer.html.ini deleted file mode 100644 index b8bdf33cb65..00000000000 --- a/tests/wpt/meta/html/syntax/parsing/DOMContentLoaded-defer.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[DOMContentLoaded-defer.html] - [The end: DOMContentLoaded and defer scripts] - expected: FAIL diff --git a/tests/wpt/meta/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/meta/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini index 1053fb90051..6206f8c0210 100644 --- a/tests/wpt/meta/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini +++ b/tests/wpt/meta/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini @@ -2,6 +2,3 @@ expected: TIMEOUT [The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] expected: TIMEOUT - - [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document] - expected: FAIL diff --git a/tests/wpt/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini b/tests/wpt/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini index dbe1def99e3..7237f5792de 100644 --- a/tests/wpt/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini +++ b/tests/wpt/meta/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry-different-function-realm.html.ini @@ -1,9 +1,10 @@ [promise-job-entry-different-function-realm.html] + expected: TIMEOUT [Fulfillment handler on fulfilled promise] expected: FAIL [Rejection handler on pending-then-rejected promise] - expected: FAIL + expected: TIMEOUT [Thenable resolution] expected: FAIL @@ -12,4 +13,4 @@ expected: FAIL [Fulfillment handler on pending-then-fulfilled promise] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index 225e521d7e4..0df9b9fdb79 100644 --- a/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -697,3 +697,9 @@ [X SNR (37.10602935320333 dB) is not greater than or equal to 65.737. Got 37.10602935320333.] expected: FAIL + + [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[15073\]\t-6.4641032394576998e+21\t6.4605611562728882e-1\t6.4641032394576998e+21\t1.0005482624649984e+22\t3.8985999999999999e-3\n\t[15074\]\t2.5936898589134216e-1\t5.9696805477142334e-1\t3.3759906888008118e-1\t5.6552283858697683e-1\t3.8985999999999999e-3\n\tMax AbsError of 6.4641032394576998e+21 at index of 15073.\n\tMax RelError of 1.0005482624649984e+22 at index of 15073.\n] + expected: FAIL + + [X SNR (-392.77607973643745 dB) is not greater than or equal to 65.737. Got -392.77607973643745.] + expected: FAIL diff --git a/tests/wpt/meta/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html.ini b/tests/wpt/meta/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html.ini index eed03df37f3..b7537329068 100644 --- a/tests/wpt/meta/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html.ini +++ b/tests/wpt/meta/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-not-fully-active.html.ini @@ -1,4 +1,5 @@ [audiocontext-not-fully-active.html] + expected: TIMEOUT [frame in navigated remote-site frame] expected: FAIL diff --git a/tests/wpt/meta/webmessaging/with-ports/017.html.ini b/tests/wpt/meta/webmessaging/with-ports/017.html.ini new file mode 100644 index 00000000000..c7946fc91b4 --- /dev/null +++ b/tests/wpt/meta/webmessaging/with-ports/017.html.ini @@ -0,0 +1,4 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT diff --git a/tests/wpt/tests/WebCryptoAPI/import_export/ec_importKey.https.any.js b/tests/wpt/tests/WebCryptoAPI/import_export/ec_importKey.https.any.js index 31f062e313f..a01bfbb0ef2 100644 --- a/tests/wpt/tests/WebCryptoAPI/import_export/ec_importKey.https.any.js +++ b/tests/wpt/tests/WebCryptoAPI/import_export/ec_importKey.https.any.js @@ -80,6 +80,9 @@ } testFormat(format, algorithm, data, curve, usages, extractable); + if (vector.name === 'ECDH' && format === 'jwk') { + testEcdhJwkAlg(algorithm, { ...data.jwk, alg: 'any alg works here' }, curve, usages, extractable); + } }); }); @@ -90,11 +93,13 @@ var data = keyData[curve]; allValidUsages(vector.privateUsages).forEach(function(usages) { testFormat(format, algorithm, data, curve, usages, extractable); + if (vector.name === 'ECDH' && format === 'jwk') { + testEcdhJwkAlg(algorithm, { ...data.jwk, alg: 'any alg works here' }, curve, usages, extractable); + } }); testEmptyUsages(format, algorithm, data, curve, extractable); }); }); - }); }); @@ -151,6 +156,21 @@ }, "Empty Usages: " + keySize.toString() + " bits " + parameterString(format, false, keyData, algorithm, extractable, usages)); } + // Test ECDH importKey with a JWK format + // Should succeed with any "alg" value + function testEcdhJwkAlg(algorithm, keyData, keySize, usages, extractable) { + const format = "jwk"; + promise_test(function(test) { + return subtle.importKey(format, keyData, algorithm, extractable, usages). + then(function(key) { + assert_equals(key.constructor, CryptoKey, "Imported a CryptoKey object"); + assert_goodCryptoKey(key, algorithm, extractable, usages, keyData.d ? 'private' : 'public'); + }, function(err) { + assert_unreached("Threw an unexpected error: " + err.toString()); + }); + }, "ECDH any JWK alg: " + keySize.toString() + " bits " + parameterString(format, false, keyData, algorithm, extractable, usages)); + } + // Helper methods follow: diff --git a/tests/wpt/tests/content-security-policy/nonce-hiding/dangling-html-or-body.html b/tests/wpt/tests/content-security-policy/nonce-hiding/dangling-html-or-body.html new file mode 100644 index 00000000000..4ba65e05b88 --- /dev/null +++ b/tests/wpt/tests/content-security-policy/nonce-hiding/dangling-html-or-body.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js" nonce="secret"></script> +<script src="/resources/testharnessreport.js" nonce="secret"></script> + +<!-- `Content-Security-Policy: script-src 'nonce-secret'` delivered via headers --> + +<body> + <style>body[nonce*=secret]{background:url(/security/resources/abe.png);}</style> + <body + <script nonce="secret" src="https://example.com/good.js"></script> + <script nonce="secret"> + test(t => { + const body = document.querySelector('body'); + var style = getComputedStyle(body); + assert_equals(style['background-image'], 'none'); + }, "Nonces don't leak via CSS side-channels when a dangling body is injected."); + </script> + + <style>html[nonce*=secret]{background:url(/security/resources/abe.png);}</style> + <html + <script nonce="secret" src="https://example.com/good.js"></script> + <script nonce="secret"> + test(t => { + const html = document.querySelector('html'); + var style = getComputedStyle(html); + assert_equals(style['background-image'], 'none'); + }, "Nonces don't leak via CSS side-channels when a dangling html is injected."); + </script> +</body> diff --git a/tests/wpt/tests/content-security-policy/nonce-hiding/dangling-html-or-body.html.headers b/tests/wpt/tests/content-security-policy/nonce-hiding/dangling-html-or-body.html.headers new file mode 100644 index 00000000000..67d4c81e589 --- /dev/null +++ b/tests/wpt/tests/content-security-policy/nonce-hiding/dangling-html-or-body.html.headers @@ -0,0 +1 @@ +Content-Security-Policy: script-src 'nonce-secret' diff --git a/tests/wpt/tests/css/css-color/oklch-l-over-1-1.html b/tests/wpt/tests/css/css-color/oklch-l-over-1-1.html new file mode 100644 index 00000000000..4eb3cda8462 --- /dev/null +++ b/tests/wpt/tests/css/css-color/oklch-l-over-1-1.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Color 4: Verify lightness in Oklch is always clamped to a value between 0 to 1</title> +<link rel="help" href="https://drafts.csswg.org/css-color/#ok-lab"> +<link rel="match" href="oklch-l-over-1-ref.html"> +<meta name="assert" content="oklch() with lightness greater than 1"> +<style> + .ref { background-color: oklch(1 0.5 50); width: 100px; height: 100px} + /* l = 1.5 should clamp back to 1 */ + .test { background-color: oklch(1.5 0.5 50); width: 100px; height: 100px} +</style> + +<body> + <p>Test passes if you see a single color.</p> + <div class="ref"></div> + <div class="test"></div> +</body> diff --git a/tests/wpt/tests/css/css-color/oklch-l-over-1-2.html b/tests/wpt/tests/css/css-color/oklch-l-over-1-2.html new file mode 100644 index 00000000000..de8b1a6cdd0 --- /dev/null +++ b/tests/wpt/tests/css/css-color/oklch-l-over-1-2.html @@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Color 4: Verify lightness in Oklch is always clamped to a value between 0% to 100%</title> +<link rel="help" href="https://drafts.csswg.org/css-color/#ok-lab"> +<link rel="match" href="oklch-l-over-1-ref.html"> +<meta name="assert" content="oklch() with lightness greater than 100%"> +<style> + .ref { background-color: oklch(100% 0.5 50); width: 100px; height: 100px} + /* l = 150% should clamp back to 100% */ + .test { background-color: oklch(150% 0.5 50); width: 100px; height: 100px} +</style> + +<body> + <p>Test passes if you see a single color.</p> + <div class="ref"></div> + <div class="test"></div> +</body> diff --git a/tests/wpt/tests/css/css-color/oklch-l-over-1-ref.html b/tests/wpt/tests/css/css-color/oklch-l-over-1-ref.html new file mode 100644 index 00000000000..2c7815c5f0e --- /dev/null +++ b/tests/wpt/tests/css/css-color/oklch-l-over-1-ref.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Color 4: Verify lightness in Oklch is always clamped to a value between 0 to 1</title> +<style> + .ref { background-color: oklch(1 0.5 50); width: 100px; height: 200px} +</style> + +<body> + <p>Test passes if you see a single color.</p> + <div class="ref"></div> +</body> diff --git a/tests/wpt/tests/css/css-contain/content-visibility/animation-display-lock.html b/tests/wpt/tests/css/css-contain/content-visibility/animation-display-lock.html index 7960ba0f59d..0a03768fc35 100644 --- a/tests/wpt/tests/css/css-contain/content-visibility/animation-display-lock.html +++ b/tests/wpt/tests/css/css-contain/content-visibility/animation-display-lock.html @@ -52,6 +52,10 @@ function createAnimatingElement(test, name) { return target; } +function waitForEvent(element, eventName) { + return new Promise(resolve => element.addEventListener(eventName, resolve, { once: true })); +} + promise_test(async t => { const container = document.getElementById('container'); const target = createAnimatingElement(t, 'animate'); @@ -73,7 +77,7 @@ promise_test(async t => { 'Animation events do not fire while the animation is ' + 'running in a display locked subtree'); container.style.contentVisibility = 'visible'; - await waitForAnimationFrames(2); + await waitForEvent(target, 'animationiteration'); assert_true(animationIterationEvent, 'The animationiteration event fires once the animation is ' + 'no longer display locked'); @@ -171,7 +175,7 @@ promise_test(async t => { animation.currentTime = 1999; await animation.ready; - await waitForAnimationFrames(2); + await waitForEvent(animation, 'finish'); assert_true(animationFinishEvent, 'Animation event not blocked on display locked subtree if ' + diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-vs-scrollIntoView-003.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-vs-scrollIntoView-003.html index 65e48663a91..93b085a5318 100644 --- a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-vs-scrollIntoView-003.html +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-vs-scrollIntoView-003.html @@ -56,12 +56,13 @@ function tick() { }); } -promise_test(async () => { - await tick(); +function waitForEvent() { + return new Promise(resolve => e3.addEventListener('contentvisibilityautostatechange', resolve)); +} - function waitForEvent() { - return new Promise(resolve => e3.addEventListener('contentvisibilityautostatechange', resolve)); - } +promise_test(async (t) => { + // Make sure the first event has fired. + await waitForEvent(); var eventCounter = 0; function eventHandler(e) { diff --git a/tests/wpt/tests/css/css-grid/stretch-grid-item-button-overflow-ref.html b/tests/wpt/tests/css/css-grid/stretch-grid-item-button-overflow-ref.html new file mode 100644 index 00000000000..900c794af10 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/stretch-grid-item-button-overflow-ref.html @@ -0,0 +1,78 @@ +<!DOCTYPE HTML> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Grid Reference: stretching overflow!=visible items</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1348857"> + <style> +body,html { color:black; background:white; font:16px/1 monospace; padding:0; margin:0; } + +.grid { + display: inline-grid; + width: 100px; + height: 50px; + grid: 7px auto 3px / 7px auto 3px; + grid-gap: 5px; + border:1px solid; +} + +.grid > * { + grid-area: 2/2; + border:1px solid; + appearance: none; + min-width:0; + min-height:0; + box-sizing: border-box; +} + +.m { margin: 17px 3px 5px 7px; } + +x { display:block; width:110px; height:5px; background:grey; } +.h .grid x { width:5px; height:110px; } + +br { clear:both; } + </style> +</head> +<body> + +<div class="grid"><button class="oa"></button></div> +<div class="grid"><button class="os"></button></div> +<div class="grid"><button class="oh"></button></div> +<div class="grid"><button class="ov"></button></div> +<div class="grid"><button class="oc"></button></div> + +<br> + +<div class="grid"><button class="m oa"></button></div> +<div class="grid"><button class="m os"></button></div> +<div class="grid"><button class="m oh"></button></div> +<div class="grid"><button class="m ov"></button></div> +<div class="grid"><button class="m oc"></button></div> + +<br> + +<div class="h"> + +<div class="grid"><button class="oa"></button></div> +<div class="grid"><button class="os"></button></div> +<div class="grid"><button class="oh"></button></div> +<div class="grid"><button class="ov"></button></div> +<div class="grid"><button class="oc"></button></div> + +<br> + +<div class="grid"><button class="m oa"></button></div> +<div class="grid"><button class="m os"></button></div> +<div class="grid"><button class="m oh"></button></div> +<div class="grid"><button class="m ov"></button></div> +<div class="grid"><button class="m oc"></button></div> + +<br> + +</div> + +</body> +</html> diff --git a/tests/wpt/tests/css/css-grid/stretch-grid-item-button-overflow.html b/tests/wpt/tests/css/css-grid/stretch-grid-item-button-overflow.html new file mode 100644 index 00000000000..0b86a7e9ac9 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/stretch-grid-item-button-overflow.html @@ -0,0 +1,82 @@ +<!DOCTYPE HTML> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Grid Test: stretching overflow!=visible items: stretching rules for scroll containers</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1348857"> + <link rel="help" href="https://drafts.csswg.org/css-grid/#min-size-auto"> + <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7714"> + <link rel="match" href="stretch-grid-item-button-overflow-ref.html"> + <style> +body,html { color:black; background:white; font:16px/1 monospace; padding:0; margin:0; } + +.grid { + display: inline-grid; + width: 100px; + height: 50px; + grid: 7px auto 3px / 7px auto 3px; + grid-gap: 5px; + border:1px solid; +} + +.grid > * { + grid-area: 2/2; + border:1px solid; + appearance: none; +} + +.oa { overflow: auto; } +.os { overflow: scroll; } +.oh { overflow: hidden; } +.oc { overflow: clip; } +.m { margin: 17px 3px 5px 7px; } + +x { display:block; width:110px; height:5px; background:grey; } +.h .grid x { width:5px; height:110px; } + +br { clear:both; } + </style> +</head> +<body> + +<div class="grid"><button class="oa"></button></div> +<div class="grid"><button class="os"></button></div> +<div class="grid"><button class="oh"></button></div> +<div class="grid"><button class="oc"></button></div> +<div class="grid"><button class=" "></button></div> + +<br> + +<div class="grid"><button class="m oa"></button></div> +<div class="grid"><button class="m os"></button></div> +<div class="grid"><button class="m oh"></button></div> +<div class="grid"><button class="m oc"></button></div> +<div class="grid"><button class="m "></button></div> + +<br> + +<div class="h"> + +<div class="grid"><button class="oa"></button></div> +<div class="grid"><button class="os"></button></div> +<div class="grid"><button class="oh"></button></div> +<div class="grid"><button class="oc"></button></div> +<div class="grid"><button class=" "></button></div> + +<br> + +<div class="grid"><button class="m oa"></button></div> +<div class="grid"><button class="m os"></button></div> +<div class="grid"><button class="m oh"></button></div> +<div class="grid"><button class="m oc"></button></div> +<div class="grid"><button class="m "></button></div> + +<br> + +</div> + +</body> +</html> diff --git a/tests/wpt/tests/css/css-grid/stretch-grid-item-text-input-overflow-ref.html b/tests/wpt/tests/css/css-grid/stretch-grid-item-text-input-overflow-ref.html new file mode 100644 index 00000000000..ebc0c8ef9ce --- /dev/null +++ b/tests/wpt/tests/css/css-grid/stretch-grid-item-text-input-overflow-ref.html @@ -0,0 +1,79 @@ +<!DOCTYPE HTML> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Grid Reference: stretching overflow!=visible items</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1348857"> + <style type="text/css"> +body,html { color:black; background:white; font:16px/1 monospace; padding:0; margin:0; } + +.grid { + display: inline-grid; + width: 100px; + height: 50px; + grid: 7px auto 3px / 7px auto 3px; + grid-gap: 5px; + border:1px solid; +} + +.grid > * { + grid-area: 2/2; + border:1px solid; + appearance: none; + min-width:0; + min-height:0; + box-sizing: border-box; +} + +input { justify-self: start; } +.m { align-self: start; margin: 17px 3px 5px 7px; } + +x { display:block; width:110px; height:5px; background:grey; } +.h .grid x { width:5px; height:110px; } + +br { clear:both; } + </style> +</head> +<body> + +<div class="grid"><input class="oa"></div> +<div class="grid"><input class="os"></div> +<div class="grid"><input class="oh"></div> +<div class="grid"><input class="ov"></div> +<div class="grid"><input class="oc"></div> + +<br> + +<div class="grid"><input class="m oa"></div> +<div class="grid"><input class="m os"></div> +<div class="grid"><input class="m oh"></div> +<div class="grid"><input class="m ov"></div> +<div class="grid"><input class="m oc"></div> + +<br> + +<div class="h"> + +<div class="grid"><input class="oa"></div> +<div class="grid"><input class="os"></div> +<div class="grid"><input class="oh"></div> +<div class="grid"><input class="ov"></div> +<div class="grid"><input class="oc"></div> + +<br> + +<div class="grid"><input class="m oa"></div> +<div class="grid"><input class="m os"></div> +<div class="grid"><input class="m oh"></div> +<div class="grid"><input class="m ov"></div> +<div class="grid"><input class="m oc"></div> + +<br> + +</div> + +</body> +</html> diff --git a/tests/wpt/tests/css/css-grid/stretch-grid-item-text-input-overflow.html b/tests/wpt/tests/css/css-grid/stretch-grid-item-text-input-overflow.html new file mode 100644 index 00000000000..0814b3dcf05 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/stretch-grid-item-text-input-overflow.html @@ -0,0 +1,82 @@ +<!DOCTYPE HTML> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html><head> + <meta charset="utf-8"> + <title>CSS Grid Test: stretching overflow!=visible items: stretching rules for scroll containers don't apply to input</title> + <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1348857"> + <link rel="match" href="stretch-grid-item-text-input-overflow-ref.html"> + <link rel="help" href="https://drafts.csswg.org/css-grid/#min-size-auto"> + <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/7714"> + <style type="text/css"> +body,html { color:black; background:white; font:16px/1 monospace; padding:0; margin:0; } + +.grid { + display: inline-grid; + width: 100px; + height: 50px; + grid: 7px auto 3px / 7px auto 3px; + grid-gap: 5px; + border:1px solid; +} + +.grid > * { + grid-area: 2/2; + border:1px solid; + appearance: none; +} + +.oa { overflow: auto; } +.os { overflow: scroll; } +.oh { overflow: hidden; } +.oc { overflow: clip; } +.m { margin: 17px 3px 5px 7px; } + +x { display:block; width:110px; height:5px; background:grey; } +.h .grid x { width:5px; height:110px; } + +br { clear:both; } + </style> +</head> +<body> + +<div class="grid"><input class="oa"></div> +<div class="grid"><input class="os"></div> +<div class="grid"><input class="oh"></div> +<div class="grid"><input class="oc"></div> +<div class="grid"><input class=" "></div> + +<br> + +<div class="grid"><input class="m oa"></div> +<div class="grid"><input class="m os"></div> +<div class="grid"><input class="m oh"></div> +<div class="grid"><input class="m oc"></div> +<div class="grid"><input class="m "></div> + +<br> + +<div class="h"> + +<div class="grid"><input class="oa"></div> +<div class="grid"><input class="os"></div> +<div class="grid"><input class="oh"></div> +<div class="grid"><input class="oc"></div> +<div class="grid"><input class=" "></div> + +<br> + +<div class="grid"><input class="m oa"></div> +<div class="grid"><input class="m os"></div> +<div class="grid"><input class="m oh"></div> +<div class="grid"><input class="m oc"></div> +<div class="grid"><input class="m "></div> + +<br> + +</div> + +</body> +</html> diff --git a/tests/wpt/tests/css/css-position/sticky/position-sticky-in-fixed-container-ref.html b/tests/wpt/tests/css/css-position/sticky/position-sticky-in-fixed-container-ref.html new file mode 100644 index 00000000000..7d8e1489951 --- /dev/null +++ b/tests/wpt/tests/css/css-position/sticky/position-sticky-in-fixed-container-ref.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<style> + .modal { + bottom: 0; + left: 0; + right: 0; + position: fixed; + } + + .modal-dialog { + position: relative; + overflow: auto; + max-height: 400px; + transform: translateY(0); + } + + .modal-content { + background-color: purple; + height: 300px; + } + + .modal-footer { + height: 100px; + background-color: blue; + } + + .additional-content { + height: 100px; + background-color: purple; + } +</style> +<div class="modal"> + <div class="modal-dialog"> + <div class="modal-content"></div> + <div class="modal-footer"></div> + <div class="additional-content"></div> + </div> +</div> diff --git a/tests/wpt/tests/css/css-position/sticky/position-sticky-in-fixed-container.html b/tests/wpt/tests/css/css-position/sticky/position-sticky-in-fixed-container.html new file mode 100644 index 00000000000..359ec2fd337 --- /dev/null +++ b/tests/wpt/tests/css/css-position/sticky/position-sticky-in-fixed-container.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<meta name="viewport" content="width=device-width,initial-scale=1"> +<link rel="match" href="position-sticky-in-fixed-container-ref.html"> +<link rel="help" href="https://drafts.csswg.org/css-position-3/#sticky-pos"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1854010"> +<style> + .modal { + bottom: 0; + left: 0; + right: 0; + position: fixed; + } + + .modal-dialog { + position: relative; + overflow: auto; + max-height: 400px; + transform: translateY(0); + } + + .modal-content { + background-color: purple; + height: 400px; + } + + .modal-footer { + height: 100px; + background-color: blue; + + position:sticky; + bottom: 0; + } +</style> +<div class="modal"> + <div class="modal-dialog"> + <div class="modal-content"></div> + <div class="modal-footer"></div> + </div> +</div> diff --git a/tests/wpt/tests/css/css-transitions/parsing/transition-behavior.html b/tests/wpt/tests/css/css-transitions/parsing/transition-behavior.html index 08ad3a6adf4..6e4729f9dba 100644 --- a/tests/wpt/tests/css/css-transitions/parsing/transition-behavior.html +++ b/tests/wpt/tests/css/css-transitions/parsing/transition-behavior.html @@ -13,17 +13,17 @@ test_computed_value('transition-behavior', 'normal'); test_valid_value('transition-behavior', 'allow-discrete'); test_computed_value('transition-behavior', 'allow-discrete'); -test_valid_value('transition', 'allow-discrete display', 'display 0s ease 0s allow-discrete'); -test_computed_value('transition', 'allow-discrete display', 'display 0s ease 0s allow-discrete'); +test_valid_value('transition', 'allow-discrete display', 'display allow-discrete'); +test_computed_value('transition', 'allow-discrete display', 'display allow-discrete'); -test_valid_value('transition', 'allow-discrete display 3s', 'display 3s ease 0s allow-discrete'); -test_computed_value('transition', 'allow-discrete display 3s', 'display 3s ease 0s allow-discrete'); +test_valid_value('transition', 'allow-discrete display 3s', 'display 3s allow-discrete'); +test_computed_value('transition', 'allow-discrete display 3s', 'display 3s allow-discrete'); -test_valid_value('transition', 'allow-discrete display 3s 1s', 'display 3s ease 1s allow-discrete'); -test_computed_value('transition', 'allow-discrete display 3s 1s', 'display 3s ease 1s allow-discrete'); +test_valid_value('transition', 'allow-discrete display 3s 1s', 'display 3s 1s allow-discrete'); +test_computed_value('transition', 'allow-discrete display 3s 1s', 'display 3s 1s allow-discrete'); -test_valid_value('transition', 'allow-discrete display 3s ease-in-out', 'display 3s ease-in-out 0s allow-discrete'); -test_computed_value('transition', 'allow-discrete display 3s ease-in-out', 'display 3s ease-in-out 0s allow-discrete'); +test_valid_value('transition', 'allow-discrete display 3s ease-in-out', 'display 3s ease-in-out allow-discrete'); +test_computed_value('transition', 'allow-discrete display 3s ease-in-out', 'display 3s ease-in-out allow-discrete'); test_valid_value('transition', 'allow-discrete display 3s ease-in-out 1s', 'display 3s ease-in-out 1s allow-discrete'); test_computed_value('transition', 'allow-discrete display 3s ease-in-out 1s', 'display 3s ease-in-out 1s allow-discrete'); @@ -44,14 +44,14 @@ test_computed_value('transition', 'display 3s ease-in-out 1s allow-discrete', 'd // Serialization with multiple shorthands, including different order test_valid_value('transition', 'allow-discrete display, normal opacity, color', - 'display 0s ease 0s allow-discrete, opacity 0s ease 0s, color 0s ease 0s'); + 'display allow-discrete, opacity, color'); test_computed_value('transition', 'allow-discrete display, normal opacity, color', - 'display 0s ease 0s allow-discrete, opacity 0s ease 0s, color 0s ease 0s'); + 'display allow-discrete, opacity, color'); test_valid_value('transition', 'normal opacity, color, allow-discrete display', - 'opacity 0s ease 0s, color 0s ease 0s, display 0s ease 0s allow-discrete'); + 'opacity, color, display allow-discrete'); test_computed_value('transition', 'normal opacity, color, allow-discrete display', - 'opacity 0s ease 0s, color 0s ease 0s, display 0s ease 0s allow-discrete'); + 'opacity, color, display allow-discrete'); </script> diff --git a/tests/wpt/tests/css/css-transitions/parsing/transition-computed.html b/tests/wpt/tests/css/css-transitions/parsing/transition-computed.html index a82551372f1..51ec1baa8ab 100644 --- a/tests/wpt/tests/css/css-transitions/parsing/transition-computed.html +++ b/tests/wpt/tests/css/css-transitions/parsing/transition-computed.html @@ -16,17 +16,26 @@ // <time> || <easing-function> || <time> test(() => { - assert_equals(getComputedStyle(document.getElementById('target')).transition, "all 0s ease 0s"); + assert_equals(getComputedStyle(document.getElementById('target')).transition, "all"); }, "Default transition value"); -test_computed_value("transition", "1s", "all 1s ease 0s"); -test_computed_value("transition", "cubic-bezier(0, -2, 1, 3)", "all 0s cubic-bezier(0, -2, 1, 3) 0s"); -test_computed_value("transition", "1s -3s", "all 1s ease -3s"); -test_computed_value("transition", "none", "none 0s ease 0s"); -test_computed_value("transition", "top", "top 0s ease 0s"); +test_computed_value("transition", "1s", "1s"); +test_computed_value("transition", "cubic-bezier(0, -2, 1, 3)", "cubic-bezier(0, -2, 1, 3)"); +test_computed_value("transition", "1s -3s", "1s -3s"); +test_computed_value("transition", "none", "none"); +test_computed_value("transition", "top", "top"); test_computed_value("transition", "1s -3s cubic-bezier(0, -2, 1, 3) top", "top 1s cubic-bezier(0, -2, 1, 3) -3s"); -test_computed_value("transition", "1s -3s, cubic-bezier(0, -2, 1, 3) top", "all 1s ease -3s, top 0s cubic-bezier(0, -2, 1, 3) 0s"); +test_computed_value("transition", "1s -3s, cubic-bezier(0, -2, 1, 3) top", "1s -3s, top cubic-bezier(0, -2, 1, 3)"); + +test_computed_value("transition", "all, all", "all, all"); + +test(() => { + const target = document.getElementById('target'); + target.style.transition = "initial"; + target.style.transitionDelay = "1s"; + assert_equals(getComputedStyle(target).transition, "0s 1s"); +}, "Transition with a delay but no duration"); // TODO: Add test with a single timing-function keyword. </script> diff --git a/tests/wpt/tests/css/css-values/round-function.html b/tests/wpt/tests/css/css-values/round-function.html index d21f56d6c8a..29ec60ea445 100644 --- a/tests/wpt/tests/css/css-values/round-function.html +++ b/tests/wpt/tests/css/css-values/round-function.html @@ -18,6 +18,13 @@ test_math_used("round(13px, 10px)", "10px"); test_math_used("round(-13px, 10px)", "-10px"); test_math_used("round(-18px, 10px)", "-20px"); +test_math_used("round(23, 10)", "20", { type: "integer" }); +test_math_used("round(18, 10)", "20", { type: "integer" }); +test_math_used("round(15, 10)", "20", { type: "integer" }); +test_math_used("round(13, 10)", "10", { type: "integer" }); +test_math_used("round(-13, 10)", "-10", { type: "integer" }); +test_math_used("round(-18, 10)", "-20", { type: "integer" }); + // Test nearest test_math_used("round(nearest, 23px, 10px)", "20px"); test_math_used("round(nearest, 18px, 10px)", "20px"); @@ -26,6 +33,13 @@ test_math_used("round(nearest, 13px, 10px)", "10px"); test_math_used("round(nearest, -13px, 10px)", "-10px"); test_math_used("round(nearest, -18px, 10px)", "-20px"); +test_math_used("round(nearest, 23, 10)", "20", { type: "integer" }); +test_math_used("round(nearest, 18, 10)", "20", { type: "integer" }); +test_math_used("round(nearest, 15, 10)", "20", { type: "integer" }); +test_math_used("round(nearest, 13, 10)", "10", { type: "integer" }); +test_math_used("round(nearest, -13, 10)", "-10", { type: "integer" }); +test_math_used("round(nearest, -18, 10)", "-20", { type: "integer" }); + // Test down test_math_used("round(down, 23px, 10px)", "20px"); test_math_used("round(down, 18px, 10px)", "10px"); @@ -34,6 +48,13 @@ test_math_used("round(down, 13px, 10px)", "10px"); test_math_used("round(down, -13px, 10px)", "-20px"); test_math_used("round(down, -18px, 10px)", "-20px"); +test_math_used("round(down, 23, 10)", "20", { type: "integer" }); +test_math_used("round(down, 18, 10)", "10", { type: "integer" }); +test_math_used("round(down, 15, 10)", "10", { type: "integer" }); +test_math_used("round(down, 13, 10)", "10", { type: "integer" }); +test_math_used("round(down, -13, 10)", "-20", { type: "integer" }); +test_math_used("round(down, -18, 10)", "-20", { type: "integer" }); + // Test up test_math_used("round(up, 23px, 10px)", "30px"); test_math_used("round(up, 18px, 10px)", "20px"); @@ -42,6 +63,13 @@ test_math_used("round(up, 13px, 10px)", "20px"); test_math_used("round(up, -13px, 10px)", "-10px"); test_math_used("round(up, -18px, 10px)", "-10px"); +test_math_used("round(up, 23, 10)", "30", { type: "integer" }); +test_math_used("round(up, 18, 10)", "20", { type: "integer" }); +test_math_used("round(up, 15, 10)", "20", { type: "integer" }); +test_math_used("round(up, 13, 10)", "20", { type: "integer" }); +test_math_used("round(up, -13, 10)", "-10", { type: "integer" }); +test_math_used("round(up, -18, 10)", "-10", { type: "integer" }); + // Test to-zero test_math_used("round(to-zero, 23px, 10px)", "20px"); test_math_used("round(to-zero, 18px, 10px)", "10px"); @@ -50,6 +78,13 @@ test_math_used("round(to-zero, 13px, 10px)", "10px"); test_math_used("round(to-zero, -13px, 10px)", "-10px"); test_math_used("round(to-zero, -18px, 10px)", "-10px"); +test_math_used("round(to-zero, 23, 10)", "20", { type: "integer" }); +test_math_used("round(to-zero, 18, 10)", "10", { type: "integer" }); +test_math_used("round(to-zero, 15, 10)", "10", { type: "integer" }); +test_math_used("round(to-zero, 13, 10)", "10", { type: "integer" }); +test_math_used("round(to-zero, -13, 10)", "-10", { type: "integer" }); +test_math_used("round(to-zero, -18, 10)", "-10", { type: "integer" }); + // Test a negative step test_math_used("round(23px, -10px)", "20px"); test_math_used("round(18px, -10px)", "20px"); @@ -58,6 +93,13 @@ test_math_used("round(13px, -10px)", "10px"); test_math_used("round(-13px, -10px)", "-10px"); test_math_used("round(-18px, -10px)", "-20px"); +test_math_used("round(23, -10)", "20", { type: "integer" }); +test_math_used("round(18, -10)", "20", { type: "integer" }); +test_math_used("round(15, -10)", "20", { type: "integer" }); +test_math_used("round(13, -10)", "10", { type: "integer" }); +test_math_used("round(-13, -10)", "-10", { type: "integer" }); +test_math_used("round(-18, -10)", "-20", { type: "integer" }); + // Test with value that is an exact multiple of step test_math_used("round(10px, 5px)", "10px"); test_math_used("round(nearest, 10px, 5px)", "10px"); @@ -65,12 +107,24 @@ test_math_used("round(down, 10px, 5px)", "10px"); test_math_used("round(up, 10px, 5px)", "10px"); test_math_used("round(to-zero, 10px, 5px)", "10px"); +test_math_used("round(10, 5)", "10", { type: "integer" }); +test_math_used("round(nearest, 10, 5)", "10", { type: "integer" }); +test_math_used("round(down, 10, 5)", "10", { type: "integer" }); +test_math_used("round(up, 10, 5)", "10", { type: "integer" }); +test_math_used("round(to-zero, 10, 5)", "10", { type: "integer" }); + test_math_used("round(-10px, 5px)", "-10px"); test_math_used("round(nearest, -10px, 5px)", "-10px"); test_math_used("round(down, -10px, 5px)", "-10px"); test_math_used("round(up, -10px, 5px)", "-10px"); test_math_used("round(to-zero, -10px, 5px)", "-10px"); +test_math_used("round(-10, 5)", "-10", { type: "integer" }); +test_math_used("round(nearest, -10, 5)", "-10", { type: "integer" }); +test_math_used("round(down, -10, 5)", "-10", { type: "integer" }); +test_math_used("round(up, -10, 5)", "-10", { type: "integer" }); +test_math_used("round(to-zero, -10, 5)", "-10", { type: "integer" }); + // Test negation of the round operation test_math_used("calc(0px - round(23px, 10px))", "-20px"); test_math_used("calc(0px - round(18px, 10px))", "-20px"); @@ -79,6 +133,13 @@ test_math_used("calc(0px - round(13px, 10px))", "-10px"); test_math_used("calc(0px - round(-13px, 10px))", "10px"); test_math_used("calc(0px - round(-18px, 10px))", "20px"); +test_math_used("calc(0 - round(23, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(18, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(15, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(13, 10))", "-10", { type: "integer" }); +test_math_used("calc(0 - round(-13, 10))", "10", { type: "integer" }); +test_math_used("calc(0 - round(-18, 10))", "20", { type: "integer" }); + // Test negation of nearest test_math_used("calc(0px - round(nearest, 23px, 10px))", "-20px"); test_math_used("calc(0px - round(nearest, 18px, 10px))", "-20px"); @@ -87,6 +148,13 @@ test_math_used("calc(0px - round(nearest, 13px, 10px))", "-10px"); test_math_used("calc(0px - round(nearest, -13px, 10px))", "10px"); test_math_used("calc(0px - round(nearest, -18px, 10px))", "20px"); +test_math_used("calc(0 - round(nearest, 23, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(nearest, 18, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(nearest, 15, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(nearest, 13, 10))", "-10", { type: "integer" }); +test_math_used("calc(0 - round(nearest, -13, 10))", "10", { type: "integer" }); +test_math_used("calc(0 - round(nearest, -18, 10))", "20", { type: "integer" }); + // Test negation of down test_math_used("calc(0px - round(down, 23px, 10px))", "-20px"); test_math_used("calc(0px - round(down, 18px, 10px))", "-10px"); @@ -95,6 +163,13 @@ test_math_used("calc(0px - round(down, 13px, 10px))", "-10px"); test_math_used("calc(0px - round(down, -13px, 10px))", "20px"); test_math_used("calc(0px - round(down, -18px, 10px))", "20px"); +test_math_used("calc(0 - round(down, 23, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(down, 18, 10))", "-10", { type: "integer" }); +test_math_used("calc(0 - round(down, 15, 10))", "-10", { type: "integer" }); +test_math_used("calc(0 - round(down, 13, 10))", "-10", { type: "integer" }); +test_math_used("calc(0 - round(down, -13, 10))", "20", { type: "integer" }); +test_math_used("calc(0 - round(down, -18, 10))", "20", { type: "integer" }); + // Test negation of up test_math_used("calc(0px - round(up, 23px, 10px))", "-30px"); test_math_used("calc(0px - round(up, 18px, 10px))", "-20px"); @@ -103,6 +178,13 @@ test_math_used("calc(0px - round(up, 13px, 10px))", "-20px"); test_math_used("calc(0px - round(up, -13px, 10px))", "10px"); test_math_used("calc(0px - round(up, -18px, 10px))", "10px"); +test_math_used("calc(0 - round(up, 23, 10))", "-30", { type: "integer" }); +test_math_used("calc(0 - round(up, 18, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(up, 15, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(up, 13, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(up, -13, 10))", "10", { type: "integer" }); +test_math_used("calc(0 - round(up, -18, 10))", "10", { type: "integer" }); + // Test negation of to-zero test_math_used("calc(0px - round(to-zero, 23px, 10px))", "-20px"); test_math_used("calc(0px - round(to-zero, 18px, 10px))", "-10px"); @@ -111,6 +193,13 @@ test_math_used("calc(0px - round(to-zero, 13px, 10px))", "-10px"); test_math_used("calc(0px - round(to-zero, -13px, 10px))", "10px"); test_math_used("calc(0px - round(to-zero, -18px, 10px))", "10px"); +test_math_used("calc(0 - round(to-zero, 23, 10))", "-20", { type: "integer" }); +test_math_used("calc(0 - round(to-zero, 18, 10))", "-10", { type: "integer" }); +test_math_used("calc(0 - round(to-zero, 15, 10))", "-10", { type: "integer" }); +test_math_used("calc(0 - round(to-zero, 13, 10))", "-10", { type: "integer" }); +test_math_used("calc(0 - round(to-zero, -13, 10))", "10", { type: "integer" }); +test_math_used("calc(0 - round(to-zero, -18, 10))", "10", { type: "integer" }); + // Extreme cases: // 0 step is NaN diff --git a/tests/wpt/tests/css/selectors/invalidation/part-dir.html b/tests/wpt/tests/css/selectors/invalidation/part-dir.html new file mode 100644 index 00000000000..6672d267be3 --- /dev/null +++ b/tests/wpt/tests/css/selectors/invalidation/part-dir.html @@ -0,0 +1,63 @@ +<!doctype html> +<title>::part():dir() invalidation</title> +<link rel="author" title="Keith Cirkel" href="mailto:wpt@keithcirkel.co.uk" /> +<link rel="help" href="https://drafts.csswg.org/css-shadow-parts/#part" /> +<link rel="help" href="https://github.com/whatwg/html/pull/8467" /> +<style> + my-element::part(inner) { + background-color: #ff0000; + } + my-element::part(inner):dir(ltr) { + background-color: #00ff00; + } + my-element::part(inner):dir(rtl) { + background-color: #0000ff; + } +</style> +<body> + <my-element id="subject"></my-element> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script> + const RED = "rgb(255, 0, 0)"; + const GREEN = "rgb(0, 255, 0)"; + const BLUE = "rgb(0, 0, 255)"; + customElements.define( + "my-element", + class MyElement extends HTMLElement { + connectedCallback() { + this.attachShadow({ + mode: "open", + }).innerHTML = `<div part="inner">Test</div>`; + this.elementInternals = this.attachInternals(); + } + + get inner() { + return this.shadowRoot.querySelector("[part=inner]"); + } + }, + ); + + test((t) => { + t.add_cleanup(() => { + subject.inner.lang = null; + }); + assert_equals(getComputedStyle(subject.inner).backgroundColor, GREEN); + subject.inner.dir = "rtl"; + assert_equals(getComputedStyle(subject.inner).backgroundColor, BLUE); + subject.inner.dir = "ltr"; + assert_equals(getComputedStyle(subject.inner).backgroundColor, GREEN); + }, "::part():dir() invalidation"); + + test((t) => { + t.add_cleanup(() => { + subject.removeAttribute("dir"); + }); + assert_equals(getComputedStyle(subject.inner).backgroundColor, GREEN); + subject.inner.setAttribute("dir", "rtl"); + assert_equals(getComputedStyle(subject.inner).backgroundColor, BLUE); + subject.inner.removeAttribute("dir"); + assert_equals(getComputedStyle(subject.inner).backgroundColor, GREEN); + }, "::part():dir() invalidation from setAttribute"); + </script> +</body> diff --git a/tests/wpt/tests/css/selectors/invalidation/part-lang.html b/tests/wpt/tests/css/selectors/invalidation/part-lang.html new file mode 100644 index 00000000000..438098b8ef5 --- /dev/null +++ b/tests/wpt/tests/css/selectors/invalidation/part-lang.html @@ -0,0 +1,73 @@ +<!doctype html> +<title>::part():lang() invalidation</title> +<link rel="author" title="Keith Cirkel" href="mailto:wpt@keithcirkel.co.uk" /> +<link rel="help" href="https://drafts.csswg.org/css-shadow-parts/#part" /> +<link rel="help" href="https://github.com/whatwg/html/pull/8467" /> +<style> + my-element::part(inner) { + background-color: #ff0000; + } + my-element::part(inner):lang(en) { + background-color: #00ffff; + } + my-element::part(inner):lang(en-GB) { + background-color: #00ff00; + } + my-element::part(inner):lang(fr) { + background-color: #0000ff; + } +</style> +<body> + <my-element id="subject" lang="en"></my-element> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script> + const RED = "rgb(255, 0, 0)"; + const GREEN = "rgb(0, 255, 0)"; + const BLUE = "rgb(0, 0, 255)"; + const AQUA = "rgb(0, 255, 255)"; + customElements.define( + "my-element", + class MyElement extends HTMLElement { + connectedCallback() { + this.attachShadow({ + mode: "open", + }).innerHTML = `<div part="inner">Test</div>`; + this.elementInternals = this.attachInternals(); + } + + get inner() { + return this.shadowRoot.querySelector("[part=inner]"); + } + }, + ); + + test((t) => { + t.add_cleanup(() => { + subject.inner.removeAttribute("lang"); + }); + assert_equals(getComputedStyle(subject.inner).backgroundColor, AQUA); + subject.inner.lang = "en-GB"; + assert_equals(getComputedStyle(subject.inner).backgroundColor, GREEN); + subject.inner.lang = "fr"; + assert_equals(getComputedStyle(subject.inner).backgroundColor, BLUE); + subject.inner.lang = "en"; + assert_equals(getComputedStyle(subject.inner).backgroundColor, AQUA); + }, "::part():lang() invalidation"); + + test((t) => { + t.add_cleanup(() => { + subject.inner.removeAttribute("lang"); + }); + assert_equals(getComputedStyle(subject.inner).backgroundColor, AQUA); + subject.inner.setAttribute("lang", "en-GB"); + assert_equals(getComputedStyle(subject.inner).backgroundColor, GREEN); + subject.inner.setAttribute("lang", "en"); + assert_equals(getComputedStyle(subject.inner).backgroundColor, AQUA); + subject.inner.setAttribute("lang", "fr"); + assert_equals(getComputedStyle(subject.inner).backgroundColor, BLUE); + subject.inner.removeAttribute("lang"); + assert_equals(getComputedStyle(subject.inner).backgroundColor, AQUA); + }, "::part():lang() invalidation from setAttribute"); + </script> +</body> diff --git a/tests/wpt/tests/css/selectors/invalidation/state-in-has.html b/tests/wpt/tests/css/selectors/invalidation/state-in-has.html new file mode 100644 index 00000000000..15dec18feb5 --- /dev/null +++ b/tests/wpt/tests/css/selectors/invalidation/state-in-has.html @@ -0,0 +1,58 @@ +<!doctype html> +<title>:has() invalidation with :state() pseudo-class</title> +<link rel="author" title="Keith Cirkel" href="mailto:wpt@keithcirkel.co.uk" /> +<link rel="help" href="https://drafts.csswg.org/selectors/#relational" /> +<link rel="help" href="https://github.com/whatwg/html/pull/8467" /> +<style> + #subject { + background-color: #f00; + } + #subject:has(:state(--green)) { + background-color: #0f0; + } + #subject:has(:state(--blue)) { + background-color: #00f; + } +</style> +<body> + Test :state() pseudo-class invalidation with :has() + <div id="subject"> + <my-element id="child"></my-element> + </div> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script> + const RED = "rgb(255, 0, 0)"; + const GREEN = "rgb(0, 255, 0)"; + const BLUE = "rgb(0, 0, 255)"; + + test(() => { + customElements.define( + "my-element", + class MyElement extends HTMLElement { + connectedCallback() { + this.elementInternals = this.attachInternals(); + } + }, + ); + assert_equals(getComputedStyle(subject).backgroundColor, RED); + child.elementInternals.states.add("--green"); + assert_equals(getComputedStyle(subject).backgroundColor, GREEN); + child.elementInternals.states.clear(); + assert_equals(getComputedStyle(subject).backgroundColor, RED); + + child.elementInternals.states.add("--blue"); + assert_equals(getComputedStyle(subject).backgroundColor, BLUE); + child.elementInternals.states.clear(); + assert_equals(getComputedStyle(subject).backgroundColor, RED); + + child.elementInternals.states.add("--green"); + child.elementInternals.states.add("--blue"); + assert_equals(getComputedStyle(subject).backgroundColor, BLUE); + child.elementInternals.states.delete("--blue"); + assert_equals(getComputedStyle(subject).backgroundColor, GREEN); + child.elementInternals.states.delete("--green"); + assert_equals(getComputedStyle(subject).backgroundColor, RED); + }, "Test :has() invalidation with :state() pseudo-classes"); + </script> +</body> diff --git a/tests/wpt/tests/css/selectors/parsing/parse-part.html b/tests/wpt/tests/css/selectors/parsing/parse-part.html index d6ee5d54d83..f0bec6fbc9b 100644 --- a/tests/wpt/tests/css/selectors/parsing/parse-part.html +++ b/tests/wpt/tests/css/selectors/parsing/parse-part.html @@ -24,11 +24,11 @@ test_valid_selector("::part(foo):is(:focus)"); test_valid_selector(":lang(en)::part(foo)"); test_valid_selector(":dir(ltr)::part(foo)"); + test_valid_selector("::part(foo):lang(en)"); + test_valid_selector("::part(foo):dir(ltr)"); test_invalid_selector(":part()"); test_invalid_selector(":part(0)"); test_invalid_selector(":part('foo')"); test_invalid_selector(":part([foo])"); - test_invalid_selector("::part(foo):lang(en)"); - test_invalid_selector("::part(foo):dir(ltr)"); test_invalid_selector('::part(foo) + ::part(bar)'); </script> diff --git a/tests/wpt/tests/editing/crashtests/delete-from-ruby-at-start-of-button.html b/tests/wpt/tests/editing/crashtests/delete-from-ruby-at-start-of-button.html new file mode 100644 index 00000000000..0159e528159 --- /dev/null +++ b/tests/wpt/tests/editing/crashtests/delete-from-ruby-at-start-of-button.html @@ -0,0 +1,29 @@ +<!doctype html> +<html> +<head> +<meta charset="utf-8"> +<style> +*:last-child { + white-space: pre-wrap; +} +</style> +<script> +addEventListener("DOMContentLoaded", () => { + getSelection().collapse(document.querySelector("ruby")); + document.designMode = "on"; + document.execCommand("delete"); +}); +</script> +</head> +<body> +<label contenteditable="true"></label> +<bdi style="white-space: nowrap"> +<button> +<kbd> +<ruby> +</ruby> +</kbd> +</button> +</bdi> +</body> +</html> diff --git a/tests/wpt/tests/editing/data/delete.js b/tests/wpt/tests/editing/data/delete.js index 3c2855e28f5..131c99b1d5a 100644 --- a/tests/wpt/tests/editing/data/delete.js +++ b/tests/wpt/tests/editing/data/delete.js @@ -3074,4 +3074,31 @@ var browserTests = [ "<div style=\"display:grid\"><span>abc</span><span><br></span></div>", [true], {}], +// Do not delete non-editable when deleting an editable character +["<b>X[]<span contenteditable=false>abc</span></b><i>def</i>", + [["delete",""]], + "<b><span contenteditable=\"false\">abc</span></b><i>def</i>", + [true], + {}], +["<b><span contenteditable=false>abc</span>X[]</b><i>def</i>", + [["delete",""]], + "<b><span contenteditable=\"false\">abc</span></b><i>def</i>", + [true], + {}], +["<p>X[]<span contenteditable=false>abc</span></p>", + [["delete",""]], + "<p><span contenteditable=\"false\">abc</span></p>", + [true], + {}], +["<p><span contenteditable=false>abc</span>X[]</p>", + [["delete",""]], + "<p><span contenteditable=\"false\">abc</span></p>", + [true], + {}], +// Do not delete ancestor blocks which still has non-editable content +["<p>{}<span contenteditable=false>ab</span></p>", + [["delete",""]], + "<p><span contenteditable=\"false\">ab</span></p>", + [true], + {}], ] diff --git a/tests/wpt/tests/editing/data/forwarddelete.js b/tests/wpt/tests/editing/data/forwarddelete.js index 5e76ee89885..ea590a4fbba 100644 --- a/tests/wpt/tests/editing/data/forwarddelete.js +++ b/tests/wpt/tests/editing/data/forwarddelete.js @@ -2954,4 +2954,31 @@ var browserTests = [ "<div style=\"display:grid\"><span>abc</span><span><br></span></div>", [true], {}], +// Do not delete non-editable when deleting an editable character +["<b>[]X<span contenteditable=false>abc</span></b><i>def</i>", + [["forwarddelete",""]], + "<b><span contenteditable=\"false\">abc</span></b><i>def</i>", + [true], + {}], +["<b><span contenteditable=false>abc</span>[]X</b><i>def</i>", + [["forwarddelete",""]], + "<b><span contenteditable=\"false\">abc</span></b><i>def</i>", + [true], + {}], +["<p>[]X<span contenteditable=false>abc</span></p>", + [["forwarddelete",""]], + "<p><span contenteditable=\"false\">abc</span></p>", + [true], + {}], +["<p><span contenteditable=false>abc</span>[]X</p>", + [["forwarddelete",""]], + "<p><span contenteditable=\"false\">abc</span></p>", + [true], + {}], +// Do not delete ancestor blocks which still has non-editable content +["<p><span contenteditable=false>ab</span>{}</p>", + [["forwarddelete",""]], + "<p><span contenteditable=\"false\">ab</span></p>", + [true], + {}], ] diff --git a/tests/wpt/tests/editing/data/inserthtml.js b/tests/wpt/tests/editing/data/inserthtml.js index 841f5493c90..350f0a15569 100644 --- a/tests/wpt/tests/editing/data/inserthtml.js +++ b/tests/wpt/tests/editing/data/inserthtml.js @@ -590,4 +590,17 @@ var browserTests = [ "<div class=\"d1\"></div><div class=\"d2\"><span class=\"s1\">some text</span><a href=\"foo.html\"></a></div>", [true], {"inserthtml":[false,false,"",false,false,""]}], + +// Do not delete non-editable when clearing the original style +["<p><b>[X]<span contenteditable=false>abc</span></b><i>def</i></p>", + [["inserthtml","<i>Z</i>"]], + "<p><i>Z</i><b><span contenteditable=\"false\">abc</span></b><i>def</i></p>", + [true], + {}], +["<p><b><span contenteditable=false>abc</span>[Y]</b><i>def</i></p>", + [["inserthtml","<i>Z</i>"]], + ["<p><b><span contenteditable=\"false\">abc</span></b><i>Z</i><i>def</i></p>", + "<p><b><span contenteditable=\"false\">abc</span></b><i>Zdef</i></p>"], + [true], + {}], ] diff --git a/tests/wpt/tests/editing/data/insertparagraph.js b/tests/wpt/tests/editing/data/insertparagraph.js index 608b7cecceb..7a5fe7158b2 100644 --- a/tests/wpt/tests/editing/data/insertparagraph.js +++ b/tests/wpt/tests/editing/data/insertparagraph.js @@ -2410,4 +2410,15 @@ var browserTests = [ "<ul><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\">foo</span></span><br></li><li><span style=\"color:rgb(0, 0, 255)\"><span style=\"background-color:rgb(0, 0, 255)\"><br></span></span></li></ul>"], [true,true], {"insertparagraph":[false,false,"",false,false,""]}], + +["<p>[X]<span contenteditable=false>abc</span></p>", + [["insertparagraph",""]], + "<p><br></p><p><span contenteditable=\"false\">abc</span></p>", + [true], + {}], +["<p><span contenteditable=false>abc</span>[X]</p>", + [["insertparagraph",""]], + "<p><span contenteditable=\"false\">abc</span></p><p><br></p>", + [true], + {}], ] diff --git a/tests/wpt/tests/editing/data/multitest.js b/tests/wpt/tests/editing/data/multitest.js index aeda7b2e7b6..e85f54addfc 100644 --- a/tests/wpt/tests/editing/data/multitest.js +++ b/tests/wpt/tests/editing/data/multitest.js @@ -3218,4 +3218,30 @@ var browserTests = [ "<div style=\"display:grid\"><span>abc</span><span><b>gh</b><br></span></div>"], [true,true,true], {}], +// Do not delete non-editable when deleting an editable character and preseve +// the style for new text. +["<b>X[]<span contenteditable=false>abc</span></b><i>def</i>", + [["delete",""],["inserttext","Y"]], + ["<b>Y<span contenteditable=\"false\">abc</span></b><i>def</i>", + "<b>Y</b><b><span contenteditable=\"false\">abc</span></b><i>def</i>"], + [true,true], + {}], +["<b><span contenteditable=false>abc</span>X[]</b><i>def</i>", + [["delete",""],["inserttext","Y"]], + ["<b><span contenteditable=\"false\">abc</span>Y</b><i>def</i>", + "<b><span contenteditable=\"false\">abc</span></b><b>Y</b><i>def</i>"], + [true,true], + {}], +["<b>[]X<span contenteditable=false>abc</span></b><i>def</i>", + [["forwarddelete",""],["inserttext","Y"]], + ["<b>Y<span contenteditable=\"false\">abc</span></b><i>def</i>", + "<b>Y</b><b><span contenteditable=\"false\">abc</span></b><i>def</i>"], + [true,true], + {}], +["<b><span contenteditable=false>abc</span>[]X</b><i>def</i>", + [["forwarddelete",""],["inserttext","Y"]], + ["<b><span contenteditable=\"false\">abc</span>Y</b><i>def</i>", + "<b><span contenteditable=\"false\">abc</span></b><b>Y</b><i>def</i>"], + [true,true], + {}], ] diff --git a/tests/wpt/tests/html/dom/aria-attribute-reflection.html b/tests/wpt/tests/html/dom/aria-attribute-reflection.html index e201d4660eb..8970938ac92 100644 --- a/tests/wpt/tests/html/dom/aria-attribute-reflection.html +++ b/tests/wpt/tests/html/dom/aria-attribute-reflection.html @@ -8,9 +8,16 @@ <script> function testNullable(element, jsAttr, contentAttr) { + var originalValue = element[jsAttr]; + assert_false(originalValue === null); element[jsAttr] = null; assert_equals(element[jsAttr], null); assert_false(element.hasAttribute(contentAttr)); + // Setting to undefined results in same state as setting to null. + element[jsAttr] = originalValue; + element[jsAttr] = undefined; + assert_equals(element[jsAttr], null); + assert_false(element.hasAttribute(contentAttr)); } </script> diff --git a/tests/wpt/tests/html/semantics/forms/the-input-element/range.html b/tests/wpt/tests/html/semantics/forms/the-input-element/range.html index 093c60ba577..27cc6abe9c1 100644 --- a/tests/wpt/tests/html/semantics/forms/the-input-element/range.html +++ b/tests/wpt/tests/html/semantics/forms/the-input-element/range.html @@ -57,6 +57,10 @@ "range type support on input element" ); + test(function() { + assert_equals(getComputedStyle(document.getElementById('range_basic')).overflow, "visible"); + }, "range overflow styles"); + test( function() { assert_equals(document.getElementById('range_basic').min, "0") diff --git a/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-current-ref.html b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-current-ref.html new file mode 100644 index 00000000000..acc0465b074 --- /dev/null +++ b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-current-ref.html @@ -0,0 +1,109 @@ +<!DOCTYPE html> +<title> + Current animations should effectively apply will-change (i.e. force a + stacking context) (ref) +</title> +<link rel="help" href="https://drafts.csswg.org/web-animations-1/#side-effects-section"> +<link rel="author" href="mailto:bokan@chromium.org"> +<style> + .testcase { + position: relative; + margin: 2px; + border: 1px solid black; + width: 250px; + height: 25px; + } + .label { + flex-grow: 1; + } + .container { + background-color: lightgrey; + margin: 4px; + display: flex; + width: 600px; + flex-direction: row; + justify-content: flex-end; + align-items: center; + } + .pass { + width: 100%; + height: 100%; + background-color: limegreen; + } +</style> + +<!-- OPACITY --> + +<!-- Is current - before phase playing forwards --> +<div class="container"> + <div class="label">Opacity - before phase</div> + <div class="testcase" id="opacity-before"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Opacity - active phase</div> + <div class="testcase" id="opacity-active"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Opacity - after phase</div> + <div class="testcase" id="opacity-after"> + <div class="pass"></div> + </div> +</div> + +<!-- TRANSFORM --> + +<!-- Is current - before phase playing forwards --> +<div class="container"> + <div class="label">Transform - before phase</div> + <div class="testcase" id="transform-before"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Transform - active phase</div> + <div class="testcase" id="transform-active"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Transform - after phase</div> + <div class="testcase" id="transform-after"> + <div class="pass"></div> + </div> +</div> + +<!-- BACKGROUND COLOR --> +<div class="container"> + <div class="label">Background-color - before phase</div> + <div class="testcase" id="bgcolor-before"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Background-color - active phase</div> + <div class="testcase" id="bgcolor-active"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Background-color - after phase</div> + <div class="testcase" id="bgcolor-after"> + <div class="pass"></div> + </div> +</div> diff --git a/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-current.html b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-current.html new file mode 100644 index 00000000000..b0de72bdbf9 --- /dev/null +++ b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-current.html @@ -0,0 +1,214 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<title> + Current animations should effectively apply will-change (i.e. force a + stacking context) +</title> +<link rel="help" href="https://drafts.csswg.org/web-animations-1/#side-effects-section"> +<link rel="author" href="mailto:bokan@chromium.org"> +<link rel="match" href="side-effects-of-animations-current-ref.html"> +<script src="/common/reftest-wait.js"></script> +<style> + .testcase { + position: relative; + margin: 2px; + border: 1px solid black; + width: 250px; + height: 25px; + } + .container { + background-color: lightgrey; + margin: 4px; + display: flex; + width: 600px; + flex-direction: row; + justify-content: flex-end; + align-items: center; + } + .label { + flex-grow: 1; + } + .target { + width: 100%; + height: 100%; + } + .absolutebox { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } + .pass { + background-color: limegreen; + } + .fail { + background-color: red; + } +</style> + +<script> +const PROPERTY_OPACITY = 0; +const PROPERTY_TRANSFORM = 1; +const PROPERTY_BGCOLOR = 2; + +const PHASE_BEFORE = 10; +const PHASE_ACTIVE = 11; +const PHASE_AFTER = 12; + +// Setup an animation and put it in a state where it is current but, if outside +// the active phase, not in effect. +function setupAnimation(testcase, property, phase) { + const root = document.querySelector(testcase); + const effect_target = root.querySelector('.target'); + let keyframe; + if (property == PROPERTY_OPACITY) + keyframe = { opacity: 1}; + else if (property == PROPERTY_TRANSFORM) + keyframe = { transform: 'translateX(0px)' }; + else if (property == PROPERTY_BGCOLOR) + keyframe = { backgroundColor: 'red' }; + else + throw new Error('Unexpected property'); + + const options = { duration: 1000, delay: 1000, endDelay: 1000 }; + + const animation = effect_target.animate( + [ keyframe, keyframe ], options); + + if (phase == PHASE_BEFORE) { + animation.currentTime = 500; + } else if (phase == PHASE_ACTIVE) { + animation.currentTime = 1500; + } else if (phase == PHASE_AFTER) { + animation.currentTime = 2500; + animation.playbackRate = -1; + } else { + throw new Error('Unexpected phase'); + } + + animation.pause(); +} + +onload = requestAnimationFrame(() => requestAnimationFrame(takeScreenshot)); +</script> + +<!-- OPACITY --> + +<!-- Is current - before phase playing forwards --> +<div class="container"> + <div class="label">Opacity - before phase</div> + <div class="testcase" id="opacity-before"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#opacity-before', PROPERTY_OPACITY, PHASE_BEFORE); +</script> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Opacity - active phase</div> + <div class="testcase" id="opacity-active"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#opacity-active', PROPERTY_OPACITY, PHASE_ACTIVE); +</script> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Opacity - after phase</div> + <div class="testcase" id="opacity-after"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#opacity-after', PROPERTY_OPACITY, PHASE_AFTER); +</script> + +<!-- TRANSFORM --> + +<!-- Is current - before phase playing forwards --> +<div class="container"> + <div class="label">Transform - before phase</div> + <div class="testcase" id="transform-before"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#transform-before', PROPERTY_TRANSFORM, PHASE_BEFORE); +</script> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Transform - active phase</div> + <div class="testcase" id="transform-active"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#transform-active', PROPERTY_TRANSFORM, PHASE_ACTIVE); +</script> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Transform - after phase</div> + <div class="testcase" id="transform-after"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#transform-after', PROPERTY_TRANSFORM, PHASE_AFTER); +</script> + +<!-- BACKGROUND COLOR --> +<!-- + unlike opacity and transform, background color shouldn't create a stacking + context. +--> + +<!-- Is current - before phase playing forwards --> +<div class="container"> + <div class="label">Background-color - before phase</div> + <div class="testcase" id="bgcolor-before"> + <div class="absolutebox pass"></div> + <div class="target fail"></div> + </div> +</div> +<script> + setupAnimation('#bgcolor-before', PROPERTY_BGCOLOR, PHASE_BEFORE); +</script> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Background-color - active phase</div> + <div class="testcase" id="bgcolor-active"> + <div class="absolutebox pass"></div> + <div class="target fail"></div> + </div> +</div> +<script> + setupAnimation('#bgcolor-active', PROPERTY_BGCOLOR, PHASE_ACTIVE); +</script> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Background-color - after phase</div> + <div class="testcase" id="bgcolor-after"> + <div class="absolutebox pass"></div> + <div class="target fail"></div> + </div> +</div> +<script> + setupAnimation('#bgcolor-after', PROPERTY_BGCOLOR, PHASE_AFTER); +</script> + +</html> diff --git a/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-in-effect-ref.html b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-in-effect-ref.html new file mode 100644 index 00000000000..24160cb2677 --- /dev/null +++ b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-in-effect-ref.html @@ -0,0 +1,109 @@ +<!DOCTYPE html> +<title> + In effect animations should effectively apply will-change (i.e. force a + stacking context) (ref) +</title> +<link rel="help" href="https://drafts.csswg.org/web-animations-1/#side-effects-section"> +<link rel="author" href="mailto:bokan@chromium.org"> +<style> + .testcase { + position: relative; + margin: 2px; + border: 1px solid black; + width: 250px; + height: 25px; + } + .label { + flex-grow: 1; + } + .container { + background-color: lightgrey; + margin: 4px; + display: flex; + width: 600px; + flex-direction: row; + justify-content: flex-end; + align-items: center; + } + .pass { + width: 100%; + height: 100%; + background-color: limegreen; + } +</style> + +<!-- OPACITY --> + +<!-- Is current - before phase playing forwards --> +<div class="container"> + <div class="label">Opacity - before phase</div> + <div class="testcase" id="opacity-before"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Opacity - active phase</div> + <div class="testcase" id="opacity-active"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Opacity - after phase</div> + <div class="testcase" id="opacity-after"> + <div class="pass"></div> + </div> +</div> + +<!-- TRANSFORM --> + +<!-- Is current - before phase playing forwards --> +<div class="container"> + <div class="label">Transform - before phase</div> + <div class="testcase" id="transform-before"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Transform - active phase</div> + <div class="testcase" id="transform-active"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Transform - after phase</div> + <div class="testcase" id="transform-after"> + <div class="pass"></div> + </div> +</div> + +<!-- BACKGROUND COLOR --> +<div class="container"> + <div class="label">Background-color - before phase</div> + <div class="testcase" id="bgcolor-before"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Background-color - active phase</div> + <div class="testcase" id="bgcolor-active"> + <div class="pass"></div> + </div> +</div> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Background-color - after phase</div> + <div class="testcase" id="bgcolor-after"> + <div class="pass"></div> + </div> +</div> diff --git a/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-in-effect.html b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-in-effect.html new file mode 100644 index 00000000000..ff53c98d793 --- /dev/null +++ b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-in-effect.html @@ -0,0 +1,214 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<title> + In effect animations should effectively apply will-change (i.e. force a + stacking context) +</title> +<link rel="help" href="https://drafts.csswg.org/web-animations-1/#side-effects-section"> +<link rel="author" href="mailto:bokan@chromium.org"> +<link rel="match" href="side-effects-of-animations-in-effect-ref.html"> +<script src="/common/reftest-wait.js"></script> +<style> + .testcase { + position: relative; + margin: 2px; + border: 1px solid black; + width: 250px; + height: 25px; + } + .container { + background-color: lightgrey; + margin: 4px; + display: flex; + width: 600px; + flex-direction: row; + justify-content: flex-end; + align-items: center; + } + .label { + flex-grow: 1; + } + .target { + width: 100%; + height: 100%; + } + .absolutebox { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } + .pass { + background-color: limegreen; + } + .fail { + background-color: red; + } +</style> + +<script> +const PROPERTY_OPACITY = 0; +const PROPERTY_TRANSFORM = 1; +const PROPERTY_BGCOLOR = 2; + +const PHASE_BEFORE = 10; +const PHASE_ACTIVE = 11; +const PHASE_AFTER = 12; + +// Setup an animation and put it in a state where it is in effect but, if +// outside the active phase, not current. +function setupAnimation(testcase, property, phase) { + const root = document.querySelector(testcase); + const effect_target = root.querySelector('.target'); + let keyframe; + if (property == PROPERTY_OPACITY) + keyframe = { opacity: 1}; + else if (property == PROPERTY_TRANSFORM) + keyframe = { transform: 'translateX(0px)' }; + else if (property == PROPERTY_BGCOLOR) + keyframe = { backgroundColor: 'red' }; + else + throw new Error('Unexpected property'); + + const options = { duration: 1000, delay: 1000, endDelay: 1000, fill: 'both' }; + + const animation = effect_target.animate( + [ keyframe, keyframe ], options); + + if (phase == PHASE_BEFORE) { + animation.currentTime = 500; + animation.playbackRate = -1; + } else if (phase == PHASE_ACTIVE) { + animation.currentTime = 1500; + } else if (phase == PHASE_AFTER) { + animation.currentTime = 2500; + } else { + throw new Error('Unexpected phase'); + } + + animation.pause(); +} + +onload = requestAnimationFrame(() => requestAnimationFrame(takeScreenshot)); +</script> + +<!-- OPACITY --> + +<!-- Is current - before phase playing forwards --> +<div class="container"> + <div class="label">Opacity - before phase</div> + <div class="testcase" id="opacity-before"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#opacity-before', PROPERTY_OPACITY, PHASE_BEFORE); +</script> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Opacity - active phase</div> + <div class="testcase" id="opacity-active"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#opacity-active', PROPERTY_OPACITY, PHASE_ACTIVE); +</script> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Opacity - after phase</div> + <div class="testcase" id="opacity-after"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#opacity-after', PROPERTY_OPACITY, PHASE_AFTER); +</script> + +<!-- TRANSFORM --> + +<!-- Is current - before phase playing forwards --> +<div class="container"> + <div class="label">Transform - before phase</div> + <div class="testcase" id="transform-before"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#transform-before', PROPERTY_TRANSFORM, PHASE_BEFORE); +</script> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Transform - active phase</div> + <div class="testcase" id="transform-active"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#transform-active', PROPERTY_TRANSFORM, PHASE_ACTIVE); +</script> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Transform - after phase</div> + <div class="testcase" id="transform-after"> + <div class="absolutebox fail"></div> + <div class="target pass"></div> + </div> +</div> +<script> + setupAnimation('#transform-after', PROPERTY_TRANSFORM, PHASE_AFTER); +</script> + +<!-- BACKGROUND COLOR --> +<!-- + unlike opacity and transform, background color shouldn't create a stacking + context. +--> + +<!-- Is current - before phase playing forwards --> +<div class="container"> + <div class="label">Background-color - before phase</div> + <div class="testcase" id="bgcolor-before"> + <div class="absolutebox pass"></div> + <div class="target fail"></div> + </div> +</div> +<script> + setupAnimation('#bgcolor-before', PROPERTY_BGCOLOR, PHASE_BEFORE); +</script> + +<!-- Is current - in play--> +<div class="container"> + <div class="label">Background-color - active phase</div> + <div class="testcase" id="bgcolor-active"> + <div class="absolutebox pass"></div> + <div class="target fail"></div> + </div> +</div> +<script> + setupAnimation('#bgcolor-active', PROPERTY_BGCOLOR, PHASE_ACTIVE); +</script> + +<!-- Is current - after phase playing backwards--> +<div class="container"> + <div class="label">Background-color - after phase</div> + <div class="testcase" id="bgcolor-after"> + <div class="absolutebox pass"></div> + <div class="target fail"></div> + </div> +</div> +<script> + setupAnimation('#bgcolor-after', PROPERTY_BGCOLOR, PHASE_AFTER); +</script> + +</html> diff --git a/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-none-ref.html b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-none-ref.html new file mode 100644 index 00000000000..4d1ea997f4c --- /dev/null +++ b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-none-ref.html @@ -0,0 +1,48 @@ +<!DOCTYPE html> +<title> + Animations not in effect nor current shouldn't have side-effects (ref). +</title> +<link rel="help" href="https://drafts.csswg.org/web-animations-1/#side-effects-section"> +<link rel="author" href="mailto:bokan@chromium.org"> +<style> + .testcase { + position: relative; + margin: 2px; + border: 1px solid black; + width: 250px; + height: 25px; + } + .label { + flex-grow: 1; + } + .container { + background-color: lightgrey; + margin: 4px; + display: flex; + width: 600px; + flex-direction: row; + justify-content: flex-end; + align-items: center; + } + .pass { + width: 100%; + height: 100%; + background-color: limegreen; + } +</style> + +<!-- before phase playing backwards --> +<div class="container"> + <div class="label">Before phase</div> + <div class="testcase" id="before"> + <div class="pass"></div> + </div> +</div> + +<!-- after phase playing forwards --> +<div class="container"> + <div class="label">After phase</div> + <div class="testcase" id="after"> + <div class="pass"></div> + </div> +</div> diff --git a/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-none.html b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-none.html new file mode 100644 index 00000000000..b460ecc27fd --- /dev/null +++ b/tests/wpt/tests/web-animations/animation-model/side-effects-of-animations-none.html @@ -0,0 +1,103 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<title> + Animations not in effect nor current shouldn't have side-effects. +</title> +<link rel="help" href="https://drafts.csswg.org/web-animations-1/#side-effects-section"> +<link rel="author" href="mailto:bokan@chromium.org"> +<link rel="match" href="side-effects-of-animations-none-ref.html"> +<script src="/common/reftest-wait.js"></script> +<style> + .testcase { + position: relative; + margin: 2px; + border: 1px solid black; + width: 250px; + height: 25px; + } + .container { + background-color: lightgrey; + margin: 4px; + display: flex; + width: 600px; + flex-direction: row; + justify-content: flex-end; + align-items: center; + } + .label { + flex-grow: 1; + } + .target { + width: 100%; + height: 100%; + } + .absolutebox { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } + .pass { + background-color: limegreen; + } + .fail { + background-color: red; + } +</style> + +<script> +const PHASE_BEFORE = 10; +const PHASE_AFTER = 12; + +// Start an animation and put it into a state that's neither current nor in +// effect. +function setupAnimation(testcase, phase) { + const root = document.querySelector(testcase); + const effect_target = root.querySelector('.target'); + const keyframe = { opacity: 1}; + const options = { duration: 1000, delay: 1000, endDelay: 1000 }; + + const animation = effect_target.animate( + [ keyframe, keyframe ], options); + + if (phase == PHASE_BEFORE) { + animation.currentTime = 500; + animation.playbackRate = -1; + } else if (phase == PHASE_AFTER) { + animation.currentTime = 2500; + } else { + throw new Error('Unexpected phase'); + } + + animation.pause(); +} + +onload = requestAnimationFrame(() => requestAnimationFrame(takeScreenshot)); +</script> + +<!-- before phase playing backwards --> +<div class="container"> + <div class="label">Before phase</div> + <div class="testcase" id="before"> + <div class="absolutebox pass"></div> + <div class="target fail"></div> + </div> +</div> +<script> + setupAnimation('#before', PHASE_BEFORE); +</script> + +<!-- after phase playing forwards--> +<div class="container"> + <div class="label">After phase</div> + <div class="testcase" id="after"> + <div class="absolutebox pass"></div> + <div class="target fail"></div> + </div> +</div> +<script> + setupAnimation('#after', PHASE_AFTER); +</script> + +</html> |