mirror of
https://github.com/servo/servo.git
synced 2025-09-17 02:18:23 +01:00
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:
parent
85588fada0
commit
e649b9b91d
416 changed files with 7746 additions and 1062 deletions
|
@ -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
|
||||||
|
|
1736
tests/wpt/meta/MANIFEST.json
vendored
1736
tests/wpt/meta/MANIFEST.json
vendored
File diff suppressed because it is too large
Load diff
6
tests/wpt/meta/cookies/prefix/__Host-Http.https.html.ini
vendored
Normal file
6
tests/wpt/meta/cookies/prefix/__Host-Http.https.html.ini
vendored
Normal 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
|
|
@ -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
|
|
6
tests/wpt/meta/cookiestore/cookieStore_set_path.https.window.js.ini
vendored
Normal file
6
tests/wpt/meta/cookiestore/cookieStore_set_path.https.window.js.ini
vendored
Normal 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
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[grid-abspos-staticpos-align-items-center-large-border-padding.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-items-center.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-items-center.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[grid-abspos-staticpos-align-items-center.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[grid-abspos-staticpos-align-items-end-large-border-padding.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-items-end.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-items-end.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[grid-abspos-staticpos-align-items-end.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[grid-abspos-staticpos-align-items-flex-end-large-border-padding.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-items-flex-end.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-items-flex-end.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[grid-abspos-staticpos-align-items-flex-end.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[grid-abspos-staticpos-align-items-self-end-large-border-padding.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-items-self-end.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-items-self-end.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[grid-abspos-staticpos-align-items-self-end.html]
|
||||||
|
expected: FAIL
|
3
tests/wpt/meta/css/css-mixins/cycle.tentative.html.ini
vendored
Normal file
3
tests/wpt/meta/css/css-mixins/cycle.tentative.html.ini
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[cycle.tentative.html]
|
||||||
|
[CSS Mixins: Cycles]
|
||||||
|
expected: FAIL
|
3
tests/wpt/meta/css/css-mixins/import-with-media-queries.html.ini
vendored
Normal file
3
tests/wpt/meta/css/css-mixins/import-with-media-queries.html.ini
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[import-with-media-queries.html]
|
||||||
|
[CSS Mixins: @import with media queries]
|
||||||
|
expected: FAIL
|
3
tests/wpt/meta/css/css-mixins/import.html.ini
vendored
Normal file
3
tests/wpt/meta/css/css-mixins/import.html.ini
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[import.html]
|
||||||
|
[CSS Mixins: Mixin from an imported stylesheet]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-with-text-overflow-string-001.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-with-text-overflow-string-001.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[line-clamp-with-text-overflow-string-001.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-with-text-overflow-string-002.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-with-text-overflow-string-002.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[line-clamp-with-text-overflow-string-002.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-with-text-overflow-string-003.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-with-text-overflow-string-003.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[line-clamp-with-text-overflow-string-003.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
||||||
|
[webkit-line-clamp-with-max-height.tentative.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-pseudo/first-line-line-height-003.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-pseudo/first-line-line-height-003.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[first-line-line-height-003.html]
|
||||||
|
expected: FAIL
|
9
tests/wpt/meta/css/css-sizing/intrinsic-size-fallback-video.html.ini
vendored
Normal file
9
tests/wpt/meta/css/css-sizing/intrinsic-size-fallback-video.html.ini
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[intrinsic-size-fallback-video.html]
|
||||||
|
[.wrapper 2]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[.wrapper 3]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[.wrapper 4]
|
||||||
|
expected: FAIL
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
2
tests/wpt/meta/css/css-ui/text-overflow-string-001.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-ui/text-overflow-string-001.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[text-overflow-string-001.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-ui/text-overflow-string-002.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-ui/text-overflow-string-002.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[text-overflow-string-002.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-ui/text-overflow-string-003.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-ui/text-overflow-string-003.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[text-overflow-string-003.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-ui/text-overflow-string-004.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-ui/text-overflow-string-004.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[text-overflow-string-004.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-ui/text-overflow-string-005.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-ui/text-overflow-string-005.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[text-overflow-string-005.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/css-ui/text-overflow-string-006.tentative.html.ini
vendored
Normal file
2
tests/wpt/meta/css/css-ui/text-overflow-string-006.tentative.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[text-overflow-string-006.tentative.html]
|
||||||
|
expected: FAIL
|
6
tests/wpt/meta/css/cssom/caretPositionFromPoint-audioVideo.html.ini
vendored
Normal file
6
tests/wpt/meta/css/cssom/caretPositionFromPoint-audioVideo.html.ini
vendored
Normal 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
|
2
tests/wpt/meta/css/filter-effects/drop-shadow-with-3d-transform.html.ini
vendored
Normal file
2
tests/wpt/meta/css/filter-effects/drop-shadow-with-3d-transform.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[drop-shadow-with-3d-transform.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/filter-effects/fecomponenttransfer-display-p3.html.ini
vendored
Normal file
2
tests/wpt/meta/css/filter-effects/fecomponenttransfer-display-p3.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[fecomponenttransfer-display-p3.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/filter-effects/svg-empty-hidden-foreignobject-with-filter-001.html.ini
vendored
Normal file
2
tests/wpt/meta/css/filter-effects/svg-empty-hidden-foreignobject-with-filter-001.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[svg-empty-hidden-foreignobject-with-filter-001.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/filter-effects/svg-visibility-hidden-element-with-filter-002.html.ini
vendored
Normal file
2
tests/wpt/meta/css/filter-effects/svg-visibility-hidden-element-with-filter-002.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[svg-visibility-hidden-element-with-filter-002.html]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/css/filter-effects/visibility-hidden-element-with-filter-001.html.ini
vendored
Normal file
2
tests/wpt/meta/css/filter-effects/visibility-hidden-element-with-filter-001.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[visibility-hidden-element-with-filter-001.html]
|
||||||
|
expected: FAIL
|
924
tests/wpt/meta/css/selectors/heading.html.ini
vendored
Normal file
924
tests/wpt/meta/css/selectors/heading.html.ini
vendored
Normal 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
|
|
@ -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
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
3
tests/wpt/meta/html/dom/partial-updates/tentative/patch-non-element.html.ini
vendored
Normal file
3
tests/wpt/meta/html/dom/partial-updates/tentative/patch-non-element.html.ini
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[patch-non-element.html]
|
||||||
|
[Cannot patch container nodes without a context element]
|
||||||
|
expected: FAIL
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
[video-aspect-ratio.html]
|
||||||
|
[Aspect ratio for regular video with aspect-ratio:auto]
|
||||||
|
expected: FAIL
|
|
@ -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
|
|
@ -1,3 +0,0 @@
|
||||||
[iframe-loading-lazy-reload-location-reload.html]
|
|
||||||
[Reloading iframe loading='lazy' before it is loaded: location.reload]
|
|
||||||
expected: FAIL
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
6
tests/wpt/meta/html/semantics/embedded-content/the-video-element/intrinsic_sizes.htm.ini
vendored
Normal file
6
tests/wpt/meta/html/semantics/embedded-content/the-video-element/intrinsic_sizes.htm.ini
vendored
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
[intrinsic_sizes.htm]
|
||||||
|
[default height is still 150]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[default width is still 300]
|
||||||
|
expected: FAIL
|
2
tests/wpt/meta/html/semantics/forms/the-fieldset-element/disabled-003.html.ini
vendored
Normal file
2
tests/wpt/meta/html/semantics/forms/the-fieldset-element/disabled-003.html.ini
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[disabled-003.html]
|
||||||
|
expected: CRASH
|
|
@ -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
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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]
|
||||||
|
|
3
tests/wpt/tests/FileAPI/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/FileAPI/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: file
|
||||||
|
files: "**"
|
3
tests/wpt/tests/IndexedDB/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/IndexedDB/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: indexeddb
|
||||||
|
files: "**"
|
17
tests/wpt/tests/IndexedDB/crashtests/create-index.any.js
vendored
Normal file
17
tests/wpt/tests/IndexedDB/crashtests/create-index.any.js
vendored
Normal 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");
|
|
@ -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",
|
||||||
}
|
}
|
||||||
|
|
3
tests/wpt/tests/accelerometer/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/accelerometer/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: accelerometer
|
||||||
|
files: "**"
|
20
tests/wpt/tests/ai/proofreader/proofreader-abort.tentative.https.window.js
vendored
Normal file
20
tests/wpt/tests/ai/proofreader/proofreader-abort.tentative.https.window.js
vendored
Normal 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()');
|
||||||
|
|
52
tests/wpt/tests/ai/proofreader/proofreader-proofread.tentative.https.window.js
vendored
Normal file
52
tests/wpt/tests/ai/proofreader/proofreader-proofread.tentative.https.window.js
vendored
Normal 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');
|
5
tests/wpt/tests/ai/resources/util.js
vendored
5
tests/wpt/tests/ai/resources/util.js
vendored
|
@ -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);
|
||||||
|
|
||||||
|
|
3
tests/wpt/tests/ambient-light/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/ambient-light/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: ambient-light
|
||||||
|
files: "**"
|
3
tests/wpt/tests/appmanifest/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/appmanifest/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: manifest
|
||||||
|
files: "**"
|
3
tests/wpt/tests/attribution-reporting/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/attribution-reporting/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: attribution-reporting
|
||||||
|
files: "**"
|
1
tests/wpt/tests/autoplay-policy-detection/META.yml
vendored
Normal file
1
tests/wpt/tests/autoplay-policy-detection/META.yml
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
spec: https://w3c.github.io/autoplay/
|
3
tests/wpt/tests/background-sync/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/background-sync/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: background-sync
|
||||||
|
files: "**"
|
3
tests/wpt/tests/battery-status/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/battery-status/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: battery
|
||||||
|
files: "**"
|
3
tests/wpt/tests/beacon/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/beacon/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: beacons
|
||||||
|
files: "**"
|
1
tests/wpt/tests/compute-pressure/META.yml
vendored
Normal file
1
tests/wpt/tests/compute-pressure/META.yml
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
spec: https://w3c.github.io/compute-pressure/
|
3
tests/wpt/tests/contacts/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/contacts/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: contact-picker
|
||||||
|
files: "**"
|
3
tests/wpt/tests/content-index/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/content-index/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: content-index
|
||||||
|
files: "**"
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
3
tests/wpt/tests/cookiestore/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/cookiestore/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: cookie-store
|
||||||
|
files: "**"
|
23
tests/wpt/tests/cookiestore/cookieStore_set_path.https.window.js
vendored
Normal file
23
tests/wpt/tests/cookiestore/cookieStore_set_path.https.window.js
vendored
Normal 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');
|
|
@ -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
3
tests/wpt/tests/cors/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: cors
|
||||||
|
files: "**"
|
3
tests/wpt/tests/credential-management/WEB_FEATURES.yml
vendored
Normal file
3
tests/wpt/tests/credential-management/WEB_FEATURES.yml
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
features:
|
||||||
|
- name: credential-management
|
||||||
|
files: "**"
|
1
tests/wpt/tests/css/css-anchor-position/META.yml
vendored
Normal file
1
tests/wpt/tests/css/css-anchor-position/META.yml
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
spec: https://drafts.csswg.org/css-anchor-position/
|
9
tests/wpt/tests/css/css-anchor-position/chrome-436621815-crash.html
vendored
Normal file
9
tests/wpt/tests/css/css-anchor-position/chrome-436621815-crash.html
vendored
Normal 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>
|
|
@ -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 () => {
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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 () => {
|
||||||
|
|
|
@ -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>
|
||||||
|
|
75
tests/wpt/tests/css/css-anchor-position/last-successful-pseudo-element-basic.html
vendored
Normal file
75
tests/wpt/tests/css/css-anchor-position/last-successful-pseudo-element-basic.html
vendored
Normal 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>
|
||||||
|
|
76
tests/wpt/tests/css/css-anchor-position/last-successful-pseudo-element-fallbacks.html
vendored
Normal file
76
tests/wpt/tests/css/css-anchor-position/last-successful-pseudo-element-fallbacks.html
vendored
Normal 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>
|
||||||
|
|
37
tests/wpt/tests/css/css-anchor-position/position-area-ambiguous-self.html
vendored
Normal file
37
tests/wpt/tests/css/css-anchor-position/position-area-ambiguous-self.html
vendored
Normal 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>
|
|
@ -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');
|
||||||
|
|
|
@ -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');
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
15
tests/wpt/tests/css/css-animations/neutral-var-keyframe-cycle-crash.html
vendored
Normal file
15
tests/wpt/tests/css/css-animations/neutral-var-keyframe-cycle-crash.html
vendored
Normal 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>
|
23
tests/wpt/tests/css/css-animations/neutral-var-keyframe-cycle-registered-additive-crash.html
vendored
Normal file
23
tests/wpt/tests/css/css-animations/neutral-var-keyframe-cycle-registered-additive-crash.html
vendored
Normal 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
Loading…
Add table
Add a link
Reference in a new issue