mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Auto merge of #24449 - servo-wpt-sync:wpt_update_15-10-2019, r=jdm
Sync WPT with upstream (15-10-2019) Automated downstream sync of changes from upstream as of 15-10-2019. [no-wpt-sync] r? @servo-wpt-sync
This commit is contained in:
commit
d8f2f2ef0e
144 changed files with 3110 additions and 1980 deletions
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -2,3 +2,12 @@
|
|||
[#container 1]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 1]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 2]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 7]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -59,3 +59,21 @@
|
|||
[Property font-variation-settings has initial value normal]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-variant-alternates has initial value normal]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-language-override inherits]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-optical-sizing has initial value auto]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-optical-sizing inherits]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-variant-alternates inherits]
|
||||
expected: FAIL
|
||||
|
||||
[Property font-language-override has initial value normal]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
[font-language-override-computed.html]
|
||||
[Property font-language-override value '"ksw"' computes to '"ksw"']
|
||||
expected: FAIL
|
||||
|
||||
[Property font-language-override value 'normal' computes to 'normal']
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[font-language-override-valid.html]
|
||||
[e.style['font-language-override'\] = "\\"ksw\\"" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['font-language-override'\] = "normal" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[font-optical-sizing-computed.html]
|
||||
[Property font-optical-sizing value 'none' computes to 'none']
|
||||
expected: FAIL
|
||||
|
||||
[Property font-optical-sizing value 'auto' computes to 'auto']
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[font-optical-sizing-valid.html]
|
||||
[e.style['font-optical-sizing'\] = "auto" should set the property value]
|
||||
expected: FAIL
|
||||
|
||||
[e.style['font-optical-sizing'\] = "none" should set the property value]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[client-props-inline-list-item.html]
|
||||
[client* returns the same for non-replaced inlines regardless of list-item-ness]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,10 @@
|
|||
[matchMediaAddListener-handleEvent.html]
|
||||
[throws if handleEvent is falsy and not callable]
|
||||
expected: FAIL
|
||||
|
||||
[rethrows errors when getting handleEvent]
|
||||
expected: FAIL
|
||||
|
||||
[throws if handleEvent is thruthy and not callable]
|
||||
expected: FAIL
|
||||
|
|
@ -312,21 +312,21 @@
|
|||
[<iframe>: separate response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,3 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[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
|
||||
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
[skip-document-with-fragment.html]
|
||||
expected: TIMEOUT
|
||||
[Autofocus elements in iframed documents with URL fragments should be skipped.]
|
||||
expected: FAIL
|
||||
|
||||
[Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[select-sizing-001.html]
|
||||
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,2 +0,0 @@
|
|||
[script-onerror-insertion-point-2.html]
|
||||
expected: TIMEOUT
|
|
@ -1,5 +1,5 @@
|
|||
[nested-context-navigations-iframe.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Test that iframe navigations are not observable by the parent, even after history navigations by the parent]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,2 @@
|
|||
[transition_calc_implicit.html]
|
||||
expected: TIMEOUT
|
|
@ -17,6 +17,10 @@
|
|||
# Documention for the setup of these agents:
|
||||
# https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows
|
||||
|
||||
trigger:
|
||||
- epochs/*
|
||||
- triggers/*
|
||||
|
||||
jobs:
|
||||
# The affected tests jobs are unconditional for speed, as most PRs have one or
|
||||
# more affected tests: https://github.com/web-platform-tests/wpt/issues/13936.
|
||||
|
|
|
@ -14,10 +14,11 @@ jobs:
|
|||
uses: actions/checkout@v1
|
||||
with:
|
||||
fetch-depth: 50
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get -qqy install zstd
|
||||
pip install -r tools/wpt/requirements.txt
|
||||
- name: Run manifest_build.py
|
||||
uses: ./tools/docker/github
|
||||
run: tools/docker/retry.py --delay 60 python tools/ci/manifest_build.py
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
entrypoint: python
|
||||
args: tools/ci/manifest_build.py
|
||||
|
|
|
@ -12,15 +12,16 @@ tasks:
|
|||
$flatten:
|
||||
$match: {
|
||||
event.ref == "refs/heads/master": [{name: firefox, channel: nightly}, {name: chrome, channel: dev}],
|
||||
event.ref == "refs/heads/epochs/daily": [{name: firefox, channel: stable}, {name: chrome, channel: stable}, {name: webkitgtk_minibrowser, channel: stable}],
|
||||
event.ref == "refs/heads/epochs/weekly": [{name: firefox, channel: beta}, {name: chrome, channel: beta}],
|
||||
event.ref == "refs/heads/epochs/daily": [{name: firefox, channel: stable}, {name: chrome, channel: stable}, {name: webkitgtk_minibrowser, channel: nightly}],
|
||||
event.ref == "refs/heads/epochs/weekly": [{name: firefox, channel: beta}, {name: chrome, channel: beta}, {name: webkitgtk_minibrowser, channel: stable}],
|
||||
event.ref == "refs/heads/triggers/chrome_stable": [{name: chrome, channel: stable}],
|
||||
event.ref == "refs/heads/triggers/chrome_beta": [{name: chrome, channel: beta}],
|
||||
event.ref == "refs/heads/triggers/chrome_dev": [{name: chrome, channel: dev}],
|
||||
event.ref == "refs/heads/triggers/firefox_stable": [{name: firefox, channel: stable}],
|
||||
event.ref == "refs/heads/triggers/firefox_beta": [{name: firefox, channel: beta}],
|
||||
event.ref == "refs/heads/triggers/firefox_nightly": [{name: firefox, channel: nightly}],
|
||||
event.ref == "refs/heads/triggers/webkitgtk_minibrowser_stable": [{name: webkitgtk_minibrowser, channel: stable}]
|
||||
event.ref == "refs/heads/triggers/webkitgtk_minibrowser_stable": [{name: webkitgtk_minibrowser, channel: stable}],
|
||||
event.ref == "refs/heads/triggers/webkitgtk_minibrowser_nightly": [{name: webkitgtk_minibrowser, channel: nightly}]
|
||||
}
|
||||
each(browser):
|
||||
$map:
|
||||
|
@ -72,10 +73,6 @@ tasks:
|
|||
source: ${event.repository.url}
|
||||
payload:
|
||||
image:
|
||||
$if: browser.name == 'webkitgtk_minibrowser'
|
||||
then:
|
||||
cl0p3z/web-platform-tests:0.1
|
||||
else:
|
||||
harjgam/web-platform-tests:0.33
|
||||
maxRunTime: 7200
|
||||
artifacts:
|
||||
|
|
|
@ -4,24 +4,45 @@
|
|||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<link rel="help" href="https://crbug.com/979894">
|
||||
<link rel="help" href="https://crbug.com/1011816">
|
||||
<link rel="help" href="https://drafts.csswg.org/css2/visudet.html#inline-width">
|
||||
<link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.org">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
html, body { margin: 0; }
|
||||
div {
|
||||
#container {
|
||||
font-family: Ahem;
|
||||
font-size: 10px;
|
||||
line-height: 1;
|
||||
margin-left: 10ch;
|
||||
}
|
||||
#container {
|
||||
inline-block {
|
||||
display: inline-block;
|
||||
}
|
||||
.w1 { width: 1ch; }
|
||||
.w2 { width: 2ch; }
|
||||
.w4 { width: 4ch; }
|
||||
.w5 { width: 5ch; }
|
||||
span {
|
||||
color: orange;
|
||||
}
|
||||
img {
|
||||
height: .6em;
|
||||
background: orange;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<div id="container" data-expected-height=10>123 <span style="margin-left: -8ch">1234 </span></div>
|
||||
<script>checkLayout('#container');</script>
|
||||
<section id="container">
|
||||
<div><inline-block data-expected-height=10>123 <span style="margin-left: -8ch">1234 </span></inline-block></div>
|
||||
<div><inline-block data-expected-height=10>123 <span style="margin-left: -8ch">123 </span></inline-block></div>
|
||||
<div class="w4" data-expected-height=10>123 <span style="margin-left: -4ch">1234 </span></div>
|
||||
<div class="w4" data-expected-height=10>123 <span style="margin-left: -4ch">123 </span></div>
|
||||
<div class="w4" data-expected-height=10><img class="w4"><span style="margin-left: -4ch">123</span></div>
|
||||
<div class="w4" data-expected-height=10><img class="w5"><span style="margin-left: -5ch">123</span></div>
|
||||
<div class="w4" data-expected-height=20><img class="w5"><span style="margin-left: -3ch">123</span></div>
|
||||
<div class="w4" data-expected-height=10><img class="w4"><img class="w1" style="margin-left: -1ch"></div>
|
||||
<div class="w4" data-expected-height=20><img class="w4"><img class="w2" style="margin-left: -1ch"></div>
|
||||
<div class="w4" data-expected-height=10><img class="w5"><img class="w1" style="margin-left: -2ch"></div>
|
||||
<div class="w4" data-expected-height=20><img class="w5"><img class="w2" style="margin-left: -2ch"></div>
|
||||
</section>
|
||||
<script>checkLayout('[data-expected-height]');</script>
|
||||
</body>
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Test Reference</title>
|
||||
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||
|
||||
<p>There should be an space between "Foo" and "bar" below</p>
|
||||
<span>Foo bar</span>
|
|
@ -0,0 +1,10 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Test: Whitespace inside display: contents is preserved correctly.</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-display-3/#valdef-display-contents">
|
||||
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||
<link rel="match" href="display-contents-whitespace-inside-inline-ref.html">
|
||||
|
||||
<p>There should be an space between "Foo" and "bar" below</p>
|
||||
<span>Foo<div style="display: contents"> </div>bar</span>
|
|
@ -29,12 +29,15 @@ const mediumFontSize = getComputedStyle(box).fontSize;
|
|||
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-language-override', 'normal' , '"ksw"');
|
||||
assert_inherited('font-optical-sizing', 'auto' , 'none');
|
||||
assert_inherited('font-size', mediumFontSize /* medium */, '123px');
|
||||
assert_inherited('font-size-adjust', 'none', '1.5');
|
||||
assert_inherited('font-stretch', '100%' /* normal */, '75%');
|
||||
assert_inherited('font-style', 'normal', 'italic');
|
||||
assert_inherited('font-synthesis', 'weight style', 'none');
|
||||
assert_inherited('font-variant', 'normal', 'none');
|
||||
assert_inherited('font-variant-alternates', 'normal', 'historical-forms');
|
||||
assert_inherited('font-variant-caps', 'normal', 'small-caps');
|
||||
assert_inherited('font-variant-east-asian', 'normal', 'ruby');
|
||||
assert_inherited('font-variant-ligatures', 'normal', 'none');
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Fonts Module Level 4: getComputedStyle().fontLanguageOverride</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#propdef-font-language-override">
|
||||
<meta name="assert" content="font-language-override 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>
|
||||
</head>
|
||||
<body>
|
||||
<div id="target"></div>
|
||||
<script>
|
||||
test_computed_value('font-language-override', 'normal');
|
||||
test_computed_value('font-language-override', '"ksw"');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Fonts Module Level 4: parsing font-language-override with invalid values</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#propdef-font-language-override">
|
||||
<meta name="assert" content="font-language-override supports only the grammar 'normal | <string>'.">
|
||||
<meta name="assert" content="font-language-override string has three letters.">
|
||||
<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('font-language-override', 'auto');
|
||||
test_invalid_value('font-language-override', 'normal "ksw"');
|
||||
|
||||
test_invalid_value('font-language-override', '"tr"');
|
||||
test_invalid_value('font-language-override', '"1 %"');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,18 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Fonts Module Level 4: parsing font-language-override with valid values</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#propdef-font-language-override">
|
||||
<meta name="assert" content="font-language-override supports the full grammar 'normal | <string>'.">
|
||||
<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('font-language-override', 'normal');
|
||||
test_valid_value('font-language-override', '"ksw"');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Fonts Module Level 4: getComputedStyle().fontOpticalSizing</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#propdef-font-optical-sizing">
|
||||
<meta name="assert" content="font-optical-sizing 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>
|
||||
</head>
|
||||
<body>
|
||||
<div id="target"></div>
|
||||
<script>
|
||||
test_computed_value('font-optical-sizing', 'auto');
|
||||
test_computed_value('font-optical-sizing', 'none');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Fonts Module Level 4: parsing font-optical-sizing with invalid values</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#propdef-font-optical-sizing">
|
||||
<meta name="assert" content="font-optical-sizing supports only the grammar 'auto | none'.">
|
||||
<meta name="assert" content="font-optical-sizing string has three letters.">
|
||||
<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('font-optical-sizing', 'normal');
|
||||
test_invalid_value('font-optical-sizing', 'auto none');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,18 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Fonts Module Level 4: parsing font-optical-sizing with valid values</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#propdef-font-optical-sizing">
|
||||
<meta name="assert" content="font-optical-sizing supports the full grammar 'auto | none'.">
|
||||
<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('font-optical-sizing', 'auto');
|
||||
test_valid_value('font-optical-sizing', 'none');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,174 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Grid Layout test: align-content property</title>
|
||||
<link rel="author" title="Rossana Monteriso" href="mailto:rmonteriso@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-align-3/#content-distribution">
|
||||
<meta name="assert" content="This test checks that the align-content property is applied correctly in both directions RTL and LTR.">
|
||||
<meta name="flags" content="ahem">
|
||||
<link rel="stylesheet" href="/css/support/grid.css">
|
||||
<link rel="stylesheet" href="/css/support/alignment.css">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.grid {
|
||||
grid: 100px 100px / 50px 50px;
|
||||
position: relative;
|
||||
width: 200px;
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.verticalGrid {
|
||||
width: 300px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.cell {
|
||||
width: 20px;
|
||||
height: 40px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
|
||||
<body onload="checkLayout('.grid')">
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: LTR | align-content: 'center'</p>
|
||||
<div class="grid alignContentCenter" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="0" data-offset-y="50" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="50" data-offset-y="50" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="150" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="50" data-offset-y="150" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: LTR | align-content: 'left'</p>
|
||||
<div class="grid alignContentLeft" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="50" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="50" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: LTR | align-content: 'right'</p>
|
||||
<div class="grid alignContentRight" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="50" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="50" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: LTR | align-content: 'start'</p>
|
||||
<div class="grid alignContentStart" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="50" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="50" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: LTR | align-content: 'end'</p>
|
||||
<div class="grid alignContentEnd" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="50" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="50" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: LTR | align-content: 'flex-start'</p>
|
||||
<div class="grid alignContentFlexStart" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="50" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="50" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: LTR | align-content: 'flex-end</p>
|
||||
<div class="grid alignContentFlexEnd" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="50" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="200" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="50" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Default alignment and initial values. -->
|
||||
<div style="position: relative">
|
||||
<p>direction: LTR | align-content: 'auto' (resolved to 'start')</p>
|
||||
<div class="grid" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="50" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="50" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- RTL direction. -->
|
||||
<div style="position: relative">
|
||||
<p>direction: RTL | align-content: 'center'</p>
|
||||
<div class="grid directionRTL alignContentCenter" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="180" data-offset-y="50" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="100" data-offset-y="50" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="150" data-offset-y="150" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="130" data-offset-y="150" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: RTL | align-content: 'left'</p>
|
||||
<div class="grid directionRTL alignContentLeft" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="150" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="130" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: RTL | align-content: 'right'</p>
|
||||
<div class="grid directionRTL alignContentRight" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="150" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="130" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: RTL | align-content: 'start'</p>
|
||||
<div class="grid directionRTL alignContentStart" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="180" data-offset-y="0" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="150" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="130" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="position: relative">
|
||||
<p>direction: RTL | align-content: 'end'</p>
|
||||
<div class="grid directionRTL alignContentEnd" data-expected-width="200" data-expected-height="300">
|
||||
<div class="cell firstRowFirstColumn" data-offset-x="180" data-offset-y="100" data-expected-width="20" data-expected-height="40"></div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="100" data-offset-y="100" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="150" data-offset-y="200" data-expected-width="50" data-expected-height="100"></div>
|
||||
<div class="cell secondRowSecondColumn" data-offset-x="130" data-offset-y="200" data-expected-width="20" data-expected-height="40"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
|
@ -38,5 +38,20 @@ x { background: grey; }
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const expectedResults = [
|
||||
"subgrid [] [] [] []",
|
||||
];
|
||||
[...document.querySelectorAll('.subgrid')].forEach(function(subgrid, i) {
|
||||
let actual = window.getComputedStyle(subgrid)['grid-template-columns'];
|
||||
let expected = expectedResults[i];
|
||||
if (actual != expected) {
|
||||
let err = "Unexpected getComputedStyle value for subgrid " + i + " with className '" + subgrid.className + "':" +
|
||||
" Actual: \"" + actual + "\", Expected: \"" + expected + "\"";
|
||||
document.body.appendChild(document.createTextNode(err));
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -50,5 +50,20 @@ x { background: grey; }
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const expectedResults = [
|
||||
"subgrid [x] [b] [] [] [b]",
|
||||
];
|
||||
[...document.querySelectorAll('.subgrid')].forEach(function(subgrid, i) {
|
||||
let actual = window.getComputedStyle(subgrid)['grid-template-columns'];
|
||||
let expected = expectedResults[i];
|
||||
if (actual != expected) {
|
||||
let err = "Unexpected getComputedStyle value for subgrid " + i + " with className '" + subgrid.className + "':" +
|
||||
" Actual: \"" + actual + "\", Expected: \"" + expected + "\"";
|
||||
document.body.appendChild(document.createTextNode(err));
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -151,5 +151,32 @@ x {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const expectedResults = [
|
||||
"subgrid [] [] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [b] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [b] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [b] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [b] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [b] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [b] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [] [] [] [] [] [] [] []",
|
||||
"subgrid [] [] [] [] [] []",
|
||||
];
|
||||
[...document.querySelectorAll('div > div')].forEach(function(subgrid, i) {
|
||||
let actual = window.getComputedStyle(subgrid)['grid-template-columns'];
|
||||
let expected = expectedResults[i];
|
||||
if (actual != expected) {
|
||||
let err = "Unexpected getComputedStyle value for subgrid " + i + " with className '" + subgrid.className + "':" +
|
||||
" Actual: \"" + actual + "\", Expected: \"" + expected + "\"";
|
||||
document.body.appendChild(document.createTextNode(err));
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -390,5 +390,44 @@ html,body {
|
|||
<div style="grid-column:y -5"></div>
|
||||
</div></div>
|
||||
|
||||
<script>
|
||||
const expectedResults = [
|
||||
"subgrid [z] [z] [z] [z] [z]",
|
||||
"subgrid [x] [z] [z] [z] [z]",
|
||||
"subgrid [x] [x] [z] [z] [z]",
|
||||
"subgrid [x] [x] [x] [z] [z]",
|
||||
"subgrid [x] [x] [x] [x] [z]",
|
||||
"subgrid [x] [x] [x] [x] [x]",
|
||||
"subgrid [x] [x] [x] [x] [x]",
|
||||
"subgrid [x] [x] [x] [x] [x]",
|
||||
"subgrid [x] [x] [x] [x] [x]",
|
||||
"subgrid [x] [x] [x] [x] [x]",
|
||||
"subgrid [y] [z] [z] [z] [z]",
|
||||
"subgrid [x] [y] [z] [z] [z]",
|
||||
"subgrid [x] [x] [y] [z] [z]",
|
||||
"subgrid [x] [x] [x] [y] [z]",
|
||||
"subgrid [x] [x] [x] [x] [y]",
|
||||
"subgrid [y] [y] [z] [z] [z]",
|
||||
"subgrid [x] [y] [y] [z] [z]",
|
||||
"subgrid [x] [x] [y] [y] [z]",
|
||||
"subgrid [x] [x] [x] [y] [y]",
|
||||
"subgrid [y] [y] [y] [z] [z]",
|
||||
"subgrid [x] [y] [y] [y] [z]",
|
||||
"subgrid [x] [x] [y] [y] [y]",
|
||||
"subgrid [y] [y] [y] [y] [z]",
|
||||
"subgrid [x] [y] [y] [y] [y]",
|
||||
"subgrid [y] [y] [y] [y] [y]",
|
||||
];
|
||||
[...document.querySelectorAll('.subgrid')].forEach(function(subgrid, i) {
|
||||
let actual = window.getComputedStyle(subgrid)['grid-template-columns'];
|
||||
let expected = expectedResults[i];
|
||||
if (actual != expected) {
|
||||
let err = "Unexpected getComputedStyle value for subgrid " + i + " with className '" + subgrid.className + "':" +
|
||||
" Actual: \"" + actual + "\", Expected: \"" + expected + "\"";
|
||||
document.body.appendChild(document.createTextNode(err));
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -165,5 +165,40 @@ item {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const expectedResults = [
|
||||
"subgrid [] [] [] [] [x]",
|
||||
"subgrid [] [] [] [] [x]",
|
||||
"subgrid [] [] [] [] []",
|
||||
"subgrid [x] [x] [] [] [x]",
|
||||
"subgrid [x] [x] [] [x] []",
|
||||
"subgrid [x] [x] [x] [x] []",
|
||||
"subgrid [] [] [] [] []",
|
||||
"subgrid [] [] [] [x] []",
|
||||
"subgrid [] [] [] [] [x]",
|
||||
"subgrid [] [] [] [] []",
|
||||
"subgrid [] [] [] [] []",
|
||||
"subgrid [] [] [] [] [x]",
|
||||
"subgrid [x] [x] [] [] [x]",
|
||||
"subgrid [x] [x] [x] [] []",
|
||||
"subgrid [] [] [] [] [x]",
|
||||
"subgrid [] [] [] [] [x]",
|
||||
"subgrid [] [] [] [] [x]",
|
||||
"subgrid [] [] [] [] [x]",
|
||||
"subgrid [] [] [] [] [x]",
|
||||
"subgrid [] [] [] [] [x]",
|
||||
"subgrid [] [] [] [] []",
|
||||
];
|
||||
[...document.querySelectorAll('.subgrid')].forEach(function(subgrid, i) {
|
||||
let actual = window.getComputedStyle(subgrid)['grid-template-rows'];
|
||||
let expected = expectedResults[i];
|
||||
if (actual != expected) {
|
||||
let err = "Unexpected getComputedStyle value for subgrid " + i + " with className '" + subgrid.className + "':" +
|
||||
" Actual: \"" + actual + "\", Expected: \"" + expected + "\"";
|
||||
document.body.appendChild(document.createTextNode(err));
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Logical Properties and Values: inset-block and inset-inline set longhands</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-logical/#propdef-inset-block">
|
||||
<meta name="assert" content="inset-block, inset-inline support the full grammar '<'top'>{1,2}'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_shorthand_value('inset-block', '10px', {
|
||||
'inset-block-start': '10px',
|
||||
'inset-block-end': '10px'
|
||||
});
|
||||
|
||||
test_shorthand_value('inset-block', '20% auto', {
|
||||
'inset-block-start': '20%',
|
||||
'inset-block-end': 'auto'
|
||||
});
|
||||
|
||||
test_shorthand_value('inset-inline', '30%', {
|
||||
'inset-inline-start': '30%',
|
||||
'inset-inline-end': '30%'
|
||||
});
|
||||
|
||||
test_shorthand_value('inset-inline', 'auto 40px', {
|
||||
'inset-inline-start': 'auto',
|
||||
'inset-inline-end': '40px'
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Logical Properties and Values: margin-block and margin-inline sets longhands</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-logical/#propdef-margin-block">
|
||||
<meta name="assert" content="margin-block, margin-inline support the full grammar '<'margin-top'>{1,2}'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/shorthand-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_shorthand_value('margin-block', '10px', {
|
||||
'margin-block-start': '10px',
|
||||
'margin-block-end': '10px'
|
||||
});
|
||||
|
||||
test_shorthand_value('margin-block', '20% auto', {
|
||||
'margin-block-start': '20%',
|
||||
'margin-block-end': 'auto'
|
||||
});
|
||||
|
||||
test_shorthand_value('margin-inline', '30%', {
|
||||
'margin-inline-start': '30%',
|
||||
'margin-inline-end': '30%'
|
||||
});
|
||||
|
||||
test_shorthand_value('margin-inline', 'auto 40px', {
|
||||
'margin-inline-start': 'auto',
|
||||
'margin-inline-end': '40px'
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Logical Properties and Values: padding-block and padding-inline set longhands</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-logical/#propdef-padding-block">
|
||||
<meta name="assert" content="padding-block, padding-inline support the full grammar '<'padding-top'>{1,2}'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/shorthand-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_shorthand_value('padding-block', '0% 10px', {
|
||||
'padding-block-start': '0%',
|
||||
'padding-block-end': '10px'
|
||||
});
|
||||
|
||||
test_shorthand_value('padding-block', '20%', {
|
||||
'padding-block-start': '20%',
|
||||
'padding-block-end': '20%'
|
||||
});
|
||||
|
||||
test_shorthand_value('padding-inline', '10px 30%', {
|
||||
'padding-inline-start': '10px',
|
||||
'padding-inline-end': '30%'
|
||||
});
|
||||
|
||||
test_shorthand_value('padding-inline', '0%', {
|
||||
'padding-inline-start': '0%',
|
||||
'padding-inline-end': '0%'
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
|
||||
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1006249">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="columns:2; column-fill:auto; width:500px; height:500px; margin-top:-1px;">
|
||||
<div style="columns:2; column-fill:auto; height:400px; padding-top:1px;">
|
||||
<div></div>
|
||||
<div style="width:100px; column-span:all; background:red;">
|
||||
<div style="height:50px; break-inside:avoid; background:green;"></div>
|
||||
<div style="height:50px; break-inside:avoid; background:green;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Scroll Snap Test: scroll-margin-block, scroll-margin-inline set longhands</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#margin-longhands-logical">
|
||||
<meta name="assert" content="scroll-margin-block, scroll-margin-inline support the full grammar '<length>{1,2}'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/shorthand-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_shorthand_value('scroll-margin-block', '10px 20px', {
|
||||
'scroll-margin-block-start': '10px',
|
||||
'scroll-margin-block-end': '20px'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-margin-block', '30px', {
|
||||
'scroll-margin-block-start': '30px',
|
||||
'scroll-margin-block-end': '30px'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-margin-inline', '50px 60px', {
|
||||
'scroll-margin-inline-start': '50px',
|
||||
'scroll-margin-inline-end': '60px'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-margin-inline', '-40px', {
|
||||
'scroll-margin-inline-start': '-40px',
|
||||
'scroll-margin-inline-end': '-40px'
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,43 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Scroll Snap Test: scroll-margin sets longhands</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin">
|
||||
<meta name="assert" content="scroll-margin supports the full grammar '<length>{1,4}'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/shorthand-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_shorthand_value('scroll-margin', '10px', {
|
||||
'scroll-margin-top': '10px',
|
||||
'scroll-margin-right': '10px',
|
||||
'scroll-margin-bottom': '10px',
|
||||
'scroll-margin-left': '10px'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-margin', '30px 20px', {
|
||||
'scroll-margin-top': '30px',
|
||||
'scroll-margin-right': '20px',
|
||||
'scroll-margin-bottom': '30px',
|
||||
'scroll-margin-left': '20px'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-margin', '1px 2px 3px', {
|
||||
'scroll-margin-top': '1px',
|
||||
'scroll-margin-right': '2px',
|
||||
'scroll-margin-bottom': '3px',
|
||||
'scroll-margin-left': '2px'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-margin', '-1px 2px 3px 0', {
|
||||
'scroll-margin-top': '-1px',
|
||||
'scroll-margin-right': '2px',
|
||||
'scroll-margin-bottom': '3px',
|
||||
'scroll-margin-left': '0px'
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Scroll Snap Test: scroll-padding-block, scroll-padding-inline set longhands</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#padding-longhands-logical">
|
||||
<meta name="assert" content="scroll-padding-block, scroll-padding-inline support the full grammar '[ auto | <length-percentage> ]{1,2}'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/shorthand-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_shorthand_value('scroll-padding-block', 'auto 10px', {
|
||||
'scroll-padding-block-start': 'auto',
|
||||
'scroll-padding-block-end': '10px'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-padding-block', '20%', {
|
||||
'scroll-padding-block-start': '20%',
|
||||
'scroll-padding-block-end': '20%'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-padding-inline', '10px auto', {
|
||||
'scroll-padding-inline-start': '10px',
|
||||
'scroll-padding-inline-end': 'auto'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-padding-inline', '0%', {
|
||||
'scroll-padding-inline-start': '0%',
|
||||
'scroll-padding-inline-end': '0%'
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,43 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Scroll Snap Test: scroll-padding sets longhands</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding">
|
||||
<meta name="assert" content="scroll-padding supports the full grammar '[ <length-percentage> | auto ]{1,4}'.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/shorthand-testcommon.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
test_shorthand_value('scroll-padding', '10px', {
|
||||
'scroll-padding-top': '10px',
|
||||
'scroll-padding-right': '10px',
|
||||
'scroll-padding-bottom': '10px',
|
||||
'scroll-padding-left': '10px'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-padding', 'auto 20px', {
|
||||
'scroll-padding-top': 'auto',
|
||||
'scroll-padding-right': '20px',
|
||||
'scroll-padding-bottom': 'auto',
|
||||
'scroll-padding-left': '20px'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-padding', '1px 2px 3px', {
|
||||
'scroll-padding-top': '1px',
|
||||
'scroll-padding-right': '2px',
|
||||
'scroll-padding-bottom': '3px',
|
||||
'scroll-padding-left': '2px'
|
||||
});
|
||||
|
||||
test_shorthand_value('scroll-padding', '1% 2px 3px 0', {
|
||||
'scroll-padding-top': '1%',
|
||||
'scroll-padding-right': '2px',
|
||||
'scroll-padding-bottom': '3px',
|
||||
'scroll-padding-left': '0px'
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,43 @@
|
|||
<!doctype html>
|
||||
<title>Collapsed borders and background-clip</title>
|
||||
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-tables-3/#in-collapsed-borders-mode">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#the-background-clip">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<link rel="bookmark" href="https://crbug.com/1008400" />
|
||||
<meta name="flags" content="" />
|
||||
<meta name="assert" content="background-clip on a cell with collapsed borders is calculated correctly" />
|
||||
|
||||
<style>
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
/* The properties after the blank line are not the behavior under test. */
|
||||
|
||||
background: red;
|
||||
}
|
||||
|
||||
td {
|
||||
background-clip: content-box;
|
||||
border: 30px solid green;
|
||||
|
||||
background-color: green;
|
||||
padding: 0px;
|
||||
line-height: 0px;
|
||||
}
|
||||
|
||||
.cell-content {
|
||||
display: inline-block;
|
||||
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
}
|
||||
</style>
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="cell-content"></span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Text Module Test: getComputedStyle().textAlign</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-text-3/#propdef-text-align">
|
||||
<meta name="assert" content="text-align 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>
|
||||
<style>
|
||||
#container {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="container">
|
||||
<div id="target"></div>
|
||||
</div>
|
||||
<script>
|
||||
test_computed_value("text-align", "start");
|
||||
test_computed_value("text-align", "end");
|
||||
test_computed_value("text-align", "left");
|
||||
test_computed_value("text-align", "right");
|
||||
test_computed_value("text-align", "center");
|
||||
test_computed_value("text-align", "justify");
|
||||
test_computed_value("text-align", "match-parent", "center");
|
||||
|
||||
// TODO: Test justify-all
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,50 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>CSS Writing Modes Test Reference: positioning of a sideways-lr block alongside vertical-lr floats</title>
|
||||
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
|
||||
<meta content="image" name="flags">
|
||||
|
||||
<style>
|
||||
html {
|
||||
writing-mode: vertical-lr;
|
||||
}
|
||||
|
||||
div {
|
||||
block-size: 100px;
|
||||
}
|
||||
|
||||
div#first-olive-float {
|
||||
background-color: olive;
|
||||
float: left;
|
||||
inline-size: 50%;
|
||||
}
|
||||
|
||||
div#second-blue-float-with-clear {
|
||||
background-color: blue;
|
||||
clear: left;
|
||||
float: left;
|
||||
inline-size: 25%;
|
||||
}
|
||||
|
||||
div#orange-bfc {
|
||||
background-color: orange;
|
||||
inline-size: 75%;
|
||||
display: flow-root; /* Establishes a block formatting context */
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<p><img src="support/ortho-htb-alongside-vrl-floats-002-exp-res.png" width="300" height="36" alt="Image download support must be enabled"></p>
|
||||
<!--
|
||||
The image says:
|
||||
Test passes if the orange rectangle
|
||||
is below the blue rectangle.
|
||||
-->
|
||||
|
||||
<div id="first-olive-float"> </div>
|
||||
<div id="second-blue-float-with-clear"> </div>
|
||||
<div id="orange-bfc"> </div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>CSS Writing Modes Test: positioning of a sideways-lr block alongside vertical-lr floats</title>
|
||||
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-writing-modes/#block-flow" title="3.2. Block Flow Direction: the writing-mode property">
|
||||
<link rel="match" href="slr-alongside-vlr-floats-ref.html">
|
||||
|
||||
<!-- This test is adapted from Gérard Talbot's "ortho-htb-alongside-vrl-floats-014.xht" -->
|
||||
|
||||
<meta content="image" name="flags">
|
||||
<meta content="This test verifies that the orange block box, which creates a new block formatting context, should flow next to the earliest float that offers sufficient space in the inline-direction." name="assert">
|
||||
|
||||
<style>
|
||||
html {
|
||||
writing-mode: vertical-lr;
|
||||
}
|
||||
|
||||
div {
|
||||
block-size: 100px;
|
||||
}
|
||||
|
||||
div#first-olive-float {
|
||||
background-color: olive;
|
||||
float: left;
|
||||
inline-size: 50%;
|
||||
}
|
||||
|
||||
div#second-blue-float-with-clear {
|
||||
background-color: blue;
|
||||
clear: left;
|
||||
float: left;
|
||||
inline-size: 25%;
|
||||
}
|
||||
|
||||
div#orange-bfc {
|
||||
background-color: orange;
|
||||
inline-size: 75%;
|
||||
writing-mode: sideways-lr; /* Same block direction as <html> */
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<p><img src="support/ortho-htb-alongside-vrl-floats-002-exp-res.png" width="300" height="36" alt="Image download support must be enabled"></p>
|
||||
<!--
|
||||
The image says:
|
||||
Test passes if the orange rectangle
|
||||
is below the blue rectangle.
|
||||
-->
|
||||
|
||||
<div id="first-olive-float"> </div>
|
||||
<div id="second-blue-float-with-clear"> </div>
|
||||
<div id="orange-bfc"> </div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,50 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>CSS Writing Modes Test Reference: positioning of a sideways-rl block alongside vertical-rl floats</title>
|
||||
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
|
||||
<meta content="image" name="flags">
|
||||
|
||||
<style>
|
||||
html {
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
|
||||
div {
|
||||
block-size: 100px;
|
||||
}
|
||||
|
||||
div#first-olive-float {
|
||||
background-color: olive;
|
||||
float: left;
|
||||
inline-size: 50%;
|
||||
}
|
||||
|
||||
div#second-blue-float-with-clear {
|
||||
background-color: blue;
|
||||
clear: left;
|
||||
float: left;
|
||||
inline-size: 25%;
|
||||
}
|
||||
|
||||
div#orange-bfc {
|
||||
background-color: orange;
|
||||
inline-size: 75%;
|
||||
display: flow-root; /* Establishes a block formatting context */
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<p><img src="support/ortho-htb-alongside-vrl-floats-002-exp-res.png" width="300" height="36" alt="Image download support must be enabled"></p>
|
||||
<!--
|
||||
The image says:
|
||||
Test passes if the orange rectangle
|
||||
is below the blue rectangle.
|
||||
-->
|
||||
|
||||
<div id="first-olive-float"> </div>
|
||||
<div id="second-blue-float-with-clear"> </div>
|
||||
<div id="orange-bfc"> </div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>CSS Writing Modes Test: positioning of a sideways-rl block alongside vertical-rl floats</title>
|
||||
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-writing-modes/#block-flow" title="3.2. Block Flow Direction: the writing-mode property">
|
||||
<link rel="match" href="srl-alongside-vrl-floats-ref.html">
|
||||
|
||||
<!-- This test is adapted from Gérard Talbot's "ortho-htb-alongside-vrl-floats-014.xht" -->
|
||||
|
||||
<meta content="image" name="flags">
|
||||
<meta content="This test verifies that the orange block box, which creates a new block formatting context, should flow next to the earliest float that offers sufficient space in the inline-direction." name="assert">
|
||||
|
||||
<style>
|
||||
html {
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
|
||||
div {
|
||||
block-size: 100px;
|
||||
}
|
||||
|
||||
div#first-olive-float {
|
||||
background-color: olive;
|
||||
float: left;
|
||||
inline-size: 50%;
|
||||
}
|
||||
|
||||
div#second-blue-float-with-clear {
|
||||
background-color: blue;
|
||||
clear: left;
|
||||
float: left;
|
||||
inline-size: 25%;
|
||||
}
|
||||
|
||||
div#orange-bfc {
|
||||
background-color: orange;
|
||||
inline-size: 75%;
|
||||
writing-mode: sideways-rl; /* Same block direction as <html> */
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<p><img src="support/ortho-htb-alongside-vrl-floats-002-exp-res.png" width="300" height="36" alt="Image download support must be enabled"></p>
|
||||
<!--
|
||||
The image says:
|
||||
Test passes if the orange rectangle
|
||||
is below the blue rectangle.
|
||||
-->
|
||||
|
||||
<div id="first-olive-float"> </div>
|
||||
<div id="second-blue-float-with-clear"> </div>
|
||||
<div id="orange-bfc"> </div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>CSS Writing Modes Test Reference: positioning of a text-orientation:sideways block alongside vertical-lr floats</title>
|
||||
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
|
||||
|
||||
<style>
|
||||
html {
|
||||
writing-mode: vertical-lr;
|
||||
}
|
||||
|
||||
div {
|
||||
block-size: 100px;
|
||||
}
|
||||
|
||||
div#first-olive-float {
|
||||
background-color: olive;
|
||||
float: left;
|
||||
inline-size: 50%;
|
||||
}
|
||||
|
||||
div#second-blue-float-with-clear {
|
||||
background-color: blue;
|
||||
clear: left;
|
||||
float: left;
|
||||
inline-size: 25%;
|
||||
}
|
||||
|
||||
div#orange-bfc {
|
||||
background-color: orange;
|
||||
inline-size: 75%;
|
||||
writing-mode: vertical-lr;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<div id="first-olive-float"> </div>
|
||||
<div id="second-blue-float-with-clear"> </div>
|
||||
<div id="orange-bfc"> </div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>CSS Writing Modes Test: positioning of a text-orientation:sideways block alongside vertical-lr floats</title>
|
||||
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-writing-modes/#block-flow" title="3.2. Block Flow Direction: the writing-mode property">
|
||||
<link rel="match" href="vlr-text-orientation-sideways-alongside-vlr-floats-ref.html">
|
||||
|
||||
<!-- This test is adapted from Gérard Talbot's "ortho-htb-alongside-vrl-floats-014.xht" -->
|
||||
|
||||
<meta content="This test verifies that the orange block box, which should not create a new block formatting context, should flow next to the first float." name="assert">
|
||||
|
||||
<style>
|
||||
html {
|
||||
writing-mode: vertical-lr;
|
||||
}
|
||||
|
||||
div {
|
||||
block-size: 100px;
|
||||
}
|
||||
|
||||
div#first-olive-float {
|
||||
background-color: olive;
|
||||
float: left;
|
||||
inline-size: 50%;
|
||||
}
|
||||
|
||||
div#second-blue-float-with-clear {
|
||||
background-color: blue;
|
||||
clear: left;
|
||||
float: left;
|
||||
inline-size: 25%;
|
||||
}
|
||||
|
||||
div#orange-bfc {
|
||||
background-color: orange;
|
||||
inline-size: 75%;
|
||||
writing-mode: vertical-lr;
|
||||
text-orientation: sideways; /* Should not create block formatting context */
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<div id="first-olive-float"> </div>
|
||||
<div id="second-blue-float-with-clear"> </div>
|
||||
<div id="orange-bfc"> </div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>CSS Writing Modes Test Reference: positioning of a text-orientation:sideways block alongside vertical-rl floats</title>
|
||||
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
|
||||
|
||||
<style>
|
||||
html {
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
|
||||
div {
|
||||
block-size: 100px;
|
||||
}
|
||||
|
||||
div#first-olive-float {
|
||||
background-color: olive;
|
||||
float: left;
|
||||
inline-size: 50%;
|
||||
}
|
||||
|
||||
div#second-blue-float-with-clear {
|
||||
background-color: blue;
|
||||
clear: left;
|
||||
float: left;
|
||||
inline-size: 25%;
|
||||
}
|
||||
|
||||
div#orange-bfc {
|
||||
background-color: orange;
|
||||
inline-size: 75%;
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<div id="first-olive-float"> </div>
|
||||
<div id="second-blue-float-with-clear"> </div>
|
||||
<div id="orange-bfc"> </div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>CSS Writing Modes Test: positioning of a text-orientation:sideways block alongside vertical-rl floats</title>
|
||||
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-writing-modes/#block-flow" title="3.2. Block Flow Direction: the writing-mode property">
|
||||
<link rel="match" href="vrl-text-orientation-sideways-alongside-vrl-floats-ref.html">
|
||||
|
||||
<!-- This test is adapted from Gérard Talbot's "ortho-htb-alongside-vrl-floats-014.xht" -->
|
||||
|
||||
<meta content="This test verifies that the orange block box, which should not create a new block formatting context, should flow next to the first float." name="assert">
|
||||
|
||||
<style>
|
||||
html {
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
|
||||
div {
|
||||
block-size: 100px;
|
||||
}
|
||||
|
||||
div#first-olive-float {
|
||||
background-color: olive;
|
||||
float: left;
|
||||
inline-size: 50%;
|
||||
}
|
||||
|
||||
div#second-blue-float-with-clear {
|
||||
background-color: blue;
|
||||
clear: left;
|
||||
float: left;
|
||||
inline-size: 25%;
|
||||
}
|
||||
|
||||
div#orange-bfc {
|
||||
background-color: orange;
|
||||
inline-size: 75%;
|
||||
writing-mode: vertical-rl;
|
||||
text-orientation: sideways; /* Should not create block formatting context */
|
||||
}
|
||||
</style>
|
||||
|
||||
<body>
|
||||
<div id="first-olive-float"> </div>
|
||||
<div id="second-blue-float-with-clear"> </div>
|
||||
<div id="orange-bfc"> </div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS-Writing Modes Test: propagation of the writing-mode property from body to root</title>
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
|
||||
<link rel=help href="https://drafts.csswg.org/css-writing-modes-3/#principal-flow">
|
||||
<link rel="match" href="block-flow-direction-025-ref.xht">
|
||||
<meta name=assert content="The writing mode of the body must be propagated to the root with the dynamic change.">
|
||||
|
||||
<script>
|
||||
function runTest() {
|
||||
document.body.offsetHeight;
|
||||
document.body.style.writingMode = "vertical-rl";
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
div {
|
||||
background-color: blue;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body onload="runTest();">
|
||||
<div></div>
|
||||
|
||||
<p><img src="support/block-flow-direction-025-exp-res.png" width="359" height="36" alt="Image download support must be enabled"></p>
|
||||
<!--
|
||||
The image says:
|
||||
Test passes if there is a blue square in the
|
||||
<strong>upper-right corner</strong> of the page.
|
||||
-->
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS-Writing Modes Test: propagation of the writing-mode property from body to root</title>
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
|
||||
|
||||
<style>
|
||||
html {
|
||||
writing-mode: vertical-rl;
|
||||
}
|
||||
|
||||
main {
|
||||
writing-mode: horizontal-tb;
|
||||
inline-size: 100px;
|
||||
}
|
||||
|
||||
div {
|
||||
background-color: blue;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<main>
|
||||
<div></div>
|
||||
<p>Test passes if you see a blue square in the upper-right corner of the page</p>
|
||||
</main>
|
||||
</html>
|
|
@ -0,0 +1,47 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS-Writing Modes Test: propagation of the writing-mode property from body to root</title>
|
||||
<link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
|
||||
<link rel="author" title="Mozilla" href="http://www.mozilla.org/">
|
||||
<link rel=help href="https://drafts.csswg.org/css-writing-modes-3/#principal-flow">
|
||||
<link rel="match" href="wm-propagation-body-dynamic-change-002-ref.html">
|
||||
<meta name=assert content="The writing mode of the newly inserted body must be propagated to the root.">
|
||||
|
||||
<script>
|
||||
function runTest() {
|
||||
document.body.offsetHeight;
|
||||
|
||||
var newBody = document.createElement("body");
|
||||
newBody.id = "new-body";
|
||||
var oldBody = document.getElementById("old-body");
|
||||
|
||||
/* Insert a new <body> before the old one, which should become the primary <body>. */
|
||||
document.documentElement.insertBefore(newBody, oldBody);
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
#new-body {
|
||||
/* This writing-mode should propagate to the root element. */
|
||||
writing-mode: vertical-rl;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#old-body {
|
||||
writing-mode: horizontal-tb;
|
||||
inline-size: 100px;
|
||||
}
|
||||
|
||||
div {
|
||||
background-color: blue;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<body id="old-body" onload="runTest();">
|
||||
<div></div>
|
||||
<p>Test passes if you see a blue square in the upper-right corner of the page</p>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,26 @@
|
|||
<!doctype html>
|
||||
<title>client* returns the same for non-replaced inlines regardless of list-item-ness</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/cssom-view/#extension-to-the-element-interface">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1581467">
|
||||
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<style>
|
||||
.li {
|
||||
display: inline list-item;
|
||||
}
|
||||
</style>
|
||||
<div style="position: absolute"><span>Foo</span></div>
|
||||
<div style="position: absolute"><span class="li">Foo</span></div>
|
||||
<script>
|
||||
test(() => {
|
||||
let first = document.querySelector("span");
|
||||
let second = document.querySelector(".li");
|
||||
|
||||
assert_equals(first.clientWidth, second.clientWidth, "clientWidth should match");
|
||||
assert_equals(first.clientHeight, second.clientHeight, "clientHeight should match");
|
||||
assert_equals(first.clientTop, second.clientTop, "clientTop should match");
|
||||
assert_equals(first.clientLeft, second.clientLeft, "clientLeft should match");
|
||||
}, "client* returns the same for non-replaced inlines regardless of list-item-ness");
|
||||
</script>
|
|
@ -0,0 +1,136 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Test: CSSOM View matchMedia handleEvent via addListener</title>
|
||||
<link rel="help" href="https://dom.spec.whatwg.org/#callbackdef-eventlistener">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="resources/matchMedia.js"></script>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
setup({ allow_uncaught_exception: true });
|
||||
|
||||
promise_test(async t => {
|
||||
const iframe = await createIframe(t);
|
||||
const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
|
||||
|
||||
let _this;
|
||||
let _event;
|
||||
const eventListener = {
|
||||
handleEvent(event) {
|
||||
_this = this;
|
||||
_event = event;
|
||||
},
|
||||
};
|
||||
|
||||
mql.addListener(eventListener);
|
||||
triggerMQLEvent(iframe);
|
||||
await waitForChangesReported();
|
||||
|
||||
assert_equals(_this, eventListener);
|
||||
assert_equals(_event.matches, mql.matches);
|
||||
assert_equals(_event.media, MEDIA_QUERY);
|
||||
}, "calls handleEvent method of event listener");
|
||||
|
||||
promise_test(async t => {
|
||||
const iframe = await createIframe(t);
|
||||
const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
|
||||
|
||||
let uncaughtError;
|
||||
const errorHandler = event => {
|
||||
uncaughtError = event.error;
|
||||
};
|
||||
window.addEventListener("error", errorHandler);
|
||||
t.add_cleanup(() => {
|
||||
window.removeEventListener("error", errorHandler);
|
||||
});
|
||||
|
||||
const thrownError = { name: "test" };
|
||||
mql.addListener({
|
||||
get handleEvent() {
|
||||
throw thrownError;
|
||||
},
|
||||
});
|
||||
|
||||
triggerMQLEvent(iframe);
|
||||
await waitForChangesReported();
|
||||
assert_equals(uncaughtError, thrownError);
|
||||
}, "rethrows errors when getting handleEvent");
|
||||
|
||||
promise_test(async t => {
|
||||
const iframe = await createIframe(t);
|
||||
const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
|
||||
|
||||
let calls = 0;
|
||||
mql.addListener({
|
||||
get handleEvent() {
|
||||
calls++;
|
||||
return function() {};
|
||||
},
|
||||
});
|
||||
assert_equals(calls, 0);
|
||||
|
||||
triggerMQLEvent(iframe);
|
||||
await waitForChangesReported();
|
||||
assert_equals(calls, 1);
|
||||
|
||||
triggerMQLEvent(iframe);
|
||||
await waitForChangesReported();
|
||||
assert_equals(calls, 2);
|
||||
}, "looks up handleEvent method on every event dispatch");
|
||||
|
||||
promise_test(async t => {
|
||||
const iframe = await createIframe(t);
|
||||
const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
|
||||
|
||||
let calls = 0;
|
||||
const eventListener = function() { calls++; };
|
||||
Object.defineProperty(eventListener, "handleEvent", {
|
||||
get: t.unreached_func("handleEvent method should not be looked up on functions"),
|
||||
});
|
||||
mql.addListener(eventListener);
|
||||
|
||||
triggerMQLEvent(iframe);
|
||||
await waitForChangesReported();
|
||||
assert_equals(calls, 1);
|
||||
}, "doesn't look up handleEvent method on callable event listeners");
|
||||
|
||||
promise_test(async t => {
|
||||
const iframe = await createIframe(t);
|
||||
const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
|
||||
|
||||
let uncaughtError;
|
||||
const errorHandler = event => {
|
||||
uncaughtError = event.error;
|
||||
};
|
||||
window.addEventListener("error", errorHandler);
|
||||
t.add_cleanup(() => {
|
||||
window.removeEventListener("error", errorHandler);
|
||||
});
|
||||
|
||||
mql.addListener({ handleEvent: null });
|
||||
triggerMQLEvent(iframe);
|
||||
await waitForChangesReported();
|
||||
|
||||
assert_equals(uncaughtError.name, "TypeError");
|
||||
}, "throws if handleEvent is falsy and not callable");
|
||||
|
||||
promise_test(async t => {
|
||||
const iframe = await createIframe(t);
|
||||
const mql = iframe.contentWindow.matchMedia(MEDIA_QUERY);
|
||||
|
||||
let uncaughtError;
|
||||
const errorHandler = event => {
|
||||
uncaughtError = event.error;
|
||||
};
|
||||
window.addEventListener("error", errorHandler);
|
||||
t.add_cleanup(() => {
|
||||
window.removeEventListener("error", errorHandler);
|
||||
});
|
||||
|
||||
mql.addListener({ handleEvent: "str" });
|
||||
triggerMQLEvent(iframe);
|
||||
await waitForChangesReported();
|
||||
|
||||
assert_equals(uncaughtError.name, "TypeError");
|
||||
}, "throws if handleEvent is thruthy and not callable");
|
||||
</script>
|
|
@ -0,0 +1,32 @@
|
|||
const IFRAME_BASE_WIDTH = "200";
|
||||
const MEDIA_QUERY = `(max-width: ${IFRAME_BASE_WIDTH}px)`;
|
||||
|
||||
function createIframe(t) {
|
||||
const iframe = document.createElement("iframe");
|
||||
iframe.srcdoc = "";
|
||||
iframe.width = IFRAME_BASE_WIDTH;
|
||||
iframe.height = "100";
|
||||
iframe.style.border = "none";
|
||||
|
||||
t.add_cleanup(() => {
|
||||
document.body.removeChild(iframe);
|
||||
});
|
||||
|
||||
return new Promise(resolve => {
|
||||
iframe.addEventListener("load", () => {
|
||||
resolve(iframe);
|
||||
});
|
||||
|
||||
document.body.appendChild(iframe);
|
||||
});
|
||||
}
|
||||
|
||||
function triggerMQLEvent(iframe) {
|
||||
iframe.width = iframe.width === IFRAME_BASE_WIDTH ? "250" : IFRAME_BASE_WIDTH;
|
||||
}
|
||||
|
||||
function waitForChangesReported() {
|
||||
return new Promise(resolve => {
|
||||
step_timeout(resolve, 75);
|
||||
});
|
||||
}
|
|
@ -20,5 +20,5 @@ tools/%:
|
|||
|
||||
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
%: Makefile tools/wptserve tools/certs
|
||||
%: Makefile tools/wptserve tools/certs tools/wptrunner
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
|
|
@ -11,6 +11,7 @@ infrastructure which makes the project possible.
|
|||
|
||||
../README
|
||||
../tools/wptserve/docs/index.rst
|
||||
../tools/wptrunner/README
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
|
|
|
@ -43,7 +43,8 @@ release = u''
|
|||
extensions = [
|
||||
'recommonmark',
|
||||
'sphinxarg.ext',
|
||||
'sphinx.ext.autodoc'
|
||||
'sphinx.ext.autodoc',
|
||||
'sphinx.ext.intersphinx'
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
|
@ -191,3 +192,6 @@ epub_title = project
|
|||
|
||||
# A list of files that should not be packed into the epub file.
|
||||
epub_exclude_files = ['search.html']
|
||||
|
||||
intersphinx_mapping = {'python': ('https://docs.python.org/2/', None),
|
||||
'mozilla': ('https://firefox-source-docs.mozilla.org/', None)}
|
||||
|
|
|
@ -29,6 +29,7 @@ if not exist tools\ ( mkdir tools )
|
|||
|
||||
if not exist tools\wptserve\ ( mklink /d tools\wptserve ..\..\tools\wptserve )
|
||||
if not exist tools\certs\ ( mklink /d tools\certs ..\..\tools\certs )
|
||||
if not exist tools\wptrunner\ ( mklink /d tools\wptrunner ..\..\tools\wptrunner )
|
||||
|
||||
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
|
||||
goto end
|
||||
|
|
|
@ -147,3 +147,9 @@ Additional browser-specific documentation:
|
|||
safari
|
||||
webkitgtk_minibrowser
|
||||
```
|
||||
|
||||
For use in continuous integration systems, and other scenarios where regression
|
||||
tracking is required, the command-line interface supports storing and loading
|
||||
the expected result of each test in a test run. See [Expectations
|
||||
Data](../../tools/wptrunner/docs/expectation) for more information on creating
|
||||
and maintaining these files.
|
||||
|
|
|
@ -2,24 +2,12 @@
|
|||
"use strict";
|
||||
|
||||
Promise.resolve().then(async () => {
|
||||
// On success, WakeLock.request() returns a promise that never resolves. To
|
||||
// prevent a timeout, abort it with an AbortController and use the different
|
||||
// DOMExceptions we get to determine if this worked or not.
|
||||
const controller = new AbortController();
|
||||
const wakeLock = WakeLock.request("screen", { signal: controller.signal });
|
||||
wakeLock.catch(e => {
|
||||
if (e.name == "AbortError") {
|
||||
// We stopped due to the call to AbortController.abort(), so we did manage
|
||||
// to get the lock.
|
||||
window.parent.postMessage({ enabled: true }, "*");
|
||||
} else if (e.name == "NotAllowedError") {
|
||||
// This means requesting the lock failed.
|
||||
window.parent.postMessage({ enabled: false }, "*");
|
||||
} else {
|
||||
// We should not really hit this branch.
|
||||
window.parent.postMessage({ enabled: false }, "*");
|
||||
}
|
||||
});
|
||||
controller.abort();
|
||||
try {
|
||||
const wakeLock = await navigator.wakeLock.request("screen");
|
||||
await wakeLock.release();
|
||||
window.parent.postMessage({ enabled: true }, "*");
|
||||
} catch (e) {
|
||||
window.parent.postMessage({ enabled: false }, "*");
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -246,12 +246,15 @@ function runGenericSensorTests(sensorName,
|
|||
assert_true(verificationFunction(expected, sensor2, /*isNull=*/true));
|
||||
}, `${sensorName}: sensor reading is correct.`);
|
||||
|
||||
sensor_test(async t => {
|
||||
sensor_test(async (t, sensorProvider) => {
|
||||
assert_true(sensorName in self);
|
||||
const sensor = new sensorType();
|
||||
const sensorWatcher = new EventWatcher(t, sensor, ["reading", "error"]);
|
||||
sensor.start();
|
||||
|
||||
const mockSensor = await sensorProvider.getCreatedSensor(sensorName);
|
||||
await mockSensor.setSensorReading(readings);
|
||||
|
||||
await sensorWatcher.wait_for("reading");
|
||||
const cachedTimeStamp1 = sensor.timestamp;
|
||||
|
||||
|
@ -392,6 +395,7 @@ function runGenericSensorTests(sensorName,
|
|||
fastSensor.start();
|
||||
|
||||
const mockSensor = await sensorProvider.getCreatedSensor(sensorName);
|
||||
await mockSensor.setSensorReading(readings);
|
||||
|
||||
const fastCounter = await new Promise((resolve, reject) => {
|
||||
let fastSensorNotifiedCounter = 0;
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Reference for sizing of select elements, with wide vs. empty option selected</title>
|
||||
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
|
||||
<style>
|
||||
select {
|
||||
color: transparent;
|
||||
margin: 1px;
|
||||
}
|
||||
div.customBorder > select {
|
||||
/* This class is to let us test select elements *without* native theming
|
||||
(for browsers that have both native and non-native controls): */
|
||||
border: 3px solid black;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
</select>
|
||||
<br>
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
</select>
|
||||
<br>
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
</select>
|
||||
<br>
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- This is the same as above, but now with a custom border on the
|
||||
select elements: -->
|
||||
<div class="customBorder">
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
</select>
|
||||
<br>
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
</select>
|
||||
<br>
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
</select>
|
||||
<br>
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,77 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test for sizing of select elements, with wide vs. empty option selected</title>
|
||||
<link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
|
||||
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#list-box">
|
||||
<link rel="match" href="select-sizing-001-ref.html">
|
||||
<style>
|
||||
select {
|
||||
color: transparent;
|
||||
margin: 1px;
|
||||
}
|
||||
div.customBorder > select {
|
||||
/* This class is to let us test select elements *without* native theming
|
||||
(for browsers that have both native and non-native controls): */
|
||||
border: 3px solid black;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
<!-- Wide thing is 2nd, and not selected: -->
|
||||
<select>
|
||||
<option></option>
|
||||
<option>some wide option</option>
|
||||
</select>
|
||||
<br>
|
||||
<!-- Wide thing is 2nd, and selected: -->
|
||||
<select>
|
||||
<option></option>
|
||||
<option selected>some wide option</option>
|
||||
</select>
|
||||
<br>
|
||||
<!-- Wide thing is 1st, and selected (implicitly): -->
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
<option></option>
|
||||
</select>
|
||||
<br>
|
||||
<!-- Wide thing is 1st, and not selected: -->
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
<option selected></option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- This is the same as above, but now with a custom border on the
|
||||
select elements: -->
|
||||
<div class="customBorder">
|
||||
<!-- Wide thing is 2nd, and not selected: -->
|
||||
<select>
|
||||
<option></option>
|
||||
<option>some wide option</option>
|
||||
</select>
|
||||
<br>
|
||||
<!-- Wide thing is 2nd, and selected: -->
|
||||
<select>
|
||||
<option></option>
|
||||
<option selected>some wide option</option>
|
||||
</select>
|
||||
<br>
|
||||
<!-- Wide thing is 1st, and selected (implicitly): -->
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
<option></option>
|
||||
</select>
|
||||
<br>
|
||||
<!-- Wide thing is 1st, and not selected: -->
|
||||
<select>
|
||||
<option>some wide option</option>
|
||||
<option selected></option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -63,12 +63,15 @@ var relativeContainer = document.querySelector('#relative-div');
|
|||
reset();
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
dialog.showModal();
|
||||
checkVerticallyCentered(dialog);
|
||||
reset();
|
||||
}, "showModal() should center in the viewport");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
assert_equals(window.getComputedStyle(dialog).top, 'auto');
|
||||
assert_equals(window.getComputedStyle(dialog).bottom, 'auto');
|
||||
|
||||
|
@ -80,19 +83,21 @@ test(function() {
|
|||
|
||||
// Set back original value to 'height'.
|
||||
dialog.style.height = 'auto';
|
||||
reset();
|
||||
}, "The dialog is a positioned element, so the top and bottom should not have style auto.");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
dialog.showModal();
|
||||
dialog.close();
|
||||
window.scroll(0, 2 * window.scrollY);
|
||||
dialog.showModal();
|
||||
checkVerticallyCentered(dialog);
|
||||
reset();
|
||||
}, "Dialog should be recentered if showModal() is called after close()");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
dialog.showModal();
|
||||
var expectedTop = dialog.getBoundingClientRect().top;
|
||||
window.scroll(0, window.scrollY * 2);
|
||||
|
@ -102,30 +107,33 @@ test(function() {
|
|||
|
||||
window.scroll(0, window.scrollY / 2);
|
||||
assert_equals(dialog.getBoundingClientRect().top, expectedTop);
|
||||
reset();
|
||||
}, "Dialog should not recenter on relayout.");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
dialog.style.height = '20000px';
|
||||
dialog.showModal();
|
||||
assert_equals(dialog.getBoundingClientRect().top, 0);
|
||||
|
||||
// Set back original value to 'height'.
|
||||
dialog.style.height = 'auto';
|
||||
reset();
|
||||
}, "A tall dialog should be positioned at the top of the viewport.");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
document.body.style.width = '4000px';
|
||||
dialog.showModal();
|
||||
checkVerticallyCentered(dialog);
|
||||
|
||||
// Set back original value to 'width'.
|
||||
document.body.style.width = 'auto';
|
||||
reset();
|
||||
}, "The dialog should be centered regardless of the presence of a horizontal scrollbar.");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
dialog.remove();
|
||||
absoluteContainer.appendChild(dialog);
|
||||
dialog.showModal();
|
||||
|
@ -136,21 +144,21 @@ test(function() {
|
|||
relativeContainer.appendChild(dialog);
|
||||
dialog.showModal();
|
||||
checkVerticallyCentered(dialog);
|
||||
|
||||
reset();
|
||||
}, "Centering should work when dialog is inside positioned containers.");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
dialog.showModal();
|
||||
var expectedTop = dialog.getBoundingClientRect().top;
|
||||
relativeContainer.style.display = 'none';
|
||||
relativeContainer.style.display = 'block';
|
||||
assert_equals(dialog.getBoundingClientRect().top, expectedTop);
|
||||
|
||||
reset();
|
||||
}, "A centered dialog's position should survive becoming display:none temporarily.");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
// Remove and reinsert so that the document position isn't changed by the second remove and reinsert
|
||||
dialog.remove();
|
||||
relativeContainer.appendChild(dialog);
|
||||
|
@ -162,11 +170,11 @@ test(function() {
|
|||
relativeContainer.appendChild(dialog);
|
||||
assert_equals(dialog.parentNode, relativeContainer);
|
||||
assert_equals(dialog.getBoundingClientRect().top, relativeContainer.getBoundingClientRect().top);
|
||||
|
||||
reset();
|
||||
}, "Dialog should lose centering when removed from the document.");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
dialog.showModal();
|
||||
dialog.style.top = '0px';
|
||||
var expectedTop = dialog.getBoundingClientRect().top;
|
||||
|
@ -176,21 +184,22 @@ test(function() {
|
|||
|
||||
// Set back original value to 'top'.
|
||||
dialog.style.top = 'auto';
|
||||
reset();
|
||||
}, "Dialog's specified position should survive after close() and showModal().");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
dialog.showModal();
|
||||
dialog.removeAttribute('open');
|
||||
window.scroll(0, window.scrollY * 2);
|
||||
checkNotVerticallyCentered(dialog);
|
||||
dialog.showModal();
|
||||
checkVerticallyCentered(dialog);
|
||||
|
||||
reset();
|
||||
}, "Dialog should be recentered if showModal() is called after removing 'open'.");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
dialog.remove();
|
||||
absoluteContainer.appendChild(dialog);
|
||||
absoluteContainer.style.display = 'none';
|
||||
|
@ -198,26 +207,27 @@ test(function() {
|
|||
absoluteContainer.style.display = 'block';
|
||||
// Since dialog's containing block is the ICB, it's statically positioned after <body>.
|
||||
assert_equals(dialog.getBoundingClientRect().top, document.body.getBoundingClientRect().bottom);
|
||||
reset();
|
||||
}, "Dialog should not be centered if showModal() was called when an ancestor had display 'none'.");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
var offset = 50;
|
||||
dialog.style.top = offset + 'px';
|
||||
dialog.showModal();
|
||||
assert_equals(dialog.getBoundingClientRect().top + window.scrollY, offset);
|
||||
// Set back original value to 'top'.
|
||||
dialog.style.top = 'auto';
|
||||
reset();
|
||||
}, "A dialog with specified 'top' should be positioned as usual");
|
||||
|
||||
test(function() {
|
||||
this.add_cleanup(reset);
|
||||
|
||||
var offset = 50;
|
||||
dialog.style.bottom = offset + 'px';
|
||||
dialog.showModal();
|
||||
assert_equals(dialog.getBoundingClientRect().bottom + window.scrollY, window.innerHeight - offset);
|
||||
// Set back original value to 'bottom'.
|
||||
dialog.style.bottom = 'auto';
|
||||
reset();
|
||||
}, "A dialog with specified 'bottom' should be positioned as usual");
|
||||
</script>
|
||||
|
|
|
@ -70,9 +70,9 @@
|
|||
});
|
||||
|
||||
test(function(){
|
||||
this.add_cleanup(function() { d2.close(); });
|
||||
assert_throws("INVALID_STATE_ERR", function() {
|
||||
d2.showModal();
|
||||
this.add_cleanup(function() { d2.close(); });
|
||||
});
|
||||
}, "showModal() on a <dialog> that already has an open attribute throws an InvalidStateError exception");
|
||||
|
||||
|
@ -88,9 +88,9 @@
|
|||
|
||||
test(function(){
|
||||
var d = document.createElement("dialog");
|
||||
this.add_cleanup(function() { d.close(); });
|
||||
assert_throws("INVALID_STATE_ERR", function() {
|
||||
d.showModal();
|
||||
this.add_cleanup(function() { d.close(); });
|
||||
});
|
||||
}, "showModal() on a <dialog> not in a Document throws an InvalidStateError exception");
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ interface MediaSession {
|
|||
|
||||
void setActionHandler(MediaSessionAction action, MediaSessionActionHandler? handler);
|
||||
|
||||
void setPositionState(optional MediaPositionState? state);
|
||||
void setPositionState(optional MediaPositionState state = {});
|
||||
};
|
||||
|
||||
[Exposed=Window]
|
||||
|
|
|
@ -21,9 +21,9 @@ interface NDEFRecord {
|
|||
readonly attribute USVString mediaType;
|
||||
readonly attribute USVString id;
|
||||
|
||||
USVString? toText();
|
||||
[NewObject] ArrayBuffer? toArrayBuffer();
|
||||
[NewObject] any toJSON();
|
||||
USVString? text();
|
||||
[NewObject] ArrayBuffer? arrayBuffer();
|
||||
[NewObject] any json();
|
||||
sequence<NDEFRecord> toRecords();
|
||||
};
|
||||
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Test Script and Limit Schemata</title>
|
||||
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#script-and-limit-schemata">
|
||||
<meta name="assert" content="Script and Limit Schemata should not render anything when empty.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/mathml/support/feature-detection.js"></script>
|
||||
<script>
|
||||
var epsilon = 1;
|
||||
|
||||
function getBox(aId) {
|
||||
return document.getElementById(aId).getBoundingClientRect();
|
||||
}
|
||||
|
||||
setup({ explicit_done: true });
|
||||
window.addEventListener("load", () => { document.fonts.ready.then(runTests); });
|
||||
|
||||
function runTests() {
|
||||
test(function() {
|
||||
["over", "under", "underover", "sub", "sup", "subsup", "multiscripts"].forEach(function(name) {
|
||||
assert_true(MathMLFeatureDetection.has_mspace());
|
||||
assert_approx_equals(getBox(name).width, 0, epsilon, "width of empty " + name);
|
||||
assert_approx_equals(getBox(name).height, 0, epsilon, "height of empty " + name);
|
||||
});
|
||||
}, "Size of empty script elements");
|
||||
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<p>
|
||||
<math>
|
||||
<munderover id="underover">
|
||||
</munderover>
|
||||
</math>
|
||||
<math>
|
||||
<munder id="under">
|
||||
</munder>
|
||||
</math>
|
||||
<math>
|
||||
<mover id="over">
|
||||
</mover>
|
||||
</math>
|
||||
<math>
|
||||
<msub id="sub">
|
||||
</msub>
|
||||
</math>
|
||||
<math>
|
||||
<msup id="sup">
|
||||
</msup>
|
||||
</math>
|
||||
<math>
|
||||
<msubsup id="subsup">
|
||||
</msubsup>
|
||||
</math>
|
||||
<math>
|
||||
<mmultiscripts id="multiscripts">
|
||||
</mmultiscripts>
|
||||
</math>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
|
@ -199,6 +199,19 @@ var GenericSensorTest = (() => {
|
|||
this.maxFrequency_ = Math.min(10, this.maxFrequency_);
|
||||
}
|
||||
|
||||
// Chromium applies some rounding and other privacy-related measures that
|
||||
// can cause ALS not to report a reading when it has not changed beyond a
|
||||
// certain threshold compared to the previous illuminance value. Make
|
||||
// each reading return a different value that is significantly different
|
||||
// from the previous one when setSensorReading() is not called by client
|
||||
// code (e.g. run_generic_sensor_iframe_tests()).
|
||||
if (type == device.mojom.SensorType.AMBIENT_LIGHT) {
|
||||
this.activeSensors_.get(type).setSensorReading([
|
||||
[window.performance.now() * 100],
|
||||
[(window.performance.now() + 50) * 100]
|
||||
]);
|
||||
}
|
||||
|
||||
const initParams = new device.mojom.SensorInitParams({
|
||||
sensor: sensorPtr,
|
||||
clientReceiver: mojo.makeRequest(this.activeSensors_.get(type).client_),
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Mutation of the 'end' attribute changes current interval end</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<svg>
|
||||
<rect width="100" height="100" fill="green">
|
||||
<set attributeName="fill" to="red"/>
|
||||
</rect>
|
||||
</svg>
|
||||
<script>
|
||||
async_test(t => {
|
||||
onload = t.step_func(() => {
|
||||
t.step_timeout(() => {
|
||||
let set = document.querySelector('set');
|
||||
set.setAttribute('end', '0s');
|
||||
requestAnimationFrame(t.step_func_done(() => {
|
||||
assert_equals(getComputedStyle(set.targetElement, null).fill, 'rgb(0, 128, 0)');
|
||||
}));
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
|
@ -1,13 +1,10 @@
|
|||
<!doctype html>
|
||||
|
||||
<title>Check correct event bases for onclick</title>
|
||||
<meta charset="utf-8">
|
||||
<link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#interact-EventAttributes">
|
||||
<link rel="author" title="Edvard Thörnros" href="mailto:edvardt@opera.com">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<svg width="200" height="100">
|
||||
<rect x="0" y="0" width="100" height="100" id="a" fill="#0AA">
|
||||
<set begin="a.click" attributeName="display" to="none" fill="freeze"/>
|
||||
|
@ -18,24 +15,33 @@
|
|||
<set begin="b.click" attributeName="display" to="none" fill="freeze"/>
|
||||
</rect>
|
||||
</svg>
|
||||
|
||||
<script>
|
||||
let retries = 3;
|
||||
let clicks_remaining = 2;
|
||||
let a = document.querySelector("#a");
|
||||
let b = document.querySelector("#b");
|
||||
let t = async_test();
|
||||
let interval = setInterval(t.step_func(function() {
|
||||
retries--;
|
||||
if (retries == 0) {
|
||||
clearInterval(interval);
|
||||
assert_equals(window.getComputedStyle(a).display, "block");
|
||||
assert_equals(window.getComputedStyle(b).display, "none");
|
||||
t.done();
|
||||
return;
|
||||
}
|
||||
a.dispatchEvent(new Event("click"));
|
||||
function perform_clicks(t) {
|
||||
t.step_timeout(function() {
|
||||
b.dispatchEvent(new Event("click"));
|
||||
a.dispatchEvent(new Event("click"));
|
||||
t.step_timeout(function() {
|
||||
b.dispatchEvent(new Event("click"));
|
||||
}, 20);
|
||||
}, 20);
|
||||
}), 20 * 2);
|
||||
}
|
||||
async_test(t => {
|
||||
let observer = document.querySelector("#b > set + set");
|
||||
observer.addEventListener('beginEvent', t.step_func(function() {
|
||||
if (clicks_remaining == 0) {
|
||||
assert_equals(window.getComputedStyle(a).display, "block");
|
||||
assert_equals(window.getComputedStyle(b).display, "none");
|
||||
t.done();
|
||||
return;
|
||||
}
|
||||
perform_clicks(t);
|
||||
clicks_remaining--;
|
||||
}));
|
||||
window.onload = t.step_func(() => {
|
||||
perform_clicks(t);
|
||||
clicks_remaining--;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -74,3 +74,8 @@ the path to the OpenSSL config file (typically this will be
|
|||
},
|
||||
}
|
||||
```
|
||||
|
||||
### Regenerating the pregenerated certificates
|
||||
|
||||
From the root, run `./wpt serve --config tools/certs/config.json` and terminate
|
||||
it after it has started up.
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
MIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQILCSlhTzkRTICAggA
|
||||
MB0GCWCGSAFlAwQBKgQQgcOfWGRpzftycTbFVXO4mgSCBNDv5/+mh+AabEQwzjk/
|
||||
RIVjff2flwV0TooLISvRZYPEi60EsqsDhBpJ5iC6N8GFYXgoz06BaMQsuMGA8cRe
|
||||
qcL6uGNdwexoReO7SGD2p3jBQU+r6SpDdVicMDUzYWt8P+kYemFVoCoFrhCiCx2k
|
||||
p9ylcERn4JlUP3fW/FZslN77Nyx/M+hPowGmSBsCyFz9FiENeCRLMlyQpyG8Zp9Q
|
||||
hNbWmXp5HL/Yato/wySxtDFwC/93sus1TbgSpmmp3csiDE1TIZ2FtlDCjqd0puY8
|
||||
UVhhq+0ce01vZgOT4SWXaiMfXOt9tZ6vqsgTakQzQDXKPbPlM3ppFtTMUyNUPmol
|
||||
Fj36DxrVEArb7CT/tgbNfd/cdVonDtJJF7vxrAWWKzbhXpLfKAx4j54gdDz/ng0D
|
||||
LDvJwlCtMqS5qz30kOJLvSQu+ifG9ib+GBkiihG5VeYKjfvjxWl/3bHamIrwV8Lp
|
||||
ijHF2rsSSdzlKksSga+84jmDgAlqCsFdEAzGL8Dg4zk55Wlkr6+EshOQJN8vQz+f
|
||||
7O7fyLCS6hjjskmYTTXlHvtLiro870jd+nRXmwNlZ9DDayJCfUMayoihHqeIX4u6
|
||||
ZQhjk+54Ln9vEMUlhkiGL/1rE6APVCBnlPzJfX/K2BXHWdu/NRT4rHG6zGQLViJr
|
||||
yaaLV6F2bxCACjyjQmYzdGb238ApG5ubY50Eu4UfuB8N1zGDxqU7KQpRXLECmfKw
|
||||
qa7lHHpuakC5gFddKHI62rQc9Tw5jLRohFTFA2e54d+rN5axiSBoeYY0Ky+Y6Id4
|
||||
xGLkJoNeleyrXKj09ercxcUhg2EL/B4wHiyBLKikZiA4gUaCnCZ7WRPsGpJ5wo/K
|
||||
TXiAj1W0QQELGo+k8xmXP9y6Qb4ZcJsnWJ35Spn5CeuI/y/Bms/o2klqbhn9h+gz
|
||||
4w4Zo4PoKEfjnFublCoCa7F9jvxSM7GTeaRPf8E6/wYBV8Xdu/rAd3ypCXBRULR1
|
||||
xqXvhp6u/k8XmAyd62mAwHRG1RDHZ2Kg1pspV8YGnYYE0pXRSsVKT1+Yu6pQ65n8
|
||||
SG0YmZRN2/In0cyTkNwWwl9Bpdd7mghwiZ8uTed00Q7UvxBZxRe8I1VOwBrvA8Jo
|
||||
HZ25f0fuzNYkGmLq80jVE6k4dPowOQVp7dKcH8EvGJunUJKeAZrh0B9At52XzqJX
|
||||
9uibQrDyJvFKTepH7Gm/NuUQK1XG0tkJbysnvUk3Ezj6nihxL903IfyLhNI/R22P
|
||||
45nQeqRzrxLq4pfjW/KY+7IkX8tdabfPDHmtjLi3DhpYlDQ8JTDMn6dElN6wNIpe
|
||||
w8wh6c9srD5zbaguaMRy+5R46zyLkDIY/SOMDgXqg6rTsSSnEXc5RD1F2amBXRJF
|
||||
g8evdUJ7klx6pDh91Sspn9B/RJs1se5H37Wq9AFvrSHvktNVS0kqim+dimNKRFQr
|
||||
kJ8eqxoqJ268wTlnppn14LSig9iwE8a/+yEhfXfoZ12mYCVjT9Y8+ZtrzI+TqIDh
|
||||
ThfExeBYbPe+KTcsmuaYHw4Dbf4j8EMh7TJZlVx0o3Aqiw5MOAti5nIYt4kqJx/T
|
||||
+pNPJPhMEq0nGyE/iInxrYgH6JdNJqctexhxj5ZdfmrwpFPpDq5ZZ49HT1XFP5jE
|
||||
WgiOtgAhQ01A0xiCr0EZbFczHg==
|
||||
MIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIminHTzkXhrsCAggA
|
||||
MB0GCWCGSAFlAwQBKgQQXVwJcqWze6A3VYuAS0BPgwSCBNCRtvroB6qroQlF58HE
|
||||
5SJHF/jQRJRxf051lrq+jfUxM7kZucNN+myV2ziLoga6OQM579D8vy8tqkrLpnsT
|
||||
cXkgHuwtBJF47w1YAPGGARe3Ksv/2C9sUVcPvmnVrzSMX86EserffqM3zfwZ2H3S
|
||||
jxTDSyIvJUU+4XfxrWegTiQQPNqDyLfO5dBfatT2ztXCmu3BFipuhGFpwwCJirKr
|
||||
1xb6XPEuT0PCzTNpeSURpXFKHMDMkcjOkNAUygIEw+Lg7etVfLcsgBuzEA3RWwf3
|
||||
OMY1mTBJlvx6zZxdX7a0QmxerUDkDS9YYAEGSFa+Fx6cGW5Pyeef9xtlHxZHi+pm
|
||||
TxCwcvJyXqeD4gWm3s1gwOji5WmXvo2EircxfSKk8TUwapxfCYQbOjQIPaHnEGoa
|
||||
CQhSEgDX5ufwsXJ9/pSP6kjW+y+f0gnhHVuKJKsOBmjg6iqwnqEhw+uNFWKKl/Mo
|
||||
TFT7CrayJTvo+9UdQTJV9MBAsMUQS7d+HH9kNOAn/hfmEzzGUKVTZ0zId0fKH13p
|
||||
TnoYgMYbm2Urn0NXBFO8RvzY3KpKyRhMcOLKxkPVUjKUA5BuAv6rcvMflI6Hn5wU
|
||||
qPM+uECSgdOnNeImi1Ff+cW8dTGGRb+iha+EnABoX3wR5OvzgCYHeENJb32FUoVs
|
||||
ID2T5MZtQNArkis/xWZ7JyPbmsQo2wyiFLasX8Wgh+8MgFxolpvjlX3/QdTTJqEc
|
||||
rofVGOPOmfoHo3eYNJOlLbaJTDIe8OrK49PIeu1gm8zqB2WYqmF/3AYy4IAIwUYu
|
||||
rbPwUC9HyceRPSYePM9Wf1xM2proK3nmp6apdHCRNjbd4689ELmB90b2aw6NFiam
|
||||
3taKPmFLb/vt2YxgqOtagPrTlc1QLHBKrsnpg/BhcBjupqRKGFmXCJziPIaDKvAs
|
||||
jtg4KDo8jNIxmwQAwEV4+aH0hhMumxa8yaXoC/3G6JxD2sdoraOp+vrTzjUMkIoc
|
||||
xLqWl8GHVLF09fZJ4StJfIWIOmmpicSxW1vDICaZuU+iPwlNOzF7sePRkixbarHr
|
||||
iqTlLG//+Huq/n9IRxhzmSOur63WMXFRy0sKW5W+uQ9xsnV8SdjwRmAGLtnZHq4Y
|
||||
NOCQ/+yORl4yxkPvV01HykAl4CRtPBGR+4ZC5NKhpyhJbu6WcqwiXyAehU/cPgL+
|
||||
h8NwEoyP+OHrvEYdy4ocBnJq/436WwzfWis8nIG4bSlD3DSEgJF/QUmq4i/EUq/A
|
||||
D6SfzbFpPGtTj3KZ6D8DPrwWG68OCFsqRW9YEvUIK8JT265BN3MzI5i0/+k4CdAg
|
||||
aSaiC97qg7qJaVM9b9EHscUXR/feFxvO5QkkkY5CTU3Bxb0s1I4Rw2MYoAdMGtbA
|
||||
6mdzmRVYoRv9NMdzL6zOToPU6oOg6mbjHgZQgNd7w8GtTFW+sfslLOXXC8erzbHl
|
||||
ByQJGcFGtKTBUD+7VHZhpwM7bPObtzyA2r0UbS1Qx0IznvubdFVcXyE7dIjW7cAg
|
||||
IbBzKeiERwpu3rMq2bYVW3DA33VlrTfpjXujhHv1iX15i6qsWd7OtZw6x7TccH1Z
|
||||
jdmh9XB9xDydnss3u9DwGREMYC9TdPZY/nui6lgCjjOhaTaunMuigFBMWUBkDlIb
|
||||
uju+Atv+PSBT9DmTyTQGhPZRIw==
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
|
|
|
@ -1,116 +1,125 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 372738 (0x5b002)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: CN=web-platform-tests
|
||||
Validity
|
||||
Not Before: Dec 20 12:20:35 2018 GMT
|
||||
Not After : Dec 17 12:20:35 2028 GMT
|
||||
Subject: CN=web-platform-tests
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:a5:c0:b9:6d:f2:13:01:17:f3:ec:bf:91:db:4f:
|
||||
cd:4a:73:c7:d1:6a:b8:0d:c0:1e:7a:06:df:f2:f6:
|
||||
08:c1:36:a2:11:da:fb:0a:7a:2a:4f:a9:c0:6f:19:
|
||||
0b:e2:6d:26:3a:f9:3e:71:29:45:a4:4f:27:1d:6d:
|
||||
ef:40:98:dc:01:7f:2c:4f:e2:35:4d:2b:8e:97:c5:
|
||||
41:9e:cd:f4:0e:60:fc:65:a4:39:5c:88:36:05:60:
|
||||
e8:7f:b4:b4:32:9c:70:47:08:15:51:c8:cb:d8:21:
|
||||
ba:54:48:73:72:e3:8a:95:61:e6:00:ef:e3:5f:f6:
|
||||
18:b6:4e:24:b5:41:7f:ce:b2:d7:28:33:ee:06:21:
|
||||
4f:cb:d6:4f:55:3a:bb:4f:74:e9:b6:e8:3b:cc:a7:
|
||||
bb:f3:86:7a:c8:71:e1:f4:f2:2b:fe:1f:71:5e:1f:
|
||||
49:12:f9:c3:8a:7e:dc:5f:75:38:4d:7b:4a:a2:e5:
|
||||
6e:bf:ce:d9:9c:99:af:a7:6e:38:97:3c:b5:3f:13:
|
||||
0c:63:7e:78:ee:e4:ad:d8:18:c7:ec:da:38:44:49:
|
||||
af:fb:44:8d:79:29:db:cf:4c:0a:6a:fd:5a:54:15:
|
||||
e0:cd:ac:4d:17:5d:ef:58:c8:3d:84:fd:20:79:55:
|
||||
9f:14:c7:c8:5f:c8:98:5c:3c:ff:53:89:c5:1f:e7:
|
||||
83:a3
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:TRUE
|
||||
X509v3 Subject Key Identifier:
|
||||
7A:EA:6A:75:AA:23:78:B5:5E:06:61:4A:56:CF:56:A9:6D:B0:54:02
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:7A:EA:6A:75:AA:23:78:B5:5E:06:61:4A:56:CF:56:A9:6D:B0:54:02
|
||||
DirName:/CN=web-platform-tests
|
||||
serial:05:B0:02
|
||||
|
||||
X509v3 Key Usage:
|
||||
Certificate Sign
|
||||
X509v3 Name Constraints:
|
||||
Permitted:
|
||||
DNS:web-platform.test
|
||||
DNS:not-web-platform.test
|
||||
DNS:www.web-platform.test
|
||||
DNS:www1.web-platform.test
|
||||
DNS:www2.web-platform.test
|
||||
DNS:www.not-web-platform.test
|
||||
DNS:www2.not-web-platform.test
|
||||
DNS:www1.not-web-platform.test
|
||||
DNS:xn--lve-6lad.web-platform.test
|
||||
DNS:xn--lve-6lad.not-web-platform.test
|
||||
DNS:xn--n8j6ds53lwwkrqhv28a.web-platform.test
|
||||
DNS:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test
|
||||
|
||||
X509v3 Extended Key Usage:
|
||||
TLS Web Server Authentication
|
||||
X509v3 Subject Alternative Name:
|
||||
DNS:web-platform.test, DNS:not-web-platform.test, DNS:www.web-platform.test, DNS:www1.web-platform.test, DNS:www2.web-platform.test, DNS:www.not-web-platform.test, DNS:www2.not-web-platform.test, DNS:www1.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
57:8e:97:2b:a5:3f:82:be:c9:80:b3:ef:0f:c8:b9:4c:f2:a6:
|
||||
91:40:ab:1f:70:0e:31:fb:74:ae:17:23:ea:b1:c8:19:f7:29:
|
||||
13:da:59:aa:61:7f:24:17:24:84:22:81:4c:23:b1:e6:a8:d8:
|
||||
65:95:b0:a9:2e:2d:b8:8f:86:67:69:b8:d2:7a:87:d3:75:67:
|
||||
6a:24:2a:a9:af:31:a6:33:2a:50:46:c4:2e:37:f0:e0:e0:a1:
|
||||
e0:fe:bb:2f:6a:8d:9c:a6:45:cd:3f:8f:cd:fd:95:b1:70:24:
|
||||
b8:2b:39:56:3f:81:0d:42:59:0a:8e:b2:c4:a7:1b:8a:73:98:
|
||||
51:4d:f5:14:ab:8b:95:dc:5e:6a:bc:30:57:79:16:3e:6c:73:
|
||||
09:f9:be:1b:4b:bf:cb:f4:ae:3a:ad:0e:57:20:e7:2f:f5:1f:
|
||||
b3:7b:cf:1a:77:73:94:c6:f5:08:d5:24:29:12:9c:f1:0a:75:
|
||||
99:43:7b:91:c7:69:6f:ff:86:10:54:94:22:73:f9:00:c2:91:
|
||||
3d:6d:52:e5:5a:c6:43:e2:37:84:4c:59:02:b7:59:6c:b0:c5:
|
||||
18:72:03:61:94:00:11:e6:a3:cb:18:99:3e:8e:a2:00:82:4a:
|
||||
65:c3:08:3b:c9:10:19:c3:09:44:3c:a9:b0:2a:c3:84:2c:46:
|
||||
43:ba:dc:bf
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGVzCCBT+gAwIBAgIDBbACMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
|
||||
Yi1wbGF0Zm9ybS10ZXN0czAeFw0xODEyMjAxMjIwMzVaFw0yODEyMTcxMjIwMzVa
|
||||
MIIW5zCCFc+gAwIBAgIDBbFHMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
|
||||
Yi1wbGF0Zm9ybS10ZXN0czAeFw0xOTEwMTQxMzQ5MjlaFw0yOTEwMTExMzQ5Mjla
|
||||
MB0xGzAZBgNVBAMMEndlYi1wbGF0Zm9ybS10ZXN0czCCASIwDQYJKoZIhvcNAQEB
|
||||
BQADggEPADCCAQoCggEBAKXAuW3yEwEX8+y/kdtPzUpzx9FquA3AHnoG3/L2CME2
|
||||
ohHa+wp6Kk+pwG8ZC+JtJjr5PnEpRaRPJx1t70CY3AF/LE/iNU0rjpfFQZ7N9A5g
|
||||
/GWkOVyINgVg6H+0tDKccEcIFVHIy9ghulRIc3LjipVh5gDv41/2GLZOJLVBf86y
|
||||
1ygz7gYhT8vWT1U6u0906bboO8ynu/OGeshx4fTyK/4fcV4fSRL5w4p+3F91OE17
|
||||
SqLlbr/O2ZyZr6duOJc8tT8TDGN+eO7krdgYx+zaOERJr/tEjXkp289MCmr9WlQV
|
||||
4M2sTRdd71jIPYT9IHlVnxTHyF/ImFw8/1OJxR/ng6MCAwEAAaOCA54wggOaMAwG
|
||||
A1UdEwQFMAMBAf8wHQYDVR0OBBYEFHrqanWqI3i1XgZhSlbPVqltsFQCMEcGA1Ud
|
||||
IwRAMD6AFHrqanWqI3i1XgZhSlbPVqltsFQCoSGkHzAdMRswGQYDVQQDDBJ3ZWIt
|
||||
cGxhdGZvcm0tdGVzdHOCAwWwAjALBgNVHQ8EBAMCAgQwggGLBgNVHR4EggGCMIIB
|
||||
fqCCAXowE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVbm90LXdlYi1wbGF0Zm9ybS50
|
||||
BQADggEPADCCAQoCggEBANQI10vytPN5G8m6cWePZLHYgBIJsWfjx2NWk/WFELoc
|
||||
DnUv2zRp5E27AhxEJJ6c6JGu+3WjT7l+fGykoK1RwOn4Oi/KNJnDE2XeSjQH/awP
|
||||
Mi2j0hAivTvCXnomTXn3cqcTkrapcDXV1+WUSaebJw+8wHLoJUWIbeU7KLVgXscf
|
||||
hLGBQB6p/uQewzmmb1bUbizF3GnbFxSbFgkK3Ttf9NpHqqRtgUAaZtP9eda/kRP7
|
||||
j0iIQncCyhwUMcEg/9YsKeLOSUGzLjUSCJqOIvULnQwRBYjIEwui00qdChqV8chz
|
||||
Kbk32dj6vLFs3t7P+xoj/JjZXZiWQFTzFSVjpS5A7MECAwEAAaOCFC4wghQqMAwG
|
||||
A1UdEwQFMAMBAf8wHQYDVR0OBBYEFEFJ/4xmUF+HoQaou6uK3XMNDjcaMEcGA1Ud
|
||||
IwRAMD6AFEFJ/4xmUF+HoQaou6uK3XMNDjcaoSGkHzAdMRswGQYDVQQDDBJ3ZWIt
|
||||
cGxhdGZvcm0tdGVzdHOCAwWxRzALBgNVHQ8EBAMCAgQwggoFBgNVHR4Eggn8MIIJ
|
||||
+KCCCfQwE4IRd2ViLXBsYXRmb3JtLnRlc3QwF4IVbm90LXdlYi1wbGF0Zm9ybS50
|
||||
ZXN0MBeCFXd3dy53ZWItcGxhdGZvcm0udGVzdDAYghZ3d3cxLndlYi1wbGF0Zm9y
|
||||
bS50ZXN0MBiCFnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwG4IZd3d3Lm5vdC13ZWIt
|
||||
cGxhdGZvcm0udGVzdDAcghp3d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdDAcghp3
|
||||
d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAggh54bi0tbHZlLTZsYWQud2ViLXBs
|
||||
YXRmb3JtLnRlc3QwJIIieG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVz
|
||||
dDArgil4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdDAv
|
||||
gi14bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw
|
||||
EwYDVR0lBAwwCgYIKwYBBQUHAwEwggFvBgNVHREEggFmMIIBYoIRd2ViLXBsYXRm
|
||||
b3JtLnRlc3SCFW5vdC13ZWItcGxhdGZvcm0udGVzdIIVd3d3LndlYi1wbGF0Zm9y
|
||||
bS50ZXN0ghZ3d3cxLndlYi1wbGF0Zm9ybS50ZXN0ghZ3d3cyLndlYi1wbGF0Zm9y
|
||||
bS50ZXN0ghl3d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cyLm5vdC13ZWIt
|
||||
cGxhdGZvcm0udGVzdIIad3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCHnhuLS1s
|
||||
dmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdIIieG4tLWx2ZS02bGFkLm5vdC13ZWIt
|
||||
cGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRm
|
||||
b3JtLnRlc3SCLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZv
|
||||
cm0udGVzdDANBgkqhkiG9w0BAQsFAAOCAQEAV46XK6U/gr7JgLPvD8i5TPKmkUCr
|
||||
H3AOMft0rhcj6rHIGfcpE9pZqmF/JBckhCKBTCOx5qjYZZWwqS4tuI+GZ2m40nqH
|
||||
03VnaiQqqa8xpjMqUEbELjfw4OCh4P67L2qNnKZFzT+Pzf2VsXAkuCs5Vj+BDUJZ
|
||||
Co6yxKcbinOYUU31FKuLldxearwwV3kWPmxzCfm+G0u/y/SuOq0OVyDnL/Ufs3vP
|
||||
GndzlMb1CNUkKRKc8Qp1mUN7kcdpb/+GEFSUInP5AMKRPW1S5VrGQ+I3hExZArdZ
|
||||
bLDFGHIDYZQAEeajyxiZPo6iAIJKZcMIO8kQGcMJRDypsCrDhCxGQ7rcvw==
|
||||
cGxhdGZvcm0udGVzdDAbghl3d3cud3d3LndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3
|
||||
dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEubm90LXdlYi1wbGF0Zm9y
|
||||
bS50ZXN0MByCGnd3dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzIud3d3
|
||||
LndlYi1wbGF0Zm9ybS50ZXN0MByCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0
|
||||
MByCGnd3dy53d3cxLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzEud3d3MS53ZWIt
|
||||
cGxhdGZvcm0udGVzdDAdght3d3cxLnd3dzIud2ViLXBsYXRmb3JtLnRlc3QwHYIb
|
||||
d3d3Mi53d3cyLndlYi1wbGF0Zm9ybS50ZXN0MB2CG3d3dzIud3d3MS53ZWItcGxh
|
||||
dGZvcm0udGVzdDAfgh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdDAggh53
|
||||
d3cud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3MS53d3cubm90LXdl
|
||||
Yi1wbGF0Zm9ybS50ZXN0MCCCHnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVz
|
||||
dDAggh53d3cud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwIIIed3d3Mi53d3cu
|
||||
bm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzIud3d3Mi5ub3Qtd2ViLXBsYXRm
|
||||
b3JtLnRlc3QwIYIfd3d3Mi53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdDAhgh93
|
||||
d3cxLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCGCH3d3dzEud3d3Mi5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3QwJIIieG4tLWx2ZS02bGFkLnd3dy53ZWItcGxhdGZv
|
||||
cm0udGVzdDAkgiJ3d3cueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0MCSC
|
||||
InhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwJYIjeG4tLWx2ZS02
|
||||
bGFkLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3Mi54bi0tbHZlLTZsYWQu
|
||||
d2ViLXBsYXRmb3JtLnRlc3QwJYIjd3d3MS54bi0tbHZlLTZsYWQud2ViLXBsYXRm
|
||||
b3JtLnRlc3QwJYIjeG4tLWx2ZS02bGFkLnd3dzIud2ViLXBsYXRmb3JtLnRlc3Qw
|
||||
KIImeG4tLWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKIImd3d3
|
||||
LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4tLWx2ZS02
|
||||
bGFkLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MCmCJ3d3dzIueG4tLWx2ZS02
|
||||
bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDApgid3d3cxLnhuLS1sdmUtNmxhZC5u
|
||||
b3Qtd2ViLXBsYXRmb3JtLnRlc3QwKYIneG4tLWx2ZS02bGFkLnd3dzIubm90LXdl
|
||||
Yi1wbGF0Zm9ybS50ZXN0MCuCKXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1w
|
||||
bGF0Zm9ybS50ZXN0MC2CK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBs
|
||||
YXRmb3JtLnRlc3QwL4IteG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1w
|
||||
bGF0Zm9ybS50ZXN0MC+CLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53ZWIt
|
||||
cGxhdGZvcm0udGVzdDAvgi13d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3QwMIIud3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53
|
||||
ZWItcGxhdGZvcm0udGVzdDAwgi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cx
|
||||
LndlYi1wbGF0Zm9ybS50ZXN0MDCCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYy
|
||||
OGEud2ViLXBsYXRmb3JtLnRlc3QwMIIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEu
|
||||
d3d3Mi53ZWItcGxhdGZvcm0udGVzdDAxgi94bi0tbHZlLTZsYWQueG4tLWx2ZS02
|
||||
bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdDAzgjF4bi0tbjhqNmRzNTNsd3drcnFo
|
||||
djI4YS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDOCMXd3dy54bi0tbjhqNmRz
|
||||
NTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyd3d3MS54bi0t
|
||||
bjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwNIIyeG4t
|
||||
LW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qw
|
||||
NIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qtd2ViLXBsYXRmb3Jt
|
||||
LnRlc3QwNIIyd3d3Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs
|
||||
YXRmb3JtLnRlc3QwOII2eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2ZS02
|
||||
bGFkLndlYi1wbGF0Zm9ybS50ZXN0MDiCNnhuLS1sdmUtNmxhZC54bi0tbjhqNmRz
|
||||
NTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdDA8gjp4bi0tbHZlLTZsYWQu
|
||||
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0MDyC
|
||||
OnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBs
|
||||
YXRmb3JtLnRlc3QwQ4JBeG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZk
|
||||
czUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QwR4JFeG4tLW44ajZkczUz
|
||||
bHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0
|
||||
Zm9ybS50ZXN0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiC
|
||||
EXdlYi1wbGF0Zm9ybS50ZXN0ghVub3Qtd2ViLXBsYXRmb3JtLnRlc3SCFXd3dy53
|
||||
ZWItcGxhdGZvcm0udGVzdIIWd3d3MS53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53
|
||||
ZWItcGxhdGZvcm0udGVzdIIZd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3
|
||||
Lnd3dy53ZWItcGxhdGZvcm0udGVzdIIad3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl
|
||||
c3SCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghp3d3cud3d3Mi53ZWItcGxh
|
||||
dGZvcm0udGVzdIIad3d3Mi53d3cud2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEud3d3
|
||||
LndlYi1wbGF0Zm9ybS50ZXN0ghp3d3cud3d3MS53ZWItcGxhdGZvcm0udGVzdIIb
|
||||
d3d3MS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0ght3d3cxLnd3dzIud2ViLXBsYXRm
|
||||
b3JtLnRlc3SCG3d3dzIud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cx
|
||||
LndlYi1wbGF0Zm9ybS50ZXN0gh13d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
|
||||
dIIed3d3Lnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cxLnd3dy5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCHnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVz
|
||||
dIIed3d3Lnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh53d3cyLnd3dy5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl
|
||||
c3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3MS5u
|
||||
b3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3Jt
|
||||
LnRlc3SCInhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3SCInd3dy54
|
||||
bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cxLndlYi1wbGF0Zm9y
|
||||
bS50ZXN0giN3d3cyLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdIIjd3d3
|
||||
MS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53
|
||||
d3cyLndlYi1wbGF0Zm9ybS50ZXN0giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWIt
|
||||
cGxhdGZvcm0udGVzdIImd3d3LnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3Jt
|
||||
LnRlc3SCJ3huLS1sdmUtNmxhZC53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIn
|
||||
d3d3Mi54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gid3d3cxLnhu
|
||||
LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53
|
||||
d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYy
|
||||
OGEud2ViLXBsYXRmb3JtLnRlc3SCK3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQu
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCLXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13
|
||||
ZWItcGxhdGZvcm0udGVzdIIteG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Lndl
|
||||
Yi1wbGF0Zm9ybS50ZXN0gi13d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCLnd3dzEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCLnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCL3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdl
|
||||
Yi1wbGF0Zm9ybS50ZXN0gjF4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cubm90
|
||||
LXdlYi1wbGF0Zm9ybS50ZXN0gjF3d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEu
|
||||
bm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2
|
||||
MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdIIyeG4tLW44ajZkczUzbHd3a3JxaHYy
|
||||
OGEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCMnhuLS1uOGo2ZHM1M2x3d2ty
|
||||
cWh2MjhhLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ3d3cyLnhuLS1uOGo2
|
||||
ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdII2eG4tLW44ajZk
|
||||
czUzbHd3a3JxaHYyOGEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gjZ4
|
||||
bi0tbHZlLTZsYWQueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3Jt
|
||||
LnRlc3SCOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qt
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1s
|
||||
dmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2ty
|
||||
cWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0
|
||||
gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4
|
||||
YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJKoZIhvcNAQELBQADggEBAHXiq1vA
|
||||
xjc8ij34i4b+8inVBVwTWyHtczlZnIQTCxqJCDk83pz8QFHGyHYz+db36U6YwHak
|
||||
I3HYhipPMB1VnlHkMA6xFuZL/aFWywLNU9nTmaAV0fP/R5k9vt8AEm0ZmEWkNYtL
|
||||
opcy0rqjAaXTIWes91OZfniTFQDHMiurK8Vq+fq/Ozw+YQbRbU1KlHCNayisvQa4
|
||||
TLO+DjMR0hzDT3DHEwPJLPYaa6RnIwo8zvCqk0ZRPAxeuldAe/u1PzteXRzEHTAE
|
||||
DMVLMwM752bLFufv1GRCZNHELZKyhUoFrP30AqE7r3pnwQRW8Kdid38IMo7u9Dem
|
||||
u5/tHefPKD7bm/Y=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -1,28 +1,28 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCpxFZDnnjgGrPj
|
||||
2OirthoMrhDXhgQ0MupElcIG3ZtE9PNAqT20Ysr7cYgg1vQdylSo1aK3ZcBbtfuQ
|
||||
8Yfa7+o6TiTcKiEmTWB34rJPx1t37rJz7nWC0JjIOArtpSIAI8yIXkAtw5TnHcL5
|
||||
AAC7alliVMyF15UVxdeTUgmvw5IUGzfRX9HUVhCFvxtsS+GTOoDLHFqYGH4Qc6sg
|
||||
dOEtzUPuRS51zKTwaG4QopCKfkvj3MLZ19/k0aJPibvLNACpkMlPFYZZekvt+WsB
|
||||
AUjtixXM8f9Yon2XV9F7MXvDsaZUgebuYt7qxaG0xGNez8riLIhQB8wGSIJ18Ziy
|
||||
VN62q9/bAgMBAAECggEAO9k7kBsOAfNn96tAW0iXZmD3DwPv93b7n7Ir9L+rPWQd
|
||||
XW5MkotBg+NCWlFtPhNWRS8Lbhww9CPzy+VaP5TUvjlORU+U4CvnFlyVAAsH8//y
|
||||
aWxngPaI5gzbzWup0OLN+EVB2uBYXiHf2mhl2axkVoYOlCCsLkDQ/t6tC4mmte9P
|
||||
JB8VuMWKDc+Q0bMyGQ9V/qgQuw38mYyuBrbS3pwG9/1S7qADZ4/HK85CtEY6f0wQ
|
||||
dyK7Rxjpo4eq/MWPTlrLYRZcPKkllFLLbU+346OPD06spMOxleYkMVLMhW9CZVSM
|
||||
cRqxa7MLel7XumUK+7oC5bXuBICrAu69XtW8E6fsAQKBgQDfp+e+gb/ISu5CPgFu
|
||||
/y2i191lr6uIIYTB8URx92WWqabim7U8YiSzaexY9qTNvMjxnn/qLnKvEtxLPjSx
|
||||
3J+3ewoE62G7QjNSzwTRNTrhDDzh9MhzIr3YtLvPwpobd++TpbtVHxYOEzT9dI/w
|
||||
jSIztVzLK+Md2ID7sqkwPxBmWQKBgQDCUWC99hi7mvmjoGsGpy5iZ5EL66GHlA9y
|
||||
ivgg+DCoFQ7twiASqmrsVwztFvEV2P/JZVMleHOvMumOSRdI6CG3GpXRWi4rSrS5
|
||||
K02bUS8GGE/Aobh2q6bNQfM2ujl+k/wlIIJHxlFb0JqLOEpuLft0Kf52odtLC8fV
|
||||
lGDsabwZUwKBgHYoH19e7rHjHDJ0zY8VUsfIIRf6kbVud9N6If3PhKTu5dKsDjhj
|
||||
ZR4/5HQvgWuLw+EaKlvOxBnH7gf2SiJ4+wwU/XsR22TxmWmzIslfxMZmD7gT+N4S
|
||||
yZc2DE67cWz3lOM82FYlASLYdNM+BFlCRoJo2yge/HKlEadngMiTWJepAoGAB9Ja
|
||||
wIq9aB/O2KVGaZglJ9TfY8lyURDGpmetoTYcT0e5uBxOSjIN58GBRbHctnJrqWGo
|
||||
vSNiFLVJ7W5Hv6mIYeRyD2E/5oI1UBbMIupbqDUmUKyxziUOq8hxz8wjMFMonR33
|
||||
4Ie9EqMM9XmolVLIgl6GXaQaPaUVwCUe2aVP6v0CgYEAtxJq1dY+w+79WXu6/pDj
|
||||
fX7Np07DRgrkmWL4db+ytQpONvbxXZwduSfb4dv3lfCiPzib+WXdxpGDOR94d/qL
|
||||
zhrQq25s44TtvdeUzdn5+lZYn+15ZtNgUTYDal82dxwIR56fCRdLWC26CwaBevXX
|
||||
lK3MgwivpX6mQ3nr7s/4x2A=
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCrZXVXmOPlqo/+
|
||||
2xj15PgcZGHGo/bofiQQ3gl6JL1VX1GptYINhTq2sUhfN8tCb+cHyzapO9oUmwqw
|
||||
p5Up7tJ4Ip7uE1/wwSxVcvCawG5/PN5iD7H2wsmEppHXOc3Ll085/gzes+1+Nn+q
|
||||
ARmp1bF/vjplD6VdH2rBW3sJ3DAoBaoXlAMfeRAFDpaqa+9lxMrM5WkUHndQ+uEM
|
||||
6kZyevhyp02XDP0vLwNCtPLGB0emAAfC7xpwRGVGStEsUhf/mc9yNNaKgqBKI0no
|
||||
oVnuU3RGdKHP18vcjtBSV0lYgjfg9a07OBu1hgQffhofi2BydfaCpBAMzFhlu1uy
|
||||
s6ahVkJpAgMBAAECggEAfmvzxY0MbFcGp2FMY/Nj3u1cAXznnk2MpLRiISoATXxl
|
||||
a9xp9TcUO7VAQJuS3YpUyrbltqZjEVfa5rp1l9yEegBvYgQAfEDARrblKgBOgKOR
|
||||
FJunFPBQW/vRDwOf/E+7LHdrXskwoCvqtqbhGxh4OFVEFU8ZFjsaL00e0AMNsjZl
|
||||
0OsEONlIH4nCa7E6DTasHxc1VkHQr3uvBl5/4HfOc05tr+ZKlMYXzAPWkL0sC216
|
||||
Dqy4AxJ0M0ax8BYEZuo0gqQmMAonJTkEnpyoD4z89S877vFp8w1VPbGYkV48yjV/
|
||||
I7fQ6Yjt3yg+as+s4arGEsUB0l+XApBYYY/J+qcYUQKBgQDed7DOMJUc3kPTFEcN
|
||||
p/EbSh9TXxS/74cIyGid9IEiREJYxYv8kz0KplGuJolIQ3/Ik9Rac6B3Tu4WkW0g
|
||||
TPbNunYEsydZBAnaQ4eAVdOfvRQ6V3eBZ2vErsHJRFaj5cOcesUXxBZI6m2tQESx
|
||||
dBWFDNG9kztr0HmaL6Puz4zZIwKBgQDFOxfR7FcpGdw61ziSsZmtvkf6epkG3+ou
|
||||
uhY50J0UrTbK7TuimkoRw/XHeBe4db+ejOOuLD9QE/yXvmtEWuyUTTYOVvZ+HuNj
|
||||
Rp3kdi1GuWXn6gRvdlkf9XwW7jHmgkpbA5A+uDXs3EYYa18LxPNfMSvhyHdkFnUG
|
||||
aTzyYNpdAwKBgGv/QNan4Qt1nwluU5v+hl6QGir4AnO2zR/nYloj4ziGWIsNw4pm
|
||||
1ABCg25+iLCLDBKMKU+LyD+DErPj/0zp7/opZbecXSKqgjnyBGq5v5VRTeuQoJQy
|
||||
Z6/AgpS5VzITjWV+eAW0jHjzTTEI/RAEYZoIgh18xyDswMuoCvYYzbBvAoGBAMM2
|
||||
I/Nw+ywBHotWrfXztunSpidy5Ld7NKyfHpSGuJLYhpz/hcEA+ULwM/oEEWZPlSN2
|
||||
y3t+7AN0ZNREcqMrY3G9oj07ManPJL0EDg8sMNAJfKW4aD9yYfBR50pC5D0ExFel
|
||||
BUYuyaDwvKg6zc42V7PmVUqaQiFcYOPBkcNMvZTFAoGBALBtdt0iIvtBopp+IQaV
|
||||
zZMA5ZQIQ5n5v071LKa1s7ar3+hIoDRsZbM7XkUIA8zQlrwFRhbU5YFNcbpooQSm
|
||||
7j4+fIudcpxj9tAMGAb5yg89k1DjTy7FUWL9elGIgvJMqgF6IQ53+vR8xwGDyQLB
|
||||
sP5mizF1wi47DYPJQcDRCzU+
|
||||
-----END PRIVATE KEY-----
|
||||
|
|
|
@ -1,90 +1,133 @@
|
|||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 372739 (0x5b003)
|
||||
Serial Number: 373064 (0x5b148)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: CN=web-platform-tests
|
||||
Validity
|
||||
Not Before: Dec 20 12:20:36 2018 GMT
|
||||
Not After : Dec 17 12:20:36 2028 GMT
|
||||
Not Before: Oct 14 13:49:29 2019 GMT
|
||||
Not After : Oct 11 13:49:29 2029 GMT
|
||||
Subject: CN=web-platform.test
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:a9:c4:56:43:9e:78:e0:1a:b3:e3:d8:e8:ab:b6:
|
||||
1a:0c:ae:10:d7:86:04:34:32:ea:44:95:c2:06:dd:
|
||||
9b:44:f4:f3:40:a9:3d:b4:62:ca:fb:71:88:20:d6:
|
||||
f4:1d:ca:54:a8:d5:a2:b7:65:c0:5b:b5:fb:90:f1:
|
||||
87:da:ef:ea:3a:4e:24:dc:2a:21:26:4d:60:77:e2:
|
||||
b2:4f:c7:5b:77:ee:b2:73:ee:75:82:d0:98:c8:38:
|
||||
0a:ed:a5:22:00:23:cc:88:5e:40:2d:c3:94:e7:1d:
|
||||
c2:f9:00:00:bb:6a:59:62:54:cc:85:d7:95:15:c5:
|
||||
d7:93:52:09:af:c3:92:14:1b:37:d1:5f:d1:d4:56:
|
||||
10:85:bf:1b:6c:4b:e1:93:3a:80:cb:1c:5a:98:18:
|
||||
7e:10:73:ab:20:74:e1:2d:cd:43:ee:45:2e:75:cc:
|
||||
a4:f0:68:6e:10:a2:90:8a:7e:4b:e3:dc:c2:d9:d7:
|
||||
df:e4:d1:a2:4f:89:bb:cb:34:00:a9:90:c9:4f:15:
|
||||
86:59:7a:4b:ed:f9:6b:01:01:48:ed:8b:15:cc:f1:
|
||||
ff:58:a2:7d:97:57:d1:7b:31:7b:c3:b1:a6:54:81:
|
||||
e6:ee:62:de:ea:c5:a1:b4:c4:63:5e:cf:ca:e2:2c:
|
||||
88:50:07:cc:06:48:82:75:f1:98:b2:54:de:b6:ab:
|
||||
df:db
|
||||
00:ab:65:75:57:98:e3:e5:aa:8f:fe:db:18:f5:e4:
|
||||
f8:1c:64:61:c6:a3:f6:e8:7e:24:10:de:09:7a:24:
|
||||
bd:55:5f:51:a9:b5:82:0d:85:3a:b6:b1:48:5f:37:
|
||||
cb:42:6f:e7:07:cb:36:a9:3b:da:14:9b:0a:b0:a7:
|
||||
95:29:ee:d2:78:22:9e:ee:13:5f:f0:c1:2c:55:72:
|
||||
f0:9a:c0:6e:7f:3c:de:62:0f:b1:f6:c2:c9:84:a6:
|
||||
91:d7:39:cd:cb:97:4f:39:fe:0c:de:b3:ed:7e:36:
|
||||
7f:aa:01:19:a9:d5:b1:7f:be:3a:65:0f:a5:5d:1f:
|
||||
6a:c1:5b:7b:09:dc:30:28:05:aa:17:94:03:1f:79:
|
||||
10:05:0e:96:aa:6b:ef:65:c4:ca:cc:e5:69:14:1e:
|
||||
77:50:fa:e1:0c:ea:46:72:7a:f8:72:a7:4d:97:0c:
|
||||
fd:2f:2f:03:42:b4:f2:c6:07:47:a6:00:07:c2:ef:
|
||||
1a:70:44:65:46:4a:d1:2c:52:17:ff:99:cf:72:34:
|
||||
d6:8a:82:a0:4a:23:49:e8:a1:59:ee:53:74:46:74:
|
||||
a1:cf:d7:cb:dc:8e:d0:52:57:49:58:82:37:e0:f5:
|
||||
ad:3b:38:1b:b5:86:04:1f:7e:1a:1f:8b:60:72:75:
|
||||
f6:82:a4:10:0c:cc:58:65:bb:5b:b2:b3:a6:a1:56:
|
||||
42:69
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints:
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
F7:EE:CA:20:37:0F:BC:CF:F3:B7:DC:12:76:D1:D1:CA:40:67:3A:6D
|
||||
2A:18:0B:09:22:6E:28:D2:DB:FD:C2:2D:40:A6:F3:38:62:6E:C7:C5
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:7A:EA:6A:75:AA:23:78:B5:5E:06:61:4A:56:CF:56:A9:6D:B0:54:02
|
||||
keyid:41:49:FF:8C:66:50:5F:87:A1:06:A8:BB:AB:8A:DD:73:0D:0E:37:1A
|
||||
|
||||
X509v3 Key Usage:
|
||||
Digital Signature, Non Repudiation, Key Encipherment
|
||||
X509v3 Extended Key Usage:
|
||||
TLS Web Server Authentication
|
||||
X509v3 Subject Alternative Name:
|
||||
DNS:web-platform.test, DNS:not-web-platform.test, DNS:www.web-platform.test, DNS:www1.web-platform.test, DNS:www2.web-platform.test, DNS:www.not-web-platform.test, DNS:www2.not-web-platform.test, DNS:www1.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test
|
||||
DNS:web-platform.test, DNS:not-web-platform.test, DNS:www.web-platform.test, DNS:www1.web-platform.test, DNS:www2.web-platform.test, DNS:www.not-web-platform.test, DNS:www.www.web-platform.test, DNS:www2.not-web-platform.test, DNS:www1.not-web-platform.test, DNS:www.www2.web-platform.test, DNS:www2.www.web-platform.test, DNS:www1.www.web-platform.test, DNS:www.www1.web-platform.test, DNS:www1.www1.web-platform.test, DNS:www1.www2.web-platform.test, DNS:www2.www2.web-platform.test, DNS:www2.www1.web-platform.test, DNS:www.www.not-web-platform.test, DNS:www.www2.not-web-platform.test, DNS:www1.www.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:www.www1.not-web-platform.test, DNS:www2.www.not-web-platform.test, DNS:www2.www2.not-web-platform.test, DNS:www2.www1.not-web-platform.test, DNS:www1.www1.not-web-platform.test, DNS:www1.www2.not-web-platform.test, DNS:xn--lve-6lad.www.web-platform.test, DNS:www.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www1.web-platform.test, DNS:www2.xn--lve-6lad.web-platform.test, DNS:www1.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www2.web-platform.test, DNS:xn--lve-6lad.www.not-web-platform.test, DNS:www.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www1.not-web-platform.test, DNS:www2.xn--lve-6lad.not-web-platform.test, DNS:www1.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www2.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.not-web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.not-web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
63:c9:58:a8:38:b5:1f:2d:41:9f:06:a3:50:bc:a4:da:f5:e9:
|
||||
c6:05:64:0e:d6:7e:ee:31:8d:81:00:c1:90:fd:71:4d:3c:92:
|
||||
44:7f:c5:b6:be:fe:8d:c0:85:90:04:5c:20:08:88:47:8c:b6:
|
||||
0d:b4:1f:22:a8:10:a9:e7:0d:9d:a0:79:44:0b:f3:3a:77:e6:
|
||||
e2:89:f9:a4:ee:dc:e9:6c:6c:2c:1c:6f:c6:fb:e3:2c:36:a3:
|
||||
72:89:4e:c2:9c:51:23:cc:af:2f:9d:67:82:d2:59:ea:ff:fd:
|
||||
ef:7c:bc:c8:ff:a7:19:43:64:e6:5f:82:28:c9:de:8e:97:e6:
|
||||
42:e0:ca:74:e6:c8:e0:d3:6a:bc:04:ca:bb:53:f0:64:b1:31:
|
||||
98:af:e1:b8:6b:7d:0c:ad:b3:e0:29:00:1b:50:af:30:b3:fa:
|
||||
d4:d3:0e:45:4b:12:0d:5a:ea:11:cd:29:be:32:ea:4f:4f:7c:
|
||||
58:7d:e2:33:37:b9:ce:0f:94:00:6d:16:e4:91:6f:e6:4c:47:
|
||||
a7:cd:b7:f1:ab:86:68:e2:6e:c5:e9:60:b7:24:b1:aa:1b:f6:
|
||||
f5:ce:a4:03:bf:ed:20:92:a9:f7:ad:57:61:ef:d8:9a:b6:df:
|
||||
cb:2f:4d:3b:ab:8f:71:c4:f2:87:93:25:48:89:c5:9c:c8:d8:
|
||||
46:c5:5e:ac
|
||||
af:c2:ea:cc:6a:5e:49:e0:db:72:14:05:3c:21:a0:8b:ff:b6:
|
||||
a9:71:82:f7:61:cd:23:2a:00:66:91:ac:01:99:63:38:11:21:
|
||||
85:b2:57:92:0b:3f:79:68:f5:d8:59:8b:a7:74:19:eb:0b:e7:
|
||||
3d:86:4e:66:d4:e6:2f:ff:ed:6c:7d:9a:5e:12:4e:bf:39:ff:
|
||||
f7:d0:fb:52:53:a0:fb:b1:5c:9a:91:92:36:00:d8:a4:6f:f9:
|
||||
9c:36:21:b2:c2:5e:14:11:ca:55:e7:88:30:60:8d:86:da:65:
|
||||
26:ff:e2:45:36:2a:09:3d:a4:bb:38:61:4d:57:e4:c9:b6:50:
|
||||
3c:06:2f:6b:bf:04:34:42:54:dc:53:b6:61:c5:4e:40:00:d6:
|
||||
5e:19:17:3a:54:2c:c5:16:7a:6d:4a:70:56:45:cd:99:5a:2a:
|
||||
d1:a7:4e:35:97:3d:d8:c9:95:80:ab:15:42:86:f6:a0:a6:c3:
|
||||
21:c1:9a:07:34:49:ad:61:3c:bc:94:b2:2d:92:f7:44:80:01:
|
||||
5f:27:bd:83:f5:51:22:39:cd:98:b1:39:23:b8:f4:5c:08:20:
|
||||
9e:fe:f1:2d:9a:e9:9b:c7:5e:b8:33:8b:16:77:52:3d:c9:7a:
|
||||
43:9e:25:d0:c7:5a:96:08:53:1a:dc:75:53:75:44:62:18:7c:
|
||||
ef:fb:73:52
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEnDCCA4SgAwIBAgIDBbADMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
|
||||
Yi1wbGF0Zm9ybS10ZXN0czAeFw0xODEyMjAxMjIwMzZaFw0yODEyMTcxMjIwMzZa
|
||||
MIIMsjCCC5qgAwIBAgIDBbFIMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
|
||||
Yi1wbGF0Zm9ybS10ZXN0czAeFw0xOTEwMTQxMzQ5MjlaFw0yOTEwMTExMzQ5Mjla
|
||||
MBwxGjAYBgNVBAMMEXdlYi1wbGF0Zm9ybS50ZXN0MIIBIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAQ8AMIIBCgKCAQEAqcRWQ5544Bqz49joq7YaDK4Q14YENDLqRJXCBt2bRPTz
|
||||
QKk9tGLK+3GIINb0HcpUqNWit2XAW7X7kPGH2u/qOk4k3CohJk1gd+KyT8dbd+6y
|
||||
c+51gtCYyDgK7aUiACPMiF5ALcOU5x3C+QAAu2pZYlTMhdeVFcXXk1IJr8OSFBs3
|
||||
0V/R1FYQhb8bbEvhkzqAyxxamBh+EHOrIHThLc1D7kUudcyk8GhuEKKQin5L49zC
|
||||
2dff5NGiT4m7yzQAqZDJTxWGWXpL7flrAQFI7YsVzPH/WKJ9l1fRezF7w7GmVIHm
|
||||
7mLe6sWhtMRjXs/K4iyIUAfMBkiCdfGYslTetqvf2wIDAQABo4IB5DCCAeAwCQYD
|
||||
VR0TBAIwADAdBgNVHQ4EFgQU9+7KIDcPvM/zt9wSdtHRykBnOm0wHwYDVR0jBBgw
|
||||
FoAUeupqdaojeLVeBmFKVs9WqW2wVAIwCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoG
|
||||
CCsGAQUFBwMBMIIBbwYDVR0RBIIBZjCCAWKCEXdlYi1wbGF0Zm9ybS50ZXN0ghVu
|
||||
AAOCAQ8AMIIBCgKCAQEAq2V1V5jj5aqP/tsY9eT4HGRhxqP26H4kEN4JeiS9VV9R
|
||||
qbWCDYU6trFIXzfLQm/nB8s2qTvaFJsKsKeVKe7SeCKe7hNf8MEsVXLwmsBufzze
|
||||
Yg+x9sLJhKaR1znNy5dPOf4M3rPtfjZ/qgEZqdWxf746ZQ+lXR9qwVt7CdwwKAWq
|
||||
F5QDH3kQBQ6WqmvvZcTKzOVpFB53UPrhDOpGcnr4cqdNlwz9Ly8DQrTyxgdHpgAH
|
||||
wu8acERlRkrRLFIX/5nPcjTWioKgSiNJ6KFZ7lN0RnShz9fL3I7QUldJWII34PWt
|
||||
OzgbtYYEH34aH4tgcnX2gqQQDMxYZbtbsrOmoVZCaQIDAQABo4IJ+jCCCfYwCQYD
|
||||
VR0TBAIwADAdBgNVHQ4EFgQUKhgLCSJuKNLb/cItQKbzOGJux8UwHwYDVR0jBBgw
|
||||
FoAUQUn/jGZQX4ehBqi7q4rdcw0ONxowCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoG
|
||||
CCsGAQUFBwMBMIIJhQYDVR0RBIIJfDCCCXiCEXdlYi1wbGF0Zm9ybS50ZXN0ghVu
|
||||
b3Qtd2ViLXBsYXRmb3JtLnRlc3SCFXd3dy53ZWItcGxhdGZvcm0udGVzdIIWd3d3
|
||||
MS53ZWItcGxhdGZvcm0udGVzdIIWd3d3Mi53ZWItcGxhdGZvcm0udGVzdIIZd3d3
|
||||
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIad3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRl
|
||||
c3SCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gh54bi0tbHZlLTZsYWQud2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRl
|
||||
c3SCKXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gi14
|
||||
bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJ
|
||||
KoZIhvcNAQELBQADggEBAGPJWKg4tR8tQZ8Go1C8pNr16cYFZA7Wfu4xjYEAwZD9
|
||||
cU08kkR/xba+/o3AhZAEXCAIiEeMtg20HyKoEKnnDZ2geUQL8zp35uKJ+aTu3Ols
|
||||
bCwcb8b74yw2o3KJTsKcUSPMry+dZ4LSWer//e98vMj/pxlDZOZfgijJ3o6X5kLg
|
||||
ynTmyODTarwEyrtT8GSxMZiv4bhrfQyts+ApABtQrzCz+tTTDkVLEg1a6hHNKb4y
|
||||
6k9PfFh94jM3uc4PlABtFuSRb+ZMR6fNt/GrhmjibsXpYLcksaob9vXOpAO/7SCS
|
||||
qfetV2Hv2Jq238svTTurj3HE8oeTJUiJxZzI2EbFXqw=
|
||||
Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3Lnd3dy53ZWItcGxhdGZvcm0udGVz
|
||||
dIIad3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEubm90LXdlYi1wbGF0
|
||||
Zm9ybS50ZXN0ghp3d3cud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIad3d3Mi53d3cu
|
||||
d2ViLXBsYXRmb3JtLnRlc3SCGnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0ghp3
|
||||
d3cud3d3MS53ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cxLndlYi1wbGF0Zm9y
|
||||
bS50ZXN0ght3d3cxLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCG3d3dzIud3d3Mi53
|
||||
ZWItcGxhdGZvcm0udGVzdIIbd3d3Mi53d3cxLndlYi1wbGF0Zm9ybS50ZXN0gh13
|
||||
d3cud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIed3d3Lnd3dzIubm90LXdlYi1w
|
||||
bGF0Zm9ybS50ZXN0gh53d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCHnhu
|
||||
LS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdIIed3d3Lnd3dzEubm90LXdlYi1w
|
||||
bGF0Zm9ybS50ZXN0gh53d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3
|
||||
dzIud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5ub3Qtd2Vi
|
||||
LXBsYXRmb3JtLnRlc3SCH3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
|
||||
H3d3dzEud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC53
|
||||
d3cud2ViLXBsYXRmb3JtLnRlc3SCInd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRm
|
||||
b3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCI3hu
|
||||
LS1sdmUtNmxhZC53d3cxLndlYi1wbGF0Zm9ybS50ZXN0giN3d3cyLnhuLS1sdmUt
|
||||
NmxhZC53ZWItcGxhdGZvcm0udGVzdIIjd3d3MS54bi0tbHZlLTZsYWQud2ViLXBs
|
||||
YXRmb3JtLnRlc3SCI3huLS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9ybS50ZXN0
|
||||
giZ4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIImd3d3Lnhu
|
||||
LS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53
|
||||
d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdIInd3d3Mi54bi0tbHZlLTZsYWQubm90
|
||||
LXdlYi1wbGF0Zm9ybS50ZXN0gid3d3cxLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBs
|
||||
YXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53d3cyLm5vdC13ZWItcGxhdGZvcm0u
|
||||
dGVzdIIpeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SC
|
||||
K3huLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCLXhu
|
||||
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdIIteG4t
|
||||
LW44ajZkczUzbHd3a3JxaHYyOGEud3d3LndlYi1wbGF0Zm9ybS50ZXN0gi13d3cu
|
||||
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzEu
|
||||
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u
|
||||
OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzIu
|
||||
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1u
|
||||
OGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCL3huLS1s
|
||||
dmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF4bi0t
|
||||
bjhqNmRzNTNsd3drcnFodjI4YS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF3
|
||||
d3cueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0
|
||||
gjJ3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0u
|
||||
dGVzdIIyeG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi5ub3Qtd2ViLXBsYXRm
|
||||
b3JtLnRlc3SCMnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEubm90LXdlYi1w
|
||||
bGF0Zm9ybS50ZXN0gjJ3d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13
|
||||
ZWItcGxhdGZvcm0udGVzdII2eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2
|
||||
ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0gjZ4bi0tbHZlLTZsYWQueG4tLW44ajZk
|
||||
czUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUtNmxhZC54
|
||||
bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCOnhu
|
||||
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRm
|
||||
b3JtLnRlc3SCQXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3
|
||||
d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0gkV4bi0tbjhqNmRzNTNsd3drcnFo
|
||||
djI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRl
|
||||
c3QwDQYJKoZIhvcNAQELBQADggEBAK/C6sxqXkng23IUBTwhoIv/tqlxgvdhzSMq
|
||||
AGaRrAGZYzgRIYWyV5ILP3lo9dhZi6d0GesL5z2GTmbU5i//7Wx9ml4STr85//fQ
|
||||
+1JToPuxXJqRkjYA2KRv+Zw2IbLCXhQRylXniDBgjYbaZSb/4kU2Kgk9pLs4YU1X
|
||||
5Mm2UDwGL2u/BDRCVNxTtmHFTkAA1l4ZFzpULMUWem1KcFZFzZlaKtGnTjWXPdjJ
|
||||
lYCrFUKG9qCmwyHBmgc0Sa1hPLyUsi2S90SAAV8nvYP1USI5zZixOSO49FwIIJ7+
|
||||
8S2a6ZvHXrgzixZ3Uj3JekOeJdDHWpYIUxrcdVN1RGIYfO/7c1I=
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
@ -41,6 +41,7 @@ import os
|
|||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
try:
|
||||
from urllib2 import urlopen
|
||||
except ImportError:
|
||||
|
@ -149,20 +150,35 @@ def install_webkitgtk_from_apt_repository(channel):
|
|||
# Configure webkitgtk.org/debian repository for $channel and pin it with maximum priority
|
||||
run(["sudo", "apt-key", "adv", "--fetch-keys", "https://webkitgtk.org/debian/apt.key"])
|
||||
with open("/tmp/webkitgtk.list", "w") as f:
|
||||
f.write("deb [arch=amd64] https://webkitgtk.org/debian buster-wpt-webkit-updates %s\n" % channel)
|
||||
f.write("deb [arch=amd64] https://webkitgtk.org/apt bionic-wpt-webkit-updates %s\n" % channel)
|
||||
run(["sudo", "mv", "/tmp/webkitgtk.list", "/etc/apt/sources.list.d/"])
|
||||
with open("/tmp/99webkitgtk", "w") as f:
|
||||
f.write("Package: *\nPin: origin webkitgtk.org\nPin-Priority: 1999\n")
|
||||
run(["sudo", "mv", "/tmp/99webkitgtk", "/etc/apt/preferences.d/"])
|
||||
# Install webkit2gtk from the webkitgtk.org/debian repository for $channel
|
||||
# Install webkit2gtk from the webkitgtk.org/apt repository for $channel
|
||||
run(["sudo", "apt-get", "-qqy", "update"])
|
||||
run(["sudo", "apt-get", "-qqy", "upgrade"])
|
||||
run(["sudo", "apt-get", "-qqy", "-t", "buster-wpt-webkit-updates", "install", "webkit2gtk-driver"])
|
||||
run(["sudo", "apt-get", "-qqy", "-t", "bionic-wpt-webkit-updates", "install", "webkit2gtk-driver"])
|
||||
|
||||
|
||||
def install_webkitgtk_from_tarball_bundle(channel):
|
||||
with tempfile.NamedTemporaryFile(suffix=".tar.xz") as temp_tarball:
|
||||
resp = urlopen("https://webkitgtk.org/built-products/nightly/webkitgtk-nightly-build-last.tar.xz")
|
||||
while True:
|
||||
chunk = resp.read(16*1024)
|
||||
if not chunk:
|
||||
break
|
||||
temp_tarball.write(chunk)
|
||||
temp_tarball.flush()
|
||||
run(["sudo", "tar", "xfa", temp_tarball.name, "-C", "/"])
|
||||
# Install dependencies
|
||||
run(["sudo", "apt-get", "-qqy", "update"])
|
||||
run(["sudo", "/opt/webkitgtk/nightly/install-dependencies"])
|
||||
|
||||
|
||||
def install_webkitgtk(channel):
|
||||
if channel in ("experimental", "dev", "nightly"):
|
||||
raise NotImplementedError("Still can't install from release channel: %s" % channel)
|
||||
install_webkitgtk_from_tarball_bundle(channel)
|
||||
elif channel in ("beta", "stable"):
|
||||
install_webkitgtk_from_apt_repository(channel)
|
||||
else:
|
||||
|
|
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