mirror of
https://github.com/servo/servo.git
synced 2025-06-26 18:14:34 +01:00
Update web-platform-tests to revision 36acf7a01cb8ffbbafbd578229c5ad3fde2e47cc
This commit is contained in:
parent
305312e93b
commit
4499a0fbb6
151 changed files with 4858 additions and 2407 deletions
|
@ -14,9 +14,6 @@
|
|||
[Revoke blob URL after creating Request, will fetch]
|
||||
expected: FAIL
|
||||
|
||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[url-with-fetch.any.html]
|
||||
[Untitled]
|
||||
|
@ -37,3 +34,6 @@
|
|||
[Revoke blob URL after creating Request, will fetch]
|
||||
expected: FAIL
|
||||
|
||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
||||
expected: FAIL
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,28 @@
|
|||
[align-content-valid.html]
|
||||
[e.style['align-content'\] = "first baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-content'\] = "unsafe end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-content'\] = "end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-content'\] = "normal" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-content'\] = "baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-content'\] = "space-evenly" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-content'\] = "start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-content'\] = "safe flex-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-content'\] = "last baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
[align-items-valid.html]
|
||||
[e.style['align-items'\] = "last baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-items'\] = "unsafe center" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-items'\] = "first baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-items'\] = "normal" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-items'\] = "start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-items'\] = "self-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-items'\] = "end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-items'\] = "self-end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-items'\] = "safe self-end" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
[align-self-valid.html]
|
||||
[e.style['align-self'\] = "self-end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-self'\] = "last baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-self'\] = "first baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-self'\] = "start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-self'\] = "end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-self'\] = "safe self-end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-self'\] = "normal" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-self'\] = "unsafe center" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['align-self'\] = "self-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
[justify-content-valid.html]
|
||||
[e.style['justify-content'\] = "unsafe right" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-content'\] = "start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-content'\] = "normal" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-content'\] = "unsafe end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-content'\] = "space-evenly" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-content'\] = "end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-content'\] = "safe flex-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-content'\] = "left" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
[justify-items-valid.html]
|
||||
[e.style['justify-items'\] = "self-end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "unsafe center" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "safe left" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "safe self-end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "flex-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "center" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "center legacy" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "right legacy" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "last baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "left legacy" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "normal" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "stretch" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "flex-end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "self-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "first baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "right" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-items'\] = "legacy" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
[justify-self-valid.html]
|
||||
[e.style['justify-self'\] = "self-end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "unsafe center" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "auto" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "safe self-end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "left" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "center" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "flex-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "stretch" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "normal" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "flex-end" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "self-start" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "last baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "first baseline" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['justify-self'\] = "unsafe right" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
@ -56,6 +56,3 @@
|
|||
[background-position length(px) / events]
|
||||
expected: FAIL
|
||||
|
||||
[font-size length(em) / events]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -509,39 +509,3 @@
|
|||
[border-left-width length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-top length(in) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[height length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-top length(px) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-right length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-top length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[margin-top length(cm) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-bottom length(ex) / values]
|
||||
expected: FAIL
|
||||
|
||||
[height length(pt) / values]
|
||||
expected: FAIL
|
||||
|
||||
[padding-left length(pc) / values]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -3,3 +3,9 @@
|
|||
[scroll-behavior: smooth on DIV element]
|
||||
expected: FAIL
|
||||
|
||||
[Smooth scrolling while doing history navigation.]
|
||||
expected: FAIL
|
||||
|
||||
[Instant scrolling while doing history navigation.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -312,9 +312,24 @@
|
|||
[<iframe>: separate response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,3 +56,9 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20'NosniFF']
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,24 +1,5 @@
|
|||
[open-features-negative-innerwidth-innerheight.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`]
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=-404.5" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=-404.5" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=-404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=-404e1" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=-404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=-404e1" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,24 +1,5 @@
|
|||
[open-features-negative-screenx-screeny.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: negative values for legacy `screenx`, `screeny`]
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=-204" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=-204" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=-204.5" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=-0" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=-0" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=-204.5" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,24 +1,5 @@
|
|||
[open-features-negative-top-left.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: negative values for `top`, `left`]
|
||||
expected: FAIL
|
||||
|
||||
[features "top=-204" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=-204.5" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=-204" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=-0" should NOT set "top=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=-204.5" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=-0" should NOT set "left=204"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,24 +1,5 @@
|
|||
[open-features-negative-width-height.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: negative values for `width`, `height`]
|
||||
expected: FAIL
|
||||
|
||||
[features "height=-404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "height=-404e1" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "height=-404.5" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=-404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=-404e1" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=-404.5" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,48 +1,32 @@
|
|||
[open-features-non-integer-height.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `height`]
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405*3" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405.32" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405e1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405/5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405^4" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405.5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405e-1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405 " should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "height=405LLl" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "height=/404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[top=0,left=0,width=401,: absence of feature "height" should be treated same as "height=0"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[top=0,left=0: absence of feature "height" should be treated same as "height=0"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "height=_404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "height=L404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-innerheight.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `innerheight`]
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405e-1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405LLl" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405^4" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405e1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405 " should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405/5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405.32" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405.5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerheight=405*3" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=_404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=L404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerheight=/404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-innerwidth.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405e-1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405*3" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405.5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405e1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405.32" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405 " should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405LLl" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405/5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "innerwidth=405^4" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=/404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=_404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "innerwidth=L404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-left.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `left`]
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105e1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105 " should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105/5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105e-1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105^4" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105LLl" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105.32" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105*3" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "left=105.5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=L104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=/104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "left=_104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-screenx.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `screenx`]
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105.5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105e1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105 " should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105*3" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105e-1" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105^4" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105LLl" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105/5" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screenx=105.32" should set "left=105"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=_104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=L104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screenx=/104" should NOT set "left=104"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-screeny.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for legacy feature `screeny`]
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405^4" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405e-1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405LLl" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405e1" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405 " should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405/5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405*3" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405.32" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "screeny=405.5" should set "height=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=_404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=L404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "screeny=/404" should NOT set "height=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,42 +1,32 @@
|
|||
[open-features-non-integer-top.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `top`]
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105/5" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105*3" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105LLl" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105e-1" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105.32" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105e1" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105 " should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105^4" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "top=105.5" should set "top=105"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=/104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=_104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "top=L104" should NOT set "top=104"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,48 +1,32 @@
|
|||
[open-features-non-integer-width.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[HTML: window.open `features`: non-integer values for feature `width`]
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405^4" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405.5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405e1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405 " should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405.32" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405LLl" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405*3" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405e-1" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[features "width=405/5" should set "width=405"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[top=0,left=0: absence of feature "width" should be treated same as "width=0"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=_404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=/404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
|
||||
[features "width=L404" should NOT set "width=404"]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,4 @@
|
|||
[pixel-length-attributes.html]
|
||||
expected: ERROR
|
||||
[<iframe marginheight="200%"> mapping to marginBottom]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -192,3 +191,6 @@
|
|||
[<iframe marginwidth="0"> mapping to marginLeft]
|
||||
expected: FAIL
|
||||
|
||||
[Test handling of attributes that map to pixel length properties]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
[toggleEvent.html]
|
||||
[Calling open twice on 'details' fires only one toggle event]
|
||||
expected: FAIL
|
||||
|
||||
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[DOMContentLoaded-defer.html]
|
||||
[The end: DOMContentLoaded and defer scripts]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[iframe_005.html]
|
||||
[document.write external script into iframe write back into parent]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
[requires-failure.https.any.html]
|
||||
|
||||
[requires-failure.https.any.serviceworker.html]
|
||||
[requires-failure]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
[requires-success.any.worker.html]
|
||||
[[[CanBlock\]\] in a DedicatedWorkerGlobalScope]
|
||||
expected: FAIL
|
||||
|
||||
|
||||
[requires-success.any.sharedworker.html]
|
||||
[requires-success]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[promise-rejection-events.html]
|
||||
expected: TIMEOUT
|
||||
[delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -9,6 +8,3 @@
|
|||
[no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from createImageBitmap]
|
||||
expected: FAIL
|
||||
|
||||
[rejectionhandled is dispatched from a queued task, and not immediately]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -23,6 +23,3 @@
|
|||
[domainLookupStart should be 0 in cross-origin request.]
|
||||
expected: FAIL
|
||||
|
||||
[responseEnd should be greater than 0 in cross-origin request.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -83,3 +83,9 @@
|
|||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 1.3054461021373052e+24 at index of 20238.\n\t[20238\]\t1.3054461021373052e+24\t-4.7574958205223083e-1\t1.3054461021373052e+24\t2.7439774019475333e+24\t3.8985999999999999e-3\n\tMax RelError of 2.7439774019475333e+24 at index of 20238.\n\t[20238\]\t1.3054461021373052e+24\t-4.7574958205223083e-1\t1.3054461021373052e+24\t2.7439774019475333e+24\t3.8985999999999999e-3\n]
|
||||
expected: FAIL
|
||||
|
||||
[X SNR (-354.903972203962 dB) is not greater than or equal to 65.737. Got -354.903972203962.]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 6.0007368809968042e+19 at index of 20238.\n\t[20238\]\t-6.0007368809968042e+19\t-4.7574958205223083e-1\t6.0007368809968042e+19\t1.2613225754422218e+20\t3.8985999999999999e-3\n\tMax RelError of 1.2613225754422218e+20 at index of 20238.\n\t[20238\]\t-6.0007368809968042e+19\t-4.7574958205223083e-1\t6.0007368809968042e+19\t1.2613225754422218e+20\t3.8985999999999999e-3\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[mediastreamaudiosourcenode-ctor.html]
|
||||
[MediaStreamAudioSourceNode]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[mediastreamaudiosourcenode-routing.html]
|
||||
expected: ERROR
|
||||
[MediaStreamAudioSourceNode captures the right track.]
|
||||
expected: NOTRUN
|
||||
|
|
@ -21,3 +21,6 @@
|
|||
[lastModified set to related HTTP header if provided]
|
||||
expected: FAIL
|
||||
|
||||
[XMLHttpRequest: responseXML document properties]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[transition_calc_implicit.html]
|
||||
expected: TIMEOUT
|
|
@ -61,6 +61,14 @@ promise_test(async t => {
|
|||
|
||||
assert_equals(comparableOutput, comparableInput);
|
||||
}, 'Verify write and read clipboard [image/png Blob]');
|
||||
|
||||
promise_test(async t => {
|
||||
const invalidPngBlob = new Blob(['this text is not a valid png image'],
|
||||
{type: "image/png"});
|
||||
const clipboardItemInput = new ClipboardItem({'image/png' : invalidPngBlob});
|
||||
await promise_rejects(t, "DataError",
|
||||
navigator.clipboard.write([clipboardItemInput]));
|
||||
}, 'Verify write error on malformed data [image/png ClipboardItem]');
|
||||
</script>
|
||||
<p>
|
||||
Note: This is a manual test because it writes/reads to the shared system
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing align-content with invalid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-content">
|
||||
<meta name="assert" content="align-content supports only the grammar 'normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_invalid_value("align-content", "auto");
|
||||
test_invalid_value("align-content", "baseline last");
|
||||
test_invalid_value("align-content", "center baseline");
|
||||
test_invalid_value("align-content", "first");
|
||||
test_invalid_value("align-content", "flex-start flex-end");
|
||||
test_invalid_value("align-content", "last");
|
||||
test_invalid_value("align-content", "left");
|
||||
test_invalid_value("align-content", "legacy center");
|
||||
test_invalid_value("align-content", "legacy left");
|
||||
test_invalid_value("align-content", "legacy");
|
||||
test_invalid_value("align-content", "normal baseline");
|
||||
test_invalid_value("align-content", "right legacy");
|
||||
test_invalid_value("align-content", "safe self-end");
|
||||
test_invalid_value("align-content", "safe");
|
||||
test_invalid_value("align-content", "self-end unsafe");
|
||||
test_invalid_value("align-content", "self-start");
|
||||
test_invalid_value("align-content", "start safe");
|
||||
test_invalid_value("align-content", "unsafe right");
|
||||
test_invalid_value("align-content", "unsafe");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,39 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing align-content with valid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-content">
|
||||
<meta name="assert" content="align-content supports the full grammar 'normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_valid_value("align-content", "normal");
|
||||
|
||||
// <baseline-position> = [ first | last ]? baseline
|
||||
test_valid_value("align-content", "baseline");
|
||||
test_valid_value("align-content", "first baseline", "baseline");
|
||||
test_valid_value("align-content", "last baseline");
|
||||
|
||||
// <content-distribution> = space-between | space-around | space-evenly | stretch
|
||||
test_valid_value("align-content", "space-between");
|
||||
test_valid_value("align-content", "space-around");
|
||||
test_valid_value("align-content", "space-evenly");
|
||||
test_valid_value("align-content", "stretch");
|
||||
|
||||
// <overflow-position>? <content-position>
|
||||
// <overflow-position> = unsafe | safe
|
||||
// <content-position> = center | start | end | flex-start | flex-end
|
||||
test_valid_value("align-content", "center");
|
||||
test_valid_value("align-content", "start");
|
||||
test_valid_value("align-content", "end");
|
||||
test_valid_value("align-content", "flex-start");
|
||||
test_valid_value("align-content", "flex-end");
|
||||
test_valid_value("align-content", "unsafe end");
|
||||
test_valid_value("align-content", "safe flex-start");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing align-items with invalid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
|
||||
<meta name="assert" content="align-items supports only the grammar 'normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_invalid_value("align-items", "auto");
|
||||
test_invalid_value("align-items", "baseline last");
|
||||
test_invalid_value("align-items", "center baseline");
|
||||
test_invalid_value("align-items", "first");
|
||||
test_invalid_value("align-items", "flex-start flex-end");
|
||||
test_invalid_value("align-items", "last");
|
||||
test_invalid_value("align-items", "left");
|
||||
test_invalid_value("align-items", "legacy center");
|
||||
test_invalid_value("align-items", "legacy left");
|
||||
test_invalid_value("align-items", "legacy");
|
||||
test_invalid_value("align-items", "normal baseline");
|
||||
test_invalid_value("align-items", "right legacy");
|
||||
test_invalid_value("align-items", "safe");
|
||||
test_invalid_value("align-items", "self-end unsafe");
|
||||
test_invalid_value("align-items", "space-around");
|
||||
test_invalid_value("align-items", "space-between");
|
||||
test_invalid_value("align-items", "space-evenly");
|
||||
test_invalid_value("align-items", "start safe");
|
||||
test_invalid_value("align-items", "unsafe right");
|
||||
test_invalid_value("align-items", "unsafe");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing align-items with valid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-items">
|
||||
<meta name="assert" content="align-items supports the full grammar 'normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_valid_value("align-items", "normal");
|
||||
test_valid_value("align-items", "stretch");
|
||||
|
||||
// <baseline-position> = [ first | last ]? baseline
|
||||
test_valid_value("align-items", "baseline");
|
||||
test_valid_value("align-items", "first baseline", "baseline");
|
||||
test_valid_value("align-items", "last baseline");
|
||||
|
||||
// <overflow-position>? <self-position>
|
||||
// <overflow-position> = unsafe | safe
|
||||
// <self-position> = center | start | end | self-start | self-end | flex-start | flex-end
|
||||
test_valid_value("align-items", "center");
|
||||
test_valid_value("align-items", "start");
|
||||
test_valid_value("align-items", "end");
|
||||
test_valid_value("align-items", "self-start");
|
||||
test_valid_value("align-items", "self-end");
|
||||
test_valid_value("align-items", "flex-start");
|
||||
test_valid_value("align-items", "flex-end");
|
||||
test_valid_value("align-items", "unsafe center");
|
||||
test_valid_value("align-items", "safe self-end");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing align-self with invalid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
|
||||
<meta name="assert" content="align-self supports only the grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_invalid_value("align-self", "baseline last");
|
||||
test_invalid_value("align-self", "center baseline");
|
||||
test_invalid_value("align-self", "first");
|
||||
test_invalid_value("align-self", "flex-start flex-end");
|
||||
test_invalid_value("align-self", "last");
|
||||
test_invalid_value("align-self", "left");
|
||||
test_invalid_value("align-self", "legacy center");
|
||||
test_invalid_value("align-self", "legacy left");
|
||||
test_invalid_value("align-self", "legacy");
|
||||
test_invalid_value("align-self", "normal baseline");
|
||||
test_invalid_value("align-self", "right legacy");
|
||||
test_invalid_value("align-self", "safe");
|
||||
test_invalid_value("align-self", "self-end unsafe");
|
||||
test_invalid_value("align-self", "space-around");
|
||||
test_invalid_value("align-self", "space-between");
|
||||
test_invalid_value("align-self", "space-evenly");
|
||||
test_invalid_value("align-self", "start safe");
|
||||
test_invalid_value("align-self", "unsafe right");
|
||||
test_invalid_value("align-self", "unsafe");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing align-self with valid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#propdef-align-self">
|
||||
<meta name="assert" content="align-self supports the full grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_valid_value("align-self", "auto");
|
||||
test_valid_value("align-self", "normal");
|
||||
test_valid_value("align-self", "stretch");
|
||||
|
||||
// <baseline-position> = [ first | last ]? baseline
|
||||
test_valid_value("align-self", "baseline");
|
||||
test_valid_value("align-self", "first baseline", "baseline");
|
||||
test_valid_value("align-self", "last baseline");
|
||||
|
||||
// <overflow-position>? <self-position>
|
||||
// <overflow-position> = unsafe | safe
|
||||
// <self-position> = center | start | end | self-start | self-end | flex-start | flex-end
|
||||
test_valid_value("align-self", "center");
|
||||
test_valid_value("align-self", "start");
|
||||
test_valid_value("align-self", "end");
|
||||
test_valid_value("align-self", "self-start");
|
||||
test_valid_value("align-self", "self-end");
|
||||
test_valid_value("align-self", "flex-start");
|
||||
test_valid_value("align-self", "flex-end");
|
||||
test_valid_value("align-self", "unsafe center");
|
||||
test_valid_value("align-self", "safe self-end");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing justify-content with invalid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-content">
|
||||
<meta name="assert" content="justify-content supports only the grammar 'normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_invalid_value("justify-content", "auto");
|
||||
test_invalid_value("justify-content", "baseline last");
|
||||
test_invalid_value("justify-content", "baseline");
|
||||
test_invalid_value("justify-content", "center baseline");
|
||||
test_invalid_value("justify-content", "first baseline");
|
||||
test_invalid_value("justify-content", "first");
|
||||
test_invalid_value("justify-content", "flex-start flex-end");
|
||||
test_invalid_value("justify-content", "last baseline");
|
||||
test_invalid_value("justify-content", "last");
|
||||
test_invalid_value("justify-content", "legacy center");
|
||||
test_invalid_value("justify-content", "legacy left");
|
||||
test_invalid_value("justify-content", "legacy");
|
||||
test_invalid_value("justify-content", "normal baseline");
|
||||
test_invalid_value("justify-content", "right legacy");
|
||||
test_invalid_value("justify-content", "safe self-end");
|
||||
test_invalid_value("justify-content", "safe");
|
||||
test_invalid_value("justify-content", "self-end unsafe");
|
||||
test_invalid_value("justify-content", "self-start");
|
||||
test_invalid_value("justify-content", "start safe");
|
||||
test_invalid_value("justify-content", "unsafe");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing justify-content with valid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-content">
|
||||
<meta name="assert" content="justify-content supports the full grammar 'normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_valid_value("justify-content", "normal");
|
||||
|
||||
// <content-distribution> = space-between | space-around | space-evenly | stretch
|
||||
test_valid_value("justify-content", "space-between");
|
||||
test_valid_value("justify-content", "space-around");
|
||||
test_valid_value("justify-content", "space-evenly");
|
||||
test_valid_value("justify-content", "stretch");
|
||||
|
||||
// <overflow-position>? [ <content-position> | left | right ]
|
||||
// <overflow-position> = unsafe | safe
|
||||
// <content-position> = center | start | end | flex-start | flex-end
|
||||
test_valid_value("justify-content", "center");
|
||||
test_valid_value("justify-content", "start");
|
||||
test_valid_value("justify-content", "end");
|
||||
test_valid_value("justify-content", "flex-start");
|
||||
test_valid_value("justify-content", "flex-end");
|
||||
test_valid_value("justify-content", "unsafe end");
|
||||
test_valid_value("justify-content", "safe flex-start");
|
||||
test_valid_value("justify-content", "left");
|
||||
test_valid_value("justify-content", "unsafe right");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing justify-items with invalid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-items">
|
||||
<meta name="assert" content="justify-items supports only the grammar 'normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_invalid_value("justify-items", "auto");
|
||||
test_invalid_value("justify-items", "baseline last");
|
||||
test_invalid_value("justify-items", "center baseline");
|
||||
test_invalid_value("justify-items", "first");
|
||||
test_invalid_value("justify-items", "flex-start flex-end");
|
||||
test_invalid_value("justify-items", "last");
|
||||
test_invalid_value("justify-items", "normal baseline");
|
||||
test_invalid_value("justify-items", "safe");
|
||||
test_invalid_value("justify-items", "self-end unsafe");
|
||||
test_invalid_value("justify-items", "space-around");
|
||||
test_invalid_value("justify-items", "space-between");
|
||||
test_invalid_value("justify-items", "space-evenly");
|
||||
test_invalid_value("justify-items", "start safe");
|
||||
test_invalid_value("justify-items", "unsafe");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,44 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing justify-items with valid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-items">
|
||||
<meta name="assert" content="justify-items supports the full grammar 'normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_valid_value("justify-items", "normal");
|
||||
test_valid_value("justify-items", "stretch");
|
||||
|
||||
// <baseline-position> = [ first | last ]? baseline
|
||||
test_valid_value("justify-items", "baseline");
|
||||
test_valid_value("justify-items", "first baseline", "baseline");
|
||||
test_valid_value("justify-items", "last baseline");
|
||||
|
||||
// <overflow-position>? [ <self-position> | left | right ]
|
||||
// <overflow-position> = unsafe | safe
|
||||
// <self-position> = center | start | end | self-start | self-end | flex-start | flex-end
|
||||
test_valid_value("justify-items", "center");
|
||||
test_valid_value("justify-items", "start");
|
||||
test_valid_value("justify-items", "end");
|
||||
test_valid_value("justify-items", "self-start");
|
||||
test_valid_value("justify-items", "self-end");
|
||||
test_valid_value("justify-items", "flex-start");
|
||||
test_valid_value("justify-items", "flex-end");
|
||||
test_valid_value("justify-items", "unsafe center");
|
||||
test_valid_value("justify-items", "safe self-end");
|
||||
test_valid_value("justify-items", "right");
|
||||
test_valid_value("justify-items", "safe left");
|
||||
|
||||
// legacy | legacy && [ left | right | center ]
|
||||
test_valid_value("justify-items", "legacy");
|
||||
test_valid_value("justify-items", "left legacy", "legacy left");
|
||||
test_valid_value("justify-items", "right legacy", "legacy right");
|
||||
test_valid_value("justify-items", "center legacy", "legacy center");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing justify-self with invalid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-self">
|
||||
<meta name="assert" content="justify-self supports only the grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_invalid_value("justify-self", "baseline last");
|
||||
test_invalid_value("justify-self", "center baseline");
|
||||
test_invalid_value("justify-self", "first");
|
||||
test_invalid_value("justify-self", "flex-start flex-end");
|
||||
test_invalid_value("justify-self", "last");
|
||||
test_invalid_value("justify-self", "legacy center");
|
||||
test_invalid_value("justify-self", "legacy left");
|
||||
test_invalid_value("justify-self", "legacy");
|
||||
test_invalid_value("justify-self", "normal baseline");
|
||||
test_invalid_value("justify-self", "right legacy");
|
||||
test_invalid_value("justify-self", "safe");
|
||||
test_invalid_value("justify-self", "self-end unsafe");
|
||||
test_invalid_value("justify-self", "space-around");
|
||||
test_invalid_value("justify-self", "space-between");
|
||||
test_invalid_value("justify-self", "space-evenly");
|
||||
test_invalid_value("justify-self", "start safe");
|
||||
test_invalid_value("justify-self", "unsafe");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,39 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Box Alignment Level 3: parsing justify-self with valid values</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-justify-3/#propdef-justify-self">
|
||||
<meta name="assert" content="justify-self supports the full grammar 'auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_valid_value("justify-self", "auto");
|
||||
test_valid_value("justify-self", "normal");
|
||||
test_valid_value("justify-self", "stretch");
|
||||
|
||||
// <baseline-position> = [ first | last ]? baseline
|
||||
test_valid_value("justify-self", "baseline");
|
||||
test_valid_value("justify-self", "first baseline", "baseline");
|
||||
test_valid_value("justify-self", "last baseline");
|
||||
|
||||
// <overflow-position>? [ <self-position> | left | right ]
|
||||
// <overflow-position> = unsafe | safe
|
||||
// <self-position> = center | start | end | self-start | self-end | flex-start | flex-end
|
||||
test_valid_value("justify-self", "center");
|
||||
test_valid_value("justify-self", "start");
|
||||
test_valid_value("justify-self", "end");
|
||||
test_valid_value("justify-self", "self-start");
|
||||
test_valid_value("justify-self", "self-end");
|
||||
test_valid_value("justify-self", "flex-start");
|
||||
test_valid_value("justify-self", "flex-end");
|
||||
test_valid_value("justify-self", "unsafe center");
|
||||
test_valid_value("justify-self", "safe self-end");
|
||||
test_valid_value("justify-self", "left");
|
||||
test_valid_value("justify-self", "unsafe right");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -12,7 +12,6 @@
|
|||
<script src="/css/support/inheritance-testcommon.js"></script>
|
||||
<style>
|
||||
#box {
|
||||
font: initial;
|
||||
font-size: medium;
|
||||
}
|
||||
</style>
|
||||
|
@ -25,10 +24,9 @@
|
|||
<script>
|
||||
'use strict';
|
||||
const box = document.getElementById('box');
|
||||
const initialFontFamily = getComputedStyle(box).fontFamily;
|
||||
const mediumFontSize = getComputedStyle(box).fontSize;
|
||||
|
||||
assert_inherited('font-family', initialFontFamily, '"Not Initial!"');
|
||||
assert_inherited('font-family', null, '"Not Initial!"'); // Initial value depends on user agent.
|
||||
assert_inherited('font-feature-settings', 'normal', '"smcp", "swsh" 2');
|
||||
assert_inherited('font-kerning', 'auto', 'none');
|
||||
assert_inherited('font-size', mediumFontSize /* medium */, '123px');
|
||||
|
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test flow-relative versions of overscroll-behavior properties</title>
|
||||
<link rel="author" title="Majid Valipour">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-overscroll-behavior-1/#overscroll-behavior-longhands-logical">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-logical/#box">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
div {
|
||||
overscroll-behavior-block: contain;
|
||||
overscroll-behavior-inline: none;
|
||||
}
|
||||
#horizontal {
|
||||
writing-mode: horizontal-tb;
|
||||
}
|
||||
#vertical {
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
#horizontalreversed {
|
||||
writing-mode: horizontal-tb;
|
||||
direction: rtl;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<div id="horizontal"></div>
|
||||
<div id="vertical"></div>
|
||||
<div id="horizontalreversed"></div>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
var element = document.getElementById("horizontal");
|
||||
assert_equals(getComputedStyle(element).overscrollBehaviorX, "none");
|
||||
assert_equals(getComputedStyle(element).overscrollBehaviorY, "contain");
|
||||
}, "Logical overscroll-behavior maps correctly when element has horizontal-tb writing mode");
|
||||
|
||||
test(function() {
|
||||
var element = document.getElementById("vertical");
|
||||
assert_equals(getComputedStyle(element).overscrollBehaviorX, "contain");
|
||||
assert_equals(getComputedStyle(element).overscrollBehaviorY, "none");
|
||||
}, "Logical overscroll-behavior maps correctly when element has vertical-rl writing mode");
|
||||
|
||||
test(function() {
|
||||
var element = document.getElementById("horizontalreversed");
|
||||
assert_equals(getComputedStyle(element).overscrollBehaviorX, "none");
|
||||
assert_equals(getComputedStyle(element).overscrollBehaviorY, "contain");
|
||||
}, "Logical overscroll-behavior maps correctly when element has horizontal-tb writing mode and is not affected by rtl direction");
|
||||
</script>
|
|
@ -6,6 +6,8 @@
|
|||
<link rel="help" href="https://drafts.csswg.org/css-overscroll-behavior/#overscroll-behavior-properties">
|
||||
<meta name="assert" content="overscroll-behavior-x computed value is as specified.">
|
||||
<meta name="assert" content="overscroll-behavior-y computed value is as specified.">
|
||||
<meta name="assert" content="overscroll-behavior-inline computed value is as specified.">
|
||||
<meta name="assert" content="overscroll-behavior-block computed value is as specified.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/computed-testcommon.js"></script>
|
||||
|
@ -14,7 +16,7 @@
|
|||
<div id="target"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
for (let property of ["overscroll-behavior-x", "overscroll-behavior-y"]) {
|
||||
for (let property of ["overscroll-behavior-x", "overscroll-behavior-y", "overscroll-behavior-inline", "overscroll-behavior-block"]) {
|
||||
test_computed_value(property, "contain");
|
||||
test_computed_value(property, "none");
|
||||
test_computed_value(property, "auto");
|
||||
|
|
|
@ -18,7 +18,7 @@ test_invalid_value("overscroll-behavior", "0");
|
|||
test_invalid_value("overscroll-behavior", "contain contain contain");
|
||||
|
||||
|
||||
for (let property of ["overscroll-behavior-x", "overscroll-behavior-y"]) {
|
||||
for (let property of ["overscroll-behavior-x", "overscroll-behavior-y", "overscroll-behavior-inline", "overscroll-behavior-block"]) {
|
||||
test_invalid_value(property, "normal");
|
||||
test_invalid_value(property, "0");
|
||||
test_invalid_value(property, "contain contain");
|
||||
|
|
|
@ -26,7 +26,7 @@ test_valid_value("overscroll-behavior", "none none", "none");
|
|||
test_valid_value("overscroll-behavior", "auto auto", "auto");
|
||||
|
||||
|
||||
for (let property of ["overscroll-behavior-x", "overscroll-behavior-y"]) {
|
||||
for (let property of ["overscroll-behavior-x", "overscroll-behavior-y", "overscroll-behavior-inline", "overscroll-behavior-block"]) {
|
||||
test_valid_value(property, "contain");
|
||||
test_valid_value(property, "none");
|
||||
test_valid_value(property, "auto");
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://crbug.com/982403" />
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name="assert" content="Tests the static position of an inline-level absolute-positioned element." />
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="overflow: hidden;">
|
||||
<div style="float: left; width: 100px; height: 50px; background: green;"></div>
|
||||
<div style="clear: both; width: 100px; height: 50px; background: red;">
|
||||
<div style="position: absolute; display: inline; width: 100px; height: 50px; background: green;"></div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://crbug.com/982403" />
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||
<meta name="assert" content="Tests the static position of an inline-level absolute-positioned element." />
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="overflow: hidden;">
|
||||
<div style="float: left; width: 100px; height: 50px; background: green;"></div>
|
||||
<div style="clear: both; width: 100px; height: 50px; background: red;">
|
||||
<div></div>
|
||||
<div style="position: absolute; display: inline; width: 100px; height: 50px; background: green;"></div>
|
||||
</div>
|
||||
</div>
|
|
@ -6,7 +6,6 @@
|
|||
<style>
|
||||
body {
|
||||
margin: 0px;
|
||||
overflow: scroll;
|
||||
scroll-snap-type: both mandatory;
|
||||
}
|
||||
#content {
|
||||
|
@ -22,6 +21,7 @@ body {
|
|||
width: 400px;
|
||||
height: 400px;
|
||||
background-color: lightblue;
|
||||
overflow: hidden;
|
||||
scroll-snap-align: start;
|
||||
}
|
||||
#i1 {
|
||||
|
@ -74,10 +74,13 @@ button.onclick = function() {
|
|||
if (!scrolled_x || !scrolled_y)
|
||||
return;
|
||||
|
||||
assert_equals(window.scrollX, target.offsetLeft,
|
||||
"window.scrollX should be at snapped position.");
|
||||
assert_equals(window.scrollY, target.offsetTop,
|
||||
"window.scrollY should be at snapped position.");
|
||||
snap_test.step(() => {
|
||||
assert_equals(window.scrollX, target.offsetLeft,
|
||||
"window.scrollX should be at snapped position.");
|
||||
assert_equals(window.scrollY, target.offsetTop,
|
||||
"window.scrollY should be at snapped position.");
|
||||
});
|
||||
|
||||
// To make the test result visible.
|
||||
var content = document.getElementById("content");
|
||||
body.removeChild(content);
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
<!doctype html>
|
||||
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-position-3/#def-cb">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<link rel="bookmark" href="https://crbug.com/977507" />
|
||||
<meta name="flags" content="" />
|
||||
<meta name="assert" content="Abspos table works when it is dynamically added" />
|
||||
|
||||
<style>
|
||||
table {
|
||||
border-spacing: 0px;
|
||||
}
|
||||
td {
|
||||
padding: 0px;
|
||||
}
|
||||
.outerTable {
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
position: relative;
|
||||
}
|
||||
.innerTable {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
width: 100px;
|
||||
height: 100%;
|
||||
color: green;
|
||||
background: green;
|
||||
}
|
||||
</style>
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
<table class=outerTable>
|
||||
<td id=outerCell></td>
|
||||
</table>
|
||||
<script>
|
||||
outerCell.innerHTML = "<table class=innerTable><td>some text</td></table>";
|
||||
</script>
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Non-reference case for text-underline-offset</title>
|
||||
<style>
|
||||
#text{
|
||||
border: black dashed;
|
||||
overflow-y: auto;
|
||||
height: 5em;
|
||||
width: 20em;
|
||||
font: 20px/1 Ahem;
|
||||
color: transparent;
|
||||
text-decoration: red underline;
|
||||
text-decoration-skip-ink: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div>Test fails if there is a red line or scrollbar in the dashed area</div>
|
||||
<div id="text">XXXXXXX</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Reference case for text-underline-offset</title>
|
||||
<style>
|
||||
#text{
|
||||
border: black dashed;
|
||||
height: 5em;
|
||||
width: 20em;
|
||||
font: 20px/1 Ahem;
|
||||
color: transparent;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div>Test fails if there is a red line or scrollbar in the dashed area</div>
|
||||
<div id="text">XXXXXXX</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Reference case for text-underline-offset</title>
|
||||
<style>
|
||||
span{
|
||||
font: 20px/1 Ahem;
|
||||
color: transparent;
|
||||
writing-mode: vertical-lr;
|
||||
text-decoration: green underline;
|
||||
text-decoration-skip-ink: none;
|
||||
text-underline-offset: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div>Test passes if the underline is vertical and close to the word left</div>
|
||||
<div>left<span>XXXXX</span></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Reference case for text-underline-offset</title>
|
||||
<style>
|
||||
div{
|
||||
font: 20px/1 Ahem;
|
||||
margin-left: 5em;
|
||||
}
|
||||
#text{
|
||||
color: transparent;
|
||||
writing-mode: sideways-lr;
|
||||
text-decoration: green underline;
|
||||
text-decoration-skip-ink: none;
|
||||
text-underline-offset: 0;
|
||||
margin-left: 5em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test passes if the underline is further to the right of the text</p>
|
||||
<div>
|
||||
<p>XXXX</p>
|
||||
<span id="text">XXXXX</span>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test case for text-underline-offset</title>
|
||||
<meta name="assert" content="text-underline-offset should influence the placement of the underline">
|
||||
<link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset">
|
||||
<link rel="match" href="reference/text-underline-offset-scroll-001-ref.html">
|
||||
<link rel="mismatch" href="reference/text-underline-offset-scroll-001-notref.html">
|
||||
<style>
|
||||
/*
|
||||
* Testing to make sure that positioning the underline
|
||||
* outside of the scrollframe does not create scrollable
|
||||
* overflow and is not visible outside of the div
|
||||
*/
|
||||
#scroll{
|
||||
border: black dashed;
|
||||
overflow-y: auto;
|
||||
height: 5em;
|
||||
width: 20em;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
|
||||
#text{
|
||||
color: transparent;
|
||||
text-decoration: red underline;
|
||||
text-decoration-skip-ink: none;
|
||||
text-underline-offset: 5em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div>Test fails if there is a red line or scrollbar in the dashed area</div>
|
||||
<div id="scroll"><span id="text">XXXXXXX</span></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test case for text-underline-offset</title>
|
||||
<meta name="assert" content="text-underline-offset should influence the placement of the underline">
|
||||
<link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset">
|
||||
<link rel="match" href="reference/text-underline-offset-vertical-001-ref.html">
|
||||
<style>
|
||||
span{
|
||||
margin-left: 5em;
|
||||
font: 20px/1 Ahem;
|
||||
color: transparent;
|
||||
writing-mode: vertical-lr;
|
||||
text-decoration: green underline;
|
||||
text-decoration-skip-ink: none;
|
||||
text-underline-offset: 5em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div>Test passes if the underline is vertical and close to the word left</div>
|
||||
<div>left<span>XXXXX</span></div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test case for text-underline-offset</title>
|
||||
<meta name="assert" content="text-underline-offset should influence the placement of the underline">
|
||||
<link rel="author" title="Charlie Marlow" href="mailto:cmarlow@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-text-decor-4/#underline-offset">
|
||||
<link rel="match" href="reference/text-underline-offset-vertical-002-ref.html">
|
||||
<style>
|
||||
div{
|
||||
font: 20px/1 Ahem;
|
||||
margin-left: 5em;
|
||||
}
|
||||
#text{
|
||||
color: transparent;
|
||||
writing-mode: sideways-lr;
|
||||
text-decoration: green underline;
|
||||
text-decoration-skip-ink: none;
|
||||
text-underline-offset: 5em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p>Test passes if the underline is further to the right of the text</p>
|
||||
<div>
|
||||
<p>XXXX</p>
|
||||
<span id="text">XXXXX</span>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -33,7 +33,8 @@ function assert_initial(property, initial) {
|
|||
* value.
|
||||
*/
|
||||
function assert_inherited(property, initial, other) {
|
||||
assert_initial(property, initial);
|
||||
if (initial)
|
||||
assert_initial(property, initial);
|
||||
|
||||
test(() => {
|
||||
const container = document.getElementById('container');
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
<!DOCTYPE HTML>
|
||||
<meta charset=utf-8>
|
||||
<title>Element Timing: observe elements from same-origin iframes</title>
|
||||
<body>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="resources/element-timing-helpers.js"></script>
|
||||
<script>
|
||||
async_test((t) => {
|
||||
if (!window.PerformanceElementTiming) {
|
||||
assert_unreached("PerformanceElementTiming is not implemented");
|
||||
}
|
||||
let beforeRender;
|
||||
let img;
|
||||
const img_src = 'http://{{domains[www]}}:{{ports[http][1]}}/element-timing/'
|
||||
+ 'resources/TAOImage.py?tao=wildcard';
|
||||
const observer = new PerformanceObserver(
|
||||
t.step_func_done((entryList) => {
|
||||
assert_equals(entryList.getEntries().length, 1);
|
||||
const entry = entryList.getEntries()[0];
|
||||
checkElement(entry, img_src, 'my_image', 'my_id', beforeRender, img);
|
||||
// Assume viewport has size at least 20, so the element is fully visible.
|
||||
checkRect(entry, [0, 20, 0, 20]);
|
||||
checkNaturalSize(entry, 20, 20);
|
||||
})
|
||||
);
|
||||
observer.observe({entryTypes: ['element']});
|
||||
// We add the image during onload to be sure that the observer is registered
|
||||
// in time for it to observe the element timing.
|
||||
// TODO(npm): change observer to use buffered flag.
|
||||
window.onload = t.step_func(() => {
|
||||
img = document.createElement('img');
|
||||
img.src = img_src;
|
||||
img.setAttribute('elementtiming', 'my_image');
|
||||
img.setAttribute('id', 'my_id');
|
||||
img.onload = t.step_func(() => {
|
||||
// After a short delay, assume that the entry was not dispatched.
|
||||
t.step_timeout(() => {
|
||||
assert_unreached("Should have received an entry!");
|
||||
t.done();
|
||||
}, 100);
|
||||
});
|
||||
document.body.appendChild(img);
|
||||
beforeRender = performance.now();
|
||||
});
|
||||
}, 'Cross-origin element with wildcard TAO is observed.');
|
||||
</script>
|
||||
|
||||
</body>
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE HTML>
|
||||
<meta charset=utf-8>
|
||||
<title>Element Timing: observe cross origin images with various Timing-Allow-Origin headers</title>
|
||||
<body>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="resources/element-timing-helpers.js"></script>
|
||||
<script>
|
||||
async_test(t => {
|
||||
if (!window.PerformanceElementTiming) {
|
||||
assert_unreached("PerformanceElementTiming is not implemented");
|
||||
}
|
||||
const beforeRender = performance.now();
|
||||
const remote_img = 'http://{{domains[www]}}:{{ports[http][1]}}/element-timing/resources/TAOImage.py?'
|
||||
+ 'origin=' + window.location.origin +'&tao=';
|
||||
const valid_tao = ['wildcard', 'origin', 'multi', 'multi_wildcard', 'match_origin', 'match_wildcard'];
|
||||
function addImage(tao) {
|
||||
const img = document.createElement('img');
|
||||
img.src = remote_img + tao;
|
||||
img.setAttribute('elementtiming', tao);
|
||||
img.id = 'id_' + tao;
|
||||
document.body.appendChild(img);
|
||||
}
|
||||
valid_tao.forEach(tao => {
|
||||
addImage(tao);
|
||||
});
|
||||
const invalid_tao = ['null', 'space', 'uppercase'];
|
||||
invalid_tao.forEach(tao => {
|
||||
addImage(tao);
|
||||
});
|
||||
let img_count = 0;
|
||||
const total_images = valid_tao.length + invalid_tao.length;
|
||||
new PerformanceObserver(
|
||||
t.step_func(entryList => {
|
||||
entryList.getEntries().forEach(entry => {
|
||||
img_count++;
|
||||
const tao = entry.identifier;
|
||||
const img = document.getElementById('id_' + tao);
|
||||
if (valid_tao.includes(tao)) {
|
||||
checkElement(entry, remote_img + tao, tao, 'id_' + tao, beforeRender, img);
|
||||
} else if (invalid_tao.includes(tao)) {
|
||||
assert_equals(entry.startTime, 0, 'Entry with tao=' + tao + ' must have a startTime of 0');
|
||||
checkElement(entry, remote_img + tao, tao, 'id_' + tao, 0, img);
|
||||
}
|
||||
else {
|
||||
assert_unreached('Should be in one of valid_tao OR invalid_tao');
|
||||
}
|
||||
checkNaturalSize(entry, 20, 20);
|
||||
if (img_count == total_images)
|
||||
t.done();
|
||||
});
|
||||
})
|
||||
).observe({type: 'element', buffered: true});
|
||||
}, 'Cross-origin elements with valid TAO have correct startTime, with invalid TAO have startTime set to 0.');
|
||||
</script>
|
||||
</body>
|
|
@ -1,7 +1,7 @@
|
|||
import os
|
||||
|
||||
def main(request, response):
|
||||
origin = request.GET.first('origin', '');
|
||||
origin = request.GET.first('origin')
|
||||
if origin:
|
||||
response.headers.set('Access-Control-Allow-Origin', origin)
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "event-definitions-0",
|
||||
"original_id": "event-definitions-0"
|
||||
}
|
||||
]
|
|
@ -1,6 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "event-definition",
|
||||
"original_id": "event-definition"
|
||||
}
|
||||
]
|
|
@ -1,6 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "security-location",
|
||||
"original_id": "security-location"
|
||||
}
|
||||
]
|
|
@ -1,10 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "supporting-offline-caching-for-legacy-applications",
|
||||
"original_id": "supporting-offline-caching-for-legacy-applications"
|
||||
},
|
||||
{
|
||||
"id": "appcacheevents",
|
||||
"original_id": "appcacheevents"
|
||||
}
|
||||
]
|
|
@ -1,14 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "some-sample-manifests",
|
||||
"original_id": "some-sample-manifests"
|
||||
},
|
||||
{
|
||||
"id": "writing-cache-manifests",
|
||||
"original_id": "writing-cache-manifests"
|
||||
},
|
||||
{
|
||||
"id": "parsing-cache-manifests",
|
||||
"original_id": "parsing-cache-manifests"
|
||||
}
|
||||
]
|
|
@ -1,6 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "navigating-auxiliary-browsing-contexts-in-the-dom",
|
||||
"original_id": "navigating-auxiliary-browsing-contexts-in-the-dom"
|
||||
}
|
||||
]
|
|
@ -1,6 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "navigating-nested-browsing-contexts-in-the-dom",
|
||||
"original_id": "navigating-nested-browsing-contexts-in-the-dom"
|
||||
}
|
||||
]
|
|
@ -1,48 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "kinds-of-content",
|
||||
"original_id": "kinds-of-content",
|
||||
"children": [
|
||||
{
|
||||
"id": "metadata-content",
|
||||
"original_id": "metadata-content"
|
||||
},
|
||||
{
|
||||
"id": "flow-content",
|
||||
"original_id": "flow-content"
|
||||
},
|
||||
{
|
||||
"id": "sectioning-content",
|
||||
"original_id": "sectioning-content"
|
||||
},
|
||||
{
|
||||
"id": "heading-content",
|
||||
"original_id": "heading-content"
|
||||
},
|
||||
{
|
||||
"id": "phrasing-content",
|
||||
"original_id": "phrasing-content"
|
||||
},
|
||||
{
|
||||
"id": "embedded-content",
|
||||
"original_id": "embedded-content"
|
||||
},
|
||||
{
|
||||
"id": "interactive-content",
|
||||
"original_id": "interactive-content"
|
||||
},
|
||||
{
|
||||
"id": "palpable-content",
|
||||
"original_id": "palpable-content"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "transparent-content-models",
|
||||
"original_id": "transparent-content-models"
|
||||
},
|
||||
{
|
||||
"id": "paragraphs",
|
||||
"original_id": "paragraphs"
|
||||
}
|
||||
]
|
|
@ -1,6 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "attributes",
|
||||
"original_id": "attributes"
|
||||
}
|
||||
]
|
|
@ -1,38 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "the-id-attribute",
|
||||
"original_id": "the-id-attribute"
|
||||
},
|
||||
{
|
||||
"id": "the-title-attribute",
|
||||
"original_id": "the-title-attribute"
|
||||
},
|
||||
{
|
||||
"id": "the-lang-and-xml-lang-attributes",
|
||||
"original_id": "the-lang-and-xml:lang-attributes"
|
||||
},
|
||||
{
|
||||
"id": "the-translate-attribute",
|
||||
"original_id": "the-translate-attribute"
|
||||
},
|
||||
{
|
||||
"id": "the-xml-base-attribute-xml-only",
|
||||
"original_id": "the-xml:base-attribute-(xml-only)"
|
||||
},
|
||||
{
|
||||
"id": "the-dir-attribute",
|
||||
"original_id": "the-dir-attribute"
|
||||
},
|
||||
{
|
||||
"id": "classes",
|
||||
"original_id": "classes"
|
||||
},
|
||||
{
|
||||
"id": "the-style-attribute",
|
||||
"original_id": "the-style-attribute"
|
||||
},
|
||||
{
|
||||
"id": "embedding-custom-non-visible-data-with-the-data-attributes",
|
||||
"original_id": "embedding-custom-non-visible-data-with-the-data-*-attributes"
|
||||
}
|
||||
]
|
|
@ -1,18 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "aria-role-attribute",
|
||||
"original_id": "aria-role-attribute"
|
||||
},
|
||||
{
|
||||
"id": "state-and-property-attributes",
|
||||
"original_id": "state-and-property-attributes"
|
||||
},
|
||||
{
|
||||
"id": "sec-strong-native-semantics",
|
||||
"original_id": "sec-strong-native-semantics"
|
||||
},
|
||||
{
|
||||
"id": "sec-implicit-aria-semantics",
|
||||
"original_id": "sec-implicit-aria-semantics"
|
||||
}
|
||||
]
|
|
@ -1,14 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "htmlallcollection",
|
||||
"original_id": "htmlallcollection"
|
||||
},
|
||||
{
|
||||
"id": "htmlformcontrolscollection",
|
||||
"original_id": "htmlformcontrolscollection"
|
||||
},
|
||||
{
|
||||
"id": "htmloptionscollection",
|
||||
"original_id": "htmloptionscollection"
|
||||
}
|
||||
]
|
|
@ -1,42 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "months",
|
||||
"original_id": "months"
|
||||
},
|
||||
{
|
||||
"id": "dates",
|
||||
"original_id": "dates"
|
||||
},
|
||||
{
|
||||
"id": "yearless-dates",
|
||||
"original_id": "yearless-dates"
|
||||
},
|
||||
{
|
||||
"id": "times",
|
||||
"original_id": "times"
|
||||
},
|
||||
{
|
||||
"id": "local-dates-and-times",
|
||||
"original_id": "local-dates-and-times"
|
||||
},
|
||||
{
|
||||
"id": "time-zones",
|
||||
"original_id": "time-zones"
|
||||
},
|
||||
{
|
||||
"id": "global-dates-and-times",
|
||||
"original_id": "global-dates-and-times"
|
||||
},
|
||||
{
|
||||
"id": "weeks",
|
||||
"original_id": "weeks"
|
||||
},
|
||||
{
|
||||
"id": "durations",
|
||||
"original_id": "durations"
|
||||
},
|
||||
{
|
||||
"id": "vaguer-moments-in-time",
|
||||
"original_id": "vaguer-moments-in-time"
|
||||
}
|
||||
]
|
|
@ -1,26 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "signed-integers",
|
||||
"original_id": "signed-integers"
|
||||
},
|
||||
{
|
||||
"id": "non-negative-integers",
|
||||
"original_id": "non-negative-integers"
|
||||
},
|
||||
{
|
||||
"id": "floating-point-numbers",
|
||||
"original_id": "floating-point-numbers"
|
||||
},
|
||||
{
|
||||
"id": "percentages-and-dimensions",
|
||||
"original_id": "percentages-and-dimensions"
|
||||
},
|
||||
{
|
||||
"id": "lists-of-integers",
|
||||
"original_id": "lists-of-integers"
|
||||
},
|
||||
{
|
||||
"id": "lists-of-dimensions",
|
||||
"original_id": "lists-of-dimensions"
|
||||
}
|
||||
]
|
|
@ -33,6 +33,7 @@ const valid_values = [
|
|||
[ "1007", "1007px" ],
|
||||
[ " 00523 ", "523px" ],
|
||||
[ "200.25", "200.25px" ],
|
||||
[ "200.7", "200.7px" ],
|
||||
[ "200.", "200px" ],
|
||||
[ "+200", "200px" ],
|
||||
[ "200in", "200px" ],
|
||||
|
@ -99,39 +100,60 @@ function newImageInput() {
|
|||
* Array of tests. Each test consists of the following information:
|
||||
*
|
||||
* 1) An element creation function.
|
||||
* 2) The name of the attribute to set (and CSS property to get).
|
||||
* 3) A boolean indicating whether 0 is a valid value for the dimension
|
||||
* 2) The name of the attribute to set
|
||||
* 3) The name of the CSS property to get.
|
||||
* 4) A boolean indicating whether 0 is a valid value for the dimension
|
||||
* attribute.
|
||||
*/
|
||||
const tests = [
|
||||
[ newElem("hr"), "width", true ],
|
||||
[ newElem("iframe"), "width", true ],
|
||||
[ newElem("iframe"), "height", true ],
|
||||
[ newImageInput(), "width", true ],
|
||||
[ newImageInput(), "height", true ],
|
||||
[ newElem("marquee"), "width", true ],
|
||||
[ newElem("marquee"), "height", true ],
|
||||
[ newElem("video"), "width", true ],
|
||||
[ newElem("video"), "height", true ],
|
||||
[ newElem("object"), "width", true ],
|
||||
[ newElem("object"), "height", true ],
|
||||
[ newElem("embed"), "width", true ],
|
||||
[ newElem("embed"), "height", true ],
|
||||
[ newElem("img"), "width", true ],
|
||||
[ newElem("img"), "height", true ],
|
||||
[ newElem("td"), "width", false ],
|
||||
[ newElem("td"), "height", false ],
|
||||
[ newElem("hr"), "width", "width", true ],
|
||||
[ newElem("iframe"), "width", "width", true ],
|
||||
[ newElem("iframe"), "height", "height", true ],
|
||||
[ newImageInput(), "width", "width", true ],
|
||||
[ newImageInput(), "height", "height", true ],
|
||||
[ newElem("marquee"), "width", "width", true ],
|
||||
[ newElem("marquee"), "height", "height", true ],
|
||||
[ newElem("video"), "width", "width", true ],
|
||||
[ newElem("video"), "height", "height", true ],
|
||||
[ newElem("object"), "width", "width", true ],
|
||||
[ newElem("object"), "height", "height", true ],
|
||||
[ newElem("embed"), "width", "width", true ],
|
||||
[ newElem("embed"), "height", "height", true ],
|
||||
[ newElem("img"), "width", "width", true ],
|
||||
[ newElem("img"), "height", "height", true ],
|
||||
[ newElem("td"), "width", "width", false ],
|
||||
[ newElem("td"), "height", "height", false ],
|
||||
// https://github.com/whatwg/html/issues/4715 tracks the fact that for
|
||||
// <table width> and <table height> the "0 is valid" boolean should probably
|
||||
// be true.
|
||||
[ newElem("table"), "width", false ],
|
||||
[ newElem("table"), "height", false ],
|
||||
[ newElem("table"), "width", "width", false ],
|
||||
[ newElem("table"), "height", "height", false ],
|
||||
// https://github.com/whatwg/html/issues/4716 tracks the fact that for the
|
||||
// <tr height> case that "0 is valid" boolean should probably be true.
|
||||
[ newElem("tr"), "height", false ],
|
||||
[ newElem("tr"), "height", "height", false ],
|
||||
// https://github.com/whatwg/html/issues/4717 tracks the fact that for the
|
||||
// <col width> case that "0 is valid" boolean should probably be true.
|
||||
[ newElem("col"), "width", false ],
|
||||
[ newElem("col"), "width", "width", false ],
|
||||
[ newElem("embed"), "hspace", "marginLeft", true ],
|
||||
[ newElem("embed"), "hspace", "marginRight", true ],
|
||||
[ newElem("embed"), "vspace", "marginTop", true ],
|
||||
[ newElem("embed"), "vspace", "marginBottom", true ],
|
||||
[ newElem("img"), "hspace", "marginLeft", true ],
|
||||
[ newElem("img"), "hspace", "marginRight", true ],
|
||||
[ newElem("img"), "vspace", "marginTop", true ],
|
||||
[ newElem("img"), "vspace", "marginBottom", true ],
|
||||
[ newElem("object"), "hspace", "marginLeft", true ],
|
||||
[ newElem("object"), "hspace", "marginRight", true ],
|
||||
[ newElem("object"), "vspace", "marginTop", true ],
|
||||
[ newElem("object"), "vspace", "marginBottom", true ],
|
||||
[ newImageInput(), "hspace", "marginLeft", true ],
|
||||
[ newImageInput(), "hspace", "marginRight", true ],
|
||||
[ newImageInput(), "vspace", "marginTop", true ],
|
||||
[ newImageInput(), "vspace", "marginBottom", true ],
|
||||
[ newElem("marquee"), "hspace", "marginLeft", true ],
|
||||
[ newElem("marquee"), "hspace", "marginRight", true ],
|
||||
[ newElem("marquee"), "vspace", "marginTop", true ],
|
||||
[ newElem("marquee"), "vspace", "marginBottom", true ],
|
||||
];
|
||||
|
||||
|
||||
|
@ -141,7 +163,7 @@ function style(element) {
|
|||
|
||||
const container = document.getElementById("container");
|
||||
|
||||
for (let [ctor, attr, zero_allowed] of tests) {
|
||||
for (let [ctor, attr, prop, zero_allowed] of tests) {
|
||||
let valid, invalid;
|
||||
if (zero_allowed) {
|
||||
valid = valid_values_with_0;
|
||||
|
@ -157,13 +179,13 @@ for (let [ctor, attr, zero_allowed] of tests) {
|
|||
elem.setAttribute(attr, value);
|
||||
assert_equals(elem.getAttribute(attr), value);
|
||||
container.appendChild(elem);
|
||||
assert_equals(style(elem)[attr], result);
|
||||
}, `<${elem.localName} ${attr}="${value}"> mapping`);
|
||||
assert_equals(style(elem)[prop], result);
|
||||
}, `<${elem.localName} ${attr}="${value}"> mapping to ${prop}`);
|
||||
}
|
||||
|
||||
let default_elem = ctor();
|
||||
container.appendChild(default_elem);
|
||||
let defaultVal = style(default_elem)[attr];
|
||||
let defaultVal = style(default_elem)[prop];
|
||||
default_elem.remove();
|
||||
for (let value of invalid) {
|
||||
let elem = ctor();
|
||||
|
@ -172,8 +194,8 @@ for (let [ctor, attr, zero_allowed] of tests) {
|
|||
elem.setAttribute(attr, value);
|
||||
assert_equals(elem.getAttribute(attr), value);
|
||||
container.appendChild(elem);
|
||||
assert_equals(style(elem)[attr], defaultVal);
|
||||
}, `<${elem.localName} ${attr}="${value}"> mapping`);
|
||||
assert_equals(style(elem)[prop], defaultVal);
|
||||
}, `<${elem.localName} ${attr}="${value}"> mapping to ${prop}`);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -1,11 +1,18 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<!-- Creating iframes is slow in browsers -->
|
||||
<meta name=timeout content=long>
|
||||
<title>Test handling of attributes that map to pixel length properties</title>
|
||||
<link rel="help"
|
||||
href="https://html.spec.whatwg.org/multipage/rendering.html#maps-to-the-pixel-length-property">
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<body>
|
||||
<div id="container" style="display: none">
|
||||
<img id="defaultImg">
|
||||
<object id="defaultObject"></object>
|
||||
<input type="image" id="defaultInput"></input>
|
||||
</div>
|
||||
<script>
|
||||
/*
|
||||
* This test tests
|
||||
|
@ -69,13 +76,53 @@ const tests = [
|
|||
[ createFrame, "marginwidth", "marginRight", document.body ],
|
||||
[ createFrame, "marginheight", "marginTop", document.body ],
|
||||
[ createFrame, "marginheight", "marginBottom", document.body ],
|
||||
[ createBody, "marginwidth", "marginLeft", document.body ],
|
||||
[ createBody, "marginwidth", "marginRight", document.body ],
|
||||
[ createBody, "leftmargin", "marginLeft", document.body ],
|
||||
[ createBody, "rightmargin", "marginRight", document.body ],
|
||||
[ createBody, "marginheight", "marginTop", document.body ],
|
||||
[ createBody, "marginheight", "marginBottom", document.body ],
|
||||
[ createBody, "topmargin", "marginTop", document.body ],
|
||||
[ createBody, "bottommargin", "marginBottom", document.body ],
|
||||
[ newElem("img"), "border", "borderTopWidth", defaultImg ],
|
||||
[ newElem("img"), "border", "borderRightWidth", defaultImg ],
|
||||
[ newElem("img"), "border", "borderBottomWidth", defaultImg ],
|
||||
[ newElem("img"), "border", "borderLeftWidth", defaultImg ],
|
||||
[ newElem("object"), "border", "borderTopWidth", defaultObject ],
|
||||
[ newElem("object"), "border", "borderRightWidth", defaultObject ],
|
||||
[ newElem("object"), "border", "borderBottomWidth", defaultObject ],
|
||||
[ newElem("object"), "border", "borderLeftWidth", defaultObject ],
|
||||
[ newImageInput, "border", "borderTopWidth", defaultInput ],
|
||||
[ newImageInput, "border", "borderRightWidth", defaultInput ],
|
||||
[ newImageInput, "border", "borderBottomWidth", defaultInput ],
|
||||
[ newImageInput, "border", "borderLeftWidth", defaultInput ],
|
||||
];
|
||||
|
||||
function newElem(name) {
|
||||
return () => {
|
||||
var elem = document.createElement(name);
|
||||
document.getElementById("container").appendChild(elem);
|
||||
return [ elem, elem, () => elem.remove() ];
|
||||
}
|
||||
}
|
||||
|
||||
function newImageInput() {
|
||||
var elem = document.createElement("input");
|
||||
elem.type = "image";
|
||||
document.getElementById("container").appendChild(elem);
|
||||
return [ elem, elem, () => elem.remove() ];
|
||||
}
|
||||
|
||||
function createIframe() {
|
||||
let ifr = document.createElement("iframe");
|
||||
document.body.appendChild(ifr);
|
||||
return [ ifr, ifr.contentDocument.body, () => ifr.remove() ];
|
||||
}
|
||||
|
||||
function createBody() {
|
||||
let ifr = document.createElement("iframe");
|
||||
document.body.appendChild(ifr);
|
||||
return [ ifr.contentDocument.body, ifr.contentDocument.body, () => ifr.remove() ];
|
||||
}
|
||||
|
||||
function createFrame() {
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>Test handling of attributes that should not be mapped into style, but
|
||||
incorrectly were in some browsers</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<body>
|
||||
<div id="container" style="display: none"></div>
|
||||
<iframe></iframe>
|
||||
<script>
|
||||
/*
|
||||
* We wand to test both quirks and standards mode. We can use the fact that
|
||||
* our document is in standards mode and the about:blank iframe we have is in
|
||||
* quirks mode.
|
||||
*/
|
||||
test(() => {
|
||||
assert_equals(document.compatMode, "CSS1Compat")
|
||||
}, "We should be in standards mode");
|
||||
const container = document.getElementById("container");
|
||||
|
||||
const frameDoc = document.querySelector("iframe").contentDocument;
|
||||
test(() => {
|
||||
assert_equals(frameDoc.compatMode, "BackCompat")
|
||||
}, "Subframe should be in quirks mode");
|
||||
const frameContainer = frameDoc.createElement("div");
|
||||
frameContainer.style.display = "none";
|
||||
frameDoc.body.appendChild(frameContainer);
|
||||
|
||||
function newElem(name) {
|
||||
return (parent) =>
|
||||
parent.appendChild(parent.ownerDocument.createElement(name));
|
||||
}
|
||||
|
||||
/*
|
||||
* Array of tests. Each test consists of the following information:
|
||||
*
|
||||
* 1) An element creation function, which takes a parent element as an
|
||||
* argument.
|
||||
* 2) The name of the attribute to set
|
||||
* 3) The name of the CSS property to get.
|
||||
*/
|
||||
const tests = [
|
||||
[ newElem("table"), "hspace", "marginLeft" ],
|
||||
[ newElem("table"), "hspace", "marginRight" ],
|
||||
[ newElem("table"), "vspace", "marginTop" ],
|
||||
[ newElem("table"), "vspace", "marginBottom" ],
|
||||
[ newElem("embed"), "border", "borderTopWidth" ],
|
||||
[ newElem("embed"), "border", "borderRightWidth" ],
|
||||
[ newElem("embed"), "border", "borderBottomWidth" ],
|
||||
[ newElem("embed"), "border", "borderLeftWidth" ],
|
||||
[ newElem("iframe"), "border", "borderTopWidth" ],
|
||||
[ newElem("iframe"), "border", "borderRightWidth" ],
|
||||
[ newElem("iframe"), "border", "borderBottomWidth" ],
|
||||
[ newElem("iframe"), "border", "borderLeftWidth" ],
|
||||
[ newElem("marquee"), "border", "borderTopWidth" ],
|
||||
[ newElem("marquee"), "border", "borderRightWidth" ],
|
||||
[ newElem("marquee"), "border", "borderBottomWidth" ],
|
||||
[ newElem("marquee"), "border", "borderLeftWidth" ],
|
||||
// Non-image input
|
||||
[ newElem("input"), "border", "borderTopWidth" ],
|
||||
[ newElem("input"), "border", "borderRightWidth" ],
|
||||
[ newElem("input"), "border", "borderBottomWidth" ],
|
||||
[ newElem("input"), "border", "borderLeftWidth" ],
|
||||
[ newElem("input"), "width", "width" ],
|
||||
[ newElem("input"), "height", "height" ],
|
||||
[ newElem("input"), "hspace", "marginLeft" ],
|
||||
[ newElem("input"), "hspace", "marginRight" ],
|
||||
[ newElem("input"), "vspace", "marginTop" ],
|
||||
[ newElem("input"), "vspace", "marginBottom" ],
|
||||
];
|
||||
|
||||
function style(element) {
|
||||
return element.ownerDocument.defaultView.getComputedStyle(element);
|
||||
}
|
||||
|
||||
for (let [ctor, attr, prop] of tests) {
|
||||
for (let parent of [container, frameContainer]) {
|
||||
let elem = ctor(parent);
|
||||
test(function() {
|
||||
let default_elem = ctor(parent);
|
||||
this.add_cleanup(() => {
|
||||
elem.remove();
|
||||
default_elem.remove();
|
||||
});
|
||||
elem.setAttribute(attr, "200");
|
||||
assert_equals(elem.getAttribute(attr), "200");
|
||||
assert_equals(style(elem)[prop], style(default_elem)[prop]);
|
||||
}, `<${elem.localName} ${attr}> should not be mapped to style ${prop} in ${parent.ownerDocument.compatMode} mode`);
|
||||
}
|
||||
}
|
||||
</script>
|
|
@ -1,22 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "standard-metadata-names",
|
||||
"original_id": "standard-metadata-names"
|
||||
},
|
||||
{
|
||||
"id": "other-metadata-names",
|
||||
"original_id": "other-metadata-names"
|
||||
},
|
||||
{
|
||||
"id": "pragma-directives",
|
||||
"original_id": "pragma-directives"
|
||||
},
|
||||
{
|
||||
"id": "other-pragma-directives",
|
||||
"original_id": "other-pragma-directives"
|
||||
},
|
||||
{
|
||||
"id": "charset",
|
||||
"original_id": "charset"
|
||||
}
|
||||
]
|
|
@ -1,10 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "authoring",
|
||||
"original_id": "authoring"
|
||||
},
|
||||
{
|
||||
"id": "image-map-processing-model",
|
||||
"original_id": "image-map-processing-model"
|
||||
}
|
||||
]
|
|
@ -1,132 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "error-codes",
|
||||
"original_id": "error-codes"
|
||||
},
|
||||
{
|
||||
"id": "location-of-the-media-resource",
|
||||
"original_id": "location-of-the-media-resource"
|
||||
},
|
||||
{
|
||||
"id": "mime-types",
|
||||
"original_id": "mime-types"
|
||||
},
|
||||
{
|
||||
"id": "network-states",
|
||||
"original_id": "network-states"
|
||||
},
|
||||
{
|
||||
"id": "loading-the-media-resource",
|
||||
"original_id": "loading-the-media-resource"
|
||||
},
|
||||
{
|
||||
"id": "offsets-into-the-media-resource",
|
||||
"original_id": "offsets-into-the-media-resource"
|
||||
},
|
||||
{
|
||||
"id": "ready-states",
|
||||
"original_id": "ready-states"
|
||||
},
|
||||
{
|
||||
"id": "playing-the-media-resource",
|
||||
"original_id": "playing-the-media-resource"
|
||||
},
|
||||
{
|
||||
"id": "seeking",
|
||||
"original_id": "seeking"
|
||||
},
|
||||
{
|
||||
"id": "media-resources-with-multiple-media-tracks",
|
||||
"original_id": "media-resources-with-multiple-media-tracks",
|
||||
"children": [
|
||||
{
|
||||
"id": "audiotracklist-and-videotracklist-objects",
|
||||
"original_id": "audiotracklist-and-videotracklist-objects"
|
||||
},
|
||||
{
|
||||
"id": "selecting-specific-audio-and-video-tracks-declaratively",
|
||||
"original_id": "selecting-specific-audio-and-video-tracks-declaratively"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "synchronising-multiple-media-elements",
|
||||
"original_id": "synchronising-multiple-media-elements",
|
||||
"children": [
|
||||
{
|
||||
"id": "introduction-0",
|
||||
"original_id": "introduction-0"
|
||||
},
|
||||
{
|
||||
"id": "media-controllers",
|
||||
"original_id": "media-controllers"
|
||||
},
|
||||
{
|
||||
"id": "assigning-a-media-controller-declaratively",
|
||||
"original_id": "assigning-a-media-controller-declaratively"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "timed-text-tracks",
|
||||
"original_id": "timed-text-tracks",
|
||||
"children": [
|
||||
{
|
||||
"id": "text-track-model",
|
||||
"original_id": "text-track-model"
|
||||
},
|
||||
{
|
||||
"id": "sourcing-in-band-text-tracks",
|
||||
"original_id": "sourcing-in-band-text-tracks"
|
||||
},
|
||||
{
|
||||
"id": "sourcing-out-of-band-text-tracks",
|
||||
"original_id": "sourcing-out-of-band-text-tracks"
|
||||
},
|
||||
{
|
||||
"id": "guidelines-for-exposing-cues-in-various-formats-as-text-track-cues",
|
||||
"original_id": "guidelines-for-exposing-cues-in-various-formats-as-text-track-cues"
|
||||
},
|
||||
{
|
||||
"id": "text-track-api",
|
||||
"original_id": "text-track-api"
|
||||
},
|
||||
{
|
||||
"id": "text-tracks-describing-chapters",
|
||||
"original_id": "text-tracks-describing-chapters"
|
||||
},
|
||||
{
|
||||
"id": "cue-events",
|
||||
"original_id": "cue-events"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "user-interface",
|
||||
"original_id": "user-interface"
|
||||
},
|
||||
{
|
||||
"id": "time-ranges",
|
||||
"original_id": "time-ranges"
|
||||
},
|
||||
{
|
||||
"id": "event-definitions",
|
||||
"original_id": "event-definitions"
|
||||
},
|
||||
{
|
||||
"id": "mediaevents",
|
||||
"original_id": "mediaevents"
|
||||
},
|
||||
{
|
||||
"id": "security-and-privacy-considerations",
|
||||
"original_id": "security-and-privacy-considerations"
|
||||
},
|
||||
{
|
||||
"id": "best-practices-for-authors-using-media-elements",
|
||||
"original_id": "best-practices-for-authors-using-media-elements"
|
||||
},
|
||||
{
|
||||
"id": "best-practices-for-implementors-of-media-elements",
|
||||
"original_id": "best-practices-for-implementors-of-media-elements"
|
||||
}
|
||||
]
|
|
@ -1,10 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "color-spaces-and-color-correction",
|
||||
"original_id": "color-spaces-and-color-correction"
|
||||
},
|
||||
{
|
||||
"id": "security-with-canvas-elements",
|
||||
"original_id": "security-with-canvas-elements"
|
||||
}
|
||||
]
|
|
@ -1,60 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "alt",
|
||||
"original_id": "alt",
|
||||
"children": [
|
||||
{
|
||||
"id": "general-guidelines",
|
||||
"original_id": "general-guidelines"
|
||||
},
|
||||
{
|
||||
"id": "a-link-or-button-containing-nothing-but-the-image",
|
||||
"original_id": "a-link-or-button-containing-nothing-but-the-image"
|
||||
},
|
||||
{
|
||||
"id": "a-phrase-or-paragraph-with-an-alternative-graphical-representation-charts-diagrams-graphs-maps-illustrations",
|
||||
"original_id": "a-phrase-or-paragraph-with-an-alternative-graphical-representation:-charts,-diagrams,-graphs,-maps,-illustrations"
|
||||
},
|
||||
{
|
||||
"id": "a-short-phrase-or-label-with-an-alternative-graphical-representation-icons-logos",
|
||||
"original_id": "a-short-phrase-or-label-with-an-alternative-graphical-representation:-icons,-logos"
|
||||
},
|
||||
{
|
||||
"id": "text-that-has-been-rendered-to-a-graphic-for-typographical-effect",
|
||||
"original_id": "text-that-has-been-rendered-to-a-graphic-for-typographical-effect"
|
||||
},
|
||||
{
|
||||
"id": "a-graphical-representation-of-some-of-the-surrounding-text",
|
||||
"original_id": "a-graphical-representation-of-some-of-the-surrounding-text"
|
||||
},
|
||||
{
|
||||
"id": "a-purely-decorative-image-that-doesn-t-add-any-information",
|
||||
"original_id": "a-purely-decorative-image-that-doesn't-add-any-information"
|
||||
},
|
||||
{
|
||||
"id": "a-group-of-images-that-form-a-single-larger-picture-with-no-links",
|
||||
"original_id": "a-group-of-images-that-form-a-single-larger-picture-with-no-links"
|
||||
},
|
||||
{
|
||||
"id": "a-group-of-images-that-form-a-single-larger-picture-with-links",
|
||||
"original_id": "a-group-of-images-that-form-a-single-larger-picture-with-links"
|
||||
},
|
||||
{
|
||||
"id": "a-key-part-of-the-content",
|
||||
"original_id": "a-key-part-of-the-content"
|
||||
},
|
||||
{
|
||||
"id": "an-image-not-intended-for-the-user",
|
||||
"original_id": "an-image-not-intended-for-the-user"
|
||||
},
|
||||
{
|
||||
"id": "guidance-for-markup-generators",
|
||||
"original_id": "guidance-for-markup-generators"
|
||||
},
|
||||
{
|
||||
"id": "guidance-for-conformance-checkers",
|
||||
"original_id": "guidance-for-conformance-checkers"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
|
@ -1,38 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": "naming-form-controls-the-name-attribute",
|
||||
"original_id": "naming-form-controls:-the-name-attribute"
|
||||
},
|
||||
{
|
||||
"id": "submitting-element-directionality-the-dirname-attribute",
|
||||
"original_id": "submitting-element-directionality:-the-dirname-attribute"
|
||||
},
|
||||
{
|
||||
"id": "limiting-user-input-length-the-maxlength-attribute",
|
||||
"original_id": "limiting-user-input-length:-the-maxlength-attribute"
|
||||
},
|
||||
{
|
||||
"id": "enabling-and-disabling-form-controls-the-disabled-attribute",
|
||||
"original_id": "enabling-and-disabling-form-controls:-the-disabled-attribute"
|
||||
},
|
||||
{
|
||||
"id": "form-submission",
|
||||
"original_id": "form-submission"
|
||||
},
|
||||
{
|
||||
"id": "autofocusing-a-form-control-the-autofocus-attribute",
|
||||
"original_id": "autofocusing-a-form-control:-the-autofocus-attribute"
|
||||
},
|
||||
{
|
||||
"id": "input-modalities-the-enterkeyhint-attribute",
|
||||
"original_id": "input-modalities:-the-enterkeyhint-attribute"
|
||||
},
|
||||
{
|
||||
"id": "input-modalities-the-inputmode-attribute",
|
||||
"original_id": "input-modalities:-the-inputmode-attribute"
|
||||
},
|
||||
{
|
||||
"id": "autofilling-form-controls-the-autocomplete-attribute",
|
||||
"original_id": "autofilling-form-controls:-the-autocomplete-attribute"
|
||||
}
|
||||
]
|
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