mirror of
https://github.com/servo/servo.git
synced 2025-06-27 10:33:39 +01:00
Update web-platform-tests to revision 8cdb75336b65e31e0278082e74927e5be2045b5a
This commit is contained in:
parent
6164358bcd
commit
b0a5c77cf6
132 changed files with 1197 additions and 959 deletions
|
@ -0,0 +1,5 @@
|
|||
[url-charset.window.html]
|
||||
expected: TIMEOUT
|
||||
[Blob charset should override any auto-detected charset.]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[hit-test-floats-004.html]
|
||||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -312,21 +312,24 @@
|
|||
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" 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 ]
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,9 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript ]
|
||||
[separate text/javascript error]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,5 @@
|
|||
[sandbox-disallow-popups.html]
|
||||
expected: TIMEOUT
|
||||
[window.open in sandbox iframe]
|
||||
expected: NOTRUN
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
[first argument: absolute url]
|
||||
expected: FAIL
|
||||
|
|
@ -1,16 +1,20 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Non-HTMLElement should not support autofocus]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -171,6 +171,3 @@
|
|||
[XHTML img usemap="#hash-id"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (standards) IMG usemap="no-hash-name"]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[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
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
[htmlanchorelement_noopener.html]
|
||||
expected: TIMEOUT
|
||||
[Check that targeting of rel=noopener with a given name reuses an existing window with that name]
|
||||
expected: FAIL
|
||||
|
||||
[Check that rel=noopener with target=_top does a normal load]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Check that rel=noopener with target=_self does a normal load]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Check that rel=noopener with target=_parent does a normal load]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[077.html]
|
||||
[ adding several types of scripts through the DOM and removing some of them confuses scheduler ]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[evaluation-order-1-nothrow-worker.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[evaluation-order-1-nothrow.html]
|
||||
[Test evaluation order of modules]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[evaluation-order-1-worker.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[evaluation-order-1.html]
|
||||
[Test evaluation order of modules]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[evaluation-order-2-import-worker.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[evaluation-order-2-import.html]
|
||||
[Test evaluation order of modules]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[evaluation-order-3-dynamic-worker.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[evaluation-order-3-dynamic.html]
|
||||
[Test evaluation order of modules]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[DOMContentLoaded-defer.html]
|
||||
[The end: DOMContentLoaded and defer scripts]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[module-static-import-delayed.html]
|
||||
[document.write in an imported module]
|
||||
expected: FAIL
|
||||
|
|
@ -3,6 +3,3 @@
|
|||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
[promise-job-entry.html]
|
||||
expected: TIMEOUT
|
||||
[Fulfillment handler on fulfilled promise]
|
||||
expected: FAIL
|
||||
|
||||
[Rejection handler on pending-then-rejected promise]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Sanity check: this all works as expected with no promises involved]
|
||||
expected: FAIL
|
||||
|
@ -15,5 +16,5 @@
|
|||
expected: FAIL
|
||||
|
||||
[Fulfillment handler on pending-then-fulfilled promise]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,22 +1,10 @@
|
|||
[url-setters.html]
|
||||
[URL: Setting <javascript:alert(1)>.hash = 'castle']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://me@example.net>.password = 'secret']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = '#foo>bar']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://x/>.host = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <nonsense:///test>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -29,21 +17,9 @@
|
|||
[<area>: Setting <file://hi/x>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <wss://x:x@example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <gopher://example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://y/>.host = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.pathname = '?' ? needs to be encoded]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -53,27 +29,15 @@
|
|||
[<area>: Setting <sc://x/>.hostname = '@']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <nonsense:///test>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://hi/path>.protocol = 's']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US>.search = '']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://x/>.host = ' ']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.port = '12']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.hostname = '\r']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <ssh://example.net>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.hostname = '[google.com\]' Broken IPv6]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -86,9 +50,6 @@
|
|||
[<area>: Setting <file://y/>.hostname = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.hostname = '[::1.2.3.4x\]']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -104,9 +65,6 @@
|
|||
[<area>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://x/>.hostname = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -137,21 +95,12 @@
|
|||
[<area>: Setting <http://example.net:8080>.port = '80' Default port number is removed]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <ssh://example.net>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <ssh://me@example.net>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://foo.com:443/>.protocol = 'https' Port is set to null if it is the default for new scheme.]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -161,9 +110,6 @@
|
|||
[<area>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no host]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'bC0+-.']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://test/>.port = '12']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -185,9 +131,6 @@
|
|||
[<area>: Setting <file:///test>.protocol = 'gopher']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://test:12/>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -230,15 +173,9 @@
|
|||
[<area>: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = '#foo bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -260,18 +197,6 @@
|
|||
[<area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = '#foo"bar']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'b']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -299,9 +224,6 @@
|
|||
[<area>: Setting <http://example.net>.password = 'secret']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = '#foo>bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -311,18 +233,9 @@
|
|||
[<area>: Setting <file://test/>.password = 'test']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = '#foo<bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <non-spec:/>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = '+b' No leading punctuation]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -332,30 +245,15 @@
|
|||
[<area>: Setting <ftp://example.net>.protocol = 'test']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://hi/x>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <ssh://me@example.net>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <ftp://example.net>.protocol = 'test']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://y/>.hostname = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -368,18 +266,9 @@
|
|||
[<area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.host = '[::1.2.\]']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <ssh://me@example.net>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -401,9 +290,6 @@
|
|||
[<area>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.host = '[google.com\]' Broken IPv6]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -413,24 +299,15 @@
|
|||
[<area>: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://x/>.hostname = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = '0b' No leading digit]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://test:12/>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <ssh://me@example.net>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://test@test/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -455,12 +332,6 @@
|
|||
[<area>: Setting <http://example.net>.host = '[::0:01\]:2' IPv6 address syntax is normalized]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://test@test/>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://test@test/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a:/>.hash = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' Simple percent-encoding; tabs and newlines are removed]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -476,9 +347,6 @@
|
|||
[<a>: Setting <non-spec:/>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hash = '#foo<bar']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -497,24 +365,12 @@
|
|||
[<area>: Setting <http://me:secret@example.net>.password = '']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = '#foo bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net#nav>.pathname = '../home']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://y/>.host = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = 'bC0+-.']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <https://example.net>.protocol = 's']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '\r']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -533,18 +389,9 @@
|
|||
[<area>: Setting <sc:///>.password = 'x']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://hi/x>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'bC0+-.']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <a://example.net>.protocol = 'b']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -557,9 +404,6 @@
|
|||
[<area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <https://example.net>.protocol = 's']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -569,27 +413,12 @@
|
|||
[<area>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://test@test/>.host = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = 'ß']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://test:12/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://localhost/>.port = '12']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -599,30 +428,18 @@
|
|||
[<area>: Setting <https://example.net#nav>.hash = 'main']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://x/>.host = ' ']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc:///>.port = '12']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = '#foo`bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.hostname = 'example.com:8080' Stuff after a : delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://test:12/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -632,54 +449,30 @@
|
|||
[<area>: Setting <a:/>.search = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <ssh://me@example.net>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <nonsense:///test>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.username = 'me']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://foo.com:443/>.protocol = 'https' Port is set to null if it is the default for new scheme.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://hi/x>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net>.hash = '#foo bar']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = '0b' No leading digit]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080>.host = 'example.com:80' Port number is removed if new port is scheme default and existing URL has a non-default port]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net>.hash = 'main']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://y/>.hostname = 'x:123']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '\t']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://x/>.host = '?']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a:/>.pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net#nav>.pathname = 'home']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -698,18 +491,9 @@
|
|||
[<area>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <ftp://example.net>.protocol = 'test']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://me@example.net>.username = '']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <gopher://example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -719,12 +503,6 @@
|
|||
[<area>: Setting <sc://x/>.hostname = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://x/>.hostname = ' ']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <gopher://example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -749,33 +527,12 @@
|
|||
[<area>: Setting <http://example.net:8080>.hostname = 'example.com']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://x/>.hostname = ' ']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <http://example.net>.hash = '#foo<bar']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <a://example.net>.protocol = '0b' No leading digit]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <sc://x/>.host = '\x00' Non-special scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <javascript:alert(1)>.hash = 'castle']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://hi/path>.protocol = 's']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file:>.protocol = 'wss']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <wss://x:x@example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <view-source+http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -785,12 +542,6 @@
|
|||
[<area>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://y/>.hostname = 'loc%41lhost']
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <file://y/>.host = 'loc%41lhost']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net:4433>.port = '443' Default port number is removed]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -800,9 +551,6 @@
|
|||
[<area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = '+b' No leading punctuation]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/path>.host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -827,9 +575,6 @@
|
|||
[<area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'b']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <sc://test:12/>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -854,12 +599,6 @@
|
|||
[<area>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme]
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = '#foo"bar']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net/>.host = '[::1.2.3.\]']
|
||||
expected: FAIL
|
||||
|
||||
|
@ -872,12 +611,6 @@
|
|||
[URL: Setting <http://example.net>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <http://example.net>.hash = '#foo`bar']
|
||||
expected: FAIL
|
||||
|
||||
[<a>: Setting <file://hi/x>.hostname = '']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <http://example.net:8080/path>.hostname = 'example.com:' Stuff after a : delimiter is ignored]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -893,6 +626,9 @@
|
|||
[<area>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers]
|
||||
expected: FAIL
|
||||
|
||||
[URL: Setting <sc://test:12/>.host = '']
|
||||
[<area>: Setting <https://example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file:///test>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
5
tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini
Normal file
5
tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
[url-charset.window.html]
|
||||
expected: TIMEOUT
|
||||
[Blob charset should override any auto-detected charset.]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -245331,7 +245331,7 @@
|
|||
]
|
||||
],
|
||||
"sync-start-times.html": [
|
||||
"06dcf0305639f21fbeea35039023fe2102c38451",
|
||||
"e9ef6762ea74689c617552ce3122e5ea734cdf20",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -251488,7 +251488,7 @@
|
|||
],
|
||||
"resources": {
|
||||
"bluetooth-fake-devices.js": [
|
||||
"fdb08379d05179b502ce4d769dee9138aa9730d7",
|
||||
"6d4b30e59b7da85dcca23ad1f03380f13ae4b358",
|
||||
[]
|
||||
],
|
||||
"bluetooth-scanning-helpers.js": [
|
||||
|
@ -330920,7 +330920,7 @@
|
|||
},
|
||||
"resources": {
|
||||
"dispatcher.js": [
|
||||
"13c01add30fcc14571537ae04912c6c4b11a61c7",
|
||||
"44571722770a87fa7491b6be93ec59350c232f5e",
|
||||
[]
|
||||
],
|
||||
"dispatcher.py": [
|
||||
|
@ -330936,11 +330936,11 @@
|
|||
[]
|
||||
],
|
||||
"reporting-common.js": [
|
||||
"ea71f6ce863db9f1695348d8ff4434dc28d42c85",
|
||||
"ece74ab269d057b74f44ba3de453627bd411b229",
|
||||
[]
|
||||
],
|
||||
"try-access.js": [
|
||||
"eaf529e05647d7820b30ce8fce425ee884bc1f7f",
|
||||
"a06cb07904f9401332324d0f1cba5cc9a9eea29e",
|
||||
[]
|
||||
]
|
||||
}
|
||||
|
@ -338140,6 +338140,66 @@
|
|||
"373a5324455e1208bd97afd315775b5a488f0a8c",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-1-nothrow-worker-setup.mjs": [
|
||||
"24cccd486be5d6ff0ff7580069104436c7a9b8c7",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-1-nothrow-worker.mjs": [
|
||||
"4d3cf31a79c9f1f0c94250fc43168640b7498ab5",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-1-nothrow.mjs": [
|
||||
"c1d35beb3e601c7196d8b46ed964f6fffd1aa2c1",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-1-worker-setup.mjs": [
|
||||
"3971461d2ee4ba7d2f3c7561a925aa495b2eb49a",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-1-worker.mjs": [
|
||||
"b583bf1ca627596b7e0cc1d20792625e18dda986",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-1.mjs": [
|
||||
"7a43726635158e650d6b3977ff96ca27fcf8e184",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-2-import-worker-setup.mjs": [
|
||||
"0cfdca65f08e96271d55618e07d52b2d2a8b4c27",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-2-import-worker.mjs": [
|
||||
"3d9c9bb74973244909857aa73804bf1e18faf112",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-2.1.mjs": [
|
||||
"d6c2afa2f72283a68862723c7d1e8acabe9c2e93",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-2.2.mjs": [
|
||||
"5c67c4f9a2558d0aaebd0d5016fcadb88af01a4e",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-3-dynamic-worker-setup.mjs": [
|
||||
"f202cff96a7926490a95717e76bb7461484a89e9",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-3-dynamic-worker.mjs": [
|
||||
"79dabab10b39aa0fa970c64861760b9f9d2790f5",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-3.1.mjs": [
|
||||
"ef320632af75245a07c021dc228b56dd5128245c",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-3.2.mjs": [
|
||||
"8ccb58120664d2bb8e5cd76d22c10e8b431166ad",
|
||||
[]
|
||||
],
|
||||
"evaluation-order-setup.mjs": [
|
||||
"d3f22e9ee0f0bb00f1404c44469f8fd2c57b1bf3",
|
||||
[]
|
||||
],
|
||||
"execorder-dynamicordered2.js": [
|
||||
"d7115a2ac62c7582e4f79e70bdd2e457a0c031ef",
|
||||
[]
|
||||
|
@ -341021,7 +341081,7 @@
|
|||
[]
|
||||
],
|
||||
"streams.idl": [
|
||||
"3d7484a20e0553daba3cc336ba1b61c233e35e68",
|
||||
"f96c196385ce76d442a6d42838f021ff56dce7f8",
|
||||
[]
|
||||
],
|
||||
"text-detection-api.tentative.idl": [
|
||||
|
@ -341077,7 +341137,7 @@
|
|||
[]
|
||||
],
|
||||
"wasm-web-api.idl": [
|
||||
"1cc2f17679b2e89604e0d4a901f0dabbaa6917e5",
|
||||
"23856007a6d8749004122c7f0c10acb879c2f24a",
|
||||
[]
|
||||
],
|
||||
"web-animations.idl": [
|
||||
|
@ -344031,6 +344091,10 @@
|
|||
"6ba8dc5839923c0f90f73495f89faeb4c2342782",
|
||||
[]
|
||||
],
|
||||
"portal-close-window.html": [
|
||||
"6e163f4e86c97f66ea8f3298e36ed62d1ceb4790",
|
||||
[]
|
||||
],
|
||||
"portal-embed-and-activate.html": [
|
||||
"04f15b7fda43d873b52f63a80565c2ae4a9a7f50",
|
||||
[]
|
||||
|
@ -346356,7 +346420,7 @@
|
|||
[]
|
||||
],
|
||||
"webxr-test.js": [
|
||||
"51b2b132276465645031de151f7f569b4dd6d63f",
|
||||
"a1f57ac036b04a2b804d83acb594507aa9d1f31c",
|
||||
[]
|
||||
],
|
||||
"webxr-test.js.headers": [
|
||||
|
@ -346965,11 +347029,11 @@
|
|||
[]
|
||||
],
|
||||
"no-force-load-at-top-target.html": [
|
||||
"57e5f6d32ba80472961af1c55be073a64e18e2fb",
|
||||
"d2641eca72e6c10a94d09d49012a0900f0cf593a",
|
||||
[]
|
||||
],
|
||||
"no-force-load-at-top-target.html.headers": [
|
||||
"3a2c029fd6b5e013cde96bef1dcec7d7f4e4fdab",
|
||||
"e500009f91c0201a2a397a4267a6764cdb1eae8a",
|
||||
[]
|
||||
],
|
||||
"scroll-to-text-fragment-target.html": [
|
||||
|
@ -357590,7 +357654,7 @@
|
|||
[]
|
||||
],
|
||||
"browser.py": [
|
||||
"6abe151948438beaf4cd252b44d63d751587b1ec",
|
||||
"6c1c445de23557953210be0b4595dec7fc6bf26a",
|
||||
[]
|
||||
],
|
||||
"commands.json": [
|
||||
|
@ -357626,7 +357690,7 @@
|
|||
[]
|
||||
],
|
||||
"run.py": [
|
||||
"aec874fa1969cd86a875cc445067073b8a7c8944",
|
||||
"18f1c55145e819dbf16aeb35cfcbf3dedcaf5d7d",
|
||||
[]
|
||||
],
|
||||
"testfiles.py": [
|
||||
|
@ -359300,7 +359364,7 @@
|
|||
[]
|
||||
],
|
||||
"setters_tests.json": [
|
||||
"6c011e2f9acae432b62d04630f65782493565f9c",
|
||||
"db217da23d559bc7983471cda5547a6551b84945",
|
||||
[]
|
||||
],
|
||||
"toascii.json": [
|
||||
|
@ -439477,6 +439541,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"sandbox-disallow-popups.html": [
|
||||
"8e4b34eb8b950cdf1cd9ab45ef0d1325961aff01",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"sandbox-disallow-same-origin.html": [
|
||||
"0dae0137ac97de7fa2125a7081effd09e730ddc7",
|
||||
[
|
||||
|
@ -458135,16 +458206,7 @@
|
|||
"reporting": {
|
||||
"access-reporting": {
|
||||
"openee-accessed_openee-coop-ro.https.html": [
|
||||
"24943b03f39106596bef73612d7b286f02531ec2",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"openee-accessed_openee-coop.https.html": [
|
||||
"07ba21a0c742bab4606dd27a6d0fd5b492a7b449",
|
||||
"1deedbde77b72fd732c2f7c7c611d1adfc7235e9",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458153,16 +458215,7 @@
|
|||
]
|
||||
],
|
||||
"openee-accessed_opener-coop-ro.https.html": [
|
||||
"c693425a7ccd7c70deab6098fd8e272ecddaa51f",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"openee-accessed_opener-coop.https.html": [
|
||||
"fc3ff122f9e06e9ff1002eb046ade3d842867502",
|
||||
"8b6e7caed75640c6715ecfab8ef3b90de8b438cc",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458171,16 +458224,7 @@
|
|||
]
|
||||
],
|
||||
"opener-accessed_openee-coop-ro.https.html": [
|
||||
"b8f9f22e7cbf4ca80fd152258b539b106b77dbb1",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"opener-accessed_openee-coop.https.html": [
|
||||
"ffce48de49627c02807316309b541f748e943d6c",
|
||||
"6c576def93ab4c029b1719f0bbfd115e30ab1c56",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458189,16 +458233,7 @@
|
|||
]
|
||||
],
|
||||
"opener-accessed_opener-coop-ro.https.html": [
|
||||
"1c9436ce8ba4f28c99df29985c1c10559295cec9",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"opener-accessed_opener-coop.https.html": [
|
||||
"1d4c117ed2bae2d47304a9d68ce928f6b52dc86f",
|
||||
"b6883de249a19e4aeb15992c22d3f46c91b70b1b",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458225,7 +458260,7 @@
|
|||
]
|
||||
],
|
||||
"property.https.html": [
|
||||
"6a22cb2076cbfcf042926ef7249d98139651de53",
|
||||
"d6c563be4f333a9a4105fc54618b4837e3e79ba0",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458234,7 +458269,7 @@
|
|||
]
|
||||
],
|
||||
"reporting-observer.html": [
|
||||
"decad097b6d29acabb6252497f68658002c3478e",
|
||||
"5b67575a0eab47df04a6067ac573328ba6ea6a20",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458245,7 +458280,7 @@
|
|||
},
|
||||
"navigation-reporting": {
|
||||
"report-only-four-reports.https.html": [
|
||||
"1367a9ec979eaeeb85c1488923119e5307d14152",
|
||||
"245df0439ea71413a59ffdf6c67b83624aa8e290",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458254,7 +458289,7 @@
|
|||
]
|
||||
],
|
||||
"report-only-from-unsafe-none.https.html": [
|
||||
"2664b68a154f5fa84cffde001c198785c98180f2",
|
||||
"a9bd737c6dd722562517f55bad152e3fcd37290c",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458263,7 +458298,7 @@
|
|||
]
|
||||
],
|
||||
"report-only-same-origin-report-to.https.html": [
|
||||
"a312232d07a9c44ab3082ae28a4c29220cce7420",
|
||||
"f66d19a239a9d9ed413657bca2e1c23ad72e1a77",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458290,7 +458325,7 @@
|
|||
]
|
||||
],
|
||||
"report-only-same-origin.https.html": [
|
||||
"c02407db9babccbcf949607174c196fcfb8dc06c",
|
||||
"25124ef3d5e4f839447bf1e54e14b27e837ad533",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458299,14 +458334,14 @@
|
|||
]
|
||||
],
|
||||
"reporting-coop-navigated-popup.https.html": [
|
||||
"4d73a62698674d264b2ee645f72836a17f500228",
|
||||
"b2e28db349eff34e582e40daad2069c7f13999b0",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"reporting-popup-same-origin-allow-popups-report-to.https.html": [
|
||||
"a90c2817db2398cc4c5c0c7c9853d8fdca440ecf",
|
||||
"a8730b00cc6af19a5a02f825fbb0d92f5bce3aa0",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458315,7 +458350,7 @@
|
|||
]
|
||||
],
|
||||
"reporting-popup-same-origin-coep-report-to.https.html": [
|
||||
"f056bc54b93d1ad70eb5bd4b452a54663deda13c",
|
||||
"51957b4ac19ed23f51d6be3685c96522d6b9391b",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458324,7 +458359,7 @@
|
|||
]
|
||||
],
|
||||
"reporting-popup-same-origin-report-to.https.html": [
|
||||
"4e2dc52e49d1dba8d01b1fa9634973a9d5312af3",
|
||||
"6d3c6b41df155fc8237007ae4d6d87709a0ee795",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458333,7 +458368,7 @@
|
|||
]
|
||||
],
|
||||
"reporting-popup-same-origin.https.html": [
|
||||
"24dace7d8d8f5962261cdac4a13b095f762cfdb2",
|
||||
"ec39a568bbd197d0f65e9d40f7c25001c7e8adb6",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458342,7 +458377,7 @@
|
|||
]
|
||||
],
|
||||
"reporting-popup-unsafe-none-report-to.https.html": [
|
||||
"7ad6ec9ce7ab26b5f1bcca6ee6bbe6d6ad3a20f0",
|
||||
"a4eaec15bbe5cc23bf0e250f8178809fe86729c9",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -458351,7 +458386,7 @@
|
|||
]
|
||||
],
|
||||
"reporting-redirect-with-same-origin-allow-popups.https.html": [
|
||||
"f807561f17488c1b05ea779f6b0aa64c7a10d197",
|
||||
"f2f06efd628107108976ffc28ab33db7c13bb05a",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -466685,6 +466720,15 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"input-change-event-properties.html": [
|
||||
"f3c6f7d4625e2bc6c9098322476b3d2f73fa8dd7",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"resetting-a-form": {
|
||||
"reset-event.html": [
|
||||
"f7d98f721653cd5ed98aa602e367cea635cd5820",
|
||||
|
@ -470222,28 +470266,84 @@
|
|||
]
|
||||
],
|
||||
"evaluation-error-1.html": [
|
||||
"21f005a69e9592774a3cb3f9db2b231d72da9f74",
|
||||
"3f2bb35f4e273e0a14e3f010d629761177e22a06",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-error-2.html": [
|
||||
"6aedc0608c6b2aee7a784fede5d886ad7724d57a",
|
||||
"4f2b3c5a745cd8d7bf907778d7bacefacd1effa1",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-error-3.html": [
|
||||
"71d61f5a99d8c1f5e923d51967e4c1d48f8319c6",
|
||||
"9bfb5df2cf0eab603cdf8798f9b2d2660dfdebd2",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-error-4.html": [
|
||||
"dcb0108b9d41012eebc6f5720e4229b2fd3ef74d",
|
||||
"0b4b7d16622c452abcf4d70d40790c6bb437065c",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-order-1-nothrow-worker.html": [
|
||||
"1b7ea09ebdd8cb6c35aefefe6b22b6495db735c9",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-order-1-nothrow.html": [
|
||||
"080f5ac3bdaa971232a7d668e57079179d64cdc4",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-order-1-worker.html": [
|
||||
"0325bb2a30da1e22f0a6e12e0dda17bf12c89f6c",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-order-1.html": [
|
||||
"10bfcadb78d2bc1487b8cee1f47bfc546c5111b7",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-order-2-import-worker.html": [
|
||||
"83070191af9ad4b693e6ca3a1f2eaea53d8bad67",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-order-2-import.html": [
|
||||
"0b0bf849a4391152d34cc8d55039e8c3707ecbfc",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-order-3-dynamic-worker.html": [
|
||||
"49731bd4822d2abef8fd263bca98f2a2f398933c",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"evaluation-order-3-dynamic.html": [
|
||||
"6306c0b5cf204d91b8ef126da6180e7c32784b8f",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -488919,6 +489019,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"portals-close-window.html": [
|
||||
"e3a66c0bf10b102ef4efea70be8efa7c6b6ab74e",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"portals-cross-origin-load.sub.html": [
|
||||
"04db38a8e9a2d9b2ac5ffe1078f3015dd0b9204e",
|
||||
[
|
||||
|
@ -501308,7 +501415,7 @@
|
|||
]
|
||||
],
|
||||
"scroll-animation.html": [
|
||||
"60fc4c500cd3e06bf67f511687dd9c7161fa6a0f",
|
||||
"ef36236d2191a62c4384d146aecbe36025e007fd",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -521006,7 +521113,7 @@
|
|||
]
|
||||
],
|
||||
"timelines.html": [
|
||||
"50bb3ac5877ff6c676c8781113fe3b9da4104fdd",
|
||||
"d570eed5c28637c001b1d1c178630bdb424afd31",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -532082,7 +532189,7 @@
|
|||
},
|
||||
"dom-overlay": {
|
||||
"ar_dom_overlay.https.html": [
|
||||
"de0cb68744956558541b574fd88800d262d23e97",
|
||||
"27837e12681f9c747dc8f13194ffa89e016f520e",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -532112,6 +532219,15 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"nested_fullscreen.https.html": [
|
||||
"a8fc70fca6a7c33af4287d92a4318cca621ca0bd",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"events_input_source_recreation.https.html": [
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[hit-test-floats-004.html]
|
||||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -312,21 +312,24 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" 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 ]
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,9 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript ]
|
||||
[separate text/javascript error]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,5 @@
|
|||
[sandbox-disallow-popups.html]
|
||||
expected: TIMEOUT
|
||||
[window.open in sandbox iframe]
|
||||
expected: NOTRUN
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[creating_browsing_context_test_01.html]
|
||||
[first argument: absolute url]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -6,11 +7,14 @@
|
|||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Non-HTMLElement should not support autofocus]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -172,6 +172,3 @@
|
|||
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (standards) IMG usemap="no-hash-name"]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[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
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[htmlanchorelement_noopener.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that targeting of rel=noopener with a given name ignores an existing window with that name]
|
||||
expected: NOTRUN
|
||||
|
||||
|
@ -8,11 +7,11 @@
|
|||
expected: FAIL
|
||||
|
||||
[Check that rel=noopener with target=_top does a normal load]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Check that rel=noopener with target=_self does a normal load]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
[Check that rel=noopener with target=_parent does a normal load]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[077.html]
|
||||
[ adding several types of scripts through the DOM and removing some of them confuses scheduler ]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[evaluation-order-1-nothrow-worker.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[evaluation-order-1-nothrow.html]
|
||||
[Test evaluation order of modules]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[evaluation-order-1-worker.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[evaluation-order-1.html]
|
||||
[Test evaluation order of modules]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[evaluation-order-2-import-worker.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[evaluation-order-2-import.html]
|
||||
[Test evaluation order of modules]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[evaluation-order-3-dynamic-worker.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[evaluation-order-3-dynamic.html]
|
||||
[Test evaluation order of modules]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[DOMContentLoaded-defer.html]
|
||||
[The end: DOMContentLoaded and defer scripts]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[module-static-import-delayed.html]
|
||||
[document.write in an imported module]
|
||||
expected: FAIL
|
||||
|
|
@ -4,6 +4,3 @@
|
|||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
[promise-job-entry.html]
|
||||
expected: TIMEOUT
|
||||
[Fulfillment handler on fulfilled promise]
|
||||
expected: FAIL
|
||||
|
||||
[Rejection handler on pending-then-rejected promise]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Sanity check: this all works as expected with no promises involved]
|
||||
expected: FAIL
|
||||
|
@ -15,5 +16,5 @@
|
|||
expected: FAIL
|
||||
|
||||
[Fulfillment handler on pending-then-fulfilled promise]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -768,3 +768,9 @@
|
|||
[URL: Setting <non-spec:/>.hash = 'a\x00b' Percent-encode NULLs in fragment]
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <https://example.net:1234>.protocol = 'file']
|
||||
expected: FAIL
|
||||
|
||||
[<area>: Setting <file:///test>.protocol = 'https']
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -452,7 +452,7 @@ async function getBlocklistDevice(setupOptionsOverride = {}) {
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns an object containing a Blocklist Test BluetoothRemoveGattService and
|
||||
* Returns an object containing a Blocklist Test BluetoothRemoteGattService and
|
||||
* its corresponding FakeRemoteGATTService.
|
||||
* @returns {Promise<{device: BluetoothDevice, fake_peripheral: FakePeripheral,
|
||||
* fake_blocklist_test_service: FakeRemoteGATTService,
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset=utf-8>
|
||||
<title>window.open in sandbox iframe</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/common/utils.js"></script>
|
||||
<body>
|
||||
<script>
|
||||
setup({single_test: true});
|
||||
// check that the popup's URL is not loaded
|
||||
const uuid = token();
|
||||
async function assert_popup_not_loaded() {
|
||||
const response = await fetch(`/fetch/api/resources/stash-take.py?key=${uuid}`);
|
||||
assert_equals(await response.json(), null); // is "loaded" if it loads
|
||||
}
|
||||
|
||||
// check for message from the iframe
|
||||
window.onmessage = e => {
|
||||
assert_equals(e.data, 'null', 'return value of window.open (stringified)');
|
||||
step_timeout(async () => {
|
||||
await assert_popup_not_loaded();
|
||||
done();
|
||||
}, 1000);
|
||||
};
|
||||
const iframe = document.createElement('iframe');
|
||||
iframe.sandbox = 'allow-scripts';
|
||||
iframe.srcdoc = `
|
||||
<script>
|
||||
let result;
|
||||
try {
|
||||
result = window.open('/fetch/api/resources/stash-put.py?key=${uuid}&value=loaded', '_blank');
|
||||
} catch(ex) {
|
||||
result = ex;
|
||||
}
|
||||
parent.postMessage(String(result), '*');
|
||||
<\/script>
|
||||
`;
|
||||
document.body.appendChild(iframe);
|
||||
</script>
|
|
@ -43,10 +43,10 @@ promise_test(async t => {
|
|||
assert_not_equals(report, "timeout", "Report not received");
|
||||
assert_equals(report.type, "coop");
|
||||
assert_equals(report.url, openee_url.replace(/"/g, '%22'));
|
||||
assert_equals(report.body["violation-type"], "access-to-coop-page");
|
||||
assert_equals(report.body["disposition"], "reporting");
|
||||
assert_equals(report.body["effective-policy"], "same-origin-plus-coep");
|
||||
assert_equals(report.body["property"], "blur");
|
||||
assert_equals(report.body.type, "access-to-coop-page");
|
||||
assert_equals(report.body.disposition, "reporting");
|
||||
assert_equals(report.body.effectivePolicy, "same-origin-plus-coep");
|
||||
assert_equals(report.body.property, "blur");
|
||||
assert_source_location_missing(report);
|
||||
// TODO(arthursonzogni): Add check for report > body > blocked-window-url
|
||||
}, "Opener accesses openee (COOP-RO+COEP). Report to openee");
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
<title>
|
||||
COOP reports are sent when the openee used COOP+COEP and then its opener
|
||||
tries to access it.
|
||||
</title>
|
||||
<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="../resources/dispatcher.js"></script>
|
||||
<script src="../resources/try-access.js"></script>
|
||||
<script>
|
||||
|
||||
const directory = "/html/cross-origin-opener-policy/reporting";
|
||||
const executor_path = directory + "/resources/executor.html?pipe=";
|
||||
const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
|
||||
const coep_header = '|header(Cross-Origin-Embedder-Policy,require-corp)';
|
||||
|
||||
promise_test(async t => {
|
||||
const report_token = token();
|
||||
const openee_token = token();
|
||||
const opener_token = token(); // The current test window.
|
||||
|
||||
const reportTo = reportToHeaders(report_token);
|
||||
const openee_url = cross_origin + executor_path +
|
||||
reportTo.header + reportTo.coopSameOriginHeader + coep_header +
|
||||
`&uuid=${openee_token}`;
|
||||
const openee = window.open(openee_url);
|
||||
t.add_cleanup(() => send(openee_token, "window.close()"))
|
||||
|
||||
// 1. Make sure the new document to be loaded.
|
||||
send(openee_token, `
|
||||
send("${opener_token}", "Ready");
|
||||
`);
|
||||
let reply = await receive(opener_token);
|
||||
assert_equals(reply, "Ready");
|
||||
|
||||
// 2. Try to access the openee. This shouldn't work because of COOP+COEP.
|
||||
tryAccess(openee);
|
||||
|
||||
// 3. Check a report is sent to the openee.
|
||||
let report = await receiveReport(report_token, "access-to-coop-page")
|
||||
assert_not_equals(report, "timeout", "Report not received");
|
||||
assert_equals(report.type, "coop");
|
||||
assert_equals(report.url, openee_url.replace(/"/g, '%22'));
|
||||
assert_equals(report.body["violation-type"], "access-to-coop-page");
|
||||
assert_equals(report.body["disposition"], "enforce");
|
||||
assert_equals(report.body["effective-policy"], "same-origin-plus-coep");
|
||||
assert_equals(report.body["property"], "blur");
|
||||
assert_source_location_missing(report);
|
||||
// TODO(arthursonzogni): Add check for report > body > blocked-window-url
|
||||
}, "Opener accesses openee (COOP+COEP). Report to openee");
|
||||
|
||||
</script>
|
|
@ -62,10 +62,10 @@ promise_test(async t => {
|
|||
assert_not_equals(report, "timeout", "Report not received");
|
||||
assert_equals(report.type, "coop");
|
||||
assert_equals(report.url, opener_url.replace(/"/g, '%22'));
|
||||
assert_equals(report.body["violation-type"], "access-from-coop-page");
|
||||
assert_equals(report.body["disposition"], "reporting");
|
||||
assert_equals(report.body["effective-policy"], "same-origin-plus-coep");
|
||||
assert_equals(report.body["property"], "blur");
|
||||
assert_equals(report.body.type, "access-from-coop-page");
|
||||
assert_equals(report.body.disposition, "reporting");
|
||||
assert_equals(report.body.effectivePolicy, "same-origin-plus-coep");
|
||||
assert_equals(report.body.property, "blur");
|
||||
assert_source_location_found(report);
|
||||
// TODO(arthursonzogni): Check the window-blocked-url.
|
||||
}, "Opener (COOP-RO+COEP) accesses openee. Report to opener");
|
||||
|
|
|
@ -1,73 +0,0 @@
|
|||
<title>
|
||||
COOP reports are to the opener when the opener used COOP+COEP and then it
|
||||
tries to access a cross-origin openee.
|
||||
</title>
|
||||
<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="../resources/dispatcher.js"></script>
|
||||
<script src="../resources/try-access.js"></script>
|
||||
<script>
|
||||
|
||||
const directory = "/html/cross-origin-opener-policy/reporting";
|
||||
const executor_path = directory + "/resources/executor.html?pipe=";
|
||||
const same_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
|
||||
const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
|
||||
const coep_header = '|header(Cross-Origin-Embedder-Policy,require-corp)';
|
||||
|
||||
promise_test(async t => {
|
||||
// The test window.
|
||||
const this_window_token = token();
|
||||
|
||||
// The "opener" window. This has COOP and a reporter.
|
||||
const opener_report_token= token();
|
||||
const opener_token = token();
|
||||
const opener_reportTo = reportToHeaders(opener_report_token);
|
||||
const opener_url = same_origin + executor_path + opener_reportTo.header +
|
||||
opener_reportTo.coopSameOriginHeader + coep_header +
|
||||
`&uuid=${opener_token}`;
|
||||
|
||||
// The "openee" window. This is cross origin with the "opener".
|
||||
const openee_report_token= token();
|
||||
const openee_token = token();
|
||||
const openee_url = same_origin + executor_path + `&uuid=${openee_token}`;
|
||||
|
||||
// 1. Create the opener window.
|
||||
let opener_window_proxy = window.open(opener_url);
|
||||
t.add_cleanup(() => send(opener_token, "window.close()"));
|
||||
|
||||
// 2. The opener opens it openee.
|
||||
send(opener_token, `
|
||||
openee = window.open("${openee_url}");
|
||||
send("${this_window_token}", "ACK 1");
|
||||
`);
|
||||
assert_equals("ACK 1", await receive(this_window_token));
|
||||
t.add_cleanup(() => send(openee_token, "window.close()"));
|
||||
|
||||
// 3. Ensure the openee's document to be loaded.
|
||||
send(openee_token, `
|
||||
send("${this_window_token}", "ACK 2");
|
||||
`);
|
||||
assert_equals("ACK 2", await receive(this_window_token));
|
||||
|
||||
// 4. The opener tries to access its openee.
|
||||
send(opener_token, `
|
||||
tryAccess(openee);
|
||||
`);
|
||||
|
||||
// 5. Check a report sent to the opener.
|
||||
let report = await receiveReport(opener_report_token, "access-from-coop-page")
|
||||
assert_not_equals(report, "timeout", "Report not received");
|
||||
assert_equals(report.type, "coop");
|
||||
assert_equals(report.url, opener_url.replace(/"/g, '%22'));
|
||||
assert_equals(report.body["violation-type"], "access-from-coop-page");
|
||||
assert_equals(report.body["disposition"], "enforce");
|
||||
assert_equals(report.body["effective-policy"], "same-origin-plus-coep");
|
||||
assert_equals(report.body["property"], "blur");
|
||||
assert_source_location_found(report);
|
||||
// TODO(arthursonzogni): Check the window-blocked-url.
|
||||
}, "Opener (COOP+COEP) accesses openee. Report to opener");
|
||||
|
||||
</script>
|
|
@ -37,10 +37,10 @@ promise_test(async t => {
|
|||
assert_not_equals(report, "timeout", "Report not received");
|
||||
assert_equals(report.type, "coop");
|
||||
assert_equals(report.url, openee_url.replace(/"/g, '%22'));
|
||||
assert_equals(report.body["violation-type"], "access-from-coop-page");
|
||||
assert_equals(report.body["disposition"], "reporting");
|
||||
assert_equals(report.body["effective-policy"], "same-origin-plus-coep");
|
||||
assert_equals(report.body["property"], "blur");
|
||||
assert_equals(report.body.type, "access-from-coop-page");
|
||||
assert_equals(report.body.disposition, "reporting");
|
||||
assert_equals(report.body.effectivePolicy, "same-origin-plus-coep");
|
||||
assert_equals(report.body.property, "blur");
|
||||
assert_source_location_found(report);
|
||||
}, "Openee (COOP-RO+COEP) accesses opener. Report to openee");
|
||||
|
||||
|
|
|
@ -1,47 +0,0 @@
|
|||
<title>
|
||||
COOP reports are sent when the openee used COOP+COEP and then tries to
|
||||
access its opener.
|
||||
</title>
|
||||
<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="../resources/dispatcher.js"></script>
|
||||
<script src="../resources/try-access.js"></script>
|
||||
<script>
|
||||
|
||||
const directory = "/html/cross-origin-opener-policy/reporting";
|
||||
const executor_path = directory + "/resources/executor.html?pipe=";
|
||||
const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
|
||||
const coep_header = '|header(Cross-Origin-Embedder-Policy,require-corp)';
|
||||
|
||||
promise_test(async t => {
|
||||
const report_token = token();
|
||||
const openee_token = token();
|
||||
|
||||
const reportTo = reportToHeaders(report_token);
|
||||
const openee_url = cross_origin + executor_path +
|
||||
reportTo.header + reportTo.coopSameOriginHeader + coep_header +
|
||||
`&uuid=${openee_token}`;
|
||||
const openee = window.open(openee_url);
|
||||
t.add_cleanup(() => send(openee_token, "window.close()"));
|
||||
|
||||
// 1. Try to access the opener. A report is sent, because of COOP+COEP.
|
||||
send(openee_token, `
|
||||
tryAccess(opener);
|
||||
`);
|
||||
|
||||
// 2. Check a report is sent to the openee.
|
||||
let report = await receiveReport(report_token, "access-from-coop-page")
|
||||
assert_not_equals(report, "timeout", "Report not received");
|
||||
assert_equals(report.type, "coop");
|
||||
assert_equals(report.url, openee_url.replace(/"/g, '%22'));
|
||||
assert_equals(report.body["violation-type"], "access-from-coop-page");
|
||||
assert_equals(report.body["disposition"], "enforce");
|
||||
assert_equals(report.body["effective-policy"], "same-origin-plus-coep");
|
||||
assert_equals(report.body["property"], "blur");
|
||||
assert_source_location_found(report);
|
||||
}, "Openee (COOP+COEP) accesses opener. Report to openee");
|
||||
|
||||
</script>
|
|
@ -56,10 +56,10 @@ promise_test(async t => {
|
|||
assert_not_equals(report, "timeout", "Report not received");
|
||||
assert_equals(report.type, "coop");
|
||||
assert_equals(report.url, opener_url.replace(/"/g, '%22'));
|
||||
assert_equals(report.body["violation-type"], "access-to-coop-page");
|
||||
assert_equals(report.body["disposition"], "reporting");
|
||||
assert_equals(report.body["effective-policy"], "same-origin-plus-coep");
|
||||
assert_equals(report.body["property"], "blur");
|
||||
assert_equals(report.body.type, "access-to-coop-page");
|
||||
assert_equals(report.body.disposition, "reporting");
|
||||
assert_equals(report.body.effectivePolicy, "same-origin-plus-coep");
|
||||
assert_equals(report.body.property, "blur");
|
||||
assert_source_location_missing(report);
|
||||
// TODO(arthursonzogni): Check the window-blocked-url.
|
||||
}, "Openee accesses opener (COOP-RO-COEP). Report to opener");
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
<title>
|
||||
COOP reports are to the opener when the opener used COOP+COEP and then its
|
||||
cross-origin openee tries to access it.
|
||||
</title>
|
||||
<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="../resources/dispatcher.js"></script>
|
||||
<script src="../resources/try-access.js"></script>
|
||||
<script>
|
||||
|
||||
const directory = "/html/cross-origin-opener-policy/reporting";
|
||||
const executor_path = directory + "/resources/executor.html?pipe=";
|
||||
const same_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
|
||||
const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
|
||||
const coep_header = '|header(Cross-Origin-Embedder-Policy,require-corp)';
|
||||
|
||||
promise_test(async t => {
|
||||
// The test window.
|
||||
const this_window_token = token();
|
||||
|
||||
// The "opener" window. This has COOP and a reporter.
|
||||
const opener_report_token= token();
|
||||
const opener_token = token();
|
||||
const opener_reportTo = reportToHeaders(opener_report_token);
|
||||
const opener_url = same_origin + executor_path + opener_reportTo.header +
|
||||
opener_reportTo.coopSameOriginHeader + coep_header +
|
||||
`&uuid=${opener_token}`;
|
||||
|
||||
// The "openee" window. This is cross origin with the "opener".
|
||||
const openee_report_token= token();
|
||||
const openee_token = token();
|
||||
const openee_url = same_origin + executor_path + `&uuid=${openee_token}`;
|
||||
|
||||
// 1. Create the opener window.
|
||||
let opener_window_proxy = window.open(opener_url);
|
||||
t.add_cleanup(() => send(opener_token, "window.close()"));
|
||||
|
||||
// 2. The opener opens its openee.
|
||||
send(opener_token, `
|
||||
openee = window.open("${openee_url}");
|
||||
send("${this_window_token}", "ACK 1");
|
||||
`);
|
||||
assert_equals("ACK 1", await receive(this_window_token));
|
||||
t.add_cleanup(() => send(openee_token, "window.close()"));
|
||||
|
||||
// 3. The openee tries to access its opener.
|
||||
send(openee_token, `
|
||||
tryAccess(opener);
|
||||
`);
|
||||
|
||||
// 4. Check a report is sent to the opener.
|
||||
let report = await receiveReport(opener_report_token, "access-to-coop-page")
|
||||
assert_not_equals(report, "timeout", "Report not received");
|
||||
assert_equals(report.type, "coop");
|
||||
assert_equals(report.url, opener_url.replace(/"/g, '%22'));
|
||||
assert_equals(report.body["violation-type"], "access-to-coop-page");
|
||||
assert_equals(report.body["disposition"], "enforce");
|
||||
assert_equals(report.body["effective-policy"], "same-origin-plus-coep");
|
||||
assert_equals(report.body["property"], "blur");
|
||||
assert_source_location_missing(report);
|
||||
// TODO(arthursonzogni): Check the window-blocked-url.
|
||||
}, "Openee accesses opener (COOP-COEP). Report to opener");
|
||||
|
||||
</script>
|
|
@ -59,7 +59,7 @@ origin.forEach(([origin_name, origin]) => {
|
|||
// 3. Check a reports is sent to the opener.
|
||||
let report = await receiveReport(report_token, "access-to-coop-page")
|
||||
assert_not_equals(report, "timeout", "Report not received");
|
||||
assert_equals(report.body["property"], property);
|
||||
assert_equals(report.body.property, property);
|
||||
|
||||
}, `${origin_name} > ${op}`);
|
||||
})
|
||||
|
|
|
@ -62,10 +62,7 @@ promise_test(async t => {
|
|||
assert_equals(report_access_from.length, 1, "No report received.");
|
||||
assert_equals(report_access_from[0].type, "coop-access-violation");
|
||||
assert_equals(report_access_from[0].url, opener_url.replace(/"/g, '%22'));
|
||||
assert_true(report_access_from[0].body.sourceFile.includes("try-access.js"));
|
||||
assert_equals(report_access_from[0].body.lineNumber, 6);
|
||||
assert_equals(report_access_from[0].body.columnNumber, 7);
|
||||
assert_equals(report_access_from[0].body.property, "blur");
|
||||
assert_source_location_found(report_access_from[0])
|
||||
|
||||
// 5. The openee tries to access its opener. No reports for blocked access
|
||||
// to the COOP page should be dispatched.
|
||||
|
@ -120,9 +117,7 @@ promise_test(async t => {
|
|||
assert_equals(report_access_from[0].type, "coop-access-violation");
|
||||
assert_equals(report_access_from[0].url, openee_url.replace(/"/g, '%22'));
|
||||
assert_true(report_access_from[0].body.sourceFile.includes("try-access.js"));
|
||||
assert_equals(report_access_from[0].body.lineNumber, 6);
|
||||
assert_equals(report_access_from[0].body.columnNumber, 7);
|
||||
assert_equals(report_access_from[0].body.property, "blur");
|
||||
assert_source_location_found(report_access_from[0])
|
||||
|
||||
// 4. The opener tries to access its openee. No reports for blocked access
|
||||
// to the COOP page should be dispatched.
|
||||
|
@ -197,9 +192,7 @@ promise_test(async t => {
|
|||
assert_equals(reports[0].type, "coop-access-violation");
|
||||
assert_equals(reports[0].url, opener_url.replace(/"/g, '%22'));
|
||||
assert_true(reports[0].body.sourceFile.includes("try-access.js"));
|
||||
assert_equals(reports[0].body.lineNumber, 6);
|
||||
assert_equals(reports[0].body.columnNumber, 7);
|
||||
assert_equals(reports[0].body.property, "blur");
|
||||
assert_source_location_found(reports[0]);
|
||||
}, "Access from same-origin iframe")
|
||||
|
||||
promise_test(async t => {
|
||||
|
|
|
@ -28,10 +28,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin-allow-popups",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin-allow-popups",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -42,10 +42,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "reporting",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -56,10 +56,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin-allow-popups",
|
||||
"navigation-uri": `${location.origin}/`, // referrer
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin-allow-popups",
|
||||
"navigationURI": `${location.origin}/`, // referrer
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -70,10 +70,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "reporting",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": `${location.origin}/`, // referrer
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": `${location.origin}/`, // referrer
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
|
|
@ -28,10 +28,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "reporting",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": `${location.href}`, // previous documnent url
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": `${location.href}`, // previous documnent url
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -53,10 +53,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "reporting",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": `${location.origin}/`, // referrer (origin, as dictated by the referrer policy)
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": `${location.origin}/`, // referrer (origin, as dictated by the referrer policy)
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
|
|
@ -29,10 +29,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "reporting",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -55,10 +55,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "reporting",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -69,10 +69,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "reporting",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": `${location.origin}/`, // referrer
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": `${location.origin}/`, // referrer
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
|
|
@ -29,10 +29,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "reporting",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": `${location.href}`,
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": `${location.href}`,
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -55,10 +55,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "reporting",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": `${location.href}`,
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": `${location.href}`,
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
|
|
@ -54,10 +54,10 @@ promise_test( async t => {
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": RegExp(`uuid=${noCoopToken}$`),
|
||||
"effective-policy": "unsafe-none",
|
||||
"navigation-uri": RegExp(`uuid=${coopToken}$`),
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": RegExp(`uuid=${noCoopToken}$`),
|
||||
"effectivePolicy": "unsafe-none",
|
||||
"navigationURI": RegExp(`uuid=${coopToken}$`),
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": RegExp(`uuid=${noCoopToken}$`),
|
||||
"type": "coop"
|
||||
|
@ -68,10 +68,10 @@ promise_test( async t => {
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": RegExp(`uuid=${coopToken}$`),
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": RegExp(`uuid=${noCoopToken}$`),
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": RegExp(`uuid=${coopToken}$`),
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": RegExp(`uuid=${noCoopToken}$`),
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": RegExp(`uuid=${coopToken}$`),
|
||||
"type": "coop"
|
||||
|
|
|
@ -28,10 +28,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin-allow-popups",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin-allow-popups",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -42,10 +42,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": `${location.href}`, // previous documnent url
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": `${location.href}`, // previous documnent url
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -69,10 +69,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin-allow-popups",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // initial navigation URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin-allow-popups",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // initial navigation URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -83,10 +83,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin-allow-popups",
|
||||
"navigation-uri": `${location.origin}/`, // referrer (origin, as dictated by the referrer policy)
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin-allow-popups",
|
||||
"navigationURI": `${location.origin}/`, // referrer (origin, as dictated by the referrer policy)
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -110,10 +110,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin-allow-popups",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // initial navigation URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin-allow-popups",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // initial navigation URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
|
|
@ -23,7 +23,7 @@ let tests = [
|
|||
[]
|
||||
],
|
||||
// Open a same-origin popup with a same-origin COOP but no COEP. Produces two
|
||||
// reports (one from and one to). The from report has an effective-policy of
|
||||
// reports (one from and one to). The from report has an effectivePolicy of
|
||||
// same-origin-plus-coep, both pages being same origin, the entire
|
||||
// next/pervious document urls are available.
|
||||
[
|
||||
|
@ -38,10 +38,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // next destination url
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // next destination url
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -52,10 +52,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": `${location.href}`, // previous document url
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": `${location.href}`, // previous document url
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -64,7 +64,7 @@ let tests = [
|
|||
]
|
||||
],
|
||||
// Open a cross-origin popup with a same-origin COOP and COEP. Produces two
|
||||
// reports (one from and one to). The from report has an effective-policy of
|
||||
// reports (one from and one to). The from report has an effectivePolicy of
|
||||
// same-origin-plus-coep, both pages being cross origin, the next/pervious
|
||||
// document urls are not available and the initial document url/referrer are
|
||||
// used instead.
|
||||
|
@ -80,10 +80,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // initial navigation url
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // initial navigation url
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -94,10 +94,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": `${location.origin}/`, // referrer (origin, as dictated by the referrer policy)
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": `${location.origin}/`, // referrer (origin, as dictated by the referrer policy)
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -119,10 +119,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // next destination url
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // next destination url
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -144,10 +144,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // next destination url
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // next destination url
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -158,10 +158,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "reporting",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": `${location.origin}/`, // referrer (origin, as dictated by the referrer policy)
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": `${location.origin}/`, // referrer (origin, as dictated by the referrer policy)
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
|
|
@ -24,7 +24,7 @@ let tests = [
|
|||
[]
|
||||
],
|
||||
// Open a cross-origin popup with a same-origin COOP. Produces two
|
||||
// reports (one from and one to). The from report has an effective-policy of
|
||||
// reports (one from and one to). The from report has an effectivePolicy of
|
||||
// same-origin (corresponding to the current document), both pages being
|
||||
// cross origin, the next/pervious document urls are not available and the
|
||||
// initial document url/referrer are used instead.
|
||||
|
@ -40,10 +40,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // initial navigation URL (equal to the next document url in that case)
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // initial navigation URL (equal to the next document url in that case)
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -54,10 +54,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": '', // referrer (empty due to the Referrer Policy)
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": '', // referrer (empty due to the Referrer Policy)
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -80,10 +80,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -94,10 +94,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "unsafe-none",
|
||||
"navigation-uri": `${location.href}`,
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "unsafe-none",
|
||||
"navigationURI": `${location.href}`,
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -108,7 +108,7 @@ let tests = [
|
|||
// Open a same-origin popup with a same-origin COOP and COEP. The difference
|
||||
// of COEP values leads to the browsing context group switch and produces two
|
||||
// reports. This verifies that the navigation-to-document report has an
|
||||
// effective-policy of same-origin-plus-coep.
|
||||
// effectivePolicy of same-origin-plus-coep.
|
||||
[
|
||||
SAME_ORIGIN,
|
||||
`same-origin; report-to="${popupReportEndpoint.name}"`,
|
||||
|
@ -121,10 +121,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // Next document URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // Next document URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -135,10 +135,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin-plus-coep",
|
||||
"navigation-uri": `${location.href}`, // Previous document URL
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin-plus-coep",
|
||||
"navigationURI": `${location.href}`, // Previous document URL
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -162,10 +162,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // initial navigation URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // initial navigation URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -176,10 +176,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "unsafe-none",
|
||||
"navigation-uri": '', // referrer, as per the no-referrer policy.
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "unsafe-none",
|
||||
"navigationURI": '', // referrer, as per the no-referrer policy.
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -203,10 +203,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
|
|
@ -16,7 +16,7 @@ let tests = [
|
|||
// Open a cross-origin popup with a same-origin COOP and no COEP. COOP
|
||||
// switches the browsing context group and hence produces one report.
|
||||
// This test verifies that the navigated to document properly sends a
|
||||
// navigation-to report. The navigation-uri is the referrer.
|
||||
// navigation-to report. The navigationURI is the referrer.
|
||||
[
|
||||
CROSS_ORIGIN,
|
||||
`same-origin; report-to="${popupReportEndpoint.name}"`,
|
||||
|
@ -29,10 +29,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": `${location.href}`, // referrer
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": `${location.href}`, // referrer
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -56,10 +56,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "unsafe-none",
|
||||
"navigation-uri": `${location.href}`,
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "unsafe-none",
|
||||
"navigationURI": `${location.href}`,
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -83,10 +83,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "unsafe-none",
|
||||
"navigation-uri": `${location.href}`, // referrer
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "unsafe-none",
|
||||
"navigationURI": `${location.href}`, // referrer
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
|
|
@ -29,10 +29,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "unsafe-none",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "unsafe-none",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -43,10 +43,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": `${location.href}`, // previous document url
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": `${location.href}`, // previous document url
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
@ -71,10 +71,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "unsafe-none",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "unsafe-none",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // next document URL
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -96,10 +96,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": `${location.href}`,
|
||||
"effective-policy": "unsafe-none",
|
||||
"navigation-uri": /uuid=EXECUTOR_UUID$/, // initial navigation url
|
||||
"violation-type": "navigation-from-document"
|
||||
"documentURI": `${location.href}`,
|
||||
"effectivePolicy": "unsafe-none",
|
||||
"navigationURI": /uuid=EXECUTOR_UUID$/, // initial navigation url
|
||||
"type": "navigation-from-document"
|
||||
},
|
||||
"url": `${location.href}`,
|
||||
"type": "coop"
|
||||
|
@ -110,10 +110,10 @@ let tests = [
|
|||
"report": {
|
||||
"body": {
|
||||
"disposition": "enforce",
|
||||
"document-uri": /uuid=EXECUTOR_UUID$/,
|
||||
"effective-policy": "same-origin",
|
||||
"navigation-uri": `${location.href}`, // referrer
|
||||
"violation-type": "navigation-to-document"
|
||||
"documentURI": /uuid=EXECUTOR_UUID$/,
|
||||
"effectivePolicy": "same-origin",
|
||||
"navigationURI": `${location.href}`, // referrer
|
||||
"type": "navigation-to-document"
|
||||
},
|
||||
"url": /uuid=EXECUTOR_UUID$/,
|
||||
"type": "coop"
|
||||
|
|
|
@ -103,10 +103,8 @@ function redirect_test( popup_origin ) {
|
|||
"navigation-to-document");
|
||||
assert_not_equals(report, "timeout", "Report not received");
|
||||
assert_equals(report.type, "coop");
|
||||
assert_equals(report.url, openee_redirect_url.replace(/"/g, '%22'));
|
||||
assert_equals(report.body["disposition"], "enforce");
|
||||
assert_equals(report.body["effective-policy"], "same-origin-allow-popups");
|
||||
assert_equals(report.body["document-uri"], openee_url);
|
||||
assert_equals(report.body.disposition, "enforce");
|
||||
assert_equals(report.body.effectivePolicy, "same-origin-allow-popups");
|
||||
}, `${popup_origin.name} openee redirected to same-origin with same-origin-allow-popups`);
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ const receiveReport = async function(uuid, type) {
|
|||
reports = JSON.parse(reports);
|
||||
|
||||
for(report of reports) {
|
||||
if (report?.["body"]?.["violation-type"] == type)
|
||||
if (report?.body?.type == type)
|
||||
return report;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,8 +17,8 @@ function isCoopOpenerBreakageReport(report) {
|
|||
if (report.type != "coop")
|
||||
return false;
|
||||
|
||||
if (report.body["violation-type"] != "navigation-from-document" &&
|
||||
report.body["violation-type"] != "navigation-to-document") {
|
||||
if (report.body.type != "navigation-from-document" &&
|
||||
report.body.type != "navigation-to-document") {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -98,14 +98,14 @@ function replaceFromRegexOrString(str, match, value) {
|
|||
// EXECUTOR_UUID: the uuid generated with token().
|
||||
function replaceValuesInExpectedReport(expectedReport, executorUuid) {
|
||||
if (expectedReport.report.body !== undefined) {
|
||||
if (expectedReport.report.body["document-uri"] !== undefined) {
|
||||
expectedReport.report.body["document-uri"] = replaceFromRegexOrString(
|
||||
expectedReport.report.body["document-uri"], "EXECUTOR_UUID",
|
||||
if (expectedReport.report.body.documentURI !== undefined) {
|
||||
expectedReport.report.body.documentURI = replaceFromRegexOrString(
|
||||
expectedReport.report.body.documentURI, "EXECUTOR_UUID",
|
||||
executorUuid);
|
||||
}
|
||||
if (expectedReport.report.body["navigation-uri"] !== undefined) {
|
||||
expectedReport.report.body["navigation-uri"] = replaceFromRegexOrString(
|
||||
expectedReport.report.body["navigation-uri"], "EXECUTOR_UUID",
|
||||
if (expectedReport.report.body.navigationURI !== undefined) {
|
||||
expectedReport.report.body.navigationURI = replaceFromRegexOrString(
|
||||
expectedReport.report.body.navigationURI, "EXECUTOR_UUID",
|
||||
executorUuid);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,13 +8,13 @@ function tryAccess(w) {
|
|||
}
|
||||
|
||||
function assert_source_location_found(report) {
|
||||
assert_true(report.body["source-file"].includes("try-access.js"));
|
||||
assert_equals(report.body["lineno"], 6);
|
||||
assert_equals(report.body["colno"], 7);
|
||||
assert_true(report.body.sourceFile.includes("try-access.js"));
|
||||
assert_equals(report.body.lineNumber, 6);
|
||||
assert_equals(report.body.columnNumber, 7);
|
||||
}
|
||||
|
||||
function assert_source_location_missing(report) {
|
||||
assert_equals(report.body["source-file"], undefined);
|
||||
assert_equals(report.body["lineno"], undefined);
|
||||
assert_equals(report.body["colno"], undefined);
|
||||
assert_equals(report.body.sourceFile, undefined);
|
||||
assert_equals(report.body.lineNumber, undefined);
|
||||
assert_equals(report.body.columnNumber, undefined);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,86 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Test the properties of input and change events</title>
|
||||
<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>
|
||||
|
||||
<fieldset id="clickable">
|
||||
<input type="checkbox">
|
||||
<input type="radio">
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="typeable">
|
||||
<input type="text">
|
||||
<input type="search">
|
||||
<input type="tel">
|
||||
<input type="url">
|
||||
<input type="email">
|
||||
<input type="password">
|
||||
<input type="number">
|
||||
<textarea></textarea>
|
||||
</fieldset>
|
||||
|
||||
<select>
|
||||
<option>1</option>
|
||||
<option>2</option>
|
||||
</select>
|
||||
|
||||
<!-- Not going to test the more complicated input types like date or color for now... -->
|
||||
|
||||
<button id="click-me-to-unfocus-other-things">Clickable</button>
|
||||
|
||||
<script>
|
||||
"use strict";
|
||||
const clickMeToUnfocusOtherThings = document.querySelector("#click-me-to-unfocus-other-things");
|
||||
|
||||
for (const el of document.querySelector("#clickable").children) {
|
||||
test(() => {
|
||||
let inputEvent, changeEvent;
|
||||
el.oninput = e => inputEvent = e;
|
||||
el.onchange = e => changeEvent = e;
|
||||
|
||||
el.click();
|
||||
|
||||
assert_event(inputEvent, { bubbles: true, cancelable: false, composed: true });
|
||||
assert_event(changeEvent, { bubbles: true, cancelable: false, composed: false });
|
||||
}, `${el.outerHTML} click()`);
|
||||
}
|
||||
|
||||
for (const el of document.querySelector("#typeable").children) {
|
||||
promise_test(async () => {
|
||||
let inputEvent, changeEvent;
|
||||
el.oninput = e => inputEvent = e;
|
||||
el.onchange = e => changeEvent = e;
|
||||
|
||||
await test_driver.send_keys(el, "1"); // has to be a number so <input type=number> works
|
||||
await test_driver.click(clickMeToUnfocusOtherThings);
|
||||
|
||||
assert_event(inputEvent, { bubbles: true, cancelable: false, composed: true });
|
||||
assert_event(changeEvent, { bubbles: true, cancelable: false, composed: false });
|
||||
}, `${el.outerHTML} typing`);
|
||||
}
|
||||
|
||||
promise_test(async () => {
|
||||
const el = document.querySelector("select");
|
||||
|
||||
let inputEvent, changeEvent;
|
||||
el.oninput = e => inputEvent = e;
|
||||
el.onchange = e => changeEvent = e;
|
||||
|
||||
// TODO: this doesn't seem to work in Safari/on Macs. Or maybe Safari is legitimately failing.
|
||||
// Someone with a Mac should investigate.
|
||||
await test_driver.send_keys(el, "\uE015"); // down arrow key
|
||||
await test_driver.click(clickMeToUnfocusOtherThings);
|
||||
|
||||
assert_event(inputEvent, { bubbles: true, cancelable: false, composed: true });
|
||||
assert_event(changeEvent, { bubbles: true, cancelable: false, composed: false });
|
||||
}, `<select> pressing down arrow`);
|
||||
|
||||
function assert_event(e, { bubbles, cancelable, composed }) {
|
||||
assert_equals(e.bubbles, bubbles, `${e.type} bubbles`);
|
||||
assert_equals(e.cancelable, cancelable, `${e.type} cancelable`);
|
||||
assert_equals(e.composed, composed, `${e.type} composed`);
|
||||
}
|
||||
</script>
|
|
@ -9,19 +9,27 @@
|
|||
window.log = [];
|
||||
|
||||
window.addEventListener("error", ev => log.push(ev.error));
|
||||
window.addEventListener("onunhandledrejection", unreachable);
|
||||
|
||||
const test_load = async_test(
|
||||
"Test that exceptions during evaluation lead to error events on " +
|
||||
"window, and that exceptions are remembered.\n");
|
||||
window.addEventListener("load", test_load.step_func_done(ev => {
|
||||
const exn = log[1];
|
||||
assert_array_equals(log, ["throw", exn, exn, exn, exn]);
|
||||
assert_array_equals(log,
|
||||
["throw", exn, "load", exn, "load", exn, "load", exn, "load"]);
|
||||
assert_true(exn.foo);
|
||||
}));
|
||||
|
||||
function logLoad() { log.push("load") }
|
||||
|
||||
function unreachable() { log.push("unexpected"); }
|
||||
</script>
|
||||
<script type="module" src="throw.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="throw.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="throw.js" async onerror="unreachable()"></script>
|
||||
<script type="module" src="throw.js" nomodule onerror="unreachable()"></script>
|
||||
<script type="module" src="throw.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="throw.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="throw.js" async onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="throw.js" nomodule onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
window.log = [];
|
||||
|
||||
window.addEventListener("error", ev => log.push(ev.error));
|
||||
window.addEventListener("onunhandledrejection", unreachable);
|
||||
|
||||
const test_load = async_test(
|
||||
"Test that ill-founded cyclic dependencies cause ReferenceError " +
|
||||
|
@ -16,12 +17,18 @@
|
|||
"exceptions are remembered.\n");
|
||||
window.addEventListener("load", test_load.step_func_done(ev => {
|
||||
const exn = log[1];
|
||||
assert_array_equals(log, ["cycle-tdz-access-a", exn, exn, exn]);
|
||||
assert_array_equals(log,
|
||||
["cycle-tdz-access-a", exn, "load", exn, "load", exn, "load"]);
|
||||
assert_equals(exn.constructor, ReferenceError);
|
||||
}));
|
||||
|
||||
function logLoad() { log.push("load"); }
|
||||
|
||||
function unreachable() { log.push("unexpected"); }
|
||||
</script>
|
||||
<script type="module" src="cycle-tdz-access.js" async onerror="unreachable()"></script>
|
||||
<script type="module" src="cycle-tdz-access.js" nomodule onerror="unreachable()"></script>
|
||||
<script type="module" src="cycle-tdz-access.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="cycle-tdz-access.js" async onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="cycle-tdz-access.js" nomodule onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="cycle-tdz-access.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
|
|
|
@ -9,20 +9,29 @@
|
|||
window.log = [];
|
||||
|
||||
window.addEventListener("error", ev => log.push(ev.error));
|
||||
window.addEventListener("onunhandledrejection", unreachable);
|
||||
|
||||
const test_load = async_test(
|
||||
"Test that exceptions during evaluation lead to error events on " +
|
||||
"window, and that exceptions are remembered.\n");
|
||||
window.addEventListener("load", test_load.step_func_done(ev => {
|
||||
const exn = log[1];
|
||||
assert_array_equals(log, ["throw", exn, exn, exn, exn, exn]);
|
||||
assert_array_equals(log,
|
||||
["throw", exn, "load", exn, "load", exn, "load", exn, "load",
|
||||
exn, "load"]);
|
||||
assert_true(exn.foo);
|
||||
}));
|
||||
|
||||
function logLoad() { log.push("load"); }
|
||||
function unreachable() { log.push("unexpected"); }
|
||||
</script>
|
||||
<script type="module" src="./throw.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="./throw.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="./throw-nested.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="./throw.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="./throw-nested.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="./throw.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="./throw.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="./throw-nested.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="./throw.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="./throw-nested.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
|
|
|
@ -9,20 +9,29 @@
|
|||
window.log = [];
|
||||
|
||||
window.addEventListener("error", ev => log.push(ev.error));
|
||||
window.addEventListener("onunhandledrejection", unreachable);
|
||||
|
||||
const test_load = async_test(
|
||||
"Test that exceptions during evaluation lead to error events on " +
|
||||
"window, and that exceptions are remembered.\n");
|
||||
window.addEventListener("load", test_load.step_func_done(ev => {
|
||||
const exn = log[1];
|
||||
assert_array_equals(log, ["throw", exn, exn, exn, exn, exn]);
|
||||
assert_array_equals(log,
|
||||
["throw", exn, "load", exn, "load", exn, "load", exn, "load",
|
||||
exn, "load"]);
|
||||
assert_true(exn.foo);
|
||||
}));
|
||||
|
||||
function logLoad() { log.push("load"); }
|
||||
function unreachable() { log.push("unexpected"); }
|
||||
</script>
|
||||
<script type="module" src="./throw-nested.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="./throw-nested.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="./throw.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="./throw-nested.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="./throw.js" onerror="unreachable()"></script>
|
||||
<script type="module" src="./throw-nested.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="./throw-nested.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="./throw.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="./throw-nested.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
<script type="module" src="./throw.js" onerror="unreachable()"
|
||||
onload="logLoad()"></script>
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
import "/resources/testharness.js";
|
||||
import "./evaluation-order-setup.mjs";
|
||||
|
||||
import "./evaluation-order-1-nothrow-worker.mjs";
|
||||
|
||||
import "./evaluation-order-1-nothrow.mjs";
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Testing evaluation order</title>
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
const worker = new Worker(
|
||||
"evaluation-order-1-nothrow-worker-setup.mjs", {type:"module"});
|
||||
fetch_tests_from_worker(worker);
|
||||
</script>
|
|
@ -0,0 +1,7 @@
|
|||
globalThis.expectedLog = [
|
||||
"step-1-1", "step-1-2",
|
||||
"microtask",
|
||||
];
|
||||
|
||||
globalThis.test_load.step_timeout(() => globalThis.testDone(), 0);
|
||||
done();
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Testing evaluation order</title>
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script type="module">
|
||||
import "./evaluation-order-setup.mjs";
|
||||
window.addEventListener("load", ev => globalThis.testDone());
|
||||
globalThis.expectedLog = [
|
||||
"step-1-1", "step-1-2",
|
||||
"microtask",
|
||||
"script-load",
|
||||
"global-load",
|
||||
];
|
||||
</script>
|
||||
|
||||
<script type="module" src="evaluation-order-1-nothrow.mjs"
|
||||
onerror="globalThis.unreachable()"
|
||||
onload="globalThis.log.push('script-load')"></script>
|
|
@ -0,0 +1,3 @@
|
|||
globalThis.log.push("step-1-1");
|
||||
queueMicrotask(() => globalThis.log.push("microtask"));
|
||||
globalThis.log.push("step-1-2");
|
|
@ -0,0 +1,6 @@
|
|||
import "/resources/testharness.js";
|
||||
import "./evaluation-order-setup.mjs";
|
||||
|
||||
import "./evaluation-order-1-worker.mjs";
|
||||
|
||||
import "./evaluation-order-1.mjs";
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue