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>
This commit is contained in:
Servo WPT Sync 2024-01-01 15:22:51 -05:00 committed by GitHub
parent 7964a4f582
commit f58541e652
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
114 changed files with 2933 additions and 140 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,2 +0,0 @@
[opacity-animation-ending-correctly-001.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[oklch-l-over-1-1.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[oklch-l-over-1-2.html]
expected: FAIL

View file

@ -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

View file

@ -1,2 +0,0 @@
[no-transition-from-ua-to-blocking-stylesheet.html]
expected: TIMEOUT

View file

@ -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

View file

@ -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

View file

@ -4,3 +4,6 @@
[Make sure the page is ready for animation.]
expected: FAIL
[Smooth scrolling while doing history navigation.]
expected: FAIL

View file

@ -0,0 +1,2 @@
[part-dir.html]
expected: ERROR

View file

@ -0,0 +1,2 @@
[part-lang.html]
expected: ERROR

View file

@ -0,0 +1,4 @@
[state-in-has.html]
expected: ERROR
[Test :has() invalidation with :state() pseudo-classes]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,3 +0,0 @@
[navigation-unload-same-origin.window.html]
[Same-origin navigation started from unload handler must be ignored]
expected: FAIL

View file

@ -1,3 +0,0 @@
[a-click.html]
[aElement.click() before the load event must NOT replace]
expected: FAIL

View file

@ -1,3 +0,0 @@
[traverse_the_history_2.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,2 +0,0 @@
[canvas.2d.disconnected-font-size-math.html]
expected: CRASH

View file

@ -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]

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -5,3 +5,6 @@
[Skip ASCII whitespace within input]
expected: FAIL
[range overflow styles]
expected: FAIL

View file

@ -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

View file

@ -0,0 +1,4 @@
[async-script.html?reload]
expected: ERROR
[async-script.html?default]

View file

@ -1,3 +0,0 @@
[DOMContentLoaded-defer.html]
[The end: DOMContentLoaded and defer scripts]
expected: FAIL

View file

@ -0,0 +1,3 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -4,7 +4,7 @@
expected: FAIL
[Rejection handler on pending-then-rejected promise]
expected: FAIL
expected: TIMEOUT
[Thenable resolution]
expected: FAIL

View file

@ -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

View file

@ -1,2 +0,0 @@
[strategy-worker-terminate.html]
expected: CRASH

View file

@ -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

View file

@ -0,0 +1,4 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -1,5 +1,4 @@
[003.html]
type: testharness
expected: ERROR
[shared]
expected: FAIL

View file

@ -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,
{}

View file

@ -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

View file

@ -1,2 +0,0 @@
[opacity-animation-ending-correctly-002.html]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[oklch-l-over-1-1.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[oklch-l-over-1-2.html]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,2 @@
[part-dir.html]
expected: ERROR

View file

@ -0,0 +1,2 @@
[part-lang.html]
expected: ERROR

View file

@ -0,0 +1,4 @@
[state-in-has.html]
expected: ERROR
[Test :has() invalidation with :state() pseudo-classes]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,3 +0,0 @@
[a-click.html]
[aElement.click() before the load event must NOT replace]
expected: FAIL

View file

@ -1,3 +0,0 @@
[traverse_the_history_2.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -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]

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,2 +0,0 @@
[image-loading-lazy-slow.html]
expected: FAIL

View file

@ -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

View file

@ -181,3 +181,6 @@
[text/plain: double quote in value (formdata event)]
expected: FAIL
[text/plain: Basic File test (formdata event)]
expected: FAIL

View file

@ -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

View file

@ -0,0 +1,3 @@
[range.html]
[range overflow styles]
expected: FAIL

View file

@ -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

View file

@ -1,3 +0,0 @@
[DOMContentLoaded-defer.html]
[The end: DOMContentLoaded and defer scripts]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,4 +1,5 @@
[audiocontext-not-fully-active.html]
expected: TIMEOUT
[frame in navigated remote-site frame]
expected: FAIL

View file

@ -0,0 +1,4 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -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:

View file

@ -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>

View file

@ -0,0 +1 @@
Content-Security-Policy: script-src 'nonce-secret'

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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 ' +

View file

@ -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) {

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

Some files were not shown because too many files have changed in this diff Show more