mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update web-platform-tests to revision 14f4f8e2c8ec5868a7c50fe647555cd966ba08a3
This commit is contained in:
parent
3097eb7de9
commit
714a3cfe1e
101 changed files with 2305 additions and 206 deletions
|
@ -0,0 +1,5 @@
|
|||
[url-charset.window.html]
|
||||
expected: TIMEOUT
|
||||
[Blob charset should override any auto-detected charset.]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -5,9 +5,6 @@
|
|||
[[data-expected-height\] 7]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 1]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 2]
|
||||
[[data-expected-height\] 4]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[box-shadow-overlapping-003.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[box-shadow-overlapping-004.html]
|
||||
expected: FAIL
|
|
@ -2,3 +2,6 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
[MediaQueryList-extends-EventTarget.html]
|
||||
[addEventListener "once" option is respected]
|
||||
expected: FAIL
|
||||
|
||||
[onchange removes listener]
|
||||
expected: FAIL
|
||||
|
||||
[onchange adds listener]
|
||||
expected: FAIL
|
||||
|
||||
[listeners for "change" type are called]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -324,12 +324,12 @@
|
|||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,6 +53,6 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_2.html]
|
||||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
[opener of discarded nested browsing context]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a sRGB SVG image with resize.]
|
||||
expected: TIMEOUT
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (BMP, ICO, PNG, WEBP) with resize.]
|
||||
expected: FAIL
|
||||
|
@ -51,3 +51,75 @@
|
|||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (AVIF, BMP, GIF, ICO, JPG, PNG, WEBP) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (gif) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (avif) with resize.]
|
||||
expected: TIMEOUT
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB Blob (png) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB Blob (bmp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (ico) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (bmp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (gif) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (jpg) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (avif) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (jpg) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (webp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (webp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (ico) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (webp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB Blob (webp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (png) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (bmp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (png) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB Blob (avif) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (png) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (ico) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (bmp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB Blob (ico) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (avif) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,17 +1,16 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -171,3 +171,6 @@
|
|||
[XHTML img usemap="#hash-id"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (standards) IMG usemap="no-hash-name"]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[remove-dialog-should-unblock-document.html]
|
||||
[Test that removing dialog unblocks the document.]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[checkpoint-after-workerglobalscope-onerror-module.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[module-static-import-delayed.html]
|
||||
[document.write in an imported module]
|
||||
expected: FAIL
|
||||
|
|
@ -3,6 +3,3 @@
|
|||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,661 @@
|
|||
[protocol.https.html]
|
||||
[registerProtocolHandler: overriding the "TEL" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "http://example.com/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "mid" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "webcal" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html#%s" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "web+1" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "ssh:/" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "vbscript" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "moz-icon" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "ftp" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "WEB+seeabove" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "nntp" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "http://%s.com" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "web+" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "chrome" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "web+UpperCasedIsLowercased" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "https://web-platform.test:%s8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "wyciwyg" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "https" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "https://example.com/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "fweb+oo" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "view-source" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "mailto:" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%a" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "h%sttps://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "ssh:/" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "mailto:%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html?foo=%s&bar" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "mailto" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "http://%s.com" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "http://[v8.:::\]//url=%s" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "http" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "smsto" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "%shttps://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "https://test:test/" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "im" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "%s" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "web+" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "mailto\x00" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "fweb+oo" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "operamail" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "mаilto" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "mocha" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "web+dashes-are-forbidden" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "WeB+SeEaBoVe" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "Irc" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "BitcoIn" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "livescript" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "http://example.com" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "blob: URL" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "javascript" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "bitcoin" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "%shttps://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "geo" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "res" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/bar/baz/" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "magnet" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "web+digits123areforbidden" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "http://foobar.example.com/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "https://test:test/" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "about" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "data" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "http://example.com/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "mid" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "teL" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "%S" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "ftp://web-platform.test:8443/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "mocha" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "MagneT" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/foo/%s/" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "ws" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "tel:sip" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "news" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "wss" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "unrecognized" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "ircs" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "irc" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "urn" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "BitcoIn" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html?foo=%s" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[the unregisterProtocolHandler method should exist on the navigator object]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "blob: URL" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "openpgp4fpr" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "blob" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "WTAI" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "sms" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "ftp" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "irc" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "mailto:%s@example.com" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "%S" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "shttp" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "mailto:%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "res" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "mailto://" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "http://example.com" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "web+dots.are.forbidden" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "resource" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "operamail" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "%s" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "data" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "webcal" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "im" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "ftp://web-platform.test:8443/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "tcl" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "attachment" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "chrome://web-platform.test:8443/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "mailtoo\x08" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "geo" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "WebCAL" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/bar/baz/?foo=1337&bar#baz" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[the registerProtocolHandler method should exist on the navigator object]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "https:%s//web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "foo://web-platform.test:8443/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "wss" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "foo/%s" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "chrome://web-platform.test:8443/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/bar/baz/" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "vbscript" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "foo" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "h%sttps://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "mms" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "WEB+seeabove" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "ssh" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "WTAI" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%a" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "magnet" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "cid" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "teL" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "tcl" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "http://" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "ws" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "web+dots.are.forbidden" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "resource" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "sms" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "mms" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "Irc" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "attachment" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "livescript" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "bitcoin" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "magnet:+" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "web+myprotocol" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "opera" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/bar/baz/?foo=1337&bar#baz" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "opera" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "web+digits123areforbidden" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "MagneT" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "WeB+SeEaBoVe" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "mailto://" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "mailto:%s@example.com" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "mailto" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "magnet:+" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "xmpp" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "wtai" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html?foo=%s" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "tel:sip" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "foo://web-platform.test:8443/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "chrome" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "http://[v8.:::\]//url=%s" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "javascript" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "unrecognized" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "blob" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "web+1" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "http://" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "WebCAL" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "https" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "mailto:" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "file" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "ssh" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "http://%s.example.com" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "file" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "mаilto" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "openpgp4fpr" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "mailto\x00" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "mailto\n" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "sip" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "mailtoo\x08" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "https://example.com/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "http" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "wtai" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "shttp" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "TEL" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "about" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "http://foobar.example.com/%s" should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "wyciwyg" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "https:%s//web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "view-source" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "cid" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "sip" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "https://%sweb-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "mailto\n" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "SmsTo" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "nntp" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html/%s/foo/%s/" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "foo" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "web+UpperCasedIsLowercased" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "SmsTo" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "ircs" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "foo/%s" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html?foo=%s&bar" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "xmpp" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "web+myprotocol" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "https://web-platform.test:%s8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "news" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Attempting to override the "web+dashes-are-forbidden" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: overriding the "tel" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Attempting to override the "moz-icon" protocol should throw SECURITY_ERR.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "http://%s.example.com" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "https://%sweb-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "urn" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "https://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html#%s" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "smsto" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: overriding the "tel" protocol should work]
|
||||
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,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -1,8 +1,7 @@
|
|||
[shared-worker-in-data-url-context.window.html]
|
||||
expected: TIMEOUT
|
||||
[Create a shared worker in a data url frame]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Create a data url shared worker in a data url frame]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
5
tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini
Normal file
5
tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
[url-charset.window.html]
|
||||
expected: TIMEOUT
|
||||
[Blob charset should override any auto-detected charset.]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -122690,6 +122690,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"background-size-percentage-root.html": [
|
||||
"896ce85336ed35daa4b80dc43c7d968966cda810",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-backgrounds/background-size-percentage-root-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"background-size-with-negative-value.html": [
|
||||
"a9d57f86d604a9b01e9ace6d7fce0f8a34cdbc5d",
|
||||
[
|
||||
|
@ -123600,6 +123613,58 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"box-shadow-overlapping-001.html": [
|
||||
"a1ea7cd4a569cb6b4b6ff4ab6ce6cacbe796895e",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-backgrounds/reference/box-shadow-overlapping-001-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"box-shadow-overlapping-002.html": [
|
||||
"e00e0e0808b4839f6e2c9aa3fea4c8c12e5b474b",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-backgrounds/reference/box-shadow-overlapping-001-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"box-shadow-overlapping-003.html": [
|
||||
"727162934aa76b9f145da26f491582163b980ff5",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-backgrounds/reference/box-shadow-overlapping-003-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"box-shadow-overlapping-004.html": [
|
||||
"6c6a9d7f5fb903371aa7bdf91f8f12903bc67f7f",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-backgrounds/reference/box-shadow-overlapping-003-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"box-shadow-table-border-collapse-001.html": [
|
||||
"a4413ee97ffa0816294700a60f2f82e37d3762f0",
|
||||
[
|
||||
|
@ -156945,7 +157010,7 @@
|
|||
]
|
||||
],
|
||||
"multicol-overflow-clip-auto-sized.html": [
|
||||
"70a4723637ffa83a85e27028de7b8b758a5f1d5b",
|
||||
"f48d55c3184af85698315ae93c57702a2b4038b3",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -158570,7 +158635,7 @@
|
|||
]
|
||||
],
|
||||
"non-adjacent-spanners-001.html": [
|
||||
"fa8dfc8bcdf243277f37daccdf3d3991bf2eda33",
|
||||
"5371f2acc9de097d7456d064dfde3c21d2a5783d",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -292108,6 +292173,10 @@
|
|||
"bd965cfecff2647fdbccc1898c67d371c69cf9b7",
|
||||
[]
|
||||
],
|
||||
"background-size-percentage-root-ref.html": [
|
||||
"166f9e987bf5b3e64df2a0f1c87c29dfdfe97af3",
|
||||
[]
|
||||
],
|
||||
"border-bottom-left-radius-004-ref.xht": [
|
||||
"15732f1c068b5890c7f65d2e7b561408cccde8e5",
|
||||
[]
|
||||
|
@ -292443,6 +292512,14 @@
|
|||
"2bca4c6961b88faaafb8d621ca222faee48256ef",
|
||||
[]
|
||||
],
|
||||
"box-shadow-overlapping-001-ref.html": [
|
||||
"9b875c79fa6ef764c4d337a7e8375e3c1acff591",
|
||||
[]
|
||||
],
|
||||
"box-shadow-overlapping-003-ref.html": [
|
||||
"677a5f3312e76854a7b3fddd1e7aff1a02366809",
|
||||
[]
|
||||
],
|
||||
"box-shadow-table-border-collapse-001-ref.html": [
|
||||
"fb2734a7c1a21a76f262703c9b6e3078ff3eae1d",
|
||||
[]
|
||||
|
@ -305209,7 +305286,7 @@
|
|||
[]
|
||||
],
|
||||
"multicol-overflow-clip-auto-sized-ref.html": [
|
||||
"8b68172a8f2450e763ec52c4d5b5e67036858c02",
|
||||
"95a6e0cb2ca213bd788334d447457ebd7f0b174b",
|
||||
[]
|
||||
],
|
||||
"multicol-overflow-clip-positioned-ref.html": [
|
||||
|
@ -325347,7 +325424,7 @@
|
|||
],
|
||||
"resources": {
|
||||
"crossiframe-childframe.html": [
|
||||
"58294ae02c23baf1376b77ba9f642ff7b4e59c66",
|
||||
"6a8bc6b64240636dbc576aaa15b9c86b799dae8e",
|
||||
[]
|
||||
],
|
||||
"event-timing-test-utils.js": [
|
||||
|
@ -337431,11 +337508,7 @@
|
|||
"bf6a1ae5bfe16e4fd50296636894859a0ee25ec1",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"target_blank_implicit_noopener.html.ini": [
|
||||
"532ba627866dd5ad0c0fd598a51d77e9effc3921",
|
||||
[]
|
||||
]
|
||||
}
|
||||
},
|
||||
"linktypes": {
|
||||
"alternate-css-ref.html": [
|
||||
|
@ -337714,6 +337787,22 @@
|
|||
"2a6cc3302962e4bc4fe1c180aea76bbf09ca68a4",
|
||||
[]
|
||||
],
|
||||
"microtasks": {
|
||||
"resources": {
|
||||
"checkpoint-after-error-event-worker-module.js": [
|
||||
"b9ae7142d503f8429444d0eb0cbb175965508f62",
|
||||
[]
|
||||
],
|
||||
"checkpoint-after-error-event-worker.js": [
|
||||
"4694db1e4454ce9a434528a3200b613886106b25",
|
||||
[]
|
||||
],
|
||||
"checkpoint-after-error-event.js": [
|
||||
"f415732aa68dd529dcdacc49fb0d0ca6816c1249",
|
||||
[]
|
||||
]
|
||||
}
|
||||
},
|
||||
"module": {
|
||||
"bad-module-specifier.js": [
|
||||
"a53a3bebe71c3ecf6dde791ea9e62f7f8ee82a2e",
|
||||
|
@ -342855,13 +342944,13 @@
|
|||
],
|
||||
"concurrent_io": {
|
||||
"operation_helpers.js": [
|
||||
"71cbc29efa0c4832ac828fee00bf75fd93409212",
|
||||
"76804cab72dfa3d2ed977d437bc7499046059706",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"resources": {
|
||||
"support.js": [
|
||||
"90bb9120bc538ff3fb669bd75e5661957cc0d85b",
|
||||
"bf7cf5a02468eb769c6493a8c5c79eebc455f292",
|
||||
[]
|
||||
]
|
||||
}
|
||||
|
@ -343650,7 +343739,7 @@
|
|||
[]
|
||||
],
|
||||
"pointerevent_support.js": [
|
||||
"7f291d7609a10be9756bbafd7a5672f5c215a6a1",
|
||||
"6cbc8d69f393ce42c269f0906d1c1d845d778b52",
|
||||
[]
|
||||
],
|
||||
"pointerlock": {
|
||||
|
@ -346596,7 +346685,7 @@
|
|||
[]
|
||||
],
|
||||
"testharness.js": [
|
||||
"274dc9d7d890dba7d98985feac9533dd62450433",
|
||||
"2bbc935de40505cd7673f3788905786f6d66daff",
|
||||
[]
|
||||
],
|
||||
"testharness.js.headers": [
|
||||
|
@ -357931,12 +358020,12 @@
|
|||
[]
|
||||
],
|
||||
"chromium.py": [
|
||||
"445063d55b7c3278548304c7b2cb7cf3838d8e5c",
|
||||
"0c2fc4081386a36922b9a8f7604fd21b2313aa35",
|
||||
[]
|
||||
],
|
||||
"tests": {
|
||||
"test_chromium.py": [
|
||||
"efff5f02a48240eea676d44d83f97a9c398a3781",
|
||||
"59f39c1e71b200146063cbd6e5201405d8871646",
|
||||
[]
|
||||
]
|
||||
},
|
||||
|
@ -431803,7 +431892,7 @@
|
|||
]
|
||||
],
|
||||
"buffered-and-duration-threshold.html": [
|
||||
"66be7663c114d1055866c59f075ff5352acfcdf3",
|
||||
"dbc9d92bf04e0a5b40033073b88bad1fc533836a",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -431848,7 +431937,7 @@
|
|||
]
|
||||
],
|
||||
"crossiframe.html": [
|
||||
"dfbd2897ad4bb5bfd4edeb2cdc17afc438e37962",
|
||||
"147e144631df10ef9e829e9978828e40b1289ceb",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -444069,7 +444158,7 @@
|
|||
]
|
||||
],
|
||||
"canvas-createImageBitmap-e_srgb.html": [
|
||||
"4bb44757ffcf7d898776f37c6d916128c38858e1",
|
||||
"fd9a5e96d1f635b45cf6bacfa1697590ba6361fb",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -458101,6 +458190,15 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"popup-redirect-same-origin-allow-popups.https.html": [
|
||||
"7690f23ac5b91fb94a52bc6af4a5ba7d3184685e",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"popup-same-origin-allow-popups-with-cross-origin.https.html": [
|
||||
"74ded50d6677abeb0e7308ebd17f402e2e6438ca",
|
||||
[
|
||||
|
@ -468264,6 +468362,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"remove-dialog-should-unblock-document.html": [
|
||||
"2f2fbad1fc65b02296fbc05ad4bc9c17e66f584e",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"show-modal-focusing-steps.html": [
|
||||
"164b41459d17605ebcd447f3f879130cbf022d00",
|
||||
[
|
||||
|
@ -469935,6 +470040,36 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"microtasks": {
|
||||
"checkpoint-after-window-onerror-module.html": [
|
||||
"728ce32c38ce042993388fff8a6dd5e00fdd17cf",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"checkpoint-after-window-onerror.html": [
|
||||
"72a197ca6abbde461103766245dbc142fbb3a018",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"checkpoint-after-workerglobalscope-onerror-module.html": [
|
||||
"ff2b5d49432ce68ba0deb6ced14f6d4706144097",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"checkpoint-after-workerglobalscope-onerror.html": [
|
||||
"1932c7183bb10973a8f86d4eaf01c9308d11ccbe",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"module": {
|
||||
"charset-01.html": [
|
||||
"7cd49163097cd5ac6cb426319e037b86ecca5bd0",
|
||||
|
@ -475443,7 +475578,7 @@
|
|||
]
|
||||
],
|
||||
"protocol.https.html": [
|
||||
"d8e064d66fa3870bbdab5636394aca8fa4bf6f9e",
|
||||
"f4dca7d69d7e49bc8564d62007c6062e79b994b7",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -483219,7 +483354,7 @@
|
|||
},
|
||||
"native-io": {
|
||||
"close_async.tentative.https.any.js": [
|
||||
"a2b692e295086564f25730eace0a677529c168d9",
|
||||
"0338cda62ddd2b6aa9678155bdb2318de0c31861",
|
||||
[
|
||||
"native-io/close_async.tentative.https.any.html",
|
||||
{
|
||||
|
@ -483282,7 +483417,7 @@
|
|||
]
|
||||
],
|
||||
"close_sync.tentative.https.any.js": [
|
||||
"b5fb2880919c30592edcf0687a0ac8ed9fcbc7f8",
|
||||
"834265f2255a5fe129fca6d9897b836059660677",
|
||||
[
|
||||
"native-io/close_sync.tentative.https.any.worker.html",
|
||||
{
|
||||
|
@ -483300,6 +483435,101 @@
|
|||
]
|
||||
],
|
||||
"concurrent_io": {
|
||||
"concurrent_io_flush_async.tentative.https.any.js": [
|
||||
"7436b86b704dfac99f84f38c74eae25408703115",
|
||||
[
|
||||
"native-io/concurrent_io/concurrent_io_flush_async.tentative.https.any.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"NativeIO API: Concurrent io while flush is resolving."
|
||||
],
|
||||
[
|
||||
"global",
|
||||
"window,worker"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"operation_helpers.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"../resources/support.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"native-io/concurrent_io/concurrent_io_flush_async.tentative.https.any.serviceworker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"NativeIO API: Concurrent io while flush is resolving."
|
||||
],
|
||||
[
|
||||
"global",
|
||||
"window,worker"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"operation_helpers.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"../resources/support.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"native-io/concurrent_io/concurrent_io_flush_async.tentative.https.any.sharedworker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"NativeIO API: Concurrent io while flush is resolving."
|
||||
],
|
||||
[
|
||||
"global",
|
||||
"window,worker"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"operation_helpers.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"../resources/support.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"native-io/concurrent_io/concurrent_io_flush_async.tentative.https.any.worker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"NativeIO API: Concurrent io while flush is resolving."
|
||||
],
|
||||
[
|
||||
"global",
|
||||
"window,worker"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"operation_helpers.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"../resources/support.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"concurrent_io_getLength_async.tentative.https.any.js": [
|
||||
"d542188738e5d55377f9eefe39ea7a67fb792f54",
|
||||
[
|
||||
|
@ -483667,6 +483897,107 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"flush_async_basic.tentative.https.any.js": [
|
||||
"2036d22a3822fc8252794758012cc5a77a26f003",
|
||||
[
|
||||
"native-io/flush_async_basic.tentative.https.any.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Synchronous NativeIO API: Flushed data is read back."
|
||||
],
|
||||
[
|
||||
"global",
|
||||
"window,worker"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"resources/support.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"native-io/flush_async_basic.tentative.https.any.serviceworker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Synchronous NativeIO API: Flushed data is read back."
|
||||
],
|
||||
[
|
||||
"global",
|
||||
"window,worker"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"resources/support.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"native-io/flush_async_basic.tentative.https.any.sharedworker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Synchronous NativeIO API: Flushed data is read back."
|
||||
],
|
||||
[
|
||||
"global",
|
||||
"window,worker"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"resources/support.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"native-io/flush_async_basic.tentative.https.any.worker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Synchronous NativeIO API: Flushed data is read back."
|
||||
],
|
||||
[
|
||||
"global",
|
||||
"window,worker"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"resources/support.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"flush_sync_basic.tentative.https.any.js": [
|
||||
"c5a1268e0d2154058cf3e13e83dfeaddd7db82f7",
|
||||
[
|
||||
"native-io/flush_sync_basic.tentative.https.any.worker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Synchronous NativeIO API: Flushed data is read back."
|
||||
],
|
||||
[
|
||||
"global",
|
||||
"dedicatedworker"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"resources/support.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"open_getAll_async_basic.tentative.https.any.js": [
|
||||
"0487ef5e2f2f2908b82d78994ba2675cf9e1c2df",
|
||||
[
|
||||
|
@ -487603,7 +487934,7 @@
|
|||
]
|
||||
],
|
||||
"pointerevent_mouse-on-object.html": [
|
||||
"fa0e97ff30c234c3311eadacef094e3c0b385acf",
|
||||
"78edfbde1b81d963e767e36bca0faf9133b935d8",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -514255,7 +514586,7 @@
|
|||
]
|
||||
],
|
||||
"trusted-types-source-file-path.tentative.html": [
|
||||
"61adb2993431aef169a04afac27d3dcd36e267d6",
|
||||
"6e87c25a7f0998a2117de2f73f4adc3df9b024b5",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -520738,7 +521069,7 @@
|
|||
]
|
||||
],
|
||||
"setting-the-timeline-of-an-animation.html": [
|
||||
"7e98ef4260f778c4257203f92db39a6bdaa92871",
|
||||
"dd8617503951aafd71015d591914a1b54e3907a7",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -8,9 +8,6 @@
|
|||
[[data-expected-height\] 3]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 1]
|
||||
expected: FAIL
|
||||
|
||||
[[data-expected-height\] 2]
|
||||
[[data-expected-height\] 4]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[box-shadow-overlapping-003.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[box-shadow-overlapping-004.html]
|
||||
expected: FAIL
|
|
@ -2,3 +2,6 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
[MediaQueryList-extends-EventTarget.html]
|
||||
expected: TIMEOUT
|
||||
[removeEventListener removes listener]
|
||||
expected: NOTRUN
|
||||
|
||||
[addEventListener "once" option is respected]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -324,12 +324,12 @@
|
|||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,6 +53,6 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_2.html]
|
||||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
[opener and "removed" embedded documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a sRGB SVG image with resize.]
|
||||
expected: TIMEOUT
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (BMP, ICO, PNG, WEBP) with resize.]
|
||||
expected: FAIL
|
||||
|
@ -51,3 +51,75 @@
|
|||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (AVIF, BMP, GIF, ICO, JPG, PNG, WEBP) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (gif) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (avif) with resize.]
|
||||
expected: TIMEOUT
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB Blob (png) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB Blob (bmp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (ico) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (bmp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (gif) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (jpg) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (avif) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (jpg) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (webp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (webp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (ico) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (webp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB Blob (webp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (png) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (bmp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB Blob (png) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB Blob (avif) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (png) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (ico) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (bmp) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB Blob (ico) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
[createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (avif) with resize.]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -7,11 +6,11 @@
|
|||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -172,3 +172,6 @@
|
|||
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (standards) IMG usemap="no-hash-name"]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[remove-dialog-should-unblock-document.html]
|
||||
[Test that removing dialog unblocks the document.]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[checkpoint-after-workerglobalscope-onerror-module.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[module-static-import-delayed.html]
|
||||
[document.write in an imported module]
|
||||
expected: FAIL
|
||||
|
|
@ -4,6 +4,3 @@
|
|||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -629,3 +629,45 @@
|
|||
[unregisterProtocolHandler: overriding the "tel" protocol should work]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "http://%s.com" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "https://web-platform.test:%s8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "h%sttps://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "http://%s.com" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "%shttps://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "%shttps://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "https:%s//web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Valid URL "h%sttps://web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "http://%s.example.com" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Valid URL "https:%s//web-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should work.]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "https://%sweb-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "https://web-platform.test:%s8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[unregisterProtocolHandler: Invalid URL "http://%s.example.com" should throw (but after scheme)]
|
||||
expected: FAIL
|
||||
|
||||
[registerProtocolHandler: Invalid URL "https://%sweb-platform.test:8443/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html" should throw (but after scheme)]
|
||||
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,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -1,8 +1,7 @@
|
|||
[shared-worker-in-data-url-context.window.html]
|
||||
expected: TIMEOUT
|
||||
[Create a shared worker in a data url frame]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Create a data url shared worker in a data url frame]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<!doctype html>
|
||||
<title>Percentage background-size on the root</title>
|
||||
<style>
|
||||
div {
|
||||
width: 100px;
|
||||
height: 50px;
|
||||
background-color: lime;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
</style>
|
||||
<div></div>
|
|
@ -0,0 +1,17 @@
|
|||
<!doctype html>
|
||||
<title>Percentage background-size on the root, when it's out-of-flow</title>
|
||||
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
|
||||
<link rel="author" href="https://mozilla.org" title="Mozilla">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-backgrounds/#background-size">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1658140">
|
||||
<link rel="match" href="background-size-percentage-root-ref.html">
|
||||
<style>
|
||||
:root {
|
||||
position: fixed;
|
||||
width: 100px;
|
||||
height: 50px;
|
||||
background-size: 100%;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url('/images/green-100x50.png');
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Background and Borders Test: box-shadow and overlapping of adjacent text</title>
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#shadow-layers" >
|
||||
<link rel="match" href="reference/box-shadow-overlapping-001-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
|
||||
<meta content="" name="flags">
|
||||
<meta content="Box shadows do not affect layout. Box shadows take up no space. Box shadows do not affect or influence normal flow of boxes. Therefore, box shadows can 'collide' with other boxes and can overlap other boxes (inline box or line box) or be overlapped by other boxes. In this test, the text ('PED') is before a left outer box-shadow box and such left outer box-shadow box is wide and wide enough to overlap the text 'PED'." name="assert">
|
||||
|
||||
<style>
|
||||
div
|
||||
{
|
||||
color: red;
|
||||
float: left;
|
||||
font-family: Ahem;
|
||||
font-size: 100px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
span
|
||||
{
|
||||
color: green;
|
||||
box-shadow: -3em 0em;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
omitted colors default to the value of the color property.
|
||||
|
||||
1st <length>
|
||||
Specifies the horizontal offset of the shadow. A positive value
|
||||
draws a shadow that is offset to the right of the box, a negative
|
||||
length to the left.
|
||||
|
||||
2nd <length>
|
||||
Specifies the vertical offset of the shadow. A positive value
|
||||
offsets the shadow down, a negative one up.
|
||||
|
||||
*/
|
||||
</style>
|
||||
|
||||
<p>Test passes if there is a filled green rectangle and <strong>no red</strong>.
|
||||
|
||||
<div>PED<span>PNG</span></div>
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Background and Borders Test: box-shadow and overlapping of adjacent text</title>
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#shadow-layers" >
|
||||
<link rel="match" href="reference/box-shadow-overlapping-001-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
|
||||
<meta content="" name="flags">
|
||||
<meta content="Box shadows do not affect layout. Box shadows take up no space. Box shadows do not affect or influence normal flow of boxes. Therefore, box shadows can 'collide' with other boxes and can overlap other boxes (inline box or line box) or be overlapped by other boxes. In this test, the text ('PNG') follows a right outer box shadow and therefore overlaps such shadow." name="assert">
|
||||
|
||||
<style>
|
||||
div
|
||||
{
|
||||
background-color: yellow;
|
||||
color: green;
|
||||
float: left;
|
||||
font-family: Ahem;
|
||||
font-size: 100px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
span
|
||||
{
|
||||
box-shadow: 3em 0em red;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
omitted colors default to the value of the color property.
|
||||
|
||||
1st <length>
|
||||
Specifies the horizontal offset of the shadow. A positive value
|
||||
draws a shadow that is offset to the right of the box, a negative
|
||||
length to the left.
|
||||
|
||||
2nd <length>
|
||||
Specifies the vertical offset of the shadow. A positive value
|
||||
offsets the shadow down, a negative one up.
|
||||
|
||||
*/
|
||||
</style>
|
||||
|
||||
<p>Test passes if there is a filled green rectangle and <strong>no red</strong>.
|
||||
|
||||
<div><span>PED</span>PNG</div>
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Background and Borders Test: box-shadow and overlapping of adjacent text</title>
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#shadow-layers" >
|
||||
<link rel="match" href="reference/box-shadow-overlapping-003-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
|
||||
<meta content="" name="flags">
|
||||
<meta content="Box shadows do not affect layout. Box shadows take up no space. Box shadows do not affect or influence normal flow of boxes. Therefore, box shadows can 'collide' with other boxes and can overlap other boxes (inline box or line box) or be overlapped by other boxes. In this test, the text ('OVLPED') is from a previous line box and is overlapped by a top outer box shadow box that is tall enough to overlap it entirely." name="assert">
|
||||
|
||||
<style>
|
||||
div
|
||||
{
|
||||
float: left;
|
||||
font-family: Ahem;
|
||||
font-size: 100px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
div#previous-line-box
|
||||
{
|
||||
color: red;
|
||||
}
|
||||
|
||||
div#outer-box-shadow
|
||||
{
|
||||
box-shadow: 0em -1em;
|
||||
clear: left;
|
||||
color: green;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
omitted colors default to the value of the color property.
|
||||
|
||||
1st <length>
|
||||
Specifies the horizontal offset of the shadow. A positive value
|
||||
draws a shadow that is offset to the right of the box, a negative
|
||||
length to the left.
|
||||
|
||||
2nd <length>
|
||||
Specifies the vertical offset of the shadow. A positive value
|
||||
offsets the shadow down, a negative one up.
|
||||
|
||||
*/
|
||||
</style>
|
||||
|
||||
<p>Test passes if there is a filled green rectangle and <strong>no red</strong>.
|
||||
|
||||
<div id="previous-line-box">OVLPED</div>
|
||||
|
||||
<div id="outer-box-shadow">OVLPNG</div>
|
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Background and Borders Test: box-shadow and overlapping of adjacent text</title>
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#shadow-layers" >
|
||||
<link rel="match" href="reference/box-shadow-overlapping-003-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
|
||||
|
||||
<meta content="" name="flags">
|
||||
<meta content="Box shadows do not affect layout. Box shadows take up no space. Box shadows do not affect or influence normal flow of boxes. Therefore, box shadows can 'collide' with other boxes and can overlap other boxes (inline box or line box) or be overlapped by other boxes. This test checks that the background of the following line box overlaps the box-shadow of an inline non-replaced box whose box-shadow expands onto and over the following line box. In this test, the box shadow of div#outer-box-shadow is red and protudes out and below onto the following line box. But since the glyphs of div#following-line-box are green, then such green color will overlap the red box shadow of div#outer-box-shadow." name="assert">
|
||||
|
||||
<style>
|
||||
div
|
||||
{
|
||||
color: green;
|
||||
float: left;
|
||||
font-family: Ahem;
|
||||
font-size: 100px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
div#outer-box-shadow
|
||||
{
|
||||
box-shadow: 0em 1em red;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
1st <length>
|
||||
Specifies the horizontal offset of the shadow. A positive value
|
||||
draws a shadow that is offset to the right of the box, a negative
|
||||
length to the left.
|
||||
|
||||
2nd <length>
|
||||
Specifies the vertical offset of the shadow. A positive value
|
||||
offsets the shadow down, a negative one up.
|
||||
|
||||
*/
|
||||
|
||||
div#following-line-box
|
||||
{
|
||||
clear: left;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>Test passes if there is a filled green rectangle and <strong>no red</strong>.
|
||||
|
||||
<div id="outer-box-shadow">OVLPED</div>
|
||||
|
||||
<div id="following-line-box">OVLPNG</div>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Reference Test</title>
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
|
||||
<style>
|
||||
div
|
||||
{
|
||||
background-color: green;
|
||||
height: 100px;
|
||||
width: 600px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>Test passes if there is a filled green rectangle and <strong>no red</strong>.
|
||||
|
||||
<div></div>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
|
||||
<title>CSS Reference Test</title>
|
||||
|
||||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
|
||||
|
||||
<style>
|
||||
div
|
||||
{
|
||||
background-color: green;
|
||||
height: 200px;
|
||||
width: 600px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<p>Test passes if there is a filled green rectangle and <strong>no red</strong>.
|
||||
|
||||
<div></div>
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<div style="columns: 2">
|
||||
<div>Column1</div>
|
||||
<div style="padding: 2px">Column2<br>Column2 line2</div>
|
||||
<div style="break-inside: avoid; padding: 2px">Column2<br>Column2 line2</div>
|
||||
</div>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<title>CSS Multi-column Layout Test: multicol with overflow-clipped content</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-break/#possible-breaks">
|
||||
<link rel="match" href="multicol-overflow-clip-auto-sized-ref.html">
|
||||
<meta name="assert" content="Overflow clip sized to content should not clip even under multicol.">
|
||||
<div style="columns: 2">
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/#spanning-columns">
|
||||
<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; column-gap:0; width:100px; background:red;">
|
||||
<div style="columns:2; column-gap:0; width:100px; background:red;">
|
||||
<div style="height:200px; background:green;">
|
||||
<div style="column-span:all;"></div>
|
||||
</div>
|
||||
|
|
|
@ -24,13 +24,17 @@ promise_test(async t => {
|
|||
const afterFirstClick = performance.now();
|
||||
new PerformanceObserver(t.step_func(list => {
|
||||
const mouseDowns = list.getEntriesByName('mousedown');
|
||||
if (mouseDowns.length === 0)
|
||||
return;
|
||||
assert_equals(mouseDowns.length, 1, 'Should only observe 1 click!');
|
||||
assert_greater_than(mouseDowns[0].processingStart, afterFirstClick,
|
||||
'The entry should not be the first click!!');
|
||||
verifyClickEvent(mouseDowns[0], 'myDiv', false /* isFirst */, 16 /* minDuration*/);
|
||||
resolve1();
|
||||
mouseDowns.forEach(entry => {
|
||||
if (entry.processingStart < afterFirstClick) {
|
||||
// It is possible that the first event gets a slow duration and hence gets buffered.
|
||||
// In this case the minDuration must be at least 104, otherwise it shouldn't have been
|
||||
// buffered.
|
||||
verifyClickEvent(entry, 'myDiv', true /* isFirst */);
|
||||
} else {
|
||||
verifyClickEvent(mouseDowns[0], 'myDiv', false /* isFirst */, 16 /* minDuration*/);
|
||||
resolve1();
|
||||
}
|
||||
});
|
||||
})).observe({type: 'event', durationThreshold: 16, buffered: true});
|
||||
// This should be the only click observed since the other one would not be buffered.
|
||||
await clickOnElementAndDelay('myDiv', 30);
|
||||
|
|
|
@ -43,13 +43,14 @@
|
|||
|
||||
assert_less_than(childFrameData.processingStart, childFrameData.clickDone,
|
||||
"The entry's processing start should be before than the child frame's clickDone.");
|
||||
assert_greater_than(childFrameData.startTime, childFrameData.clickTimeMin,
|
||||
"The entry's start time should be later than the child frame's \
|
||||
clickTimeMin.");
|
||||
}
|
||||
|
||||
promise_test(async t => {
|
||||
assert_implements(window.PerformanceEventTiming, "Event Timing is not supported");
|
||||
// Wait for load event so we can interact with the iframe.
|
||||
await new Promise(resolve => {
|
||||
window.addEventListener('load', resolve);
|
||||
});
|
||||
clickTimeMin = performance.now();
|
||||
let observedMouseDown = false;
|
||||
const observerPromise = new Promise(resolve => {
|
||||
|
@ -66,15 +67,17 @@
|
|||
resolve();
|
||||
})).observe({type: 'event'});
|
||||
});
|
||||
await clickAndBlockMain('button');
|
||||
clickDone = performance.now();
|
||||
await observerPromise;
|
||||
clickAndBlockMain('button').then(() => {
|
||||
clickDone = performance.now();
|
||||
});
|
||||
const childFrameEntriesPromise = new Promise(resolve => {
|
||||
window.addEventListener("message", (event) => {
|
||||
resolve(event.data);
|
||||
t.step(() => {
|
||||
validateChildFrameEntries(event.data);
|
||||
});
|
||||
resolve();
|
||||
}, false);
|
||||
});
|
||||
|
||||
let iframe = document.getElementById('iframe');
|
||||
const iframeX = document.getElementById('iframe').offsetLeft;
|
||||
const iframeY = document.getElementById('iframe').offsetTop;
|
||||
|
@ -84,10 +87,7 @@
|
|||
.pointerDown()
|
||||
.pointerUp()
|
||||
actions.send();
|
||||
const childFrameData = await childFrameEntriesPromise;
|
||||
t.step(() => {
|
||||
validateChildFrameEntries(childFrameData);
|
||||
});
|
||||
return Promise.all([observerPromise, childFrameEntriesPromise]);
|
||||
}, "Event Timing: entries should only be observable by its own frame.");
|
||||
|
||||
</script>
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
<div style="width: 300px; height: 300px" id='iframe_div' onmousedown="mainThreadBusy(120)">
|
||||
<script>
|
||||
(async () => {
|
||||
const clickTimeMin = performance.now();
|
||||
const observerPromise = new Promise(resolve => {
|
||||
new PerformanceObserver(entryList => {
|
||||
const mouseDowns = entryList.getEntriesByName('mousedown');
|
||||
|
@ -31,7 +30,6 @@
|
|||
"processingEnd": entry.processingEnd,
|
||||
"duration": entry.duration,
|
||||
// Other values
|
||||
"clickTimeMin": clickTimeMin,
|
||||
"clickDone" : clickDone,
|
||||
"target": entry.target.id,
|
||||
}, '*');
|
||||
|
|
|
@ -285,31 +285,33 @@ function initializeTestCanvasTransparent(canvasColorSpace, canvasPixelFormat)
|
|||
|
||||
// HTMLImageElement - Opaque sRGB
|
||||
// File formats: AVIF, Bitmap, GIF, ICO, JPEG, PNG, WEBP
|
||||
promise_test(function() {
|
||||
return Promise.all(['avif', 'bmp', 'gif', 'ico', 'jpg', 'png', 'webp'].map(
|
||||
ext => new Promise((resolve,reject) => {
|
||||
['avif', 'bmp', 'gif', 'ico', 'jpg', 'png', 'webp'].forEach(ext => {
|
||||
promise_test(function() {
|
||||
return new Promise((resolve,reject) => {
|
||||
var image = new Image();
|
||||
image.onload = function() {
|
||||
resolve(image);
|
||||
}
|
||||
image.src = 'resources/pattern-srgb.' + ext;
|
||||
}).then(testImageBitmapOpaque)));
|
||||
}, 'createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (AVIF, \
|
||||
BMP, GIF, ICO, JPG, PNG, WEBP) with resize.');
|
||||
}).then(testImageBitmapOpaque);
|
||||
}, 'createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (' + ext +
|
||||
') with resize.');
|
||||
});
|
||||
|
||||
// HTMLImageElement - Transparent sRGB
|
||||
// File formats: AVIF, Bitmap, ICO, PNG, WEBP
|
||||
promise_test(function() {
|
||||
return Promise.all(['avif', 'bmp', 'ico', 'png', 'webp'].map(
|
||||
ext => new Promise((resolve,reject) => {
|
||||
['avif', 'bmp', 'ico', 'png', 'webp'].forEach(ext => {
|
||||
promise_test(function() {
|
||||
return new Promise((resolve,reject) => {
|
||||
var image = new Image();
|
||||
image.onload = function() {
|
||||
resolve(image);
|
||||
}
|
||||
image.src = 'resources/pattern-srgb-transparent.' + ext;
|
||||
}).then(testImageBitmapFromTransparentImage)));
|
||||
}, 'createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement \
|
||||
(AVIF, BMP, ICO, PNG, WEBP) with resize.');
|
||||
}).then(testImageBitmapFromTransparentImage);
|
||||
}, 'createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (' + ext +
|
||||
') with resize.');
|
||||
});
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -370,9 +372,9 @@ promise_test(function() {
|
|||
|
||||
// Blob from file - Opaque sRGB
|
||||
// File formats: AVIF, Bitmap, GIF, ICO, JPEG, PNG, WEBP
|
||||
promise_test(function() {
|
||||
return Promise.all(['avif', 'bmp', 'gif', 'ico', 'jpg', 'png', 'webp'].map(
|
||||
ext => new Promise((resolve, reject) => {
|
||||
['avif', 'bmp', 'gif', 'ico', 'jpg', 'png', 'webp'].forEach(ext => {
|
||||
promise_test(function() {
|
||||
return new Promise((resolve, reject) => {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", 'resources/pattern-srgb.' + ext);
|
||||
xhr.responseType = 'blob';
|
||||
|
@ -380,15 +382,15 @@ promise_test(function() {
|
|||
xhr.onload = function() {
|
||||
resolve(xhr.response);
|
||||
};
|
||||
}).then(testImageBitmapOpaque)));
|
||||
}, 'createImageBitmap in e-sRGB from an opaque sRGB Blob (AVIF, BMP, GIF, ICO, \
|
||||
JPG, PNG, WEBP) with resize.');
|
||||
}).then(testImageBitmapOpaque);
|
||||
}, 'createImageBitmap in e-sRGB from an opaque sRGB Blob (' + ext + ') with resize.');
|
||||
});
|
||||
|
||||
// Blob form file - Transparent sRGB
|
||||
// File formats: AVIF, Bitmap, ICO, PNG, WEBP
|
||||
promise_test(function() {
|
||||
return Promise.all(['avif', 'bmp', 'ico', 'png', 'webp'].map(
|
||||
ext => new Promise((resolve, reject) => {
|
||||
['avif', 'bmp', 'ico', 'png', 'webp'].forEach(ext => {
|
||||
promise_test(function() {
|
||||
return new Promise((resolve, reject) => {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", 'resources/pattern-srgb-transparent.' + ext);
|
||||
xhr.responseType = 'blob';
|
||||
|
@ -396,9 +398,9 @@ promise_test(function() {
|
|||
xhr.onload = function() {
|
||||
resolve(xhr.response);
|
||||
};
|
||||
}).then(testImageBitmapFromTransparentImage)));
|
||||
}, 'createImageBitmap in e-sRGB from a transparent sRGB Blob (AVIF, BMP, ICO, \
|
||||
PNG, WEBP) with resize.');
|
||||
}).then(testImageBitmapFromTransparentImage);
|
||||
}, 'createImageBitmap in e-sRGB from a transparent sRGB Blob (' + ext + ') with resize.');
|
||||
});
|
||||
|
||||
// Color managed blob from canvas
|
||||
function testCreateImageBitmapFromColorManagedBlob(pixelFormat, isTransparent) {
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
<title>
|
||||
Tests the interaction of COOP same-origin-allow-popups with redirects in a
|
||||
newly opened popup.
|
||||
</title>
|
||||
<meta charset=utf-8>
|
||||
<meta name=timeout content=long>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
<script src="/common/utils.js"></script>
|
||||
<script src="./reporting/resources/dispatcher.js"></script>
|
||||
|
||||
<div id=log></div>
|
||||
<script>
|
||||
|
||||
const executor_path = "/html/cross-origin-opener-policy/reporting/resources/executor.html?pipe=";
|
||||
const same_origin = {
|
||||
host: get_host_info().HTTPS_ORIGIN,
|
||||
name: "Same origin"
|
||||
};
|
||||
const cross_origin = {
|
||||
host: get_host_info().HTTPS_REMOTE_ORIGIN,
|
||||
name: "Cross origin"
|
||||
};
|
||||
const coep_header = '|header(Cross-Origin-Embedder-Policy,unsafe-none)';
|
||||
|
||||
// Tests the interaction of COOP same-origin-allow-popups with redirects in a
|
||||
// newly created popup.
|
||||
// 1- Creates a page with origin SAME_ORIGIN and COOP same-origin-allow-popups.
|
||||
// 2- This page opens a popup.
|
||||
// 3- The popup navigates and gets a redirect response with COOP unsafe none
|
||||
// and origin either SAME_ORIGIN or CROSS_ORIGIN
|
||||
// 4- The popup follows the redirect and ends up on a final page with COOP
|
||||
// same-origin-allow-popups and origin SAME_ORIGIN
|
||||
// 5- The popup and its opener should no longer be in the same browsing context
|
||||
// group (ie the popup doesn't have an opener and the window that opened the
|
||||
// popup sees it as closed).
|
||||
function redirect_test(popup_redirect_origin) {
|
||||
promise_test(async t => {
|
||||
// Identifies the test window.
|
||||
const this_window_token = token();
|
||||
|
||||
// Identifies the first window that will open the popup. It has COOP
|
||||
// same-origin-allow-popups.
|
||||
const opener_token= token();
|
||||
const same_origin_allow_popups_header =
|
||||
`|header(Cross-Origin-Opener-Policy,same-origin-allow-popups)`;
|
||||
const opener_url = same_origin.host + executor_path +
|
||||
same_origin_allow_popups_header + `&uuid=${opener_token}`;
|
||||
|
||||
// Identifies the popup. It will initial try to navigate to
|
||||
// popup_redirect_origin, which has COOP unsafe-none. The navigation is
|
||||
// then redirected to a final response of SAME_ORIGIN and COOP
|
||||
// same-origin-allow-popups.
|
||||
const popup_token = token();
|
||||
const popup_final_url = same_origin.host + executor_path +
|
||||
same_origin_allow_popups_header + `&uuid=${popup_token}`;
|
||||
const redirect_header = 'status(302)' +
|
||||
`|header(Location,${encodeURIComponent(
|
||||
popup_final_url
|
||||
.replace(/,/g, "\\,")
|
||||
.replace(/\\\\,/g, "\\\\\\,")
|
||||
.replace(/\(/g, "%28")
|
||||
.replace(/\)/g, "%29"))})`;
|
||||
const popup_initial_url = popup_redirect_origin.host + executor_path +
|
||||
redirect_header + `&uuid=${popup_token}`;
|
||||
|
||||
// 1. Create the initial window.
|
||||
let opener_window_proxy = window.open(opener_url);
|
||||
t.add_cleanup(() => send(opener_token, "window.close()"));
|
||||
|
||||
// 2. The initial window opens a popup.
|
||||
send(opener_token, `
|
||||
popup = window.open("${popup_initial_url}");
|
||||
`);
|
||||
t.add_cleanup(() => send(popup_token, "window.close()"));
|
||||
|
||||
// 3. Check the opener status on the popup.
|
||||
send(popup_token, `
|
||||
send("${this_window_token}", window.opener !== null);
|
||||
`);
|
||||
assert_equals(await receive(this_window_token), "false", "opener");
|
||||
|
||||
// 4. Check the status of the popup from the initial window.
|
||||
send(opener_token, `
|
||||
send("${this_window_token}", popup.closed);
|
||||
`);
|
||||
assert_equals(await receive(this_window_token), "true", "popup.closed");
|
||||
|
||||
}, `${popup_redirect_origin.name} popup redirects to same-origin with same-origin-allow-popups`);
|
||||
}
|
||||
|
||||
redirect_test(same_origin);
|
||||
redirect_test(cross_origin);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
</head>
|
||||
<body id="body">
|
||||
<dialog>
|
||||
This is a dialog
|
||||
</dialog>
|
||||
<input />
|
||||
<script>
|
||||
"use strict";
|
||||
function testFocus(element, expectFocus) {
|
||||
var focusedElement = null;
|
||||
element.addEventListener('focus', function() { focusedElement = element; }, false);
|
||||
element.focus();
|
||||
var theElement = element;
|
||||
assert_equals(focusedElement === theElement, expectFocus, element.id);
|
||||
}
|
||||
|
||||
test(function() {
|
||||
var dialog = document.querySelector('dialog');
|
||||
dialog.showModal();
|
||||
|
||||
var input = document.querySelector('input');
|
||||
testFocus(input, false);
|
||||
|
||||
dialog.remove();
|
||||
testFocus(input, true);
|
||||
}, "Test that removing dialog unblocks the document.");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,3 +0,0 @@
|
|||
[target_blank_implicit_noopener.html]
|
||||
expected:
|
||||
if os == "android": ["TIMEOUT", "OK"]
|
|
@ -0,0 +1,9 @@
|
|||
<!DOCTYPE html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Microtask checkpoint after window.onerror events (module)</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="resources/checkpoint-after-error-event.js" type="module"></script>
|
||||
<script type="module">self.postMessage("foo");</script>
|
||||
</head>
|
|
@ -0,0 +1,9 @@
|
|||
<!DOCTYPE html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Microtask checkpoint after window.onerror events (classic)</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="resources/checkpoint-after-error-event.js"></script>
|
||||
<script>self.postMessage("foo");</script>
|
||||
</head>
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Microtask checkpoint after window.onerror events (module)</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
const worker = new Worker(
|
||||
"resources/checkpoint-after-error-event-worker-module.js",
|
||||
{type: "module"});
|
||||
fetch_tests_from_worker(worker);
|
||||
worker.postMessage("foo");
|
||||
</script>
|
||||
</head>
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Microtask checkpoint after window.onerror events (module)</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
const worker = new Worker(
|
||||
"resources/checkpoint-after-error-event-worker.js");
|
||||
fetch_tests_from_worker(worker);
|
||||
worker.postMessage("foo");
|
||||
</script>
|
||||
</head>
|
|
@ -0,0 +1,2 @@
|
|||
import "/resources/testharness.js";
|
||||
import "./checkpoint-after-error-event.js";
|
|
@ -0,0 +1,2 @@
|
|||
importScripts("/resources/testharness.js");
|
||||
importScripts("checkpoint-after-error-event.js");
|
|
@ -0,0 +1,89 @@
|
|||
// The `then` handlers for `Promise.resolve()` are evaluated in the first
|
||||
// microtasks checkpoint after `Promise.resolve()`.
|
||||
|
||||
self.setup({allow_uncaught_exception: true});
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
// Check when microtasks checkpoint is performed
|
||||
// - Around `self`'s error event fired via
|
||||
// https://html.spec.whatwg.org/C/#report-the-error during
|
||||
// - https://html.spec.whatwg.org/C/#run-a-classic-script or
|
||||
// - https://html.spec.whatwg.org/C/#run-a-module-script.
|
||||
|
||||
// The expectation is: the `then` handlers are evaluated after all error event
|
||||
// handlers are evaluated, not after each error event handler.
|
||||
|
||||
// Just after each event handler is invoked,
|
||||
// https://heycam.github.io/webidl/#call-a-user-objects-operation
|
||||
// calls #clean-up-after-running-script, but this doesn't execute new
|
||||
// microtasks immediately, because:
|
||||
// - Before https://github.com/whatwg/html/pull/4352:
|
||||
// #report-the-error is called before #clean-up-after-running-script by
|
||||
// #run-a-classic-script/#run-a-module-script, so microtask checkpoint
|
||||
// is not performed because JavaScript execution context stack is not empty.
|
||||
// - After https://github.com/whatwg/html/pull/4352:
|
||||
// #report-the-error is called during #perform-a-microtask-checkpoint (because
|
||||
// it is called on rejection of promises), so #perform-a-microtask-checkpoint
|
||||
// is executed but early exited.
|
||||
self.log = [];
|
||||
|
||||
self.addEventListener('error', () => {
|
||||
log.push('handler 1');
|
||||
Promise.resolve().then(() => log.push('handler 1 promise'));
|
||||
});
|
||||
self.addEventListener('error', () => {
|
||||
log.push('handler 2');
|
||||
Promise.resolve().then(() => log.push('handler 2 promise'));
|
||||
});
|
||||
|
||||
// Microtasks should be executed before
|
||||
// #run-a-classic-script/#run-a-module-script is completed, and thus before
|
||||
// script evaluation scheduled by setTimeout().
|
||||
async_test(t => {
|
||||
t.step_timeout(() => {
|
||||
assert_array_equals(log, [
|
||||
'handler 1',
|
||||
'handler 2',
|
||||
'handler 1 promise',
|
||||
'handler 2 promise'
|
||||
]);
|
||||
t.done();
|
||||
},
|
||||
0);
|
||||
}, "Promise resolved during #report-the-error");
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
// Check when microtasks checkpoint is performed
|
||||
// around event events other than the `self` error event cases above.
|
||||
// In this case, microtasks are executed just after each event handler is
|
||||
// invoked via #clean-up-after-running-script called from
|
||||
// https://heycam.github.io/webidl/#call-a-user-objects-operation,
|
||||
// because the event handlers are executed outside the
|
||||
// #prepare-to-run-script/#clean-up-after-running-script scopes in
|
||||
// #run-a-classic-script/#run-a-module-script.
|
||||
self.log2 = [];
|
||||
self.t2 = async_test(
|
||||
"Promise resolved during event handlers other than error");
|
||||
|
||||
self.addEventListener('message', () => {
|
||||
log2.push('handler 1');
|
||||
Promise.resolve().then(() => log2.push('handler 1 promise'));
|
||||
});
|
||||
self.addEventListener('message', () => {
|
||||
log2.push('handler 2');
|
||||
Promise.resolve().then(t2.step_func_done(() => {
|
||||
log2.push('handler 2 promise');
|
||||
assert_array_equals(log2, [
|
||||
'handler 1',
|
||||
'handler 1 promise',
|
||||
'handler 2',
|
||||
'handler 2 promise'
|
||||
]);
|
||||
}));
|
||||
});
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
|
||||
done();
|
||||
|
||||
throw new Error('script 1');
|
|
@ -24,6 +24,10 @@ test(() => {
|
|||
[
|
||||
'%s',
|
||||
'foo/%s',
|
||||
`%s${location.href}`,
|
||||
location.href.replace(location.protocol,
|
||||
`${location.protocol[0]}%s${location.protocol.substring(1)}`),
|
||||
location.href.replace(location.protocol, `${location.protocol}%s`),
|
||||
location.href + '/%s',
|
||||
location.href + '#%s',
|
||||
location.href + '?foo=%s',
|
||||
|
@ -45,6 +49,10 @@ test(() => {
|
|||
[
|
||||
'',
|
||||
'%S',
|
||||
'http://%s.com',
|
||||
'http://%s.example.com',
|
||||
location.href.replace(location.hostname, `%s${location.hostname}`),
|
||||
location.href.replace(location.port, `%s${location.port}`),
|
||||
location.href + '',
|
||||
location.href + '/%',
|
||||
location.href + '/%a',
|
||||
|
@ -64,8 +72,6 @@ test(() => {
|
|||
});
|
||||
|
||||
[
|
||||
'http://%s.com',
|
||||
'http://%s.example.com',
|
||||
'http://example.com/%s',
|
||||
'https://example.com/%s',
|
||||
'http://foobar.example.com/%s',
|
||||
|
|
|
@ -95,3 +95,18 @@ promise_test(async testCase => {
|
|||
await promise_rejects_dom(testCase, 'InvalidStateError', file.getLength());
|
||||
assert_equals(await closePromise, undefined);
|
||||
}, 'NativeIOFile.getLength fails immediately after calling NativeIOFile.close');
|
||||
|
||||
promise_test(async testCase => {
|
||||
const file = await createFile(testCase, 'file_name');
|
||||
assert_equals(await file.close(), undefined);
|
||||
|
||||
await promise_rejects_dom(testCase, 'InvalidStateError', file.flush());
|
||||
}, 'NativeIOFile.flush fails after NativeIOFile.close settles');
|
||||
|
||||
promise_test(async testCase => {
|
||||
const file = await createFile(testCase, 'file_name');
|
||||
const closePromise = file.close();
|
||||
|
||||
await promise_rejects_dom(testCase, 'InvalidStateError', file.flush());
|
||||
assert_equals(await closePromise, undefined);
|
||||
}, 'NativeIOFile.flush fails immediately after calling NativeIOFile.close');
|
||||
|
|
|
@ -49,3 +49,10 @@ test(testCase => {
|
|||
|
||||
assert_throws_dom('InvalidStateError', () => file.getLength());
|
||||
}, 'NativeIOFileSync.getLength fails after NativeIOFileSync.close');
|
||||
|
||||
test(testCase => {
|
||||
const file = createFileSync(testCase, 'file_name');
|
||||
assert_equals(undefined, file.close());
|
||||
|
||||
assert_throws_dom('InvalidStateError', () => file.flush());
|
||||
}, 'NativeIOFileSync.flush fails after NativeIOFileSync.close');
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
// META: title=NativeIO API: Concurrent io while flush is resolving.
|
||||
// META: global=window,worker
|
||||
// META: script=operation_helpers.js
|
||||
// META: script=../resources/support.js
|
||||
|
||||
|
||||
'use strict';
|
||||
|
||||
// See documentation in operation_helpers.js
|
||||
|
||||
for (let op of kOperations) {
|
||||
promise_test(async testCase => {
|
||||
const file = await createFile(testCase, 'flush_file');
|
||||
|
||||
const res = op.prepare();
|
||||
|
||||
const flushPromise = file.flush();
|
||||
op.assertRejection(testCase, file, res);
|
||||
|
||||
await flushPromise;
|
||||
|
||||
const readSharedArrayBuffer = new SharedArrayBuffer(4);
|
||||
const readBytes = new Uint8Array(readSharedArrayBuffer);
|
||||
assert_equals(await file.read(readBytes, 0), 4,
|
||||
`NativeIOFile.read() should not fail after a rejected ` +
|
||||
`${op.name}() during flush()`);
|
||||
assert_array_equals(readBytes, [64, 65, 66, 67],
|
||||
`Rejecting ${op.name}() during flush() should not ` +
|
||||
`change the file.`);
|
||||
op.assertUnchanged(res);
|
||||
}, `${op.name}() rejects while flush() is resolving.`);
|
||||
};
|
|
@ -64,4 +64,15 @@ const kOperations = [];
|
|||
assertUnchanged: () => {},
|
||||
};
|
||||
kOperations.push(kOpGetLength);
|
||||
|
||||
const kOpFlush = {
|
||||
name: 'flush',
|
||||
prepare: () => {},
|
||||
assertRejection: async (testCase, file) => {
|
||||
await promise_rejects_dom(testCase, 'InvalidStateError',
|
||||
file.flush());
|
||||
},
|
||||
assertUnchanged: () => {},
|
||||
};
|
||||
kOperations.push(kOpFlush);
|
||||
})();
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
// META: title=Synchronous NativeIO API: Flushed data is read back.
|
||||
// META: global=window,worker
|
||||
// META: script=resources/support.js
|
||||
|
||||
'use strict';
|
||||
|
||||
promise_test(async testCase => {
|
||||
const file = await nativeIO.open('test_file');
|
||||
testCase.add_cleanup(async () => {
|
||||
await file.close();
|
||||
await nativeIO.delete('test_file');
|
||||
});
|
||||
|
||||
const size = 1024;
|
||||
const longarray = createLargeArray(size, /*seed = */ 103);
|
||||
const writeSharedArrayBuffer = new SharedArrayBuffer(size);
|
||||
const writtenBytes = new Uint8Array(writeSharedArrayBuffer);
|
||||
writtenBytes.set(longarray);
|
||||
const writeCount = await file.write(writtenBytes, 0);
|
||||
assert_equals(
|
||||
writeCount, size,
|
||||
'NativeIOFile.write() should resolve with the number of bytes written');
|
||||
|
||||
await file.flush();
|
||||
const readBytes = await readIoFile(file);
|
||||
|
||||
assert_array_equals(readBytes, writtenBytes,
|
||||
'the bytes read should match the bytes written');
|
||||
}, 'NativeIOFile.read returns bytes written by NativeIOFile.write' +
|
||||
' after NativeIOFile.flush');
|
|
@ -0,0 +1,28 @@
|
|||
// META: title=Synchronous NativeIO API: Flushed data is read back.
|
||||
// META: global=dedicatedworker
|
||||
// META: script=resources/support.js
|
||||
|
||||
'use strict';
|
||||
|
||||
test(testCase => {
|
||||
const file = nativeIO.openSync('test_file');
|
||||
testCase.add_cleanup(() => {
|
||||
file.close();
|
||||
nativeIO.deleteSync('test_file');
|
||||
});
|
||||
|
||||
const size = 1024;
|
||||
const longarray = createLargeArray(size, /*seed = */ 107);
|
||||
const writtenBytes = Uint8Array.from(longarray);
|
||||
const writeCount = file.write(writtenBytes, 0);
|
||||
assert_equals(
|
||||
writeCount, size,
|
||||
'NativeIOFile.write() should resolve with the number of bytes written');
|
||||
|
||||
file.flush();
|
||||
const readBytes = readIoFileSync(file);
|
||||
|
||||
assert_array_equals(readBytes, writtenBytes,
|
||||
'the bytes read should match the bytes written');
|
||||
}, 'NativeIOFileSync.read returns bytes written by NativeIOFileSync.write' +
|
||||
' after NativeIOFileSync.flush');
|
|
@ -24,3 +24,56 @@ async function createFile(testCase, fileName) {
|
|||
|
||||
return file;
|
||||
}
|
||||
|
||||
// Returns a handle to a newly created file that holds some data.
|
||||
//
|
||||
// The file will be closed and deleted when the test ends.
|
||||
function createFileSync(testCase, fileName) {
|
||||
const file = nativeIO.openSync(fileName);
|
||||
testCase.add_cleanup(() => {
|
||||
file.close();
|
||||
nativeIO.deleteSync(fileName);
|
||||
});
|
||||
|
||||
const writtenBytes = Uint8Array.from([64, 65, 66, 67]);
|
||||
const writeCount = file.write(writtenBytes, 0);
|
||||
assert_equals(writeCount, 4);
|
||||
|
||||
return file;
|
||||
}
|
||||
|
||||
// Returns an Uint8Array with pseudorandom data.
|
||||
//
|
||||
// The PRNG should be sufficient to defeat compression schemes, but it is not
|
||||
// cryptographically strong.
|
||||
function createLargeArray(size, seed) {
|
||||
const buffer = new Uint8Array(size);
|
||||
|
||||
// 32-bit xorshift - the seed can't be zero
|
||||
let state = 1000 + seed;
|
||||
|
||||
for (let i = 0; i < size; ++i) {
|
||||
state ^= state << 13;
|
||||
state ^= state >> 17;
|
||||
state ^= state << 5;
|
||||
buffer[i] = state & 0xff;
|
||||
}
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
// Attempts to read the entire file into a buffer.
|
||||
async function readIoFile(file) {
|
||||
const length = await file.getLength();
|
||||
const readBuffer = new Uint8Array(new SharedArrayBuffer(length));
|
||||
await file.read(readBuffer, 0);
|
||||
return readBuffer;
|
||||
}
|
||||
|
||||
// Attempts to read the entire file into a buffer.
|
||||
function readIoFileSync(file) {
|
||||
const length = file.getLength();
|
||||
const readBuffer = new Uint8Array(length);
|
||||
file.read(readBuffer, 0);
|
||||
return readBuffer;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<!DOCTYPE HTML>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script type="text/javascript" src="/resources/testharness.js"></script>
|
||||
<script type="text/javascript" src="/resources/testharnessreport.js"></script>
|
||||
<script type="text/javascript" src="/resources/testdriver.js"></script>
|
||||
<script type="text/javascript" src="/resources/testdriver-vendor.js"></script>
|
||||
<script type="text/javascript" src="/resources/testdriver-actions.js"></script>
|
||||
<script type="text/javascript" src="../pointerevent_support.js"></script>
|
||||
|
||||
<style>
|
||||
|
@ -11,61 +11,101 @@
|
|||
width: 50px;
|
||||
height: 50px;
|
||||
padding: 50px;
|
||||
background-color: lightblue;
|
||||
border:1px solid black;
|
||||
}
|
||||
div {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
|
||||
<h1>Verifies that mouse activities on an object fire pointerevents. It expected to get pointerup when the pointerdown happened on the object for compatibility with flash objects.</h1>
|
||||
|
||||
<object id="obj"></object>
|
||||
|
||||
<button id="done"></button>
|
||||
<p>
|
||||
To test that when clicking inside the blue rectangle all compat mouse events are correct:
|
||||
<ul>
|
||||
<li> Click once in the blue rectangle
|
||||
<li> Click the Done button
|
||||
</ul>
|
||||
</p>
|
||||
<p>
|
||||
To test that when dragging mouse outside all compat mouse events are correct:
|
||||
<ul>
|
||||
<li> Press left mouse button in the blue rectangle
|
||||
<li> Drag the mouse cursor out of the blue rectangle
|
||||
<li> Release the left mouse button
|
||||
<li> Click the Done button
|
||||
</ul>
|
||||
</p>
|
||||
<!-- draggable is set to false because there is a difference between auto draggable value in different browsers -->
|
||||
<object id="obj" draggable="false"></object>
|
||||
<button id="done">Done</button>
|
||||
<div id="log"></div>
|
||||
|
||||
<script>
|
||||
var target = document.getElementById("obj");
|
||||
var done = document.getElementById("done");
|
||||
|
||||
var rect = target.getBoundingClientRect();
|
||||
var done_clicked = false;
|
||||
var done_clicked = 0;
|
||||
var receivedEvents = [];
|
||||
var previous_done_clicked = 0;
|
||||
|
||||
["mousedown", "mouseup", "mousemove", "pointerdown", "pointerup", "pointermove"].forEach(function(eventName) {
|
||||
target.addEventListener(eventName, function(event) {
|
||||
// This will clear receivedEvents once another test starts
|
||||
if(previous_done_clicked !== done_clicked){
|
||||
previous_done_clicked = done_clicked;
|
||||
receivedEvents = [];
|
||||
}
|
||||
receivedEvents.push(event.type);
|
||||
});
|
||||
});
|
||||
|
||||
document.getElementById('done').addEventListener('click', (e) => done_clicked = true);
|
||||
document.getElementById('done').addEventListener('click', (e) => done_clicked++);
|
||||
|
||||
promise_test(async() => {
|
||||
done_clicked = false;
|
||||
receivedEvents = [];
|
||||
// Need to prevent the default behaviour for firefox
|
||||
target.addEventListener("dragstart", (e)=>e.preventDefault());
|
||||
|
||||
await new test_driver.Actions()
|
||||
.pointerMove(Math.ceil(rect.left+5), Math.ceil(rect.top+5))
|
||||
.pointerDown()
|
||||
.pointerUp()
|
||||
.send()
|
||||
.then(() => clickInTarget("mouse", done));
|
||||
await resolveWhen(() => done_clicked);
|
||||
if(window.promise_test){
|
||||
promise_test(async() => {
|
||||
receivedEvents = [];
|
||||
|
||||
assert_array_equals(receivedEvents, ["pointermove", "mousemove", "pointerdown", "mousedown", "pointerup", "mouseup"],
|
||||
"Click on object should result in the correct sequence of events");
|
||||
}, "Normal click event sequence within object");
|
||||
await new test_driver.Actions()
|
||||
.pointerMove(Math.ceil(rect.left+5), Math.ceil(rect.top+5))
|
||||
.pointerDown()
|
||||
.pointerUp()
|
||||
.send()
|
||||
.then(() => clickInTarget("mouse", done));
|
||||
await resolveWhen(() => done_clicked === 1);
|
||||
|
||||
promise_test(async() => {
|
||||
done_clicked = false;
|
||||
receivedEvents = [];
|
||||
assert_array_equals(receivedEvents.filter(isPointerEvent), ["pointermove", "pointerdown", "pointerup"],
|
||||
"Click on object should result in the correct sequence of pointer events");
|
||||
assert_array_equals(receivedEvents.filter(isMouseEvent), ["mousemove", "mousedown", "mouseup"],
|
||||
"Click on object should result in the correct sequence of mouse events");
|
||||
assert_true(arePointerEventsBeforeCompatMouseEvents(receivedEvents),
|
||||
"Click on object should result in the correct sequence of events: " + receivedEvents);
|
||||
}, "Normal click event sequence within object");
|
||||
|
||||
await new test_driver.Actions()
|
||||
.pointerMove(Math.ceil(rect.left+5), Math.ceil(rect.top+5))
|
||||
.pointerDown()
|
||||
.pointerMove(Math.ceil(rect.left-5), Math.ceil(rect.top-5))
|
||||
.pointerUp()
|
||||
.send()
|
||||
.then(() => clickInTarget("mouse", done));
|
||||
await resolveWhen(() => done_clicked);
|
||||
promise_test(async() => {
|
||||
receivedEvents = [];
|
||||
|
||||
assert_array_equals(receivedEvents, ["pointermove", "mousemove", "pointerdown", "mousedown", "pointermove", "mousemove", "pointerup", "mouseup"],
|
||||
"Drag from object should result in the correct sequence of events");
|
||||
await new test_driver.Actions()
|
||||
.pointerMove(Math.ceil(rect.left+5), Math.ceil(rect.top+5))
|
||||
.pointerDown()
|
||||
.pointerMove(Math.ceil(rect.left-5), Math.ceil(rect.top-5))
|
||||
.pointerUp()
|
||||
.send()
|
||||
.then(() => clickInTarget("mouse", done));
|
||||
await resolveWhen(() => done_clicked === 2);
|
||||
|
||||
}, "Click and drag outside of object event sequence");
|
||||
assert_array_equals(receivedEvents.filter(isPointerEvent), ["pointermove", "pointerdown", "pointermove", "pointerup"],
|
||||
"Drag from object should result in the correct sequence of pointer events");
|
||||
assert_array_equals(receivedEvents.filter(isMouseEvent), ["mousemove", "mousedown", "mousemove", "mouseup"],
|
||||
"Drag from object should result in the correct sequence of mouse events");
|
||||
assert_true(arePointerEventsBeforeCompatMouseEvents(receivedEvents),
|
||||
"Drag from object should result in the correct sequence of events: " + receivedEvents);
|
||||
|
||||
}, "Click and drag outside of object event sequence");
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -402,3 +402,54 @@ function waitForAnimationFrames(n){
|
|||
}
|
||||
return resolveWhen(next);
|
||||
}
|
||||
|
||||
function isPointerEvent(eventName){
|
||||
return All_Pointer_Events.includes(eventName);
|
||||
}
|
||||
|
||||
function isMouseEvent(eventName){
|
||||
return ["mousedown", "mouseup", "mousemove", "mouseover",
|
||||
"mouseenter", "mouseout", "mouseleave",
|
||||
"click", "contextmenu", "dblclick"
|
||||
].includes(eventName);
|
||||
}
|
||||
|
||||
function arePointerAndMouseEventCompatible(pointerEventName, mouseEventName){
|
||||
// e.g. compatible pointer-mouse events: pointerup - mouseup etc
|
||||
return pointerEventName.startsWith("pointer") &&
|
||||
mouseEventName.startsWith("mouse") &&
|
||||
pointerEventName.substring(7) === mouseEventName.substring(5);
|
||||
}
|
||||
|
||||
// events is a list of events fired at a target
|
||||
// checks to see if each pointer event has a corresponding mouse event in the event array
|
||||
// and the two events are in the proper order (pointer event is first)
|
||||
// see https://www.w3.org/TR/pointerevents3/#mapping-for-devices-that-support-hover
|
||||
function arePointerEventsBeforeCompatMouseEvents(events){
|
||||
// checks to see if the pointer event is compatible with the mouse event
|
||||
// and the pointer event happens before the mouse event
|
||||
function arePointerAndMouseEventInProperOrder(pointerEventIndex, mouseEventIndex, events){
|
||||
return (pointerEventIndex < mouseEventIndex && isPointerEvent(events[pointerEventIndex]) && isMouseEvent(events[mouseEventIndex])
|
||||
&& arePointerAndMouseEventCompatible(events[pointerEventIndex], events[mouseEventIndex]));
|
||||
}
|
||||
|
||||
let currentPointerEventIndex = events.findIndex((event)=>isPointerEvent(event));
|
||||
let currentMouseEventIndex = events.findIndex((event)=>isMouseEvent(event));
|
||||
|
||||
while(1){
|
||||
if(currentMouseEventIndex < 0 && currentPointerEventIndex < 0)
|
||||
return true;
|
||||
if(currentMouseEventIndex < 0 || currentPointerEventIndex < 0)
|
||||
return false;
|
||||
if(!arePointerAndMouseEventInProperOrder(currentPointerEventIndex, currentMouseEventIndex, events))
|
||||
return false;
|
||||
|
||||
let pointerIdx = events.slice(currentPointerEventIndex+1).findIndex(isPointerEvent);
|
||||
let mouseIdx = events.slice(currentMouseEventIndex+1).findIndex(isMouseEvent);
|
||||
|
||||
currentPointerEventIndex = (pointerIdx < 0)?pointerIdx:(currentPointerEventIndex+1+pointerIdx);
|
||||
currentMouseEventIndex = (mouseIdx < 0)?mouseIdx:(currentMouseEventIndex+1+mouseIdx);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -3998,5 +3998,5 @@ span.ok, span.timeout, span.error {\
|
|||
}\
|
||||
";
|
||||
|
||||
})(this);
|
||||
})(self);
|
||||
// vim: set expandtab shiftwidth=4 tabstop=4:
|
||||
|
|
|
@ -38,6 +38,9 @@ class ChromiumFormatter(base.BaseFormatter):
|
|||
# List of tests that have failing subtests.
|
||||
self.tests_with_subtest_fails = set()
|
||||
|
||||
# Browser log for the current test under execution.
|
||||
self.test_log = []
|
||||
|
||||
def _append_test_message(self, test, subtest, status, expected, message):
|
||||
"""
|
||||
Appends the message data for a test.
|
||||
|
@ -90,6 +93,9 @@ class ChromiumFormatter(base.BaseFormatter):
|
|||
self._append_artifact(cur_dict, "wpt_subtest_failure", "true")
|
||||
if wpt_actual != actual:
|
||||
self._append_artifact(cur_dict, "wpt_actual_status", wpt_actual)
|
||||
if wpt_actual == 'CRASH':
|
||||
for line in self.test_log:
|
||||
self._append_artifact(cur_dict, "wpt_crash_log", line)
|
||||
for message in messages:
|
||||
self._append_artifact(cur_dict, "log", message)
|
||||
|
||||
|
@ -129,13 +135,9 @@ class ChromiumFormatter(base.BaseFormatter):
|
|||
return "SKIP"
|
||||
if status == "EXTERNAL-TIMEOUT":
|
||||
return "TIMEOUT"
|
||||
if status in ("ERROR", "CRASH", "PRECONDITION_FAILED"):
|
||||
# CRASH in WPT means a browser crash, which Chromium treats as a
|
||||
# test failure.
|
||||
if status in ("ERROR", "PRECONDITION_FAILED"):
|
||||
return "FAIL"
|
||||
if status == "INTERNAL-ERROR":
|
||||
# CRASH in Chromium refers to an error in the test runner not the
|
||||
# browser.
|
||||
return "CRASH"
|
||||
# Any other status just gets returned as-is.
|
||||
return status
|
||||
|
@ -218,6 +220,9 @@ class ChromiumFormatter(base.BaseFormatter):
|
|||
# Update the count of how many tests ran with each status.
|
||||
self.num_failures_by_status[actual_status] += 1
|
||||
|
||||
# New test, new browser logs.
|
||||
self.test_log = []
|
||||
|
||||
def suite_end(self, data):
|
||||
# Create the final result dictionary
|
||||
final_result = {
|
||||
|
@ -230,3 +235,7 @@ class ChromiumFormatter(base.BaseFormatter):
|
|||
"tests": self.tests
|
||||
}
|
||||
return json.dumps(final_result)
|
||||
|
||||
def process_output(self, data):
|
||||
if 'command' in data and 'chromedriver' in data['command']:
|
||||
self.test_log.append(data['data'])
|
||||
|
|
|
@ -570,3 +570,56 @@ def test_reftest_screenshots(capfd):
|
|||
"foo.html: DATA1",
|
||||
"foo-ref.html: DATA2",
|
||||
]
|
||||
|
||||
|
||||
def test_process_output_crashing_test(capfd):
|
||||
"""Test that chromedriver logs are preserved for crashing tests"""
|
||||
|
||||
# Set up the handler.
|
||||
output = StringIO()
|
||||
logger = structuredlog.StructuredLogger("test_a")
|
||||
logger.add_handler(handlers.StreamHandler(output, ChromiumFormatter()))
|
||||
|
||||
logger.suite_start(["t1", "t2", "t3"], run_info={}, time=123)
|
||||
|
||||
logger.test_start("t1")
|
||||
logger.process_output(100, "This message should be recorded", "/some/path/to/chromedriver --some-flag")
|
||||
logger.process_output(101, "This message should not be recorded", "/some/other/process --another-flag")
|
||||
logger.process_output(100, "This message should also be recorded", "/some/path/to/chromedriver --some-flag")
|
||||
logger.test_end("t1", status="CRASH", expected="CRASH")
|
||||
|
||||
logger.test_start("t2")
|
||||
logger.process_output(100, "Another message for the second test", "/some/path/to/chromedriver --some-flag")
|
||||
logger.test_end("t2", status="CRASH", expected="PASS")
|
||||
|
||||
logger.test_start("t3")
|
||||
logger.process_output(100, "This test fails", "/some/path/to/chromedriver --some-flag")
|
||||
logger.process_output(100, "But the output should not be captured", "/some/path/to/chromedriver --some-flag")
|
||||
logger.process_output(100, "Because it does not crash", "/some/path/to/chromedriver --some-flag")
|
||||
logger.test_end("t3", status="FAIL", expected="PASS")
|
||||
|
||||
logger.suite_end()
|
||||
|
||||
# check nothing got output to stdout/stderr
|
||||
# (note that mozlog outputs exceptions during handling to stderr!)
|
||||
captured = capfd.readouterr()
|
||||
assert captured.out == ""
|
||||
assert captured.err == ""
|
||||
|
||||
# check the actual output of the formatter
|
||||
output.seek(0)
|
||||
output_json = json.load(output)
|
||||
|
||||
test_obj = output_json["tests"]["t1"]
|
||||
assert test_obj["artifacts"]["wpt_crash_log"] == [
|
||||
"This message should be recorded",
|
||||
"This message should also be recorded"
|
||||
]
|
||||
|
||||
test_obj = output_json["tests"]["t2"]
|
||||
assert test_obj["artifacts"]["wpt_crash_log"] == [
|
||||
"Another message for the second test"
|
||||
]
|
||||
|
||||
test_obj = output_json["tests"]["t3"]
|
||||
assert "wpt_crash_log" not in test_obj["artifacts"]
|
||||
|
|
|
@ -38,7 +38,7 @@ function futureScript(url) {
|
|||
|
||||
promise_test(async t => {
|
||||
let future_violation = futureViolation();
|
||||
assert_throws_js(TypeError, () => {
|
||||
assert_throws_js(TypeError, _ => {
|
||||
document.getElementById("to-be-modified").innerHTML = "'test'";
|
||||
});
|
||||
let violation = await future_violation;
|
||||
|
@ -64,9 +64,7 @@ promise_test(async t => {
|
|||
let future_violation = futureViolation();
|
||||
assert_throws_js(TypeError, () => setInnerHtml(toBeModified, "'test'"));
|
||||
let violation = await future_violation;
|
||||
// TODO(https://crbug.com/1113163): Consider exposing the full path of the
|
||||
// cross-origin script here instead of just its origin.
|
||||
assert_equals(violation.sourceFile, script_origin);
|
||||
assert_equals(violation.sourceFile, script_src);
|
||||
}, "cross-origin script")
|
||||
|
||||
// TODO(arthursonzogni): Check what happens with redirects. Do we report the
|
||||
|
|
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