summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-08-21 11:53:52 +0200
committerGitHub <noreply@github.com>2023-08-21 09:53:52 +0000
commit5834d282d4de5d0b5cacb9bf068f3896bef0a48a (patch)
tree0e1d15e9f81600ce3c910a70c6e7c12952778f72 /tools
parentaf125c8e700eacc7360b3d81ffe4de13e12a612a (diff)
refactor: upgrade deno_ast 0.28 and deno_semver 0.4 (#20193)
Diffstat (limited to 'tools')
-rw-r--r--tools/wpt/expectation.json538
1 files changed, 512 insertions, 26 deletions
diff --git a/tools/wpt/expectation.json b/tools/wpt/expectation.json
index c3deef9bd..865a2d5f4 100644
--- a/tools/wpt/expectation.json
+++ b/tools/wpt/expectation.json
@@ -3211,10 +3211,10 @@
"urlsearchparams-constructor.any.html": true,
"urlsearchparams-constructor.any.worker.html": true,
"urlsearchparams-delete.any.html": [
- "Changing the query of a URL with an opaque path can impact the path"
+ "Changing the query of a URL with an opaque path can impact the path if the URL has no fragment"
],
"urlsearchparams-delete.any.worker.html": [
- "Changing the query of a URL with an opaque path can impact the path"
+ "Changing the query of a URL with an opaque path can impact the path if the URL has no fragment"
],
"urlsearchparams-foreach.any.html": true,
"urlsearchparams-foreach.any.worker.html": true,
@@ -3276,9 +3276,7 @@
"Input  with encoding utf-8",
"Input − with encoding shift_jis",
"Input − with encoding utf-8",
- "Input á| with encoding utf-8",
- "Input \ud800 with encoding utf-8",
- "Input \ud800 with encoding windows-1252"
+ "Input á| with encoding utf-8"
],
"url-setters-a-area.window.html": {
"ignore": true
@@ -3568,18 +3566,510 @@
],
"url-constructor.any.worker.html?include=javascript": true,
"url-constructor.any.worker.html?include=mailto": true,
- "url-setters-a-area.window.html?exclude=(file|javascript|mailto)": {
- "ignore": true
- },
- "url-setters-a-area.window.html?include=file": {
- "ignore": true
- },
- "url-setters-a-area.window.html?include=javascript": {
- "ignore": true
- },
- "url-setters-a-area.window.html?include=mailto": {
- "ignore": true
- },
+ "url-setters-a-area.window.html?exclude=(file|javascript|mailto)": [
+ "<a>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.",
+ "<area>: Setting <a://example.net>.protocol = '' The empty string is not a valid scheme. Setter leaves the URL unchanged.",
+ "<a>: Setting <a://example.net>.protocol = 'b'",
+ "<area>: Setting <a://example.net>.protocol = 'b'",
+ "<a>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased",
+ "<area>: Setting <a://example.net>.protocol = 'B' Upper-case ASCII is lower-cased",
+ "<a>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected",
+ "<area>: Setting <a://example.net>.protocol = 'é' Non-ASCII is rejected",
+ "<a>: Setting <a://example.net>.protocol = '0b' No leading digit",
+ "<area>: Setting <a://example.net>.protocol = '0b' No leading digit",
+ "<a>: Setting <a://example.net>.protocol = '+b' No leading punctuation",
+ "<area>: Setting <a://example.net>.protocol = '+b' No leading punctuation",
+ "<a>: Setting <a://example.net>.protocol = 'bC0+-.'",
+ "<area>: Setting <a://example.net>.protocol = 'bC0+-.'",
+ "<a>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable",
+ "<area>: Setting <a://example.net>.protocol = 'b,c' Only some punctuation is acceptable",
+ "<a>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected",
+ "<area>: Setting <a://example.net>.protocol = 'bé' Non-ASCII is rejected",
+ "<a>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file",
+ "<area>: Setting <http://test@example.net>.protocol = 'file' Can’t switch from URL containing username/password/port to file",
+ "<a>: Setting <https://example.net:1234>.protocol = 'file'",
+ "<area>: Setting <https://example.net:1234>.protocol = 'file'",
+ "<a>: Setting <wss://x:x@example.net:1234>.protocol = 'file'",
+ "<area>: Setting <wss://x:x@example.net:1234>.protocol = 'file'",
+ "<a>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special",
+ "<area>: Setting <http://example.net>.protocol = 'b' Can’t switch from special scheme to non-special",
+ "<a>: Setting <https://example.net>.protocol = 's'",
+ "<area>: Setting <https://example.net>.protocol = 's'",
+ "<a>: Setting <ftp://example.net>.protocol = 'test'",
+ "<area>: Setting <ftp://example.net>.protocol = 'test'",
+ "<a>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special",
+ "<area>: Setting <ssh://me@example.net>.protocol = 'http' Can’t switch from non-special scheme to special",
+ "<a>: Setting <ssh://me@example.net>.protocol = 'https'",
+ "<area>: Setting <ssh://me@example.net>.protocol = 'https'",
+ "<a>: Setting <ssh://me@example.net>.protocol = 'file'",
+ "<area>: Setting <ssh://me@example.net>.protocol = 'file'",
+ "<a>: Setting <ssh://example.net>.protocol = 'file'",
+ "<area>: Setting <ssh://example.net>.protocol = 'file'",
+ "<a>: Setting <nonsense:///test>.protocol = 'https'",
+ "<area>: Setting <nonsense:///test>.protocol = 'https'",
+ "<a>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored",
+ "<area>: Setting <http://example.net>.protocol = 'https:foo : bar' Stuff after the first ':' is ignored",
+ "<a>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored",
+ "<area>: Setting <data:text/html,<p>Test>.protocol = 'view-source+data:foo : bar' Stuff after the first ':' is ignored",
+ "<a>: Setting <http://foo.com:443/>.protocol = 'https' Port is set to null if it is the default for new scheme.",
+ "<area>: Setting <http://foo.com:443/>.protocol = 'https' Port is set to null if it is the default for new scheme.",
+ "<a>: Setting <http://test/>.protocol = 'h\r\ntt\tps' Tab and newline are stripped",
+ "<area>: Setting <http://test/>.protocol = 'h\r\ntt\tps' Tab and newline are stripped",
+ "<a>: Setting <http://test/>.protocol = 'https\r'",
+ "<area>: Setting <http://test/>.protocol = 'https\r'",
+ "<a>: Setting <http://test/>.protocol = 'https\u0000' Non-tab/newline C0 controls result in no-op",
+ "<area>: Setting <http://test/>.protocol = 'https\u0000' Non-tab/newline C0 controls result in no-op",
+ "<a>: Setting <http://test/>.protocol = 'https\f'",
+ "<area>: Setting <http://test/>.protocol = 'https\f'",
+ "<a>: Setting <http://test/>.protocol = 'https\u000e'",
+ "<area>: Setting <http://test/>.protocol = 'https\u000e'",
+ "<a>: Setting <http://test/>.protocol = 'https '",
+ "<area>: Setting <http://test/>.protocol = 'https '",
+ "<a>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username",
+ "<area>: Setting <unix:/run/foo.socket>.username = 'me' No host means no username",
+ "<a>: Setting <http://example.net>.username = 'me'",
+ "<area>: Setting <http://example.net>.username = 'me'",
+ "<a>: Setting <http://:secret@example.net>.username = 'me'",
+ "<area>: Setting <http://:secret@example.net>.username = 'me'",
+ "<a>: Setting <http://me@example.net>.username = ''",
+ "<area>: Setting <http://me@example.net>.username = ''",
+ "<a>: Setting <http://me:secret@example.net>.username = ''",
+ "<area>: Setting <http://me:secret@example.net>.username = ''",
+ "<a>: Setting <http://example.net>.username = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.",
+ "<area>: Setting <http://example.net>.username = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.",
+ "<a>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.",
+ "<area>: Setting <http://example.net>.username = '%c3%89té' Bytes already percent-encoded are left as-is.",
+ "<a>: Setting <sc:///>.username = 'x'",
+ "<area>: Setting <sc:///>.username = 'x'",
+ "<a>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password",
+ "<area>: Setting <unix:/run/foo.socket>.password = 'secret' No host means no password",
+ "<a>: Setting <http://example.net>.password = 'secret'",
+ "<area>: Setting <http://example.net>.password = 'secret'",
+ "<a>: Setting <http://me@example.net>.password = 'secret'",
+ "<area>: Setting <http://me@example.net>.password = 'secret'",
+ "<a>: Setting <http://:secret@example.net>.password = ''",
+ "<area>: Setting <http://:secret@example.net>.password = ''",
+ "<a>: Setting <http://me:secret@example.net>.password = ''",
+ "<area>: Setting <http://me:secret@example.net>.password = ''",
+ "<a>: Setting <http://example.net>.password = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.",
+ "<area>: Setting <http://example.net>.password = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the userinfo encode set.",
+ "<a>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.",
+ "<area>: Setting <http://example.net>.password = '%c3%89té' Bytes already percent-encoded are left as-is.",
+ "<a>: Setting <sc:///>.password = 'x'",
+ "<area>: Setting <sc:///>.password = 'x'",
+ "<a>: Setting <sc://x/>.host = '\u0000' Non-special scheme",
+ "<area>: Setting <sc://x/>.host = '\u0000' Non-special scheme",
+ "<a>: Setting <sc://x/>.host = '\t'",
+ "<area>: Setting <sc://x/>.host = '\t'",
+ "<a>: Setting <sc://x/>.host = '\n'",
+ "<area>: Setting <sc://x/>.host = '\n'",
+ "<a>: Setting <sc://x/>.host = '\r'",
+ "<area>: Setting <sc://x/>.host = '\r'",
+ "<a>: Setting <sc://x/>.host = ' '",
+ "<area>: Setting <sc://x/>.host = ' '",
+ "<a>: Setting <sc://x/>.host = '#'",
+ "<area>: Setting <sc://x/>.host = '#'",
+ "<a>: Setting <sc://x/>.host = '/'",
+ "<area>: Setting <sc://x/>.host = '/'",
+ "<a>: Setting <sc://x/>.host = '?'",
+ "<area>: Setting <sc://x/>.host = '?'",
+ "<a>: Setting <sc://x/>.host = '@'",
+ "<area>: Setting <sc://x/>.host = '@'",
+ "<a>: Setting <sc://x/>.host = 'ß'",
+ "<area>: Setting <sc://x/>.host = 'ß'",
+ "<a>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing",
+ "<area>: Setting <https://x/>.host = 'ß' IDNA Nontransitional_Processing",
+ "<a>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no host",
+ "<area>: Setting <data:text/plain,Stuff>.host = 'example.net' Cannot-be-a-base means no host",
+ "<a>: Setting <http://example.net>.host = 'example.com:8080'",
+ "<area>: Setting <http://example.net>.host = 'example.com:8080'",
+ "<a>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value",
+ "<area>: Setting <http://example.net:8080>.host = 'example.com' Port number is unchanged if not specified in the new value",
+ "<a>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified",
+ "<area>: Setting <http://example.net:8080>.host = 'example.com:' Port number is unchanged if not specified",
+ "<a>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes",
+ "<area>: Setting <http://example.net>.host = '' The empty host is not valid for special schemes",
+ "<a>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes",
+ "<area>: Setting <view-source+http://example.net/foo>.host = '' The empty host is OK for non-special schemes",
+ "<a>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host",
+ "<area>: Setting <a:/foo>.host = 'example.net' Path-only URLs can gain a host",
+ "<a>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized",
+ "<area>: Setting <http://example.net>.host = '0x7F000001:8080' IPv4 address syntax is normalized",
+ "<a>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized",
+ "<area>: Setting <http://example.net>.host = '[::0:01]:2' IPv6 address syntax is normalized",
+ "<a>: Setting <http://example.net>.host = '[2001:db8::2]:4002' IPv6 literal address with port, crbug.com/1012416",
+ "<area>: Setting <http://example.net>.host = '[2001:db8::2]:4002' IPv6 literal address with port, crbug.com/1012416",
+ "<a>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed",
+ "<area>: Setting <http://example.net>.host = 'example.com:80' Default port number is removed",
+ "<a>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed",
+ "<area>: Setting <https://example.net>.host = 'example.com:443' Default port number is removed",
+ "<a>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme",
+ "<area>: Setting <https://example.net>.host = 'example.com:80' Default port number is only removed for the relevant scheme",
+ "<a>: 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",
+ "<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",
+ "<a>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.host = 'example.com/stuff' Stuff after a / delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.host = 'example.com:8080/stuff' Stuff after a / delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.host = 'example.com?stuff' Stuff after a ? delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.host = 'example.com:8080?stuff' Stuff after a ? delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.host = 'example.com#stuff' Stuff after a # delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.host = 'example.com:8080#stuff' Stuff after a # delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes",
+ "<area>: Setting <http://example.net/path>.host = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes",
+ "<a>: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes",
+ "<area>: Setting <http://example.net/path>.host = 'example.com:8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes",
+ "<a>: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts",
+ "<area>: Setting <view-source+http://example.net/path>.host = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts",
+ "<a>: 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",
+ "<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",
+ "<a>: 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",
+ "<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",
+ "<a>: 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",
+ "<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",
+ "<a>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers",
+ "<area>: Setting <http://example.net/path>.host = 'example.com:65535' Port numbers are 16 bit integers",
+ "<a>: Setting <http://example.net/path>.host = 'example.com:65536' Port numbers are 16 bit integers, overflowing is an error. Hostname is still set, though.",
+ "<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.",
+ "<a>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6",
+ "<area>: Setting <http://example.net/>.host = '[google.com]' Broken IPv6",
+ "<a>: Setting <http://example.net/>.host = '[::1.2.3.4x]'",
+ "<area>: Setting <http://example.net/>.host = '[::1.2.3.4x]'",
+ "<a>: Setting <http://example.net/>.host = '[::1.2.3.]'",
+ "<area>: Setting <http://example.net/>.host = '[::1.2.3.]'",
+ "<a>: Setting <http://example.net/>.host = '[::1.2.]'",
+ "<area>: Setting <http://example.net/>.host = '[::1.2.]'",
+ "<a>: Setting <http://example.net/>.host = '[::1.]'",
+ "<area>: Setting <http://example.net/>.host = '[::1.]'",
+ "<a>: Setting <sc://test@test/>.host = ''",
+ "<area>: Setting <sc://test@test/>.host = ''",
+ "<a>: Setting <sc://test:12/>.host = ''",
+ "<area>: Setting <sc://test:12/>.host = ''",
+ "<a>: Setting <http://example.com/>.host = '///bad.com' Leading / is not stripped",
+ "<area>: Setting <http://example.com/>.host = '///bad.com' Leading / is not stripped",
+ "<a>: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped",
+ "<area>: Setting <sc://example.com/>.host = '///bad.com' Leading / is not stripped",
+ "<a>: Setting <https://example.com/>.host = 'a%C2%ADb'",
+ "<area>: Setting <https://example.com/>.host = 'a%C2%ADb'",
+ "<a>: Setting <https://example.com/>.host = '­'",
+ "<area>: Setting <https://example.com/>.host = '­'",
+ "<a>: Setting <https://example.com/>.host = '%C2%AD'",
+ "<area>: Setting <https://example.com/>.host = '%C2%AD'",
+ "<a>: Setting <https://example.com/>.host = 'xn--'",
+ "<area>: Setting <https://example.com/>.host = 'xn--'",
+ "<a>: Setting <sc://x/>.hostname = '\u0000' Non-special scheme",
+ "<area>: Setting <sc://x/>.hostname = '\u0000' Non-special scheme",
+ "<a>: Setting <sc://x/>.hostname = '\t'",
+ "<area>: Setting <sc://x/>.hostname = '\t'",
+ "<a>: Setting <sc://x/>.hostname = '\n'",
+ "<area>: Setting <sc://x/>.hostname = '\n'",
+ "<a>: Setting <sc://x/>.hostname = '\r'",
+ "<area>: Setting <sc://x/>.hostname = '\r'",
+ "<a>: Setting <sc://x/>.hostname = ' '",
+ "<area>: Setting <sc://x/>.hostname = ' '",
+ "<a>: Setting <sc://x/>.hostname = '#'",
+ "<area>: Setting <sc://x/>.hostname = '#'",
+ "<a>: Setting <sc://x/>.hostname = '/'",
+ "<area>: Setting <sc://x/>.hostname = '/'",
+ "<a>: Setting <sc://x/>.hostname = '?'",
+ "<area>: Setting <sc://x/>.hostname = '?'",
+ "<a>: Setting <sc://x/>.hostname = '@'",
+ "<area>: Setting <sc://x/>.hostname = '@'",
+ "<a>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no host",
+ "<area>: Setting <data:text/plain,Stuff>.hostname = 'example.net' Cannot-be-a-base means no host",
+ "<a>: Setting <http://example.net:8080>.hostname = 'example.com'",
+ "<area>: Setting <http://example.net:8080>.hostname = 'example.com'",
+ "<a>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes",
+ "<area>: Setting <http://example.net>.hostname = '' The empty host is not valid for special schemes",
+ "<a>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes",
+ "<area>: Setting <view-source+http://example.net/foo>.hostname = '' The empty host is OK for non-special schemes",
+ "<a>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host",
+ "<area>: Setting <a:/foo>.hostname = 'example.net' Path-only URLs can gain a host",
+ "<a>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized",
+ "<area>: Setting <http://example.net:8080>.hostname = '0x7F000001' IPv4 address syntax is normalized",
+ "<a>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized",
+ "<area>: Setting <http://example.net>.hostname = '[::0:01]' IPv6 address syntax is normalized",
+ "<a>: Setting <http://example.net/path>.hostname = 'example.com:8080' : delimiter invalidates entire value",
+ "<area>: Setting <http://example.net/path>.hostname = 'example.com:8080' : delimiter invalidates entire value",
+ "<a>: Setting <http://example.net:8080/path>.hostname = 'example.com:' : delimiter invalidates entire value",
+ "<area>: Setting <http://example.net:8080/path>.hostname = 'example.com:' : delimiter invalidates entire value",
+ "<a>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.hostname = 'example.com/stuff' Stuff after a / delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.hostname = 'example.com?stuff' Stuff after a ? delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.hostname = 'example.com#stuff' Stuff after a # delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes",
+ "<area>: Setting <http://example.net/path>.hostname = 'example.com\\stuff' Stuff after a \\ delimiter is ignored for special schemes",
+ "<a>: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts",
+ "<area>: Setting <view-source+http://example.net/path>.hostname = 'example.com\\stuff' \\ is not a delimiter for non-special schemes, but still forbidden in hosts",
+ "<a>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6",
+ "<area>: Setting <http://example.net/>.hostname = '[google.com]' Broken IPv6",
+ "<a>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]'",
+ "<area>: Setting <http://example.net/>.hostname = '[::1.2.3.4x]'",
+ "<a>: Setting <http://example.net/>.hostname = '[::1.2.3.]'",
+ "<area>: Setting <http://example.net/>.hostname = '[::1.2.3.]'",
+ "<a>: Setting <http://example.net/>.hostname = '[::1.2.]'",
+ "<area>: Setting <http://example.net/>.hostname = '[::1.2.]'",
+ "<a>: Setting <http://example.net/>.hostname = '[::1.]'",
+ "<area>: Setting <http://example.net/>.hostname = '[::1.]'",
+ "<a>: Setting <sc://test@test/>.hostname = ''",
+ "<area>: Setting <sc://test@test/>.hostname = ''",
+ "<a>: Setting <sc://test:12/>.hostname = ''",
+ "<area>: Setting <sc://test:12/>.hostname = ''",
+ "<a>: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path",
+ "<area>: Setting <non-spec:/.//p>.hostname = 'h' Drop /. from path",
+ "<a>: Setting <non-spec:/.//p>.hostname = ''",
+ "<area>: Setting <non-spec:/.//p>.hostname = ''",
+ "<a>: Setting <http://example.com/>.hostname = '///bad.com' Leading / is not stripped",
+ "<area>: Setting <http://example.com/>.hostname = '///bad.com' Leading / is not stripped",
+ "<a>: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped",
+ "<area>: Setting <sc://example.com/>.hostname = '///bad.com' Leading / is not stripped",
+ "<a>: Setting <https://example.com/>.hostname = 'a%C2%ADb'",
+ "<area>: Setting <https://example.com/>.hostname = 'a%C2%ADb'",
+ "<a>: Setting <https://example.com/>.hostname = '­'",
+ "<area>: Setting <https://example.com/>.hostname = '­'",
+ "<a>: Setting <https://example.com/>.hostname = '%C2%AD'",
+ "<area>: Setting <https://example.com/>.hostname = '%C2%AD'",
+ "<a>: Setting <https://example.com/>.hostname = 'xn--'",
+ "<area>: Setting <https://example.com/>.hostname = 'xn--'",
+ "<a>: Setting <http://example.net>.port = '8080'",
+ "<area>: Setting <http://example.net>.port = '8080'",
+ "<a>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value",
+ "<area>: Setting <http://example.net:8080>.port = '' Port number is removed if empty is the new value",
+ "<a>: Setting <http://example.net:8080>.port = '80' Default port number is removed",
+ "<area>: Setting <http://example.net:8080>.port = '80' Default port number is removed",
+ "<a>: Setting <https://example.net:4433>.port = '443' Default port number is removed",
+ "<area>: Setting <https://example.net:4433>.port = '443' Default port number is removed",
+ "<a>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme",
+ "<area>: Setting <https://example.net>.port = '80' Default port number is only removed for the relevant scheme",
+ "<a>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.port = '8080/stuff' Stuff after a / delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.port = '8080?stuff' Stuff after a ? delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored",
+ "<area>: Setting <http://example.net/path>.port = '8080#stuff' Stuff after a # delimiter is ignored",
+ "<a>: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes",
+ "<area>: Setting <http://example.net/path>.port = '8080\\stuff' Stuff after a \\ delimiter is ignored for special schemes",
+ "<a>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error",
+ "<area>: Setting <view-source+http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error",
+ "<a>: Setting <http://example.net/path>.port = '8080stuff2' Anything other than ASCII digit stops the port parser in a setter but is not an error",
+ "<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",
+ "<a>: 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",
+ "<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",
+ "<a>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers",
+ "<area>: Setting <http://example.net/path>.port = '65535' Port numbers are 16 bit integers",
+ "<a>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error",
+ "<area>: Setting <http://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error",
+ "<a>: Setting <http://example.net:8080/path>.port = 'randomstring' Setting port to a string that doesn't parse as a number",
+ "<area>: Setting <http://example.net:8080/path>.port = 'randomstring' Setting port to a string that doesn't parse as a number",
+ "<a>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error",
+ "<area>: Setting <non-special://example.net:8080/path>.port = '65536' Port numbers are 16 bit integers, overflowing is an error",
+ "<a>: Setting <non-base:value>.port = '12'",
+ "<area>: Setting <non-base:value>.port = '12'",
+ "<a>: Setting <sc:///>.port = '12'",
+ "<area>: Setting <sc:///>.port = '12'",
+ "<a>: Setting <sc://x/>.port = '12'",
+ "<area>: Setting <sc://x/>.port = '12'",
+ "<a>: Setting <https://domain.com:443>.port = '\t8080' Leading u0009 on special scheme",
+ "<area>: Setting <https://domain.com:443>.port = '\t8080' Leading u0009 on special scheme",
+ "<a>: Setting <wpt++://domain.com:443>.port = '\t8080' Leading u0009 on non-special scheme",
+ "<area>: Setting <wpt++://domain.com:443>.port = '\t8080' Leading u0009 on non-special scheme",
+ "<a>: Setting <https://www.google.com:4343>.port = '4wpt' Should use all ascii prefixed characters as port",
+ "<area>: Setting <https://www.google.com:4343>.port = '4wpt' Should use all ascii prefixed characters as port",
+ "<a>: Setting <data:original>.pathname = 'new value'",
+ "<area>: Setting <data:original>.pathname = 'new value'",
+ "<a>: Setting <sc:original>.pathname = 'new value'",
+ "<area>: Setting <sc:original>.pathname = 'new value'",
+ "<a>: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased",
+ "<area>: Setting <foo://somehost/some/path>.pathname = '' Non-special URLs can have their paths erased",
+ "<a>: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased",
+ "<area>: Setting <foo:///some/path>.pathname = '' Non-special URLs with an empty host can have their paths erased",
+ "<a>: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased",
+ "<area>: Setting <foo:/some/path>.pathname = '' Path-only URLs cannot have their paths erased",
+ "<a>: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash",
+ "<area>: Setting <foo:/some/path>.pathname = 'test' Path-only URLs always have an initial slash",
+ "<a>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'",
+ "<area>: Setting <unix:/run/foo.socket?timeout=10>.pathname = '/var/log/../run/bar.socket'",
+ "<a>: Setting <https://example.net#nav>.pathname = 'home'",
+ "<area>: Setting <https://example.net#nav>.pathname = 'home'",
+ "<a>: Setting <https://example.net#nav>.pathname = '../home'",
+ "<area>: Setting <https://example.net#nav>.pathname = '../home'",
+ "<a>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs",
+ "<area>: Setting <http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is a segment delimiter for 'special' URLs",
+ "<a>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs",
+ "<area>: Setting <view-source+http://example.net/home?lang=fr#nav>.pathname = '\\a\\%2E\\b\\%2e.\\c' \\ is *not* a segment delimiter for non-'special' URLs",
+ "<a>: Setting <a:/>.pathname = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.",
+ "<area>: Setting <a:/>.pathname = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.",
+ "<a>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.",
+ "<area>: Setting <http://example.net>.pathname = '%2e%2E%c3%89té' Bytes already percent-encoded are left as-is, including %2E outside dotted segments.",
+ "<a>: Setting <http://example.net>.pathname = '?' ? needs to be encoded",
+ "<area>: Setting <http://example.net>.pathname = '?' ? needs to be encoded",
+ "<a>: Setting <http://example.net>.pathname = '#' # needs to be encoded",
+ "<area>: Setting <http://example.net>.pathname = '#' # needs to be encoded",
+ "<a>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme",
+ "<area>: Setting <sc://example.net>.pathname = '?' ? needs to be encoded, non-special scheme",
+ "<a>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme",
+ "<area>: Setting <sc://example.net>.pathname = '#' # needs to be encoded, non-special scheme",
+ "<a>: Setting <http://example.net>.pathname = '/?é' ? doesn't mess up encoding",
+ "<area>: Setting <http://example.net>.pathname = '/?é' ? doesn't mess up encoding",
+ "<a>: Setting <http://example.net>.pathname = '/#é' # doesn't mess up encoding",
+ "<area>: Setting <http://example.net>.pathname = '/#é' # doesn't mess up encoding",
+ "<a>: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path",
+ "<area>: Setting <non-spec:/>.pathname = '/.//p' Serialize /. in path",
+ "<a>: Setting <non-spec:/>.pathname = '/..//p'",
+ "<area>: Setting <non-spec:/>.pathname = '/..//p'",
+ "<a>: Setting <non-spec:/>.pathname = '//p'",
+ "<area>: Setting <non-spec:/>.pathname = '//p'",
+ "<a>: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path",
+ "<area>: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path",
+ "<a>: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020",
+ "<area>: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020",
+ "<a>: Setting <sc:/nospace>.pathname = 'space '",
+ "<area>: Setting <sc:/nospace>.pathname = 'space '",
+ "<a>: Setting <https://example.net#nav>.search = 'lang=fr'",
+ "<area>: Setting <https://example.net#nav>.search = 'lang=fr'",
+ "<a>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr'",
+ "<area>: Setting <https://example.net?lang=en-US#nav>.search = 'lang=fr'",
+ "<a>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr'",
+ "<area>: Setting <https://example.net?lang=en-US#nav>.search = '?lang=fr'",
+ "<a>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr'",
+ "<area>: Setting <https://example.net?lang=en-US#nav>.search = '??lang=fr'",
+ "<a>: Setting <https://example.net?lang=en-US#nav>.search = '?'",
+ "<area>: Setting <https://example.net?lang=en-US#nav>.search = '?'",
+ "<a>: Setting <https://example.net?lang=en-US#nav>.search = ''",
+ "<area>: Setting <https://example.net?lang=en-US#nav>.search = ''",
+ "<a>: Setting <https://example.net?lang=en-US>.search = ''",
+ "<area>: Setting <https://example.net?lang=en-US>.search = ''",
+ "<a>: Setting <https://example.net>.search = ''",
+ "<area>: Setting <https://example.net>.search = ''",
+ "<a>: Setting <a:/>.search = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.",
+ "<area>: Setting <a:/>.search = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' UTF-8 percent encoding with the query encode set. Tabs and newlines are removed.",
+ "<a>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is",
+ "<area>: Setting <http://example.net>.search = '%c3%89té' Bytes already percent-encoded are left as-is",
+ "<a>: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths",
+ "<area>: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths",
+ "<a>: Setting <sc:space ?query>.search = ''",
+ "<area>: Setting <sc:space ?query>.search = ''",
+ "<a>: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths",
+ "<area>: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths",
+ "<a>: Setting <sc:space ?query#fragment>.search = ''",
+ "<area>: Setting <sc:space ?query#fragment>.search = ''",
+ "<a>: Setting <https://example.net>.hash = 'main'",
+ "<area>: Setting <https://example.net>.hash = 'main'",
+ "<a>: Setting <https://example.net#nav>.hash = 'main'",
+ "<area>: Setting <https://example.net#nav>.hash = 'main'",
+ "<a>: Setting <https://example.net?lang=en-US>.hash = '##nav'",
+ "<area>: Setting <https://example.net?lang=en-US>.hash = '##nav'",
+ "<a>: Setting <https://example.net?lang=en-US#nav>.hash = '#main'",
+ "<area>: Setting <https://example.net?lang=en-US#nav>.hash = '#main'",
+ "<a>: Setting <https://example.net?lang=en-US#nav>.hash = '#'",
+ "<area>: Setting <https://example.net?lang=en-US#nav>.hash = '#'",
+ "<a>: Setting <https://example.net?lang=en-US#nav>.hash = ''",
+ "<area>: Setting <https://example.net?lang=en-US#nav>.hash = ''",
+ "<a>: Setting <http://example.net>.hash = '#foo bar'",
+ "<area>: Setting <http://example.net>.hash = '#foo bar'",
+ "<a>: Setting <http://example.net>.hash = '#foo\"bar'",
+ "<area>: Setting <http://example.net>.hash = '#foo\"bar'",
+ "<a>: Setting <http://example.net>.hash = '#foo<bar'",
+ "<area>: Setting <http://example.net>.hash = '#foo<bar'",
+ "<a>: Setting <http://example.net>.hash = '#foo>bar'",
+ "<area>: Setting <http://example.net>.hash = '#foo>bar'",
+ "<a>: Setting <http://example.net>.hash = '#foo`bar'",
+ "<area>: Setting <http://example.net>.hash = '#foo`bar'",
+ "<a>: Setting <a:/>.hash = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed",
+ "<area>: Setting <a:/>.hash = '\u0000\u0001\t\n\r\u001f !\"#$%&'()*+,-./09:;<=>?@AZ[\\]^_`az{|}~€Éé' Simple percent-encoding; tabs and newlines are removed",
+ "<a>: Setting <http://example.net>.hash = 'a\u0000b' Percent-encode NULLs in fragment",
+ "<area>: Setting <http://example.net>.hash = 'a\u0000b' Percent-encode NULLs in fragment",
+ "<a>: Setting <non-spec:/>.hash = 'a\u0000b' Percent-encode NULLs in fragment",
+ "<area>: Setting <non-spec:/>.hash = 'a\u0000b' Percent-encode NULLs in fragment",
+ "<a>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is",
+ "<area>: Setting <http://example.net>.hash = '%c3%89té' Bytes already percent-encoded are left as-is",
+ "<a>: Setting <data:space #fragment>.hash = '' Drop trailing spaces from trailing opaque paths",
+ "<area>: Setting <data:space #fragment>.hash = '' Drop trailing spaces from trailing opaque paths",
+ "<a>: Setting <sc:space #fragment>.hash = ''",
+ "<area>: Setting <sc:space #fragment>.hash = ''",
+ "<a>: Setting <data:space ?query#fragment>.hash = '' Do not drop trailing spaces from non-trailing opaque paths",
+ "<area>: Setting <data:space ?query#fragment>.hash = '' Do not drop trailing spaces from non-trailing opaque paths",
+ "<a>: Setting <sc:space ?query#fragment>.hash = ''",
+ "<area>: Setting <sc:space ?query#fragment>.hash = ''"
+ ],
+ "url-setters-a-area.window.html?include=file": [
+ "<a>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host",
+ "<area>: Setting <file://localhost/>.protocol = 'http' Can’t switch from file URL with no host",
+ "<a>: Setting <file:///test>.protocol = 'https'",
+ "<area>: Setting <file:///test>.protocol = 'https'",
+ "<a>: Setting <file:>.protocol = 'wss'",
+ "<area>: Setting <file:>.protocol = 'wss'",
+ "<a>: Setting <file://hi/path>.protocol = 's'",
+ "<area>: Setting <file://hi/path>.protocol = 's'",
+ "<a>: Setting <file:///home/you/index.html>.username = 'me' No host means no username",
+ "<area>: Setting <file:///home/you/index.html>.username = 'me' No host means no username",
+ "<a>: Setting <file://test/>.username = 'test'",
+ "<area>: Setting <file://test/>.username = 'test'",
+ "<a>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password",
+ "<area>: Setting <file:///home/me/index.html>.password = 'secret' No host means no password",
+ "<a>: Setting <file://test/>.password = 'test'",
+ "<area>: Setting <file://test/>.password = 'test'",
+ "<a>: Setting <file://y/>.host = 'x:123'",
+ "<area>: Setting <file://y/>.host = 'x:123'",
+ "<a>: Setting <file://y/>.host = 'loc%41lhost'",
+ "<area>: Setting <file://y/>.host = 'loc%41lhost'",
+ "<a>: Setting <file://hi/x>.host = ''",
+ "<area>: Setting <file://hi/x>.host = ''",
+ "<a>: Setting <file://y/>.hostname = 'x:123'",
+ "<area>: Setting <file://y/>.hostname = 'x:123'",
+ "<a>: Setting <file://y/>.hostname = 'loc%41lhost'",
+ "<area>: Setting <file://y/>.hostname = 'loc%41lhost'",
+ "<a>: Setting <file://hi/x>.hostname = ''",
+ "<area>: Setting <file://hi/x>.hostname = ''",
+ "<a>: Setting <file://test/>.port = '12'",
+ "<area>: Setting <file://test/>.port = '12'",
+ "<a>: Setting <file://localhost/>.port = '12'",
+ "<area>: Setting <file://localhost/>.port = '12'",
+ "<a>: Setting <file:///some/path>.pathname = '' Special URLs cannot have their paths erased",
+ "<area>: Setting <file:///some/path>.pathname = '' Special URLs cannot have their paths erased",
+ "<a>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes",
+ "<area>: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes",
+ "<a>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes",
+ "<area>: Setting <file:///unicorn>.pathname = '//\\/' File URLs and (back)slashes",
+ "<a>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes",
+ "<area>: Setting <file:///unicorn>.pathname = '//monkey/..//' File URLs and (back)slashes",
+ "<a>: Setting <file:///var/log/system.log>.href = 'http://0300.168.0xF0'",
+ "<area>: Setting <file:///var/log/system.log>.href = 'http://0300.168.0xF0'"
+ ],
+ "url-setters-a-area.window.html?include=javascript": [
+ "<a>: Setting <javascript:alert(1)>.protocol = 'defuse'",
+ "<area>: Setting <javascript:alert(1)>.protocol = 'defuse'",
+ "<a>: Setting <javascript:alert(1)>.username = 'wario'",
+ "<area>: Setting <javascript:alert(1)>.username = 'wario'",
+ "<a>: Setting <javascript://x/>.username = 'wario'",
+ "<area>: Setting <javascript://x/>.username = 'wario'",
+ "<a>: Setting <javascript://x/>.password = 'bowser'",
+ "<area>: Setting <javascript://x/>.password = 'bowser'",
+ "<a>: Setting <javascript://x/>.port = '12'",
+ "<area>: Setting <javascript://x/>.port = '12'",
+ "<a>: Setting <javascript:alert(1)>.hash = 'castle'",
+ "<area>: Setting <javascript:alert(1)>.hash = 'castle'"
+ ],
+ "url-setters-a-area.window.html?include=mailto": [
+ "<a>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.",
+ "<area>: Setting <mailto:me@example.net>.protocol = 'http' Cannot-be-a-base URL doesn’t have a host, but URL in a special scheme must.",
+ "<a>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username",
+ "<area>: Setting <mailto:you@example.net>.username = 'me' Cannot-be-a-base means no username",
+ "<a>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password",
+ "<area>: Setting <mailto:me@example.net>.password = 'secret' Cannot-be-a-base means no password",
+ "<a>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host",
+ "<area>: Setting <mailto:me@example.net>.host = 'example.com' Cannot-be-a-base means no host",
+ "<a>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host",
+ "<area>: Setting <mailto:me@example.net>.hostname = 'example.com' Cannot-be-a-base means no host",
+ "<a>: Setting <mailto:me@example.net>.pathname = '/foo' Opaque paths cannot be set",
+ "<area>: Setting <mailto:me@example.net>.pathname = '/foo' Opaque paths cannot be set"
+ ],
"url-setters.any.html?exclude=(file|javascript|mailto)": [
"URL: Setting <http://test/>.protocol = 'https\u0000' Non-tab/newline C0 controls result in no-op",
"URL: Setting <http://test/>.protocol = 'https\f'",
@@ -3598,10 +4088,8 @@
"URL: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path",
"URL: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020",
"URL: Setting <sc:/nospace>.pathname = 'space '",
- "URL: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths",
- "URL: Setting <sc:space ?query>.search = ''",
- "URL: Setting <data:space #fragment>.hash = '' Drop trailing spaces from trailing opaque paths",
- "URL: Setting <sc:space #fragment>.hash = ''"
+ "URL: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths",
+ "URL: Setting <sc:space ?query#fragment>.search = ''"
],
"url-setters.any.html?include=file": [
"URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes",
@@ -3628,10 +4116,8 @@
"URL: Setting <non-spec:/.//>.pathname = 'p' Drop /. from path",
"URL: Setting <data:/nospace>.pathname = 'space ' Non-special URLs with non-opaque paths percent-encode U+0020",
"URL: Setting <sc:/nospace>.pathname = 'space '",
- "URL: Setting <data:space ?query>.search = '' Drop trailing spaces from trailing opaque paths",
- "URL: Setting <sc:space ?query>.search = ''",
- "URL: Setting <data:space #fragment>.hash = '' Drop trailing spaces from trailing opaque paths",
- "URL: Setting <sc:space #fragment>.hash = ''"
+ "URL: Setting <data:space ?query#fragment>.search = '' Do not drop trailing spaces from non-trailing opaque paths",
+ "URL: Setting <sc:space ?query#fragment>.search = ''"
],
"url-setters.any.worker.html?include=file": [
"URL: Setting <file://monkey/>.pathname = '\\\\' File URLs and (back)slashes",
@@ -9679,4 +10165,4 @@
"media-sniff.window.html": false
}
}
-}
+} \ No newline at end of file