Update web-platform-tests to revision 14f4f8e2c8ec5868a7c50fe647555cd966ba08a3

This commit is contained in:
WPT Sync Bot 2020-08-11 08:21:40 +00:00
parent 3097eb7de9
commit 714a3cfe1e
101 changed files with 2305 additions and 206 deletions

View file

@ -0,0 +1,5 @@
[url-charset.window.html]
expected: TIMEOUT
[Blob charset should override any auto-detected charset.]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -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

View file

@ -0,0 +1,2 @@
[box-shadow-overlapping-003.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[box-shadow-overlapping-004.html]
expected: FAIL

View file

@ -2,3 +2,6 @@
[Hit test intersecting scaled box]
expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

@ -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

View file

@ -0,0 +1,2 @@
[matchMedia-display-none-iframe.html]
expected: ERROR

View file

@ -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

View file

@ -53,6 +53,6 @@
[combined text/javascript ]
expected: FAIL
[separate text/javascript error]
[separate text/javascript x/x]
expected: FAIL

View file

@ -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

View file

@ -1,4 +1,4 @@
[traverse_the_history_2.html]
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,2 +0,0 @@
[cross-origin-objects-on-new-window.html]
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[embedded-opener-remove-frame.html]
expected: CRASH
[opener of discarded nested browsing context]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -171,3 +171,6 @@
[XHTML img usemap="#hash-id"]
expected: FAIL
[HTML (standards) IMG usemap="no-hash-name"]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,4 @@
[remove-dialog-should-unblock-document.html]
[Test that removing dialog unblocks the document.]
expected: FAIL

View file

@ -0,0 +1,2 @@
[checkpoint-after-workerglobalscope-onerror-module.html]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -1,5 +0,0 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[Worker-constructor.html]
expected: ERROR

View file

@ -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

View file

@ -0,0 +1,5 @@
[url-charset.window.html]
expected: TIMEOUT
[Blob charset should override any auto-detected charset.]
expected: TIMEOUT

View file

@ -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,
{}

View file

@ -0,0 +1,4 @@
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -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

View file

@ -0,0 +1,2 @@
[box-shadow-overlapping-003.html]
expected: FAIL

View file

@ -0,0 +1,2 @@
[box-shadow-overlapping-004.html]
expected: FAIL

View file

@ -2,3 +2,6 @@
[Hit test intersecting scaled box]
expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

@ -1,8 +0,0 @@
[MediaQueryList-extends-EventTarget.html]
expected: TIMEOUT
[removeEventListener removes listener]
expected: NOTRUN
[addEventListener "once" option is respected]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[matchMedia-display-none-iframe.html]
expected: ERROR

View file

@ -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

View file

@ -53,6 +53,6 @@
[combined text/javascript ]
expected: FAIL
[separate text/javascript error]
[separate text/javascript x/x]
expected: FAIL

View file

@ -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

View file

@ -1,4 +1,4 @@
[traverse_the_history_2.html]
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,2 +0,0 @@
[cross-origin-objects-on-new-window.html]
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[embedded-opener-remove-frame.html]
expected: CRASH
[opener and "removed" embedded documents]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,4 @@
[remove-dialog-should-unblock-document.html]
[Test that removing dialog unblocks the document.]
expected: FAIL

View file

@ -0,0 +1,2 @@
[checkpoint-after-workerglobalscope-onerror-module.html]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -1,5 +0,0 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[Worker-constructor.html]
expected: ERROR

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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">

View file

@ -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>

View file

@ -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);

View file

@ -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>

View file

@ -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,
}, '*');

View file

@ -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) {

View file

@ -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>

View file

@ -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>

View file

@ -1,3 +0,0 @@
[target_blank_implicit_noopener.html]
expected:
if os == "android": ["TIMEOUT", "OK"]

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -0,0 +1,2 @@
import "/resources/testharness.js";
import "./checkpoint-after-error-event.js";

View file

@ -0,0 +1,2 @@
importScripts("/resources/testharness.js");
importScripts("checkpoint-after-error-event.js");

View file

@ -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');

View file

@ -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',

View file

@ -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');

View file

@ -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');

View file

@ -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.`);
};

View file

@ -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);
})();

View file

@ -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');

View file

@ -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');

View file

@ -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;
}

View file

@ -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>

View file

@ -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;
}

View file

@ -3998,5 +3998,5 @@ span.ok, span.timeout, span.error {\
}\
";
})(this);
})(self);
// vim: set expandtab shiftwidth=4 tabstop=4:

View file

@ -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'])

View file

@ -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"]

View file

@ -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