Sync WPT with upstream (16-08-2025) (#38706)

Automated downstream sync of changes from upstream as of 16-08-2025
[no-wpt-sync]

Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
This commit is contained in:
Servo WPT Sync 2025-08-16 02:46:10 +02:00 committed by GitHub
parent 85588fada0
commit e649b9b91d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
416 changed files with 7746 additions and 1062 deletions

View file

@ -12,3 +12,6 @@
[Revoke blob URL after creating Request, then clone Request, will fetch] [Revoke blob URL after creating Request, then clone Request, will fetch]
expected: FAIL expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,6 @@
[__Host-Http.https.html]
[__Host-Http: Does not set via DOM 'Secure; Path=/']
expected: FAIL
[__Host-Http: Does not set via HTTP with 'Secure; Path=/']
expected: FAIL

View file

@ -1,18 +0,0 @@
[__HostHttp.https.html]
[__HostHttp: Does not set via DOM 'Secure; Path=/']
expected: FAIL
[__HostHttp: Does not set via DOM with Domain attribute 'Secure; Path=/; Domain=web-platform.test']
expected: FAIL
[__HostHttp: Does not set via HTTP with 'Secure; Path=/']
expected: FAIL
[__HostHttp: Does not set via HTTP with 'Secure; Path=/cookies/; httponly']
expected: FAIL
[__HostHttp: Does not set via HTTP with 'Path=/;' (without Secure)]
expected: FAIL
[__HostHttp: Does not set via HTTP with Domain attribute 'Secure; Path=/; Domain=web-platform.test']
expected: FAIL

View file

@ -0,0 +1,6 @@
[cookieStore_set_path.https.window.html]
[CookieListItem - cookieStore.set with empty string path defaults to current URL]
expected: FAIL
[CookieListItem - cookieStore.set with empty string path defaults to current URL with __host- prefix]
expected: FAIL

View file

@ -110,6 +110,27 @@
[cookieStore.set a nameless cookie cannot have \t__HostHttp- prefix] [cookieStore.set a nameless cookie cannot have \t__HostHttp- prefix]
expected: FAIL expected: FAIL
[cookieStore.set with __Host-Http- prefix rejects]
expected: FAIL
[cookieStore.set with __host-http- prefix rejects]
expected: FAIL
[cookieStore.set with __Host-Http- prefix rejects]
expected: FAIL
[cookieStore.set with \t__Host-Http- prefix rejects]
expected: FAIL
[cookieStore.set a nameless cookie cannot have __Host-Http- prefix]
expected: FAIL
[cookieStore.set a nameless cookie cannot have __Host-Http- prefix]
expected: FAIL
[cookieStore.set a nameless cookie cannot have \t__Host-Http- prefix]
expected: FAIL
[cookieStore_special_names.https.any.serviceworker.html] [cookieStore_special_names.https.any.serviceworker.html]
expected: ERROR expected: ERROR

View file

@ -5,9 +5,3 @@
[@font-face override between layers] [@font-face override between layers]
expected: [FAIL, PASS] expected: [FAIL, PASS]
[@font-face override update with appended sheet 1]
expected: FAIL
[@font-face override update with appended sheet 2]
expected: FAIL

View file

@ -0,0 +1,2 @@
[grid-abspos-staticpos-align-items-center-large-border-padding.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[grid-abspos-staticpos-align-items-center.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[grid-abspos-staticpos-align-items-end-large-border-padding.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[grid-abspos-staticpos-align-items-end.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[grid-abspos-staticpos-align-items-flex-end-large-border-padding.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[grid-abspos-staticpos-align-items-flex-end.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[grid-abspos-staticpos-align-items-self-end-large-border-padding.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[grid-abspos-staticpos-align-items-self-end.html]
expected: FAIL

View file

@ -0,0 +1,3 @@
[cycle.tentative.html]
[CSS Mixins: Cycles]
expected: FAIL

View file

@ -0,0 +1,3 @@
[import-with-media-queries.html]
[CSS Mixins: @import with media queries]
expected: FAIL

View file

@ -0,0 +1,3 @@
[import.html]
[CSS Mixins: Mixin from an imported stylesheet]
expected: FAIL

View file

@ -0,0 +1,2 @@
[line-clamp-with-text-overflow-string-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[line-clamp-with-text-overflow-string-002.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[line-clamp-with-text-overflow-string-003.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[webkit-line-clamp-with-max-height.tentative.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[first-line-line-height-003.html]
expected: FAIL

View file

@ -0,0 +1,9 @@
[intrinsic-size-fallback-video.html]
[.wrapper 2]
expected: FAIL
[.wrapper 3]
expected: FAIL
[.wrapper 4]
expected: FAIL

View file

@ -25,3 +25,6 @@
[Property text-decoration value 'double overline underline'] [Property text-decoration value 'double overline underline']
expected: FAIL expected: FAIL
[Property text-decoration value 'underline overline line-through blink']
expected: FAIL

View file

@ -19,6 +19,3 @@
[e.style['text-decoration'\] = "overline green from-font" should set the property value] [e.style['text-decoration'\] = "overline green from-font" should set the property value]
expected: FAIL expected: FAIL
[e.style['text-decoration'\] = "underline overline line-through blink red" should set the property value]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-overflow-string-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-overflow-string-002.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-overflow-string-003.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-overflow-string-004.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-overflow-string-005.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[text-overflow-string-006.tentative.html]
expected: FAIL

View file

@ -0,0 +1,6 @@
[caretPositionFromPoint-audioVideo.html]
[document.caretPositionFromPoint() should return a CaretPosition over audio elements]
expected: FAIL
[document.caretPositionFromPoint() should return a CaretPosition over video elements]
expected: FAIL

View file

@ -0,0 +1,2 @@
[drop-shadow-with-3d-transform.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[fecomponenttransfer-display-p3.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-empty-hidden-foreignobject-with-filter-001.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[svg-visibility-hidden-element-with-filter-002.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[visibility-hidden-element-with-filter-001.html]
expected: FAIL

View file

@ -0,0 +1,924 @@
[heading.html]
[<h1 data-expect-match="1"></h1> :heading]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(1)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(2)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(3)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(4)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(5)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(6)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(7)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(8)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(9)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(0)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(-1)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(0, 1, 2)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(6, 7)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(n)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(2n)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(2n+1)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(2n+2)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(-n+3)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(2n, 3n)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(even)]
expected: FAIL
[<h1 data-expect-match="1"></h1> :heading(odd)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(1)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(2)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(3)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(4)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(5)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(6)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(7)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(8)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(9)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(0)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(-1)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(0, 1, 2)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(6, 7)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(n)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(2n)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(2n+1)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(2n+2)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(-n+3)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(2n, 3n)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(even)]
expected: FAIL
[<h2 data-expect-match="2"></h2> :heading(odd)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(1)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(2)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(3)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(4)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(5)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(6)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(7)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(8)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(9)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(0)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(-1)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(0, 1, 2)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(6, 7)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(n)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(2n)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(2n+1)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(2n+2)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(-n+3)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(2n, 3n)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(even)]
expected: FAIL
[<h3 data-expect-match="3"></h3> :heading(odd)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(1)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(2)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(3)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(4)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(5)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(6)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(7)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(8)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(9)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(0)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(-1)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(0, 1, 2)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(6, 7)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(n)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(2n)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(2n+1)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(2n+2)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(-n+3)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(2n, 3n)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(even)]
expected: FAIL
[<h4 data-expect-match="4"></h4> :heading(odd)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(1)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(2)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(3)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(4)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(5)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(6)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(7)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(8)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(9)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(0)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(-1)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(0, 1, 2)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(6, 7)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(n)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(2n)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(2n+1)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(2n+2)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(-n+3)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(2n, 3n)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(even)]
expected: FAIL
[<h5 data-expect-match="5"></h5> :heading(odd)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(1)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(2)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(3)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(4)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(5)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(6)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(7)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(8)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(9)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(0)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(-1)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(0, 1, 2)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(6, 7)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(n)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(2n)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(2n+1)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(2n+2)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(-n+3)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(2n, 3n)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(even)]
expected: FAIL
[<h6 data-expect-match="6"></h6> :heading(odd)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(1)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(2)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(3)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(4)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(5)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(6)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(7)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(8)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(9)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(0)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(-1)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(0, 1, 2)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(6, 7)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(n)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(2n)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(2n+1)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(2n+2)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(-n+3)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(2n, 3n)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(even)]
expected: FAIL
[<h7 data-expect-match=""></h7> :heading(odd)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(1)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(2)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(3)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(4)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(5)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(6)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(7)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(8)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(9)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(0)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(-1)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(0, 1, 2)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(6, 7)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(n)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(2n)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(2n+1)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(2n+2)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(-n+3)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(2n, 3n)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(even)]
expected: FAIL
[<h8 data-expect-match=""></h8> :heading(odd)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(1)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(2)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(3)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(4)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(5)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(6)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(7)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(8)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(9)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(0)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(-1)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(0, 1, 2)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(6, 7)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(n)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(2n)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(2n+1)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(2n+2)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(-n+3)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(2n, 3n)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(even)]
expected: FAIL
[<h9 data-expect-match=""></h9> :heading(odd)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(1)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(2)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(3)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(4)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(5)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(6)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(7)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(8)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(9)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(0)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(-1)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(0, 1, 2)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(6, 7)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(n)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(2n)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(2n+1)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(2n+2)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(-n+3)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(2n, 3n)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(even)]
expected: FAIL
[<h0 data-expect-match=""></h0> :heading(odd)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(1)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(2)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(3)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(4)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(5)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(6)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(7)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(8)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(9)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(0)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(-1)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(0, 1, 2)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(6, 7)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(n)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(2n)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(2n+1)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(2n+2)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(-n+3)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(2n, 3n)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(even)]
expected: FAIL
[<h1 data-expect-match="1" aria-level="2"></h1> :heading(odd)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(1)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(2)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(3)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(4)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(5)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(6)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(7)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(8)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(9)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(0)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(-1)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(0, 1, 2)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(6, 7)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(n)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(2n)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(2n+1)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(2n+2)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(-n+3)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(2n, 3n)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(even)]
expected: FAIL
[<h1 data-expect-match="1"></h1> in section :heading(odd)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(1)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(2)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(3)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(4)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(5)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(6)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(7)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(8)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(9)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(0)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(-1)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(0, 1, 2)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(6, 7)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(n)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(2n)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(2n+1)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(2n+2)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(-n+3)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(2n, 3n)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(even)]
expected: FAIL
[<hgroup data-expect-match=""></hgroup> :heading(odd)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(1)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(2)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(3)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(4)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(5)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(6)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(7)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(8)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(9)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(0)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(-1)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(0, 1, 2)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(6, 7)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(n)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(2n)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(2n+1)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(2n+2)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(-n+3)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(2n, 3n)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(even)]
expected: FAIL
[<p role="heading" aria-level="1" data-expect-match=""></p> :heading(odd)]
expected: FAIL

View file

@ -7,9 +7,3 @@
[Navigating to a different document with link click] [Navigating to a different document with link click]
expected: FAIL expected: FAIL
[Navigating to a different document with location.href]
expected: FAIL
[Navigating to a different document with location.assign]
expected: FAIL

View file

@ -1,6 +1,7 @@
[form-submit.html] [form-submit.html]
expected: TIMEOUT
[Replace before load, triggered by formElement.submit()] [Replace before load, triggered by formElement.submit()]
expected: FAIL expected: FAIL
[Replace before load, triggered by same-document formElement.submit()] [Replace before load, triggered by same-document formElement.submit()]
expected: FAIL expected: TIMEOUT

View file

@ -0,0 +1,3 @@
[patch-non-element.html]
[Cannot patch container nodes without a context element]
expected: FAIL

View file

@ -4,7 +4,7 @@
expected: FAIL expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped] [Host element with delegatesFocus including no focusable descendants should be skipped]
expected: FAIL expected: NOTRUN
[Element with tabindex should support autofocus] [Element with tabindex should support autofocus]
expected: FAIL expected: FAIL
@ -13,4 +13,4 @@
expected: NOTRUN expected: NOTRUN
[Host element with delegatesFocus should support autofocus] [Host element with delegatesFocus should support autofocus]
expected: FAIL expected: NOTRUN

View file

@ -0,0 +1,3 @@
[video-aspect-ratio.html]
[Aspect ratio for regular video with aspect-ratio:auto]
expected: FAIL

View file

@ -0,0 +1,9 @@
[video-intrinsic-width-height.html]
[only width attribute]
expected: FAIL
[only height attribute]
expected: FAIL
[both width/height attributes and style keeping aspect-ratio]
expected: FAIL

View file

@ -1,3 +0,0 @@
[iframe-loading-lazy-reload-location-reload.html]
[Reloading iframe loading='lazy' before it is loaded: location.reload]
expected: FAIL

View file

@ -1,4 +1,3 @@
[iframe_sandbox_popups_escaping-1.html] [iframe_sandbox_popups_escaping-1.html]
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [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,3 +1,4 @@
[iframe_sandbox_popups_escaping-2.html] [iframe_sandbox_popups_escaping-2.html]
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,6 @@
[intrinsic_sizes.htm]
[default height is still 150]
expected: FAIL
[default width is still 300]
expected: FAIL

View file

@ -0,0 +1,2 @@
[disabled-003.html]
expected: CRASH

View file

@ -19,12 +19,3 @@
[Reload fetchStart > Original fetchStart] [Reload fetchStart > Original fetchStart]
expected: FAIL expected: FAIL
[Reload domComplete > Original domComplete]
expected: FAIL
[Reload loadEventEnd > Original loadEventEnd]
expected: FAIL
[Reload loadEventStart > Original loadEventStart]
expected: FAIL

View file

@ -65,9 +65,6 @@
[success (xhr): main] [success (xhr): main]
expected: FAIL expected: FAIL
[Decode-error (style): main]
expected: FAIL
[404 (style): main] [404 (style): main]
expected: FAIL expected: FAIL

View file

@ -108,6 +108,21 @@
[Window interface: attribute caches] [Window interface: attribute caches]
expected: FAIL expected: FAIL
[ServiceWorkerContainer interface: operation register((TrustedScriptURL or USVString), optional RegistrationOptions)]
expected: TIMEOUT
[NavigationPreloadManager interface: operation enable()]
expected: TIMEOUT
[NavigationPreloadManager interface: operation disable()]
expected: TIMEOUT
[NavigationPreloadManager interface: operation setHeaderValue(ByteString)]
expected: TIMEOUT
[NavigationPreloadManager interface: operation getState()]
expected: TIMEOUT
[idlharness.https.any.serviceworker.html] [idlharness.https.any.serviceworker.html]
expected: ERROR expected: ERROR

View file

@ -51,6 +51,21 @@
[trusted-types-navigation.html?31-35] [trusted-types-navigation.html?31-35]
expected: CRASH expected: CRASH
[Navigate a frame via form-submission with javascript:-urls in report-only mode.]
expected: FAIL
[Navigate a frame via form-submission with javascript:-urls w/ default policy in report-only mode.]
expected: TIMEOUT
[Navigate a window via form-submission with javascript:-urls w/ a default policy throwing an exception in enforcing mode.]
expected: NOTRUN
[Navigate a window via form-submission with javascript:-urls w/ a default policy throwing an exception in report-only mode.]
expected: NOTRUN
[Navigate a window via form-submission with javascript:-urls w/ a default policy making the URL invalid in enforcing mode.]
expected: NOTRUN
[trusted-types-navigation.html?36-last] [trusted-types-navigation.html?36-last]
[Navigate a window via form-submission with javascript:-urls w/ a default policy making the URL invalid in report-only mode.] [Navigate a window via form-submission with javascript:-urls w/ a default policy making the URL invalid in report-only mode.]
@ -69,13 +84,13 @@
expected: FAIL expected: FAIL
[Navigate a frame via anchor with javascript:-urls w/ default policy in report-only mode.] [Navigate a frame via anchor with javascript:-urls w/ default policy in report-only mode.]
expected: TIMEOUT expected: FAIL
[Navigate a window via anchor with javascript:-urls w/ a default policy throwing an exception in enforcing mode.] [Navigate a window via anchor with javascript:-urls w/ a default policy throwing an exception in enforcing mode.]
expected: NOTRUN expected: FAIL
[Navigate a window via anchor with javascript:-urls w/ a default policy throwing an exception in report-only mode.] [Navigate a window via anchor with javascript:-urls w/ a default policy throwing an exception in report-only mode.]
expected: NOTRUN expected: FAIL
[trusted-types-navigation.html?11-15] [trusted-types-navigation.html?11-15]

View file

@ -0,0 +1,3 @@
features:
- name: file
files: "**"

View file

@ -0,0 +1,3 @@
features:
- name: indexeddb
files: "**"

View file

@ -0,0 +1,17 @@
// META: global=window,worker
// META: title=IndexedDB: assure no crash when populating index
// META: script=../resources/support.js
// See https://crbug.com/434115938 for additional context and credits.
'use_strict';
promise_test(async t => {
const db = (await new Promise(resolve => {
const request = self.indexedDB.open('db', 1);
request.addEventListener('upgradeneeded', resolve, {once: true});
})).target.result;
const store = db.createObjectStore('store', {keyPath: 'a.b', autoIncrement: true});
store.put({});
const index = store.createIndex('index', 'keypath');
db.close();
}, "Assure no crash when populating index");

View file

@ -432,7 +432,7 @@ var mismatchedKtyField = {
// The 'kty' field doesn't match the key algorithm. // The 'kty' field doesn't match the key algorithm.
var mismatchedCrvField = { var mismatchedCrvField = {
"Ed25519": "X25519", "Ed25519": "X25519",
"X25519": "Ed448", "X25519": "Ed25519",
"Ed448": "X25519", "Ed448": "X448",
"X448": "Ed25519", "X448": "Ed448",
} }

View file

@ -0,0 +1,3 @@
features:
- name: accelerometer
files: "**"

View file

@ -0,0 +1,20 @@
// META: title=Proofreader Abort
// META: script=/resources/testdriver.js
// META: script=../resources/util.js
// META: timeout=long
'use strict';
promise_test(async t => {
await testAbortPromise(t, signal => {
return createProofreader({signal: signal});
});
}, 'Aborting Proofreader.create()');
promise_test(async t => {
const proofreader = await createProofreader();
await testAbortPromise(t, signal => {
return proofreader.proofread(kTestPrompt, { signal: signal });
});
}, 'Aborting Proofreader.proofread()');

View file

@ -0,0 +1,52 @@
// META: title=Proofreader Proofread
// META: script=/resources/testdriver.js
// META: script=../resources/util.js
// META: timeout=long
'use strict';
promise_test(async (t) => {
const proofreader = await createProofreader();
let result = await proofreader.proofread('');
assert_equals(result.correctedInput, '');
assert_equals(result.corrections, undefined);
}, 'Proofreader.proofread() with an empty input returns an empty text');
promise_test(async (t) => {
const proofreader = await createProofreader();
let result = await proofreader.proofread(' ');
assert_equals(result.correctedInput, ' ');
assert_equals(result.corrections, undefined);
}, 'Proofreader.proofread() with a whitespace input returns a whitespace text');
promise_test(async (t) => {
const proofreader = await createProofreader();
const result = await proofreader.proofread(kTestPrompt);
assert_not_equals(result.correctedInput, '');
}, 'Proofreader.proofread() with non-empty input returns a non-empty result');
// TODO: add a test for non-empty corrections, kTestPrompt with grammar error.
promise_test(async (t) => {
await testDestroy(t, createProofreader, {}, [
proofreader => proofreader.proofread(kTestPrompt)
]);
}, 'Calling Proofreader.destroy() aborts calls to proofread');
promise_test(async t => {
await testCreateAbort(t, createProofreader, {}, [
proofreader => proofreader.proofread(kTestPrompt)
]);
}, 'Proofreader.create()\'s abort signal destroys its Proofreader after creation.');
promise_test(async () => {
const proofreader = await createProofreader();
const result = await proofreader.proofread(kTestPrompt);
assert_equals(typeof result, 'object');
}, 'Simple Proofreader.proofread() call');
promise_test(async () => {
const proofreader = await createProofreader();
await Promise.all(
[proofreader.proofread(kTestPrompt), proofreader.proofread(kTestPrompt)]);
}, 'Multiple Proofreader.proofread() calls are resolved successfully');

View file

@ -240,6 +240,11 @@ async function createRewriter(options = {}) {
return await Rewriter.create(options); return await Rewriter.create(options);
} }
async function createProofreader(options = {}) {
await test_driver.bless();
return await Proofreader.create(options);
}
async function testDestroy(t, createMethod, options, instanceMethods) { async function testDestroy(t, createMethod, options, instanceMethods) {
const instance = await createMethod(options); const instance = await createMethod(options);

View file

@ -0,0 +1,3 @@
features:
- name: ambient-light
files: "**"

View file

@ -0,0 +1,3 @@
features:
- name: manifest
files: "**"

View file

@ -0,0 +1,3 @@
features:
- name: attribution-reporting
files: "**"

View file

@ -0,0 +1 @@
spec: https://w3c.github.io/autoplay/

View file

@ -0,0 +1,3 @@
features:
- name: background-sync
files: "**"

View file

@ -0,0 +1,3 @@
features:
- name: battery
files: "**"

View file

@ -0,0 +1,3 @@
features:
- name: beacons
files: "**"

View file

@ -0,0 +1 @@
spec: https://w3c.github.io/compute-pressure/

View file

@ -0,0 +1,3 @@
features:
- name: contact-picker
files: "**"

View file

@ -0,0 +1,3 @@
features:
- name: content-index
files: "**"

View file

@ -8,8 +8,6 @@
<script src="/common/get-host-info.sub.js"></script> <script src="/common/get-host-info.sub.js"></script>
<script src="/cookies/resources/cookie-helper.sub.js"></script> <script src="/cookies/resources/cookie-helper.sub.js"></script>
<script src="/cookies/partitioned-cookies/resources/test-helpers.js"></script> <script src="/cookies/partitioned-cookies/resources/test-helpers.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<body> <body>
<script> <script>
@ -69,7 +67,9 @@ document.body.onload = async () => {
const popup = window.open(crossSiteUrl); const popup = window.open(crossSiteUrl);
await fetch_tests_from_window(popup); await fetch_tests_from_window(popup);
await test_driver.delete_all_cookies(); for (const cookieName of cookieNames) {
erase_cookie_from_js(cookieName, "Secure; Path=/; SameSite=None; Partitioned");
}
}; };
</script> </script>

View file

@ -4,60 +4,60 @@
<script src="/cookies/resources/cookie-helper.sub.js"></script> <script src="/cookies/resources/cookie-helper.sub.js"></script>
<script> <script>
set_prefixed_cookie_via_dom_test({ set_prefixed_cookie_via_dom_test({
prefix: "__HostHttp-", prefix: "__Host-Http-",
params: "Secure; Path=/", params: "Secure; Path=/",
shouldExistInDOM: false, shouldExistInDOM: false,
shouldExistViaHTTP: false, shouldExistViaHTTP: false,
title: "__HostHttp: Does not set via DOM 'Secure; Path=/'" title: "__Host-Http: Does not set via DOM 'Secure; Path=/'"
}); });
set_prefixed_cookie_via_dom_test({ set_prefixed_cookie_via_dom_test({
prefix: "__HostHttp-", prefix: "__Host-Http-",
params: "Secure; Path=/; Domain=" + document.location.hostname, params: "Secure; Path=/; Domain=" + document.location.hostname,
shouldExistInDOM: false, shouldExistInDOM: false,
shouldExistViaHTTP: false, shouldExistViaHTTP: false,
title: "__HostHttp: Does not set via DOM with Domain attribute 'Secure; Path=/; Domain=" + title: "__Host-Http: Does not set via DOM with Domain attribute 'Secure; Path=/; Domain=" +
document.location.hostname + "'" document.location.hostname + "'"
}); });
set_prefixed_cookie_via_http_test({ set_prefixed_cookie_via_http_test({
prefix: "__HostHttp-", prefix: "__Host-Http-",
params: "Secure; Path=/", params: "Secure; Path=/",
shouldExistViaHTTP: false, shouldExistViaHTTP: false,
origin: self.origin, origin: self.origin,
title: "__HostHttp: Does not set via HTTP with 'Secure; Path=/'" title: "__Host-Http: Does not set via HTTP with 'Secure; Path=/'"
}); });
set_prefixed_cookie_via_http_test({ set_prefixed_cookie_via_http_test({
prefix: "__HostHttp-", prefix: "__Host-Http-",
params: "Secure; Path=/;httponly", params: "Secure; Path=/;httponly",
shouldExistViaHTTP: true, shouldExistViaHTTP: true,
origin: self.origin, origin: self.origin,
title: "__HostHttp: Set via HTTP with 'Secure; Path=/; httponly'" title: "__Host-Http: Set via HTTP with 'Secure; Path=/; httponly'"
}); });
set_prefixed_cookie_via_http_test({ set_prefixed_cookie_via_http_test({
prefix: "__HostHttp-", prefix: "__Host-Http-",
params: "Secure; Path=/cookies/;httponly", params: "Secure; Path=/cookies/;httponly",
shouldExistViaHTTP: false, shouldExistViaHTTP: false,
origin: self.origin, origin: self.origin,
title: "__HostHttp: Does not set via HTTP with 'Secure; Path=/cookies/; httponly'" title: "__Host-Http: Does not set via HTTP with 'Secure; Path=/cookies/; httponly'"
}); });
set_prefixed_cookie_via_http_test({ set_prefixed_cookie_via_http_test({
prefix: "__HostHttp-", prefix: "__Host-Http-",
params: "Path=/", params: "Path=/",
shouldExistViaHTTP: false, shouldExistViaHTTP: false,
origin: self.origin, origin: self.origin,
title: "__HostHttp: Does not set via HTTP with 'Path=/;' (without Secure)" title: "__Host-Http: Does not set via HTTP with 'Path=/;' (without Secure)"
}); });
set_prefixed_cookie_via_http_test({ set_prefixed_cookie_via_http_test({
prefix: "__HostHttp-", prefix: "__Host-Http-",
params: "Secure; Path=/; Domain=" + document.location.hostname, params: "Secure; Path=/; Domain=" + document.location.hostname,
shouldExistViaHTTP: false, shouldExistViaHTTP: false,
origin: self.origin, origin: self.origin,
title: "__HostHttp: Does not set via HTTP with Domain attribute 'Secure; Path=/; Domain=" + title: "__Host-Http: Does not set via HTTP with Domain attribute 'Secure; Path=/; Domain=" +
document.location.hostname + "'" document.location.hostname + "'"
}); });
</script> </script>

View file

@ -0,0 +1,3 @@
features:
- name: cookie-store
files: "**"

View file

@ -0,0 +1,23 @@
// META: title=Cookie Store API: set()'s path option
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
promise_test(async testCase => {
const currentUrl = new URL(self.location.href);
const currentPath = currentUrl.pathname;
const currentDirectory = currentPath.substr(0, currentPath.lastIndexOf('/'));
await cookieStore.set({ name: 'cookie-name', value: 'cookie-value', path: '' });
testCase.add_cleanup(async () => {
await cookieStore.delete({ name: 'cookie-name', path: currentDirectory });
});
const internalCookie = await test_driver.get_named_cookie('cookie-name');
assert_equals(internalCookie.path, currentDirectory);
}, 'CookieListItem - cookieStore.set with empty string path defaults to current URL');
promise_test(async testCase => {
const currentUrl = new URL(self.location.href);
const currentPath = currentUrl.pathname;
return promise_rejects_js(testCase, TypeError, cookieStore.set({ name: '__host-cookie-name', value: 'cookie-value', path: '' }));
}, 'CookieListItem - cookieStore.set with empty string path defaults to current URL with __host- prefix');

View file

@ -56,8 +56,8 @@
}, `cookieStore.set with ${prefix} prefix a path option`); }, `cookieStore.set with ${prefix} prefix a path option`);
}); });
['__HostHttp-', '__hosthttp-', '__Http-', '__http-', ' __Http-', '\t__Http-', ['__Host-Http-', '__host-http-', '__Http-', '__http-', ' __Http-', '\t__Http-',
' __HostHttp-', '\t__HostHttp-'].forEach(prefix => { ' __Host-Http-', '\t__Host-Http-'].forEach(prefix => {
promise_test(async testCase => { promise_test(async testCase => {
await promise_rejects_js(testCase, TypeError, await promise_rejects_js(testCase, TypeError,
cookieStore.set({ name: `${prefix}cookie-name`, value: 'cookie-value'})); cookieStore.set({ name: `${prefix}cookie-name`, value: 'cookie-value'}));
@ -75,8 +75,8 @@ promise_test(async testCase => {
assert_true(exceptionThrown, "No exception thrown."); assert_true(exceptionThrown, "No exception thrown.");
}, 'cookieStore.set with malformed name.'); }, 'cookieStore.set with malformed name.');
['__Host-', '__Secure-', '__Http-', '__HostHttp-', ' __Host-', '\t__Host-', ' __Secure-', ['__Host-', '__Secure-', '__Http-', '__Host-Http-', ' __Host-', '\t__Host-', ' __Secure-',
'\t__Secure-', ' __Http-', '\t__Http-', ' __HostHttp-', '\t__HostHttp-'].forEach(prefix => { '\t__Secure-', ' __Http-', '\t__Http-', ' __Host-Http-', '\t__Host-Http-'].forEach(prefix => {
promise_test(async testCase => { promise_test(async testCase => {
// Nameless cookies cannot have special prefixes // Nameless cookies cannot have special prefixes
await cookieStore.delete(''); await cookieStore.delete('');

3
tests/wpt/tests/cors/WEB_FEATURES.yml vendored Normal file
View file

@ -0,0 +1,3 @@
features:
- name: cors
files: "**"

View file

@ -0,0 +1,3 @@
features:
- name: credential-management
files: "**"

View file

@ -0,0 +1 @@
spec: https://drafts.csswg.org/css-anchor-position/

View file

@ -0,0 +1,9 @@
<!DOCTYPE html>
<title>Crash test</title>
<div id="target" style="top:0">
PASS if no crash
</div>
<script>
document.body.offsetTop;
target.style.top = 'calc(anchor(top) + 10px)';
</script>

View file

@ -45,7 +45,7 @@
anchor.style.top = "150px"; anchor.style.top = "150px";
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
assert_equals(anchored.offsetTop, 250); assert_equals(anchored.offsetTop, 200);
}, "No successful position, keep flip-block"); }, "No successful position, keep flip-block");
promise_test(async () => { promise_test(async () => {

View file

@ -45,13 +45,13 @@
anchor.style.top = "150px"; anchor.style.top = "150px";
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
assert_equals(anchored.offsetTop, 250); assert_equals(anchored.offsetTop, 200);
}, "No successful position, keep flip-block"); }, "No successful position, keep flip-block");
promise_test(async () => { promise_test(async () => {
anchored.style.positionTryFallbacks = "flip-block, --foo"; anchored.style.positionTryFallbacks = "flip-block, --foo";
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
assert_equals(anchored.offsetTop, -50); assert_equals(anchored.offsetTop, 0);
}, "No successful position, last successful invalidated by position-try-fallbacks change"); }, "No successful position, last successful invalidated by position-try-fallbacks change");
</script> </script>

View file

@ -48,7 +48,7 @@
anchor.style.top = "150px"; anchor.style.top = "150px";
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
assert_equals(anchored.offsetTop, 250); assert_equals(anchored.offsetTop, 200);
}, "No successful position, keep --try"); }, "No successful position, keep --try");
promise_test(async () => { promise_test(async () => {
@ -56,6 +56,6 @@
anchor_sheet.sheet.cssRules[3].style.positionArea = "bottom"; anchor_sheet.sheet.cssRules[3].style.positionArea = "bottom";
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
assert_equals(anchored.offsetTop, -50); assert_equals(anchored.offsetTop, 0);
}, "No successful position, last successful invalidated by @position-try change"); }, "No successful position, last successful invalidated by @position-try change");
</script> </script>

View file

@ -55,7 +55,7 @@
anchor.style.top = "150px"; anchor.style.top = "150px";
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
assert_equals(anchored.offsetTop, 250); assert_equals(anchored.offsetTop, 200);
}, "No successful position, keep flip-block"); }, "No successful position, keep flip-block");
promise_test(async () => { promise_test(async () => {

View file

@ -49,6 +49,6 @@
anchor.style.top = "150px"; anchor.style.top = "150px";
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame(); await waitUntilNextAnimationFrame();
assert_equals(anchored.offsetTop, 250); assert_equals(anchored.offsetTop, 200);
}, "No successful position (with intermediate successful), keep flip-block"); }, "No successful position (with intermediate successful), keep flip-block");
</script> </script>

View file

@ -0,0 +1,75 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: basic last successful position fallback on pseudo-elements</title>
<link rel="author" title="Kiet Ho" href="mailto:kiet.ho@apple.com">
<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-fallback">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/test-common.js"></script>
<style>
#container {
position: relative;
width: 400px;
height: 400px;
background: teal;
}
#anchor {
position: relative;
top: 100px;
left: 100px;
width: 100px;
height: 100px;
background: red;
anchor-name: --a;
}
#anchored::before {
position-anchor: --a;
/*
We can't use position-area, since there's no way to access offsetTop of
pseudo-elements to check for position. Instead, we have to use anchor()
and check the computed inset values.
*/
bottom: anchor(top);
left: anchor(left);
position-try-fallbacks: flip-block;
position: absolute;
width: 100px;
height: 200px;
background: lime;
content: "";
}
</style>
<div id="container">
<div id="anchor"></div>
<div id="anchored"></div>
</div>
<script>
promise_test(async () => {
await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame();
const anchoredStyle = getComputedStyle(anchored, "::before");
assert_equals(anchoredStyle.top, "200px");
}, "Starts rendering with flip-block");
promise_test(async () => {
anchor.style.top = "150px";
await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame();
const anchoredStyle = getComputedStyle(anchored, "::before");
assert_equals(anchoredStyle.top, "250px");
}, "No successful position, keep flip-block");
promise_test(async () => {
anchor.style.top = "200px";
await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame();
const anchoredStyle = getComputedStyle(anchored, "::before");
assert_equals(anchoredStyle.top, "0px");
}, "Base position without fallback now successful");
</script>

View file

@ -0,0 +1,76 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: changing position-try-fallbacks invalidates last successful position fallback on pseudo-elements</title>
<link rel="author" title="Kiet Ho" href="mailto:kiet.ho@apple.com">
<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-fallback">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/test-common.js"></script>
<style>
#container {
position: relative;
width: 400px;
height: 400px;
background: teal;
}
#anchor {
position: relative;
top: 100px;
left: 100px;
width: 100px;
height: 100px;
background: red;
anchor-name: --a;
}
#anchored::before {
position-anchor: --a;
bottom: anchor(top);
left: anchor(left);
position-try-fallbacks: flip-block;
position: absolute;
width: 100px;
height: 200px;
background: lime;
content: "";
}
/*
Hack to change position-try-fallbacks of the pseudo-element,
since there's no easy way to change it in JavaScript.
*/
#anchored.new-fallback::before {
position-try-fallbacks: flip-block, --foo;
}
</style>
<div id="container">
<div id="anchor"></div>
<div id="anchored"></div>
</div>
<script>
promise_test(async () => {
await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame();
const anchoredStyle = getComputedStyle(anchored, "::before");
assert_equals(anchoredStyle.top, "200px");
}, "Starts rendering with flip-block");
promise_test(async () => {
anchor.style.top = "150px";
await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame();
const anchoredStyle = getComputedStyle(anchored, "::before");
assert_equals(anchoredStyle.top, "250px");
}, "No successful position, keep flip-block");
promise_test(async () => {
anchored.classList.add("new-fallback");
await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame();
const anchoredStyle = getComputedStyle(anchored, "::before");
assert_equals(anchoredStyle.top, "-50px");
}, "No successful position, last successful invalidated by position-try-fallbacks change");
</script>

View file

@ -0,0 +1,37 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: position-area with writing-mode and direction</title>
<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#position-area">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
#abs-container {
writing-mode: vertical-lr;
position: absolute;
width: 400px;
height: 400px;
}
#anchor {
anchor-name: --a;
width: 100px;
height: 100px;
}
#anchored {
position: absolute;
writing-mode: horizontal-tb;
direction: rtl;
position-anchor: --a;
position-area: self-end self-start;
width: 100px;
height: 100px;
}
</style>
<div id="abs-container">
<div id="anchor"></div>
<div id="anchored"></div>
</div>
<script>
test(() => {
assert_equals(anchored.offsetTop, 100, "positioned below the anchor");
assert_equals(anchored.offsetLeft, 100, "positioned to the right of the anchor");
}, "'self-end self-start' of horizontal-tb/rtl is physically 'bottom right'");
</script>

View file

@ -20,6 +20,8 @@
width: 50px; width: 50px;
height: 50px; height: 50px;
background: skyblue; background: skyblue;
}
#target.fallback {
position-try-fallbacks: --200; position-try-fallbacks: --200;
} }
#target.anim { #target.anim {
@ -44,7 +46,7 @@
t.add_cleanup(cleanup); t.add_cleanup(cleanup);
assert_equals(target.offsetLeft, 300); assert_equals(target.offsetLeft, 300);
cb.classList.add('shrink'); cb.classList.add('shrink');
target.classList.add('anim'); target.classList.add('fallback', 'anim');
// Now we take the --200 fallback: // Now we take the --200 fallback:
assert_equals(target.offsetLeft, 250); assert_equals(target.offsetLeft, 250);
}, 'Transition when @position-try is applied'); }, 'Transition when @position-try is applied');
@ -52,8 +54,10 @@
test((t) => { test((t) => {
t.add_cleanup(cleanup); t.add_cleanup(cleanup);
cb.classList.add('shrink'); cb.classList.add('shrink');
target.classList.add('fallback');
assert_equals(target.offsetLeft, 200); assert_equals(target.offsetLeft, 200);
cb.classList.remove('shrink'); cb.classList.remove('shrink');
target.classList.remove('fallback');
target.classList.add('anim'); target.classList.add('anim');
assert_equals(target.offsetLeft, 250); assert_equals(target.offsetLeft, 250);
}, 'Transition when @position-try is unapplied'); }, 'Transition when @position-try is unapplied');

View file

@ -32,6 +32,8 @@
width: 50px; width: 50px;
height: 50px; height: 50px;
background: skyblue; background: skyblue;
}
#target.fallback {
position-try-fallbacks: flip-start; position-try-fallbacks: flip-start;
} }
#target.anim { #target.anim {
@ -54,15 +56,17 @@
t.add_cleanup(cleanup); t.add_cleanup(cleanup);
assert_equals(target.offsetLeft, 300); assert_equals(target.offsetLeft, 300);
cb.classList.add('shrink'); cb.classList.add('shrink');
target.classList.add('anim'); target.classList.add('fallback', 'anim');
assert_equals(target.offsetLeft, 275); assert_equals(target.offsetLeft, 275);
}, 'Transition to a flipped state'); }, 'Transition to a flipped state');
test((t) => { test((t) => {
t.add_cleanup(cleanup); t.add_cleanup(cleanup);
cb.classList.add('shrink'); cb.classList.add('shrink');
target.classList.add('fallback');
assert_equals(target.offsetLeft, 250); assert_equals(target.offsetLeft, 250);
cb.classList.remove('shrink'); cb.classList.remove('shrink');
target.classList.remove('fallback');
target.classList.add('anim'); target.classList.add('anim');
assert_equals(target.offsetLeft, 275); assert_equals(target.offsetLeft, 275);
}, 'Transition to an unflipped state'); }, 'Transition to an unflipped state');

View file

@ -5,11 +5,10 @@
<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-visibility"> <link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-visibility">
<link rel="match" href="position-visibility-no-overflow-ref.html"> <link rel="match" href="position-visibility-no-overflow-ref.html">
<style> <style>
#scroll-container { #container {
position: relative; position: relative;
overflow: hidden scroll;
width: 400px; width: 400px;
height: 100px; height: 150px;
} }
.anchor { .anchor {
@ -30,7 +29,7 @@
} }
</style> </style>
<div id="scroll-container"> <div id="container">
<!-- #target1 should not be visible because it overflows the containing block. --> <!-- #target1 should not be visible because it overflows the containing block. -->
<div class="anchor" style="anchor-name: --a1;">anchor1</div> <div class="anchor" style="anchor-name: --a1;">anchor1</div>
<div id="target" class="target" style="position-anchor: --a1;">target1</div> <div id="target" class="target" style="position-anchor: --a1;">target1</div>

View file

@ -1,10 +1,9 @@
<!DOCTYPE html> <!DOCTYPE html>
<meta charset="utf-8"> <meta charset="utf-8">
<style> <style>
#scroll-container { #container {
overflow: hidden scroll;
width: 400px; width: 400px;
height: 100px; height: 150px;
} }
.anchor { .anchor {
@ -15,7 +14,6 @@
} }
</style> </style>
<div id="scroll-container"> <div id="container">
<div class="anchor">anchor1</div> <div class="anchor">anchor1</div>
<div style="height: 100px"></div>
</div> </div>

View file

@ -4,11 +4,10 @@
<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-visibility"> <link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-visibility">
<link rel="match" href="position-visibility-no-overflow-ref.html"> <link rel="match" href="position-visibility-no-overflow-ref.html">
<style> <style>
#scroll-container { #container {
position: relative; position: relative;
overflow: hidden scroll;
width: 400px; width: 400px;
height: 100px; height: 150px;
} }
.anchor { .anchor {
@ -51,7 +50,7 @@
} }
</style> </style>
<div id="scroll-container"> <div id="container">
<!-- #target1 should not be visible because it overflows the containing block. --> <!-- #target1 should not be visible because it overflows the containing block. -->
<div class="anchor" style="anchor-name: --a1;">anchor1</div> <div class="anchor" style="anchor-name: --a1;">anchor1</div>
<div id="target1" class="target" style="position-anchor: --a1;">target1 <div id="target1" class="target" style="position-anchor: --a1;">target1

View file

@ -4,11 +4,10 @@
<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-visibility"> <link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-visibility">
<link rel="match" href="position-visibility-no-overflow-ref.html"> <link rel="match" href="position-visibility-no-overflow-ref.html">
<style> <style>
#scroll-container { #container {
position: relative; position: relative;
overflow: hidden scroll;
width: 400px; width: 400px;
height: 100px; height: 150px;
} }
.anchor { .anchor {
@ -29,7 +28,7 @@
} }
</style> </style>
<div id="scroll-container"> <div id="container">
<div class="anchor">anchor1</div> <div class="anchor">anchor1</div>
<!-- #target1 should not be visible because it overflows the containing block. --> <!-- #target1 should not be visible because it overflows the containing block. -->
<div id="target1" class="target">target1</div> <div id="target1" class="target">target1</div>

View file

@ -4,11 +4,10 @@
<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-visibility"> <link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-visibility">
<link rel="match" href="position-visibility-no-overflow-ref.html"> <link rel="match" href="position-visibility-no-overflow-ref.html">
<style> <style>
#scroll-container { #container {
position: relative; position: relative;
overflow: hidden scroll;
width: 400px; width: 400px;
height: 100px; height: 150px;
} }
.anchor { .anchor {
@ -30,7 +29,7 @@
} }
</style> </style>
<div id="scroll-container"> <div id="container">
<!-- #target1 should not be visible because it overflows the containing block. --> <!-- #target1 should not be visible because it overflows the containing block. -->
<div class="anchor" style="anchor-name: --a1;">anchor1</div> <div class="anchor" style="anchor-name: --a1;">anchor1</div>
<div id="target1" class="target" style="position-anchor: --a1;">target1</div> <div id="target1" class="target" style="position-anchor: --a1;">target1</div>

View file

@ -1,10 +1,10 @@
<!DOCTYPE html> <!DOCTYPE html>
<meta charset="utf-8"> <meta charset="utf-8">
<style> <style>
#scroll-container { #container {
overflow: hidden scroll; position: relative;
width: 400px; width: 400px;
height: 100px; height: 150px;
} }
.anchor { .anchor {
@ -15,13 +15,16 @@
} }
.target { .target {
position: absolute;
width: 100px; width: 100px;
height: 100px; height: 100px;
background: green; background: green;
top: 50px;
left: 0;
} }
</style> </style>
<div id="scroll-container"> <div id="container">
<div class="anchor">anchor1</div> <div class="anchor">anchor1</div>
<div class="target">target1</div> <div class="target">target1</div>
</div> </div>

View file

@ -3,13 +3,12 @@
<meta charset="utf-8"> <meta charset="utf-8">
<title>CSS Anchor Positioning Test: position-visibility: no-overflow</title> <title>CSS Anchor Positioning Test: position-visibility: no-overflow</title>
<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-visibility"> <link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-visibility">
<link rel="match" href="position-visibility-no-overflow-ref.html"> <link rel="match" href="position-visibility-remove-no-overflow-ref.html">
<style> <style>
#scroll-container { #container {
position: relative; position: relative;
overflow: hidden scroll;
width: 400px; width: 400px;
height: 100px; height: 150px;
} }
.anchor { .anchor {
@ -31,7 +30,7 @@
} }
</style> </style>
<div id="scroll-container"> <div id="container">
<!-- #target1 should not be visible because it overflows the containing block. --> <!-- #target1 should not be visible because it overflows the containing block. -->
<div class="anchor" style="anchor-name: --a1;">anchor1</div> <div class="anchor" style="anchor-name: --a1;">anchor1</div>
<div id="target" class="target" style="position-anchor: --a1;">target1</div> <div id="target" class="target" style="position-anchor: --a1;">target1</div>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<title>CSS Animations: Crash when using neutral keyframes and a var()-cycle</title>
<link rel="help" href="https://crbug.com/433196586">
<style>
#test {
animation: anim 1s;
}
@keyframes anim {
to {
--x: var(--x);
}
}
</style>
<div id="test">PASS if no crash</div>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<title>CSS Animations: Crash when using neutral keyframes and a var()-cycle (additive)</title>
<link rel="help" href="https://crbug.com/433196586">
<style>
@property --x {
syntax: "<number>";
initial-value: 0;
inherits: false;
}
#test {
animation: anim1 100ms, anim2 100ms;
animation-composition: replace, add;
}
@keyframes anim1 {
from { --x: var(--x); }
to { --x: var(--x); }
}
@keyframes anim2 {
to { --x: var(--x); }
}
</style>
<div id="test">PASS if no crash</div>

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