diff --git a/test_util/wpt b/test_util/wpt index 96f98c458c..959a86ad2e 160000 --- a/test_util/wpt +++ b/test_util/wpt @@ -1 +1 @@ -Subproject commit 96f98c458cd36e1f12b6807b22a3a9ee1e1b0326 +Subproject commit 959a86ad2e36ec5b939a6ccbfdb4ba2916c92f85 diff --git a/tools/wpt/expectation.json b/tools/wpt/expectation.json index de02fd7f9e..38a1e3db54 100644 --- a/tools/wpt/expectation.json +++ b/tools/wpt/expectation.json @@ -939,7 +939,44 @@ "Event constructors 3" ], "event-global.worker.html": true - } + }, + "idlharness-shadowrealm.window.html": false, + "idlharness.any.worker.html": [ + "Event interface: attribute srcElement", + "Event interface: operation composedPath()", + "Event interface: constant NONE on interface object", + "Event interface: constant NONE on interface prototype object", + "Event interface: constant CAPTURING_PHASE on interface object", + "Event interface: constant CAPTURING_PHASE on interface prototype object", + "Event interface: constant AT_TARGET on interface object", + "Event interface: constant AT_TARGET on interface prototype object", + "Event interface: constant BUBBLING_PHASE on interface object", + "Event interface: constant BUBBLING_PHASE on interface prototype object", + "Event interface: operation stopPropagation()", + "Event interface: attribute cancelBubble", + "Event interface: operation stopImmediatePropagation()", + "Event interface: attribute returnValue", + "Event interface: operation preventDefault()", + "Event interface: attribute defaultPrevented", + "Event interface: operation initEvent(DOMString, optional boolean, optional boolean)", + "Event interface: new Event(\"foo\") must have own property \"isTrusted\"", + "Event interface: new Event(\"foo\") must inherit property \"initEvent(DOMString, optional boolean, optional boolean)\" with the proper type", + "Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new Event(\"foo\") with too few arguments must throw TypeError", + "CustomEvent interface: operation initCustomEvent(DOMString, optional boolean, optional boolean, optional any)", + "CustomEvent interface: new CustomEvent(\"foo\") must inherit property \"initCustomEvent(DOMString, optional boolean, optional boolean, optional any)\" with the proper type", + "CustomEvent interface: calling initCustomEvent(DOMString, optional boolean, optional boolean, optional any) on new CustomEvent(\"foo\") with too few arguments must throw TypeError", + "Event interface: new CustomEvent(\"foo\") must have own property \"isTrusted\"", + "Event interface: new CustomEvent(\"foo\") must inherit property \"initEvent(DOMString, optional boolean, optional boolean)\" with the proper type", + "Event interface: calling initEvent(DOMString, optional boolean, optional boolean) on new CustomEvent(\"foo\") with too few arguments must throw TypeError", + "EventTarget interface: operation addEventListener(DOMString, EventListener?, optional (AddEventListenerOptions or boolean))", + "EventTarget interface: operation removeEventListener(DOMString, EventListener?, optional (EventListenerOptions or boolean))", + "AbortController interface: existence and properties of interface object", + "AbortController interface: operation abort(optional any)", + "AbortSignal interface: existence and properties of interface object", + "AbortSignal interface: operation abort(optional any)", + "AbortSignal interface: operation timeout(unsigned long long)", + "AbortSignal interface: attribute onabort" + ] }, "encoding": { "api-basics.any.html": true, @@ -1126,7 +1163,8 @@ "unsupported-encodings.any.worker.html": false, "single-byte-decoder.window.html?TextDecoder": true, "textdecoder-eof.any.html": true, - "textdecoder-eof.any.worker.html": true + "textdecoder-eof.any.worker.html": true, + "idlharness-shadowrealm.window.html": false }, "hr-time": { "monotonic-clock.any.html": true, @@ -1154,7 +1192,8 @@ "WorkerGlobalScope interface: attribute performance", "WorkerGlobalScope interface: self must inherit property \"performance\" with the proper type" ], - "window-worker-timeOrigin.window.html": false + "window-worker-timeOrigin.window.html": false, + "idlharness-shadowrealm.window.html": false }, "streams": { "idlharness.any.html": true, @@ -1296,7 +1335,8 @@ "queuing-strategies-size-function-per-global.window.html": false, "transferable": { "deserialize-error.window.html": false - } + }, + "idlharness-shadowrealm.window.html": false }, "user-timing": { "buffered-flag.any.html": false, @@ -1842,9 +1882,8 @@ "Parsing: against ", "Parsing: against ", "Parsing: against ", - "Parsing: against ", - "Parsing: against ", "Parsing: against ", + "Parsing: against ", "Parsing: against ", "Parsing: against ", "Parsing: against ", @@ -1987,9 +2026,8 @@ "Parsing: against ", "Parsing: against ", "Parsing: against ", - "Parsing: against ", - "Parsing: against ", "Parsing: against ", + "Parsing: against ", "Parsing: against ", "Parsing: against ", "Parsing: against ", @@ -2083,14 +2121,14 @@ "Setting pathname with trailing U+0000 (https:)", "Setting protocol with leading U+001F (https:)", "Setting protocol with U+001F before inserted colon (https:)", - "Setting port with leading U+001F (https:)", - "Setting pathname with trailing U+001F (https:)", "Setting host with leading U+001F (https:)", "Setting hostname with leading U+001F (https:)", "Setting host with middle U+001F (https:)", "Setting hostname with middle U+001F (https:)", "Setting host with trailing U+001F (https:)", "Setting hostname with trailing U+001F (https:)", + "Setting port with leading U+001F (https:)", + "Setting pathname with trailing U+001F (https:)", "Setting protocol with leading U+0000 (wpt++:)", "Setting protocol with U+0000 before inserted colon (wpt++:)", "Setting port with leading U+0000 (wpt++:)", @@ -2107,14 +2145,14 @@ "Setting pathname with trailing U+0000 (https:)", "Setting protocol with leading U+001F (https:)", "Setting protocol with U+001F before inserted colon (https:)", - "Setting port with leading U+001F (https:)", - "Setting pathname with trailing U+001F (https:)", "Setting host with leading U+001F (https:)", "Setting hostname with leading U+001F (https:)", "Setting host with middle U+001F (https:)", "Setting hostname with middle U+001F (https:)", "Setting host with trailing U+001F (https:)", "Setting hostname with trailing U+001F (https:)", + "Setting port with leading U+001F (https:)", + "Setting pathname with trailing U+001F (https:)", "Setting protocol with leading U+0000 (wpt++:)", "Setting protocol with U+0000 before inserted colon (wpt++:)", "Setting port with leading U+0000 (wpt++:)", @@ -2177,6 +2215,459 @@ "URL: Setting .pathname = '/..//p'", "URL: Setting .pathname = '//p'", "URL: Setting .pathname = 'p' Drop /. from path" + ], + "idlharness-shadowrealm.window.html": false, + "percent-encoding.window.html": [ + "Input † with encoding big5", + "Input † with encoding euc-kr", + "Input † with encoding utf-8", + "Input † with encoding windows-1252", + "Input \u000eA with encoding big5", + "Input \u000eA with encoding iso-2022-jp", + "Input \u000eA with encoding utf-8", + "Input ‾\\ with encoding iso-2022-jp", + "Input ‾\\ with encoding utf-8", + "Input  with encoding gb18030", + "Input  with encoding utf-8", + "Input − with encoding shift_jis", + "Input − with encoding utf-8", + "Input á| with encoding utf-8" + ], + "url-setters-a-area.window.html": [ + ": Setting .protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.", + ": Setting .protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.", + ": Setting .protocol = 'b'", + ": Setting .protocol = 'b'", + ": Setting .protocol = 'defuse'", + ": Setting .protocol = 'defuse'", + ": Setting .protocol = 'B' Upper-case ASCII is lower-cased", + ": Setting .protocol = 'B' Upper-case ASCII is lower-cased", + ": Setting .protocol = 'é' Non-ASCII is rejected", + ": Setting .protocol = 'é' Non-ASCII is rejected", + ": Setting .protocol = '0b' No leading digit", + ": Setting .protocol = '0b' No leading digit", + ": Setting .protocol = '+b' No leading punctuation", + ": Setting .protocol = '+b' No leading punctuation", + ": Setting .protocol = 'bC0+-.'", + ": Setting .protocol = 'bC0+-.'", + ": Setting .protocol = 'b,c' Only some punctuation is acceptable", + ": Setting .protocol = 'b,c' Only some punctuation is acceptable", + ": Setting .protocol = 'bé' Non-ASCII is rejected", + ": Setting .protocol = 'bé' Non-ASCII is rejected", + ": Setting .protocol = 'file' Can’t switch from URL containing username/password/port to file", + ": Setting .protocol = 'file' Can’t switch from URL containing username/password/port to file", + ": Setting .protocol = 'file'", + ": Setting .protocol = 'file'", + ": Setting .protocol = 'file'", + ": Setting .protocol = 'file'", + ": Setting .protocol = 'http' Can’t switch from file URL with no host", + ": Setting .protocol = 'http' Can’t switch from file URL with no host", + ": Setting .protocol = 'https'", + ": Setting .protocol = 'https'", + ": Setting .protocol = 'wss'", + ": Setting .protocol = 'wss'", + ": Setting .protocol = 'b' Can’t switch from special scheme to non-special", + ": Setting .protocol = 'b' Can’t switch from special scheme to non-special", + ": Setting .protocol = 's'", + ": Setting .protocol = 's'", + ": Setting .protocol = 's'", + ": Setting .protocol = 's'", + ": Setting .protocol = 'test'", + ": Setting .protocol = 'test'", + ": Setting .protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.", + ": Setting .protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.", + ": Setting .protocol = 'http' Can’t switch from non-special scheme to special", + ": Setting .protocol = 'http' Can’t switch from non-special scheme to special", + ": Setting .protocol = 'https'", + ": Setting .protocol = 'https'", + ": Setting .protocol = 'file'", + ": Setting .protocol = 'file'", + ": Setting .protocol = 'file'", + ": Setting .protocol = 'file'", + ": Setting .protocol = 'https'", + ": Setting .protocol = 'https'", + ": Setting .protocol = 'https:foo : bar' Stuff after the first ':' is ignored", + ": Setting .protocol = 'https:foo : bar' Stuff after the first ':' is ignored", + ": Setting Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored", + ": Setting Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored", + ": Setting .protocol = 'https' Port is set to null if it is the default for new scheme.", + ": Setting .protocol = 'https' Port is set to null if it is the default for new scheme.", + ": Setting .username = 'me' No host means no username", + ": Setting .username = 'me' No host means no username", + ": Setting .username = 'me' No host means no username", + ": Setting .username = 'me' No host means no username", + ": Setting .username = 'me' Cannot-be-a-base means no username", + ": Setting .username = 'me' Cannot-be-a-base means no username", + ": Setting .username = 'wario'", + ": Setting .username = 'wario'", + ": Setting .username = 'me'", + ": Setting .username = 'me'", + ": Setting .username = 'me'", + ": Setting .username = 'me'", + ": Setting .username = ''", + ": Setting .username = ''", + ": Setting .username = ''", + ": Setting .username = ''", + ": Setting .username = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.", + ": Setting .username = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.", + ": Setting .username = '%c3%89té' Bytes already percent-encoded are left as-is.", + ": Setting .username = '%c3%89té' Bytes already percent-encoded are left as-is.", + ": Setting .username = 'x'", + ": Setting .username = 'x'", + ": Setting .username = 'wario'", + ": Setting .username = 'wario'", + ": Setting .username = 'test'", + ": Setting .username = 'test'", + ": Setting .password = 'secret' No host means no password", + ": Setting .password = 'secret' No host means no password", + ": Setting .password = 'secret' No host means no password", + ": Setting .password = 'secret' No host means no password", + ": Setting .password = 'secret' Cannot-be-a-base means no password", + ": Setting .password = 'secret' Cannot-be-a-base means no password", + ": Setting .password = 'secret'", + ": Setting .password = 'secret'", + ": Setting .password = 'secret'", + ": Setting .password = 'secret'", + ": Setting .password = ''", + ": Setting .password = ''", + ": Setting .password = ''", + ": Setting .password = ''", + ": Setting .password = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.", + ": Setting .password = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.", + ": Setting .password = '%c3%89té' Bytes already percent-encoded are left as-is.", + ": Setting .password = '%c3%89té' Bytes already percent-encoded are left as-is.", + ": Setting .password = 'x'", + ": Setting .password = 'x'", + ": Setting .password = 'bowser'", + ": Setting .password = 'bowser'", + ": Setting .password = 'test'", + ": Setting .password = 'test'", + ": Setting .host = '\u0000' Non-special scheme", + ": Setting .host = '\u0000' Non-special scheme", + ": Setting .host = '\t'", + ": Setting .host = '\t'", + ": Setting .host = '\n'", + ": Setting .host = '\n'", + ": Setting .host = '\r'", + ": Setting .host = '\r'", + ": Setting .host = ' '", + ": Setting .host = ' '", + ": Setting .host = '#'", + ": Setting .host = '#'", + ": Setting .host = '/'", + ": Setting .host = '/'", + ": Setting .host = '?'", + ": Setting .host = '?'", + ": Setting .host = '@'", + ": Setting .host = '@'", + ": Setting .host = 'ß'", + ": Setting .host = 'ß'", + ": Setting .host = 'ß' IDNA Nontransitional_Processing", + ": Setting .host = 'ß' IDNA Nontransitional_Processing", + ": Setting .host = 'example.com' Cannot-be-a-base means no host", + ": Setting .host = 'example.com' Cannot-be-a-base means no host", + ": Setting .host = 'example.net' Cannot-be-a-base means no host", + ": Setting .host = 'example.net' Cannot-be-a-base means no host", + ": Setting .host = 'example.com:8080'", + ": Setting .host = 'example.com:8080'", + ": Setting .host = 'example.com' Port number is unchanged if not specified in the new value", + ": Setting .host = 'example.com' Port number is unchanged if not specified in the new value", + ": Setting .host = 'example.com:' Port number is unchanged if not specified", + ": Setting .host = 'example.com:' Port number is unchanged if not specified", + ": Setting .host = '' The empty host is not valid for special schemes", + ": Setting .host = '' The empty host is not valid for special schemes", + ": Setting .host = '' The empty host is OK for non-special schemes", + ": Setting .host = '' The empty host is OK for non-special schemes", + ": Setting .host = 'example.net' Path-only URLs can gain a host", + ": Setting .host = 'example.net' Path-only URLs can gain a host", + ": Setting .host = '0x7F000001:8080' IPv4 address syntax is normalized", + ": Setting .host = '0x7F000001:8080' IPv4 address syntax is normalized", + ": Setting .host = '[::0:01]:2' IPv6 address syntax is normalized", + ": Setting .host = '[::0:01]:2' IPv6 address syntax is normalized", + ": Setting .host = '[2001:db8::2]:4002' IPv6 literal address with port, crbug.com/1012416", + ": Setting .host = '[2001:db8::2]:4002' IPv6 literal address with port, crbug.com/1012416", + ": Setting .host = 'example.com:80' Default port number is removed", + ": Setting .host = 'example.com:80' Default port number is removed", + ": Setting .host = 'example.com:443' Default port number is removed", + ": Setting .host = 'example.com:443' Default port number is removed", + ": Setting .host = 'example.com:80' Default port number is only removed for the relevant scheme", + ": Setting .host = 'example.com:80' Default port number is only removed for the relevant scheme", + ": Setting .host = 'example.com:80' Port number is removed if new port is scheme default and existing URL has a non-default port", + ": Setting .host = 'example.com:80' Port number is removed if new port is scheme default and existing URL has a non-default port", + ": Setting .host = 'example.com/stuff' Stuff after a / delimiter is ignored", + ": Setting .host = 'example.com/stuff' Stuff after a / delimiter is ignored", + ": Setting .host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored", + ": Setting .host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored", + ": Setting .host = 'example.com?stuff' Stuff after a ? delimiter is ignored", + ": Setting .host = 'example.com?stuff' Stuff after a ? delimiter is ignored", + ": Setting .host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored", + ": Setting .host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored", + ": Setting .host = 'example.com#stuff' Stuff after a # delimiter is ignored", + ": Setting .host = 'example.com#stuff' Stuff after a # delimiter is ignored", + ": Setting .host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored", + ": Setting .host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored", + ": Setting .host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes", + ": Setting .host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes", + ": Setting .host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes", + ": Setting .host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes", + ": Setting .host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts", + ": Setting .host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts", + ": Setting .host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .host = 'example.com:8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .host = 'example.com:8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .host = 'example.com:65535' Port numbers are 16 bit integers", + ": Setting .host = 'example.com:65535' Port numbers are 16 bit integers", + ": Setting .host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.", + ": Setting .host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.", + ": Setting .host = '[google.com]' Broken IPv6", + ": Setting .host = '[google.com]' Broken IPv6", + ": Setting .host = '[::1.2.3.4x]'", + ": Setting .host = '[::1.2.3.4x]'", + ": Setting .host = '[::1.2.3.]'", + ": Setting .host = '[::1.2.3.]'", + ": Setting .host = '[::1.2.]'", + ": Setting .host = '[::1.2.]'", + ": Setting .host = '[::1.]'", + ": Setting .host = '[::1.]'", + ": Setting .host = 'x:123'", + ": Setting .host = 'x:123'", + ": Setting .host = 'loc%41lhost'", + ": Setting .host = 'loc%41lhost'", + ": Setting .host = ''", + ": Setting .host = ''", + ": Setting .host = ''", + ": Setting .host = ''", + ": Setting .host = ''", + ": Setting .host = ''", + ": Setting .host = '///bad.com' Leading / is not stripped", + ": Setting .host = '///bad.com' Leading / is not stripped", + ": Setting .host = '///bad.com' Leading / is not stripped", + ": Setting .host = '///bad.com' Leading / is not stripped", + ": Setting .hostname = '\u0000' Non-special scheme", + ": Setting .hostname = '\u0000' Non-special scheme", + ": Setting .hostname = '\t'", + ": Setting .hostname = '\t'", + ": Setting .hostname = '\n'", + ": Setting .hostname = '\n'", + ": Setting .hostname = '\r'", + ": Setting .hostname = '\r'", + ": Setting .hostname = ' '", + ": Setting .hostname = ' '", + ": Setting .hostname = '#'", + ": Setting .hostname = '#'", + ": Setting .hostname = '/'", + ": Setting .hostname = '/'", + ": Setting .hostname = '?'", + ": Setting .hostname = '?'", + ": Setting .hostname = '@'", + ": Setting .hostname = '@'", + ": Setting .hostname = 'example.com' Cannot-be-a-base means no host", + ": Setting .hostname = 'example.com' Cannot-be-a-base means no host", + ": Setting .hostname = 'example.net' Cannot-be-a-base means no host", + ": Setting .hostname = 'example.net' Cannot-be-a-base means no host", + ": Setting .hostname = 'example.com'", + ": Setting .hostname = 'example.com'", + ": Setting .hostname = '' The empty host is not valid for special schemes", + ": Setting .hostname = '' The empty host is not valid for special schemes", + ": Setting .hostname = '' The empty host is OK for non-special schemes", + ": Setting .hostname = '' The empty host is OK for non-special schemes", + ": Setting .hostname = 'example.net' Path-only URLs can gain a host", + ": Setting .hostname = 'example.net' Path-only URLs can gain a host", + ": Setting .hostname = '0x7F000001' IPv4 address syntax is normalized", + ": Setting .hostname = '0x7F000001' IPv4 address syntax is normalized", + ": Setting .hostname = '[::0:01]' IPv6 address syntax is normalized", + ": Setting .hostname = '[::0:01]' IPv6 address syntax is normalized", + ": Setting .hostname = 'example.com:8080' : delimiter invalidates entire value", + ": Setting .hostname = 'example.com:8080' : delimiter invalidates entire value", + ": Setting .hostname = 'example.com:' : delimiter invalidates entire value", + ": Setting .hostname = 'example.com:' : delimiter invalidates entire value", + ": Setting .hostname = 'example.com/stuff' Stuff after a / delimiter is ignored", + ": Setting .hostname = 'example.com/stuff' Stuff after a / delimiter is ignored", + ": Setting .hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored", + ": Setting .hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored", + ": Setting .hostname = 'example.com#stuff' Stuff after a # delimiter is ignored", + ": Setting .hostname = 'example.com#stuff' Stuff after a # delimiter is ignored", + ": Setting .hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes", + ": Setting .hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes", + ": Setting .hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts", + ": Setting .hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts", + ": Setting .hostname = '[google.com]' Broken IPv6", + ": Setting .hostname = '[google.com]' Broken IPv6", + ": Setting .hostname = '[::1.2.3.4x]'", + ": Setting .hostname = '[::1.2.3.4x]'", + ": Setting .hostname = '[::1.2.3.]'", + ": Setting .hostname = '[::1.2.3.]'", + ": Setting .hostname = '[::1.2.]'", + ": Setting .hostname = '[::1.2.]'", + ": Setting .hostname = '[::1.]'", + ": Setting .hostname = '[::1.]'", + ": Setting .hostname = 'x:123'", + ": Setting .hostname = 'x:123'", + ": Setting .hostname = 'loc%41lhost'", + ": Setting .hostname = 'loc%41lhost'", + ": Setting .hostname = ''", + ": Setting .hostname = ''", + ": Setting .hostname = ''", + ": Setting .hostname = ''", + ": Setting .hostname = ''", + ": Setting .hostname = ''", + ": Setting .hostname = 'h' Drop /. from path", + ": Setting .hostname = 'h' Drop /. from path", + ": Setting .hostname = ''", + ": Setting .hostname = ''", + ": Setting .hostname = '///bad.com' Leading / is not stripped", + ": Setting .hostname = '///bad.com' Leading / is not stripped", + ": Setting .hostname = '///bad.com' Leading / is not stripped", + ": Setting .hostname = '///bad.com' Leading / is not stripped", + ": Setting .port = '8080'", + ": Setting .port = '8080'", + ": Setting .port = '' Port number is removed if empty is the new value", + ": Setting .port = '' Port number is removed if empty is the new value", + ": Setting .port = '80' Default port number is removed", + ": Setting .port = '80' Default port number is removed", + ": Setting .port = '443' Default port number is removed", + ": Setting .port = '443' Default port number is removed", + ": Setting .port = '80' Default port number is only removed for the relevant scheme", + ": Setting .port = '80' Default port number is only removed for the relevant scheme", + ": Setting .port = '8080/stuff' Stuff after a / delimiter is ignored", + ": Setting .port = '8080/stuff' Stuff after a / delimiter is ignored", + ": Setting .port = '8080?stuff' Stuff after a ? delimiter is ignored", + ": Setting .port = '8080?stuff' Stuff after a ? delimiter is ignored", + ": Setting .port = '8080#stuff' Stuff after a # delimiter is ignored", + ": Setting .port = '8080#stuff' Stuff after a # delimiter is ignored", + ": Setting .port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes", + ": Setting .port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes", + ": Setting .port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .port = '8080+2' Anything other than ASCII digit stops the port parser in a setter but is not an error", + ": Setting .port = '65535' Port numbers are 16 bit integers", + ": Setting .port = '65535' Port numbers are 16 bit integers", + ": Setting .port = '65536' Port numbers are 16 bit integers, overflowing is an error", + ": Setting .port = '65536' Port numbers are 16 bit integers, overflowing is an error", + ": Setting .port = '65536' Port numbers are 16 bit integers, overflowing is an error", + ": Setting .port = '65536' Port numbers are 16 bit integers, overflowing is an error", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .port = '12'", + ": Setting .pathname = '/foo' Cannot-be-a-base don’t have a path", + ": Setting .pathname = '/foo' Cannot-be-a-base don’t have a path", + ": Setting .pathname = '' Special URLs cannot have their paths erased", + ": Setting .pathname = '' Special URLs cannot have their paths erased", + ": Setting .pathname = '' Non-special URLs can have their paths erased", + ": Setting .pathname = '' Non-special URLs can have their paths erased", + ": Setting .pathname = '' Non-special URLs with an empty host can have their paths erased", + ": Setting .pathname = '' Non-special URLs with an empty host can have their paths erased", + ": Setting .pathname = '' Path-only URLs cannot have their paths erased", + ": Setting .pathname = '' Path-only URLs cannot have their paths erased", + ": Setting .pathname = 'test' Path-only URLs always have an initial slash", + ": Setting .pathname = 'test' Path-only URLs always have an initial slash", + ": Setting .pathname = '/var/log/../run/bar.socket'", + ": Setting .pathname = '/var/log/../run/bar.socket'", + ": Setting .pathname = 'home'", + ": Setting .pathname = 'home'", + ": Setting .pathname = '../home'", + ": Setting .pathname = '../home'", + ": Setting .pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs", + ": Setting .pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs", + ": Setting .pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs", + ": Setting .pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs", + ": Setting .pathname = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.", + ": Setting .pathname = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.", + ": Setting .pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.", + ": Setting .pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.", + ": Setting .pathname = '?' ? needs to be encoded", + ": Setting .pathname = '?' ? needs to be encoded", + ": Setting .pathname = '#' # needs to be encoded", + ": Setting .pathname = '#' # needs to be encoded", + ": Setting .pathname = '?' ? needs to be encoded, non-special scheme", + ": Setting .pathname = '?' ? needs to be encoded, non-special scheme", + ": Setting .pathname = '#' # needs to be encoded, non-special scheme", + ": Setting .pathname = '#' # needs to be encoded, non-special scheme", + ": Setting .pathname = '/?é' ? doesn't mess up encoding", + ": Setting .pathname = '/?é' ? doesn't mess up encoding", + ": Setting .pathname = '/#é' # doesn't mess up encoding", + ": Setting .pathname = '/#é' # doesn't mess up encoding", + ": Setting .pathname = '\\\\' File URLs and (back)slashes", + ": Setting .pathname = '\\\\' File URLs and (back)slashes", + ": Setting .pathname = '//\\/' File URLs and (back)slashes", + ": Setting .pathname = '//\\/' File URLs and (back)slashes", + ": Setting .pathname = '//monkey/..//' File URLs and (back)slashes", + ": Setting .pathname = '//monkey/..//' File URLs and (back)slashes", + ": Setting .pathname = '/.//p' Serialize /. in path", + ": Setting .pathname = '/.//p' Serialize /. in path", + ": Setting .pathname = '/..//p'", + ": Setting .pathname = '/..//p'", + ": Setting .pathname = '//p'", + ": Setting .pathname = '//p'", + ": Setting .pathname = 'p' Drop /. from path", + ": Setting .pathname = 'p' Drop /. from path", + ": Setting .search = 'lang=fr'", + ": Setting .search = 'lang=fr'", + ": Setting .search = 'lang=fr'", + ": Setting .search = 'lang=fr'", + ": Setting .search = '?lang=fr'", + ": Setting .search = '?lang=fr'", + ": Setting .search = '??lang=fr'", + ": Setting .search = '??lang=fr'", + ": Setting .search = '?'", + ": Setting .search = '?'", + ": Setting .search = ''", + ": Setting .search = ''", + ": Setting .search = ''", + ": Setting .search = ''", + ": Setting .search = ''", + ": Setting .search = ''", + ": Setting .search = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.", + ": Setting .search = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.", + ": Setting .search = '%c3%89té' Bytes already percent-encoded are left as-is", + ": Setting .search = '%c3%89té' Bytes already percent-encoded are left as-is", + ": Setting .hash = 'main'", + ": Setting .hash = 'main'", + ": Setting .hash = 'main'", + ": Setting .hash = 'main'", + ": Setting .hash = '##nav'", + ": Setting .hash = '##nav'", + ": Setting .hash = '#main'", + ": Setting .hash = '#main'", + ": Setting .hash = '#'", + ": Setting .hash = '#'", + ": Setting .hash = ''", + ": Setting .hash = ''", + ": Setting .hash = '#foo bar'", + ": Setting .hash = '#foo bar'", + ": Setting .hash = '#foo\"bar'", + ": Setting .hash = '#foo\"bar'", + ": Setting .hash = '#foo: Setting .hash = '#foo: Setting .hash = '#foo>bar'", + ": Setting .hash = '#foo>bar'", + ": Setting .hash = '#foo`bar'", + ": Setting .hash = '#foo`bar'", + ": Setting .hash = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed", + ": Setting .hash = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed", + ": Setting .hash = 'a\u0000b' Percent-encode NULLs in fragment", + ": Setting .hash = 'a\u0000b' Percent-encode NULLs in fragment", + ": Setting .hash = 'a\u0000b' Percent-encode NULLs in fragment", + ": Setting .hash = 'a\u0000b' Percent-encode NULLs in fragment", + ": Setting .hash = '%c3%89té' Bytes already percent-encoded are left as-is", + ": Setting .hash = '%c3%89té' Bytes already percent-encoded are left as-is", + ": Setting .hash = 'castle'", + ": Setting .hash = 'castle'" ] }, "fetch": { @@ -2882,7 +3373,9 @@ "request.any.worker.html": [ "Calling formData() on an aborted request", "Aborting a request after calling formData()" - ] + ], + "cache.https.any.html": false, + "cache.https.any.worker.html": false } }, "content-encoding": { @@ -2941,16 +3434,15 @@ "range": { "general.any.html": [ "Privileged header not allowed for guard type: request-no-cors", - "Fetch with range header will be sent with Accept-Encoding: identity" + "Fetch with range header will be sent with Accept-Encoding: identity", + "Cross Origin Fetch with non safe range header" ], "general.any.worker.html": [ "Privileged header not allowed for guard type: request-no-cors", - "Fetch with range header will be sent with Accept-Encoding: identity" + "Fetch with range header will be sent with Accept-Encoding: identity", + "Cross Origin Fetch with non safe range header" ], - "general.window.html": [ - "Script executed from partial response", - "Fetch with range header will be sent with Accept-Encoding: identity" - ] + "general.window.html": false } }, "FileAPI": { @@ -3732,37 +4224,77 @@ "constructor.any.html?wpt_flags=h2": false, "constructor.any.html?wss": true, "constructor.any.worker.html?wpt_flags=h2": false, - "constructor.any.worker.html?wss": true + "constructor.any.worker.html?wss": true, + "abort.any.html?wpt_flags=h2": [ + "abort after connect should do nothing" + ], + "abort.any.worker.html?wpt_flags=h2": [ + "abort after connect should do nothing" + ], + "backpressure-receive.any.worker.html?wpt_flags=h2": false } }, "opening-handshake": { "003-sets-origin.worker.html": false - } + }, + "Create-on-worker-shutdown.any.worker.html": false, + "Send-data.worker.html": true, + "Send-data.worker.html?wpt_flags=h2": false, + "Send-data.worker.html?wss": true, + "idlharness.any.html": [ + "WebSocket interface: constant CONNECTING on interface object", + "WebSocket interface: constant CONNECTING on interface prototype object", + "WebSocket interface: constant OPEN on interface object", + "WebSocket interface: constant OPEN on interface prototype object", + "WebSocket interface: constant CLOSING on interface object", + "WebSocket interface: constant CLOSING on interface prototype object", + "WebSocket interface: constant CLOSED on interface object", + "WebSocket interface: constant CLOSED on interface prototype object", + "WebSocket interface: attribute onopen", + "WebSocket interface: attribute onerror", + "WebSocket interface: attribute onclose", + "WebSocket interface: attribute onmessage", + "CloseEvent interface: attribute wasClean", + "CloseEvent interface: attribute code", + "CloseEvent interface: attribute reason", + "Stringification of new CloseEvent(\"close\")" + ], + "idlharness.any.worker.html": [ + "WebSocket interface: constant CONNECTING on interface object", + "WebSocket interface: constant CONNECTING on interface prototype object", + "WebSocket interface: constant OPEN on interface object", + "WebSocket interface: constant OPEN on interface prototype object", + "WebSocket interface: constant CLOSING on interface object", + "WebSocket interface: constant CLOSING on interface prototype object", + "WebSocket interface: constant CLOSED on interface object", + "WebSocket interface: constant CLOSED on interface prototype object", + "WebSocket interface: attribute onopen", + "WebSocket interface: attribute onerror", + "WebSocket interface: attribute onclose", + "WebSocket interface: attribute onmessage", + "CloseEvent interface: attribute wasClean", + "CloseEvent interface: attribute code", + "CloseEvent interface: attribute reason", + "Stringification of new CloseEvent(\"close\")" + ], + "remove-own-iframe-during-onerror.window.html": false, + "remove-own-iframe-during-onerror.window.html?wpt_flags=h2": false, + "remove-own-iframe-during-onerror.window.html?wss": false }, "workers": { "Worker-base64.any.worker.html": true, "Worker-call.worker.html": true, "Worker-constructor-proto.any.worker.html": true, "Worker-custom-event.any.worker.html": true, - "Worker-formdata.any.worker.html": [ - "Test FormData interface object" - ], - "Worker-location.sub.any.worker.html": [ - "Test WorkerLocation properties." - ], + "Worker-formdata.any.worker.html": false, + "Worker-location.sub.any.worker.html": false, "Worker-replace-event-handler.any.worker.html": true, "Worker-replace-global-constructor.any.worker.html": true, "Worker-replace-self.any.worker.html": true, - "WorkerGlobalScope_requestAnimationFrame.tentative.worker.html": [ - "WorkerGlobalScope_requestAnimationFrame" - ], - "WorkerLocation-origin.sub.window.html": [ - "workerLocation.origin must use ASCII code points" - ], + "WorkerGlobalScope_requestAnimationFrame.tentative.worker.html": false, + "WorkerLocation-origin.sub.window.html": false, "WorkerNavigator-hardware-concurrency.any.worker.html": true, - "WorkerNavigator.any.worker.html": [ - "Testing Navigator properties on workers." - ], + "WorkerNavigator.any.worker.html": false, "constructors": { "Worker": { "DedicatedWorkerGlobalScope-members.worker.html": [ @@ -3819,7 +4351,20 @@ ], "report-error-cross-origin.sub.any.worker.html": false, "report-error-redirect-to-cross-origin.sub.any.worker.html": false, - "report-error-same-origin.sub.any.worker.html": false + "report-error-same-origin.sub.any.worker.html": false, + "report-error-setTimeout-cross-origin.sub.any.worker.html": [ + "WorkerGlobalScope error event: error", + "WorkerGlobalScope error event: filename", + "WorkerGlobalScope error event: lineno" + ], + "report-error-setTimeout-redirect-to-cross-origin.sub.any.worker.html": [ + "WorkerGlobalScope error event: filename", + "WorkerGlobalScope error event: lineno" + ], + "report-error-setTimeout-same-origin.sub.any.worker.html": [ + "WorkerGlobalScope error event: filename", + "WorkerGlobalScope error event: lineno" + ] } } }, @@ -3837,9 +4382,7 @@ "nested_worker.worker.html": true, "nested_worker_close_self.worker.html": true, "nested_worker_importScripts.worker.html": true, - "nested_worker_sync_xhr.worker.html": [ - "Nested worker that issues a sync XHR" - ], + "nested_worker_sync_xhr.worker.html": false, "semantics": { "encodings": { "004.worker.html": true @@ -3882,15 +4425,8 @@ "exposure.any.worker.html": true } }, - "shared-worker-from-blob-url.window.html": [ - "Creating a shared worker from a blob URL works.", - "Creating a shared worker from a blob URL works immediately before revoking.", - "Connecting to a shared worker on a revoked blob URL works." - ], - "shared-worker-in-data-url-context.window.html": [ - "Create a shared worker in a data url frame", - "Create a data url shared worker in a data url frame" - ], + "shared-worker-from-blob-url.window.html": false, + "shared-worker-in-data-url-context.window.html": false, "worker-performance.worker.html": [ "Resource timing seems to work in workers", "performance.clearResourceTimings in workers", @@ -4109,6 +4645,7 @@ "decompression-uint8array-output.tentative.any.worker.html": true, "decompression-with-detach.tentative.window.html": true, "idlharness.https.any.html": true, - "idlharness.https.any.worker.html": true + "idlharness.https.any.worker.html": true, + "idlharness-shadowrealm.window.html": false } -} +} \ No newline at end of file