Update web-platform-tests to revision e87f38097902e16348d4e17f4fe3bc2d0112bff1

This commit is contained in:
WPT Sync Bot 2018-03-17 21:12:30 -04:00
parent 2f8fa32e91
commit db5631a086
381 changed files with 11610 additions and 4232 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,4 @@
[calc-in-font-variation-settings.html]
[calc() in font-variation-settings]
expected: FAIL

View file

@ -1,3 +0,0 @@
[css3-text-line-break-opclns-013.html]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[css3-text-line-break-opclns-048.html]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[css3-text-line-break-opclns-118.html]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[css3-text-line-break-opclns-154.html]
type: reftest
expected: FAIL

View file

@ -1,3 +0,0 @@
[line-break-normal-025.xht]
type: reftest
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-break-strict-018a.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[line-break-strict-018b.xht]
expected: FAIL

View file

@ -0,0 +1,2 @@
[line-breaking-012.html]
expected: FAIL

View file

@ -1,3 +0,0 @@
[word-break-normal-002.xht]
type: reftest
expected: FAIL

View file

@ -864,3 +864,60 @@
[CDATASection interface: existence and properties of interface prototype object's @@unscopables property] [CDATASection interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL expected: FAIL
[AbstractRange interface: existence and properties of interface object]
expected: FAIL
[AbstractRange interface object length]
expected: FAIL
[AbstractRange interface object name]
expected: FAIL
[AbstractRange interface: existence and properties of interface prototype object]
expected: FAIL
[AbstractRange interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[AbstractRange interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[AbstractRange interface: attribute startContainer]
expected: FAIL
[AbstractRange interface: attribute startOffset]
expected: FAIL
[AbstractRange interface: attribute endContainer]
expected: FAIL
[AbstractRange interface: attribute endOffset]
expected: FAIL
[AbstractRange interface: attribute collapsed]
expected: FAIL
[StaticRange interface: existence and properties of interface object]
expected: FAIL
[StaticRange interface object length]
expected: FAIL
[StaticRange interface object name]
expected: FAIL
[StaticRange interface: existence and properties of interface prototype object]
expected: FAIL
[StaticRange interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[StaticRange interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[Range interface: existence and properties of interface object]
expected: FAIL
[Range interface: existence and properties of interface prototype object]
expected: FAIL

View file

@ -21,3 +21,6 @@
[Input request used for creating new request became disturbed even if body is not used] [Input request used for creating new request became disturbed even if body is not used]
expected: FAIL expected: FAIL
[Check creating a new request with a new body from a disturbed request]
expected: FAIL

View file

@ -0,0 +1,22 @@
[type-argument.window.html]
[document.open() with type set to: NOBODY (type argument is supposed to be ignored)]
expected: FAIL
[document.open() with type set to: @ FD ; (type argument is supposed to be ignored)]
expected: FAIL
[document.open() with type set to: it does not matter, you see \x0c (type argument is supposed to be ignored)]
expected: FAIL
[document.open() with type set to: text/plain (type argument is supposed to be ignored)]
expected: FAIL
[document.open() with type set to: text/xml (type argument is supposed to be ignored)]
expected: FAIL
[document.open() with type set to: application/octet-stream (type argument is supposed to be ignored)]
expected: FAIL
[document.open() with type set to: \x00 (type argument is supposed to be ignored)]
expected: FAIL

View file

@ -0,0 +1,4 @@
[submit-file.sub.html]
[Posting a File]
expected: FAIL

View file

@ -0,0 +1,5 @@
[Create-on-worker-shutdown.html]
expected: TIMEOUT
[WebSocket created after a worker self.close()]
expected: TIMEOUT

View file

@ -1,5 +0,0 @@
[rapid-resizing.html]
expected: TIMEOUT
[Overall test]
expected: NOTRUN

View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<meta charset=utf-8>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(t => {
function workerCode() {
close();
var blob = new Blob([123]);
var fr = new FileReader();
fr.readAsText(blob);
fr.abort()
fr.readAsArrayBuffer(blob);
postMessage(true);
}
var workerBlob = new Blob([workerCode.toSource() + ";workerCode();"], {type:"application/javascript"});
var w = new Worker(URL.createObjectURL(workerBlob));
w.onmessage = function(e) {
assert_true(e.data, "FileReader created during worker shutdown.");
t.done();
}
}, 'FileReader created after a worker self.close()');
</script>

View file

@ -1,8 +1,8 @@
This directory contains the Indexed Database API test suite. This directory contains the Indexed Database API test suite.
To run the tests in this test suite within a browser, go to: <http://w3c-test.org/IndexedDB/>. To run the tests in this test suite within a browser, go to: <https://w3c-test.org/IndexedDB/>.
The latest Editor's Draft of Indexed Database API is: <http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html>. The latest Editor's Draft of Indexed Database API is: <https://w3c.github.io/IndexedDB/>.
The latest W3C Technical Report of Indexed Database API is: <http://www.w3.org/TR/IndexedDB/>. The latest W3C Technical Report of Indexed Database API is: <https://www.w3.org/TR/IndexedDB/>.

View file

@ -42,6 +42,7 @@ function performChromiumSetup() {
`${prefix}/mojo_layouttest_test.mojom.js`, `${prefix}/mojo_layouttest_test.mojom.js`,
`${prefix}/uuid.mojom.js`, `${prefix}/uuid.mojom.js`,
`${prefix}/fake_bluetooth.mojom.js`, `${prefix}/fake_bluetooth.mojom.js`,
`${prefix}/fake_bluetooth_chooser.mojom.js`,
`${prefix}/web-bluetooth-test.js`, `${prefix}/web-bluetooth-test.js`,
].concat(extra)) ].concat(extra))
// Call setBluetoothFakeAdapter() to clean up any fake adapters left over // Call setBluetoothFakeAdapter() to clean up any fake adapters left over

View file

@ -0,0 +1,33 @@
<html>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
// When the response for the HTML file contains "Accept-CH" in the response
// headers, then the browser should not attach the specified client hints in
// the HTTP request headers if the response was delivered by an insecure HTTP
// server. Test this functionality by fetching an XHR from this page hosted on
// an insecure HTTP server. The response headers for this page include
// "Accept-CH: device-memory, dpr, viewport-width".
//
// echo_client_hints_received.py includes "device-memory-received",
// "dpr-received" and "viewport-width-received" in the response headers
// depending on the set of client hints it receives in the request headers.
promise_test(t => {
return fetch("/client-hints/echo_client_hints_received.py").then(r => {
assert_equals(r.status, 200)
// Verify that the browser does not include client hints in the headers
// when fetching the XHR from an insecure HTTP server.
assert_false(r.headers.has("device-memory-received"));
assert_false(r.headers.has("dpr-received"));
assert_false(r.headers.has("viewport-width-received"));
});
}, "Accept-CH header test");
</script>
</body>
</html>

View file

@ -0,0 +1 @@
Accept-CH: device-memory, dpr, viewport-width

View file

@ -1,30 +0,0 @@
<html>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
// If the response for the HTML file contains "Accept-CH: device-memory" in
// the response headers, then the browser should attach device-memory client
// hint in the HTTP request headers. Test this functionality by fetching an
// XHR from this page. The response headers for this page include
// "Accept-CH: device-memory".
//
// echo_device_memory_header_received.py includes "device-memory-received" in
// the response headers only if the request included "device-memory" in the
// headers.
promise_test(t => {
return fetch("/client-hints/echo_device_memory_header_received.py").then(r => {
assert_equals(r.status, 200)
// Verify that the browser included "device-memory" in the headers when
// fetching the XHR.
assert_true(r.headers.has("device-memory-received"));
});
}, "Accept-CH header test");
</script>
</body>
</html>

View file

@ -1 +0,0 @@
Accept-CH: device-memory

View file

@ -0,0 +1,32 @@
<html>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
// If the response for the HTML file contains "Accept-CH" in the response
// headers, then the browser should attach the specified client hints in the
// HTTP request headers. Test this functionality by fetching an
// XHR from this page. The response headers for this page include
// "Accept-CH: device-memory, dpr, viewport-width".
//
// echo_client_hints_received.py includes "device-memory-received",
// "dpr-received" and "viewport-width-received" in the response headers
// depending on the set of client hints it receives in the request headers.
promise_test(t => {
return fetch("https://{{domains[]}}:{{ports[https][0]}}/client-hints/echo_client_hints_received.py", {"mode": "no-cors"}).then(r => {
assert_equals(r.status, 200)
// Verify that the browser includes client hints in the headers when
// fetching the XHR.
assert_true(r.headers.has("device-memory-received"), "device-memory-received");
assert_true(r.headers.has("dpr-received"), "dpr-received");
assert_true(r.headers.has("viewport-width-received"), "viewport-width-received");
});
}, "Accept-CH header test");
</script>
</body>
</html>

View file

@ -0,0 +1 @@
Accept-CH: device-memory, dpr, viewport-width

View file

@ -5,4 +5,8 @@ def main(request, response):
""" """
if "device-memory" in request.headers: if "device-memory" in request.headers:
response.headers.set("device-memory-received", "true") response.headers.set("device-memory-received", "true")
if "dpr" in request.headers:
response.headers.set("dpr-received", "true")
if "viewport-width" in request.headers:
response.headers.set("viewport-width-received", "true")

View file

@ -8,7 +8,7 @@
"wss":["auto"]}, "wss":["auto"]},
"check_subdomains": true, "check_subdomains": true,
"log_level":"debug", "log_level":"debug",
"bind_hostname": true, "bind_address": true,
"ssl": {"type": "pregenerated", "ssl": {"type": "pregenerated",
"encrypt_after_connect": false, "encrypt_after_connect": false,
"openssl": { "openssl": {

View file

@ -7,7 +7,7 @@ EXPAND=expand
EXPANDFLAGS= EXPANDFLAGS=
GIT=git GIT=git
GITFLAGS= GITFLAGS=
PYTHON=python PYTHON=python3
PYTHONFLAGS= PYTHONFLAGS=
VNU_TEST_REPO=git@github.com:validator/tests.git VNU_TEST_REPO=git@github.com:validator/tests.git
ITS_REPO=git@github.com:w3c/its-2.0-testsuite-inputdata.git ITS_REPO=git@github.com:w3c/its-2.0-testsuite-inputdata.git
@ -24,7 +24,7 @@ README.md: index.html
| $(EXPAND) $(EXPANDFLAGS) > $@ | $(EXPAND) $(EXPANDFLAGS) > $@
messages.json: .FORCE messages.json: .FORCE
$(PYTHON) $(PYTHONFLAGS) -mjson.tool $@ > $@.tmp $(PYTHON) $(PYTHONFLAGS) -mjson.tool --sort-keys $@ > $@.tmp
mv $@.tmp $@ mv $@.tmp $@
push: push:

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid href: scheme-javascript-no-slash-malformed</title>
<a href="javascript:example.com/"></a>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid href: scheme-javascript-no-slash-malformed</title>
<map name=foo><area href="javascript:example.com/" alt></map>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid src: scheme-javascript-no-slash-malformed</title>
<audio src="javascript:example.com/"></audio>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid href: scheme-javascript-no-slash-malformed</title>
<base href="javascript:example.com/">

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid cite: scheme-javascript-no-slash-malformed</title>
<blockquote cite="javascript:example.com/"></blockquote>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid formaction: scheme-javascript-no-slash-malformed</title>
<button formaction="javascript:example.com/"></button>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid cite: scheme-javascript-no-slash-malformed</title>
<del cite="javascript:example.com/"></del>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid src: scheme-javascript-no-slash-malformed</title>
<embed src="javascript:example.com/">

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid action: scheme-javascript-no-slash-malformed</title>
<form action="javascript:example.com/"></form>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid src: scheme-javascript-no-slash-malformed</title>
<iframe src="javascript:example.com/"></iframe>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid src: scheme-javascript-no-slash-malformed</title>
<img src="javascript:example.com/" alt>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid formaction: scheme-javascript-no-slash-malformed</title>
<input type=image alt="foo" formaction="javascript:example.com/">

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid src: scheme-javascript-no-slash-malformed</title>
<input type=image alt="foo" src="javascript:example.com/">

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid formaction: scheme-javascript-no-slash-malformed</title>
<input type=submit formaction="javascript:example.com/">

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid value attribute: scheme-javascript-no-slash-malformed</title>
<input type=url value="javascript:example.com/">

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid cite: scheme-javascript-no-slash-malformed</title>
<ins cite="javascript:example.com/"></ins>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid href: scheme-javascript-no-slash-malformed</title>
<link href="javascript:example.com/" rel=help>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid data: scheme-javascript-no-slash-malformed</title>
<object data="javascript:example.com/"></object>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid cite: scheme-javascript-no-slash-malformed</title>
<q cite="javascript:example.com/"></q>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid src: scheme-javascript-no-slash-malformed</title>
<script src="javascript:example.com/"></script>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid src: scheme-javascript-no-slash-malformed</title>
<video><source src="javascript:example.com/"></video>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid src: scheme-javascript-no-slash-malformed</title>
<video><track src="javascript:example.com/"></video>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid poster: scheme-javascript-no-slash-malformed</title>
<video poster="javascript:example.com/"></video>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid src: scheme-javascript-no-slash-malformed</title>
<video src="javascript:example.com/"></video>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid itemid: scheme-javascript-no-slash-malformed</title>
<div itemid="javascript:example.com/" itemtype="http://foo" itemscope></div>

View file

@ -1,4 +0,0 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>invalid itemtype: scheme-javascript-no-slash-malformed</title>
<div itemtype="javascript:example.com/" itemscope></div>

View file

@ -144,7 +144,6 @@
"html/elements/a/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/a/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/a/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/a/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/a/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/a/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/a/href/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Unexpected token.",
"html/elements/a/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/a/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/a/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/a/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/a/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/a/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -214,7 +213,6 @@
"html/elements/area/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/area/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/area/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/area/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/area/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/area/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/area/href/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Unexpected token.",
"html/elements/area/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/area/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/area/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/area/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/area/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/area/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -284,7 +282,6 @@
"html/elements/audio/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/audio/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/audio/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/audio/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/audio/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/audio/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/audio/src/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Unexpected token.",
"html/elements/audio/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/audio/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/audio/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/audio/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/audio/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/audio/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -350,7 +347,6 @@
"html/elements/base/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/base/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/base/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/base/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/base/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/base/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/base/href/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Unexpected token.",
"html/elements/base/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/base/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/base/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/base/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/base/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/base/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -416,7 +412,6 @@
"html/elements/blockquote/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/blockquote/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/blockquote/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/blockquote/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/blockquote/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/blockquote/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/blockquote/cite/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Unexpected token.",
"html/elements/blockquote/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/blockquote/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/blockquote/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/blockquote/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/blockquote/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/blockquote/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -485,7 +480,6 @@
"html/elements/button/formaction/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/button/formaction/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/button/formaction/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/button/formaction/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/button/formaction/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/button/formaction/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/button/formaction/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Unexpected token.",
"html/elements/button/formaction/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/button/formaction/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/button/formaction/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/button/formaction/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/button/formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/button/formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -553,7 +547,6 @@
"html/elements/del/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/del/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/del/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/del/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/del/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/del/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/del/cite/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Unexpected token.",
"html/elements/del/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/del/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/del/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/del/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/del/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/del/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -749,7 +742,6 @@
"html/elements/embed/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/embed/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/embed/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/embed/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/embed/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/embed/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/embed/src/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Unexpected token.",
"html/elements/embed/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/embed/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/embed/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/embed/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/embed/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/embed/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -820,7 +812,6 @@
"html/elements/form/action/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/form/action/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/form/action/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/form/action/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/form/action/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/form/action/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/form/action/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Unexpected token.",
"html/elements/form/action/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/form/action/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/form/action/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/form/action/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/form/action/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/form/action/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -898,7 +889,6 @@
"html/elements/iframe/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/iframe/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/iframe/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/iframe/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/iframe/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/iframe/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/iframe/src/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Unexpected token.",
"html/elements/iframe/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/iframe/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/iframe/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/iframe/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/iframe/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/iframe/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -966,7 +956,6 @@
"html/elements/img/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/img/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/img/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/img/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/img/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/img/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/img/src/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Unexpected token.",
"html/elements/img/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/img/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/img/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/img/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/img/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/img/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -1038,7 +1027,6 @@
"html/elements/input/type-image-formaction/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/input/type-image-formaction/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/input/type-image-formaction/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/input/type-image-formaction/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/input/type-image-formaction/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/input/type-image-formaction/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/input/type-image-formaction/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Unexpected token.",
"html/elements/input/type-image-formaction/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/input/type-image-formaction/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/input/type-image-formaction/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/input/type-image-formaction/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/input/type-image-formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/input/type-image-formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -1105,7 +1093,6 @@
"html/elements/input/type-image-src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/input/type-image-src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/input/type-image-src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/input/type-image-src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/input/type-image-src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/input/type-image-src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/input/type-image-src/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Unexpected token.",
"html/elements/input/type-image-src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/input/type-image-src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/input/type-image-src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/input/type-image-src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/input/type-image-src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/input/type-image-src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -1172,7 +1159,6 @@
"html/elements/input/type-submit-formaction/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/input/type-submit-formaction/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/input/type-submit-formaction/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/input/type-submit-formaction/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/input/type-submit-formaction/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/input/type-submit-formaction/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/input/type-submit-formaction/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Unexpected token.",
"html/elements/input/type-submit-formaction/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/input/type-submit-formaction/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/input/type-submit-formaction/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/input/type-submit-formaction/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/input/type-submit-formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/input/type-submit-formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -1246,7 +1232,6 @@
"html/elements/input/type-url-value/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").", "html/elements/input/type-url-value/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
"html/elements/input/type-url-value/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").", "html/elements/input/type-url-value/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
"html/elements/input/type-url-value/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").", "html/elements/input/type-url-value/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
"html/elements/input/type-url-value/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Unexpected token.",
"html/elements/input/type-url-value/scheme-schemeless-relative-novalid.html": "Bad value \u201c//foo/bar\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c//foo/bar\u201d is not an absolute URL.", "html/elements/input/type-url-value/scheme-schemeless-relative-novalid.html": "Bad value \u201c//foo/bar\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c//foo/bar\u201d is not an absolute URL.",
"html/elements/input/type-url-value/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in scheme data: line break is not allowed.", "html/elements/input/type-url-value/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/input/type-url-value/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in scheme data: line break is not allowed.", "html/elements/input/type-url-value/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in scheme data: line break is not allowed.",
@ -1312,7 +1297,6 @@
"html/elements/ins/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/ins/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/ins/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/ins/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/ins/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/ins/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/ins/cite/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Unexpected token.",
"html/elements/ins/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/ins/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/ins/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/ins/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/ins/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/ins/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -1485,7 +1469,6 @@
"html/elements/link/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/link/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/link/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/link/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/link/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/link/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/link/href/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Unexpected token.",
"html/elements/link/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/link/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/link/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/link/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/link/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/link/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -1554,7 +1537,6 @@
"html/elements/object/data/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/object/data/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/object/data/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/object/data/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/object/data/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/object/data/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/object/data/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Unexpected token.",
"html/elements/object/data/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/object/data/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/object/data/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/object/data/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/object/data/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/object/data/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -1822,7 +1804,6 @@
"html/elements/q/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/q/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/q/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/q/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/q/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/q/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/q/cite/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Unexpected token.",
"html/elements/q/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/q/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/q/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/q/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/q/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/q/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -1894,7 +1875,6 @@
"html/elements/script/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/script/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/script/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/script/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/script/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/script/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/script/src/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Unexpected token.",
"html/elements/script/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/script/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/script/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/script/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/script/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/script/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -1962,7 +1942,6 @@
"html/elements/source/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/source/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/source/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/source/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/source/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/source/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/source/src/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Unexpected token.",
"html/elements/source/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/source/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/source/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/source/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/source/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/source/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -2049,7 +2028,6 @@
"html/elements/track/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/track/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/track/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/track/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/track/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/track/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/track/src/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Unexpected token.",
"html/elements/track/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/track/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/track/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/track/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/track/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/track/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -2119,7 +2097,6 @@
"html/elements/video/poster/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/video/poster/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/video/poster/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/video/poster/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/video/poster/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/video/poster/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/video/poster/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Unexpected token.",
"html/elements/video/poster/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/video/poster/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/video/poster/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/video/poster/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/video/poster/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/video/poster/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -2184,7 +2161,6 @@
"html/elements/video/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/video/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/video/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/video/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/video/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").", "html/elements/video/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
"html/elements/video/src/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Unexpected token.",
"html/elements/video/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/video/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/video/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/elements/video/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/elements/video/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/elements/video/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -2272,7 +2248,6 @@
"html/microdata/itemid/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").", "html/microdata/itemid/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
"html/microdata/itemid/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").", "html/microdata/itemid/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
"html/microdata/itemid/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").", "html/microdata/itemid/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
"html/microdata/itemid/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Unexpected token.",
"html/microdata/itemid/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/microdata/itemid/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/microdata/itemid/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.", "html/microdata/itemid/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
"html/microdata/itemid/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: space is not allowed.", "html/microdata/itemid/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
@ -2344,7 +2319,6 @@
"html/microdata/itemtype/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").", "html/microdata/itemtype/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
"html/microdata/itemtype/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").", "html/microdata/itemtype/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
"html/microdata/itemtype/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").", "html/microdata/itemtype/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
"html/microdata/itemtype/scheme-javascript-no-slash-malformed-novalid.html": "Bad value \u201cjavascript:example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Unexpected token.",
"html/microdata/itemtype/scheme-schemeless-relative-novalid.html": "Bad value \u201c//foo/bar\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c//foo/bar\u201d is not an absolute URL.", "html/microdata/itemtype/scheme-schemeless-relative-novalid.html": "Bad value \u201c//foo/bar\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c//foo/bar\u201d is not an absolute URL.",
"html/microdata/itemtype/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cfoo.com\u201d is not an absolute URL.", "html/microdata/itemtype/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cfoo.com\u201d is not an absolute URL.",
"html/microdata/itemtype/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cfoo.com\u201d is not an absolute URL.", "html/microdata/itemtype/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cfoo.com\u201d is not an absolute URL.",

View file

@ -17,7 +17,6 @@ invalid = {
"scheme-data-single-slash": "data:/example.com/", "scheme-data-single-slash": "data:/example.com/",
"scheme-ftp-no-slash": "ftp:example.com/", "scheme-ftp-no-slash": "ftp:example.com/",
"scheme-https-no-slash": "https:example.com/", "scheme-https-no-slash": "https:example.com/",
"scheme-javascript-no-slash-malformed": "javascript:example.com/",
"userinfo-password-bad-chars": "http://&a:foo(b]c@d:2/", "userinfo-password-bad-chars": "http://&a:foo(b]c@d:2/",
"userinfo-username-contains-at-sign": "http://::@c@d:2", "userinfo-username-contains-at-sign": "http://::@c@d:2",
"userinfo-backslash": "http://a\\b:c\\d@foo.com", "userinfo-backslash": "http://a\\b:c\\d@foo.com",

View file

@ -0,0 +1,65 @@
'use strict';
test(() => {
const event = new CookieChangeEvent('change');
assert_true(event instanceof CookieChangeEvent);
assert_equals(event.type, 'change');
assert_equals(event.changed.length, 0);
assert_equals(event.deleted.length, 0);
}, 'CookieChangeEvent construction with default arguments');
test(() => {
const event = new CookieChangeEvent('change', {
changed: [
{ name: 'changed-name1', value: 'changed-value1' },
{ name: 'changed-name2', value: 'changed-value2' },
],
});
assert_true(event instanceof CookieChangeEvent);
assert_equals(event.type, 'change');
assert_equals(event.changed.length, 2);
assert_equals(event.changed[0].name, 'changed-name1');
assert_equals(event.changed[0].value, 'changed-value1');
assert_equals(event.changed[1].name, 'changed-name2');
assert_equals(event.changed[1].value, 'changed-value2');
assert_equals(event.deleted.length, 0);
}, 'CookieChangeEvent construction with changed cookie list');
test(() => {
const event = new CookieChangeEvent('change', {
deleted: [
{ name: 'deleted-name1', value: 'deleted-value1' },
{ name: 'deleted-name2', value: 'deleted-value2' },
],
});
assert_true(event instanceof CookieChangeEvent);
assert_equals(event.type, 'change');
assert_equals(event.changed.length, 0);
assert_equals(event.deleted.length, 2);
assert_equals(event.deleted[0].name, 'deleted-name1');
assert_equals(event.deleted[0].value, 'deleted-value1');
assert_equals(event.deleted[1].name, 'deleted-name2');
assert_equals(event.deleted[1].value, 'deleted-value2');
}, 'CookieChangeEvent construction with deleted cookie list');
test(() => {
const event = new CookieChangeEvent('change', {
changed: [
{ name: 'changed-name1', value: 'changed-value1' },
{ name: 'changed-name2', value: 'changed-value2' },
],
deleted: [
{ name: 'deleted-name1', value: 'deleted-value1' },
],
});
assert_true(event instanceof CookieChangeEvent);
assert_equals(event.type, 'change');
assert_equals(event.changed.length, 2);
assert_equals(event.changed[0].name, 'changed-name1');
assert_equals(event.changed[0].value, 'changed-value1');
assert_equals(event.changed[1].name, 'changed-name2');
assert_equals(event.changed[1].value, 'changed-value2');
assert_equals(event.deleted.length, 1);
assert_equals(event.deleted[0].name, 'deleted-name1');
assert_equals(event.deleted[0].value, 'deleted-value1');
}, 'CookieChangeEvent construction with changed and deleted cookie lists');

View file

@ -0,0 +1,29 @@
'use strict';
// Workaround because add_cleanup doesn't support async functions yet.
// See https://github.com/w3c/web-platform-tests/issues/6075
async function async_cleanup(cleanup_function) {
try {
await cleanup_function();
} catch (e) {
// Errors in cleanup functions shouldn't result in test failures.
}
}
promise_test(async testCase => {
const eventPromise = new Promise((resolve) => {
cookieStore.onchange = resolve;
});
await cookieStore.set('cookie-name', 'cookie-value');
const event = await eventPromise;
assert_true(event instanceof CookieChangeEvent);
assert_equals(event.type, 'change');
assert_equals(event.changed.length, 1);
assert_equals(event.changed[0].name, 'cookie-name');
assert_equals(event.changed[0].value, 'cookie-value');
assert_equals(event.deleted.length, 0);
await async_cleanup(() => cookieStore.delete('cookie-name'));
}, 'cookieStore fires change event for cookie set by cookieStore.set()');

View file

@ -0,0 +1,31 @@
'use strict';
// Workaround because add_cleanup doesn't support async functions yet.
// See https://github.com/w3c/web-platform-tests/issues/6075
async function async_cleanup(cleanup_function) {
try {
await cleanup_function();
} catch (e) {
// Errors in cleanup functions shouldn't result in test failures.
}
}
promise_test(async testCase => {
await cookieStore.set('cookie-name', 'cookie-value');
const eventPromise = new Promise((resolve) => {
cookieStore.onchange = resolve;
});
await cookieStore.delete('cookie-name');
const event = await eventPromise;
assert_true(event instanceof CookieChangeEvent);
assert_equals(event.type, 'change');
assert_equals(event.deleted.length, 1);
assert_equals(event.deleted[0].name, 'cookie-name');
assert_equals(
event.deleted[0].value, undefined,
'Cookie change events for deletions should not have cookie values');
assert_equals(event.changed.length, 0);
await async_cleanup(() => cookieStore.delete('cookie-name'));
}, 'cookieStore fires change event for cookie deleted by cookieStore.delete()');

View file

@ -0,0 +1,31 @@
'use strict';
// Workaround because add_cleanup doesn't support async functions yet.
// See https://github.com/w3c/web-platform-tests/issues/6075
async function async_cleanup(cleanup_function) {
try {
await cleanup_function();
} catch (e) {
// Errors in cleanup functions shouldn't result in test failures.
}
}
promise_test(async testCase => {
await cookieStore.set('cookie-name', 'cookie-value');
const eventPromise = new Promise((resolve) => {
cookieStore.onchange = resolve;
});
await cookieStore.set('cookie-name', 'new-cookie-value');
const event = await eventPromise;
assert_true(event instanceof CookieChangeEvent);
assert_equals(event.type, 'change');
assert_equals(event.changed.length, 1);
assert_equals(event.changed[0].name, 'cookie-name');
assert_equals(event.changed[0].value, 'new-cookie-value');
assert_equals(event.deleted.length, 0);
await async_cleanup(() => cookieStore.delete('cookie-name'));
}, 'cookieStore fires change event for cookie overwritten by cookieStore.set()');

View file

@ -21,6 +21,9 @@ promise_test(async t => {
idl_array.add_untested_idls('interface LinkStyle {};'); idl_array.add_untested_idls('interface LinkStyle {};');
idl_array.add_untested_idls(html); idl_array.add_untested_idls(html);
idl_array.add_untested_idls('interface Event {};');
idl_array.add_untested_idls('dictionary EventInit {};');
idl_array.add_untested_idls('interface EventTarget {};');
idl_array.add_untested_idls( idl_array.add_untested_idls(
`[Global=ServiceWorker, Exposed=ServiceWorker] `[Global=ServiceWorker, Exposed=ServiceWorker]
interface ServiceWorkerGlobalScope {};`); interface ServiceWorkerGlobalScope {};`);
@ -29,6 +32,7 @@ promise_test(async t => {
idl_array.add_objects({ idl_array.add_objects({
CookieStore: [self.cookieStore], CookieStore: [self.cookieStore],
CookieChangeEvent: [new CookieChangeEvent('change')],
}); });
idl_array.test(); idl_array.test();
}, 'Interface test'); }, 'Interface test');

View file

@ -13,6 +13,14 @@ promise_test(async t => {
const idl_array = new IdlArray(); const idl_array = new IdlArray();
idl_array.add_untested_idls(
`[Global=Event, Exposed=ServiceWorker]
interface Event {};`);
idl_array.add_untested_idls('dictionary EventHandler {};');
idl_array.add_untested_idls('dictionary EventInit {};');
idl_array.add_untested_idls(
`[Global=EventTarget, Exposed=ServiceWorker]
interface EventTarget {};`);
idl_array.add_untested_idls( idl_array.add_untested_idls(
`[Global=ServiceWorker, Exposed=ServiceWorker] `[Global=ServiceWorker, Exposed=ServiceWorker]
interface ServiceWorkerGlobalScope {};`); interface ServiceWorkerGlobalScope {};`);
@ -24,6 +32,7 @@ promise_test(async t => {
idl_array.add_objects({ idl_array.add_objects({
CookieStore: [self.cookieStore], CookieStore: [self.cookieStore],
CookieChangeEvent: [new CookieChangeEvent('change')],
}); });
idl_array.test(); idl_array.test();
}, 'Interface test'); }, 'Interface test');

View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<title>Unresolvable percentage min-height</title>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/CSS22/visudet.html#min-max-heights" title="10.7 Minimum and maximum heights: 'min-height' and 'max-height'">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<div id="container" style="width:100px; height:30000px; max-height:100%;" data-expected-height="30000">
<div style="height:12345px;"></div>
</div>
<script>
checkLayout("#container");
</script>

View file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<title>Unresolvable percentage min-height</title>
<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/CSS22/visudet.html#min-max-heights" title="10.7 Minimum and maximum heights: 'min-height' and 'max-height'">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<p>There should be a blue square below.</p>
<div id="container" style="width:100px; max-height:100px; min-height:100%; background:blue;" data-expected-height="100">
<div style="height:300px;"></div>
</div>
<script>
checkLayout("#container");
</script>

View file

@ -11,6 +11,7 @@
#columnGapVw { column-gap: 2vw; } #columnGapVw { column-gap: 2vw; }
#columnGapPercent { column-gap: 15%; } #columnGapPercent { column-gap: 15%; }
#columnGapCalc { column-gap: calc(10px + 4px); } #columnGapCalc { column-gap: calc(10px + 4px); }
#columnGapCalcFixedPercent { column-gap: calc(5px + 10%); }
.columnGapInitial { column-gap: initial; } .columnGapInitial { column-gap: initial; }
.columnGapInherit { column-gap: inherit; } .columnGapInherit { column-gap: inherit; }
@ -31,6 +32,7 @@
<div id="columnGapVw"></div> <div id="columnGapVw"></div>
<div id="columnGapPercent"></div> <div id="columnGapPercent"></div>
<div id="columnGapCalc"></div> <div id="columnGapCalc"></div>
<div id="columnGapCalcFixedPercent"></div>
<div id="columnGapInitial" class="columnGapInitial"></div> <div id="columnGapInitial" class="columnGapInitial"></div>
<div class="columnGapPx"> <div class="columnGapPx">
<div id="columnGapInitialPx" class="columnGapInitial"></div> <div id="columnGapInitialPx" class="columnGapInitial"></div>
@ -81,6 +83,11 @@
var target = document.getElementById("columnGapCalc"); var target = document.getElementById("columnGapCalc");
assert_equals(getComputedStyle(target).columnGap, "14px"); assert_equals(getComputedStyle(target).columnGap, "14px");
}, "column-gap accepts calc()"); }, "column-gap accepts calc()");
test(
function(){
var target = document.getElementById("columnGapCalcFixedPercent");
assert_equals(getComputedStyle(target).columnGap, "calc(5px + 10%)");
}, "column-gap accepts calc() mixing fixed and percentage values");
test( test(
function(){ function(){
var target = document.getElementById("columnGapInitial"); var target = document.getElementById("columnGapInitial");

View file

@ -16,6 +16,7 @@
#gapPercent { gap: 15%; } #gapPercent { gap: 15%; }
#gapPercentTwo { gap: 15% 10%; } #gapPercentTwo { gap: 15% 10%; }
#gapCalc { gap: calc(10px + 4px); } #gapCalc { gap: calc(10px + 4px); }
#gapCalcFixedPercent { gap: calc(5px + 10%); }
#gapCalcTwo { gap: calc(10px + 4px) calc(20px - 8px); } #gapCalcTwo { gap: calc(10px + 4px) calc(20px - 8px); }
.gapInitial { gap: initial; } .gapInitial { gap: initial; }
.gapInherit { gap: inherit; } .gapInherit { gap: inherit; }
@ -44,6 +45,7 @@
<div id="gapPercent"></div> <div id="gapPercent"></div>
<div id="gapPercentTwo"></div> <div id="gapPercentTwo"></div>
<div id="gapCalc"></div> <div id="gapCalc"></div>
<div id="gapCalcFixedPercent"></div>
<div id="gapCalcTwo"></div> <div id="gapCalcTwo"></div>
<div id="gapInitial" class="gapInitial"></div> <div id="gapInitial" class="gapInitial"></div>
<div class="gapPx"> <div class="gapPx">
@ -135,6 +137,12 @@
assert_equals(getComputedStyle(target).rowGap, "14px"); assert_equals(getComputedStyle(target).rowGap, "14px");
assert_equals(getComputedStyle(target).columnGap, "14px"); assert_equals(getComputedStyle(target).columnGap, "14px");
}, "gap accepts calc()"); }, "gap accepts calc()");
test(
function(){
var target = document.getElementById("gapCalcFixedPercent");
assert_equals(getComputedStyle(target).rowGap, "calc(5px + 10%)");
assert_equals(getComputedStyle(target).columnGap, "calc(5px + 10%)");
}, "gap accepts calc() mixing fixed and percentage values");
test( test(
function(){ function(){
var target = document.getElementById("gapCalcTwo"); var target = document.getElementById("gapCalcTwo");

View file

@ -1,26 +1,27 @@
<!DOCTYPE html> <!DOCTYPE html>
<meta charset="utf-8"> <meta charset="utf-8">
<title>CSS Box Alignment Test: column-gap parsing</title> <title>CSS Box Alignment Test: grid-column-gap parsing</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://www.w3.org/TR/css-align-3/#gap-legacy"> <link rel="help" href="https://www.w3.org/TR/css-align-3/#gap-legacy">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<style> <style>
.columnGapPx { column-gap: 12px; } .columnGapPx { grid-column-gap: 12px; }
#columnGapEm { column-gap: 2em; font: 10px/1 Monospace; } #columnGapEm { grid-column-gap: 2em; font: 10px/1 Monospace; }
#columnGapVw { column-gap: 2vw; } #columnGapVw { grid-column-gap: 2vw; }
#columnGapPercent { column-gap: 15%; } #columnGapPercent { grid-column-gap: 15%; }
#columnGapCalc { column-gap: calc(10px + 4px); } #columnGapCalc { grid-column-gap: calc(10px + 4px); }
.columnGapInitial { column-gap: initial; } #columnGapCalcFixedPercent { grid-column-gap: calc(5px + 10%); }
.columnGapInherit { column-gap: inherit; } .columnGapInitial { grid-column-gap: initial; }
.columnGapInherit { grid-column-gap: inherit; }
#invalidColumnGapNegative { column-gap: -10px; } #invalidColumnGapNegative { grid-column-gap: -10px; }
#invalidColumnGapMaxContent { column-gap: max-content; } #invalidColumnGapMaxContent { grid-column-gap: max-content; }
#invalidColumnGapNone { column-gap: none; } #invalidColumnGapNone { grid-column-gap: none; }
#invalidColumnGapMultiple { column-gap: 10px 1px; } #invalidColumnGapMultiple { grid-column-gap: 10px 1px; }
#invalidColumnGapAngle { column-gap: 3rad; } #invalidColumnGapAngle { grid-column-gap: 3rad; }
#invalidColumnGapResolution { column-gap: 2dpi; } #invalidColumnGapResolution { grid-column-gap: 2dpi; }
#invalidColumnGapTime { column-gap: 200ms; } #invalidColumnGapTime { grid-column-gap: 200ms; }
</style> </style>
<body> <body>
<div id="log"></div> <div id="log"></div>
@ -31,6 +32,7 @@
<div id="columnGapVw"></div> <div id="columnGapVw"></div>
<div id="columnGapPercent"></div> <div id="columnGapPercent"></div>
<div id="columnGapCalc"></div> <div id="columnGapCalc"></div>
<div id="columnGapCalcFixedPercent"></div>
<div id="columnGapInitial" class="columnGapInitial"></div> <div id="columnGapInitial" class="columnGapInitial"></div>
<div class="columnGapPx"> <div class="columnGapPx">
<div id="columnGapInitialPx" class="columnGapInitial"></div> <div id="columnGapInitialPx" class="columnGapInitial"></div>
@ -53,91 +55,96 @@
function(){ function(){
var target = document.getElementById("default"); var target = document.getElementById("default");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Default column-gap is 'normal'"); }, "Default grid-column-gap is 'normal'");
test( test(
function(){ function(){
var target = document.getElementById("columnGapPx"); var target = document.getElementById("columnGapPx");
assert_equals(getComputedStyle(target).columnGap, "12px"); assert_equals(getComputedStyle(target).columnGap, "12px");
}, "column-gap accepts pixels"); }, "grid-column-gap accepts pixels");
test( test(
function(){ function(){
var target = document.getElementById("columnGapEm"); var target = document.getElementById("columnGapEm");
assert_equals(getComputedStyle(target).columnGap, "20px"); assert_equals(getComputedStyle(target).columnGap, "20px");
}, "column-gap accepts em"); }, "grid-column-gap accepts em");
test( test(
function(){ function(){
var target = document.getElementById("columnGapVw"); var target = document.getElementById("columnGapVw");
// The columnGap size would depend on the viewport width, so to make the test pass // The columnGap size would depend on the viewport width, so to make the test pass
// in any window size we just check it's not "normal". // in any window size we just check it's not "normal".
assert_not_equals(getComputedStyle(target).columnGap, "normal"); assert_not_equals(getComputedStyle(target).columnGap, "normal");
}, "column-gap accepts vw"); }, "grid-column-gap accepts vw");
test( test(
function(){ function(){
var target = document.getElementById("columnGapPercent"); var target = document.getElementById("columnGapPercent");
assert_equals(getComputedStyle(target).columnGap, "15%"); assert_equals(getComputedStyle(target).columnGap, "15%");
}, "column-gap accepts percentage"); }, "grid-column-gap accepts percentage");
test( test(
function(){ function(){
var target = document.getElementById("columnGapCalc"); var target = document.getElementById("columnGapCalc");
assert_equals(getComputedStyle(target).columnGap, "14px"); assert_equals(getComputedStyle(target).columnGap, "14px");
}, "column-gap accepts calc()"); }, "grid-column-gap accepts calc()");
test(
function(){
var target = document.getElementById("columnGapCalcFixedPercent");
assert_equals(getComputedStyle(target).columnGap, "calc(5px + 10%)");
}, "grid-column-gap accepts calc() mixing fixed and percentage values");
test( test(
function(){ function(){
var target = document.getElementById("columnGapInitial"); var target = document.getElementById("columnGapInitial");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Initial column-gap is 'normal'"); }, "Initial grid-column-gap is 'normal'");
test( test(
function(){ function(){
var target = document.getElementById("columnGapInitialPx"); var target = document.getElementById("columnGapInitialPx");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Initial column-gap is 'normal' 2"); }, "Initial grid-column-gap is 'normal' 2");
test( test(
function(){ function(){
var target = document.getElementById("columnGapInherit"); var target = document.getElementById("columnGapInherit");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Initial inherited column-gap is 'normal'"); }, "Initial inherited grid-column-gap is 'normal'");
test( test(
function(){ function(){
var target = document.getElementById("columnGapInheritPx"); var target = document.getElementById("columnGapInheritPx");
assert_equals(getComputedStyle(target).columnGap, "12px"); assert_equals(getComputedStyle(target).columnGap, "12px");
}, "column-gap is inheritable"); }, "grid-column-gap is inheritable");
test( test(
function(){ function(){
var target = document.getElementById("invalidColumnGapNegative"); var target = document.getElementById("invalidColumnGapNegative");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Negative column-gap is invalid"); }, "Negative grid-column-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidColumnGapMaxContent"); var target = document.getElementById("invalidColumnGapMaxContent");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "'max-content' column-gap is invalid"); }, "'max-content' grid-column-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidColumnGapNone"); var target = document.getElementById("invalidColumnGapNone");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "'none' column-gap is invalid"); }, "'none' grid-column-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidColumnGapMultiple"); var target = document.getElementById("invalidColumnGapMultiple");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "column-gap with multiple values is invalid"); }, "grid-column-gap with multiple values is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidColumnGapAngle"); var target = document.getElementById("invalidColumnGapAngle");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Angle column-gap is invalid"); }, "Angle grid-column-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidColumnGapResolution"); var target = document.getElementById("invalidColumnGapResolution");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Resolution column-gap is invalid"); }, "Resolution grid-column-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidColumnGapTime"); var target = document.getElementById("invalidColumnGapTime");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Time column-gap is invalid"); }, "Time grid-column-gap is invalid");
</script> </script>
</body> </body>

View file

@ -16,6 +16,7 @@
#gapPercent { grid-gap: 15%; } #gapPercent { grid-gap: 15%; }
#gapPercentTwo { grid-gap: 15% 10%; } #gapPercentTwo { grid-gap: 15% 10%; }
#gapCalc { grid-gap: calc(10px + 4px); } #gapCalc { grid-gap: calc(10px + 4px); }
#gapCalcFixedPercent { grid-gap: calc(5px + 10%); }
#gapCalcTwo { grid-gap: calc(10px + 4px) calc(20px - 8px); } #gapCalcTwo { grid-gap: calc(10px + 4px) calc(20px - 8px); }
.gapInitial { grid-gap: initial; } .gapInitial { grid-gap: initial; }
.gapInherit { grid-gap: inherit; } .gapInherit { grid-gap: inherit; }
@ -44,6 +45,7 @@
<div id="gapPercent"></div> <div id="gapPercent"></div>
<div id="gapPercentTwo"></div> <div id="gapPercentTwo"></div>
<div id="gapCalc"></div> <div id="gapCalc"></div>
<div id="gapCalcFixedPercent"></div>
<div id="gapCalcTwo"></div> <div id="gapCalcTwo"></div>
<div id="gapInitial" class="gapInitial"></div> <div id="gapInitial" class="gapInitial"></div>
<div class="gapPx"> <div class="gapPx">
@ -70,37 +72,37 @@
var target = document.getElementById("default"); var target = document.getElementById("default");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Default gap is 'normal'"); }, "Default grid-gap is 'normal'");
test( test(
function(){ function(){
var target = document.getElementById("gapPx"); var target = document.getElementById("gapPx");
assert_equals(getComputedStyle(target).rowGap, "12px"); assert_equals(getComputedStyle(target).rowGap, "12px");
assert_equals(getComputedStyle(target).columnGap, "12px"); assert_equals(getComputedStyle(target).columnGap, "12px");
}, "gap accepts pixels"); }, "grid-gap accepts pixels");
test( test(
function(){ function(){
var target = document.getElementById("gapPxTwo"); var target = document.getElementById("gapPxTwo");
assert_equals(getComputedStyle(target).rowGap, "12px"); assert_equals(getComputedStyle(target).rowGap, "12px");
assert_equals(getComputedStyle(target).columnGap, "8px"); assert_equals(getComputedStyle(target).columnGap, "8px");
}, "gap accepts pixels 2"); }, "grid-gap accepts pixels 2");
test( test(
function(){ function(){
var target = document.getElementById("gapPxPercent"); var target = document.getElementById("gapPxPercent");
assert_equals(getComputedStyle(target).rowGap, "12px"); assert_equals(getComputedStyle(target).rowGap, "12px");
assert_equals(getComputedStyle(target).columnGap, "10%"); assert_equals(getComputedStyle(target).columnGap, "10%");
}, "gap accepts pixels combined with percentage"); }, "grid-gap accepts pixels combined with percentage");
test( test(
function(){ function(){
var target = document.getElementById("gapEm"); var target = document.getElementById("gapEm");
assert_equals(getComputedStyle(target).rowGap, "20px"); assert_equals(getComputedStyle(target).rowGap, "20px");
assert_equals(getComputedStyle(target).columnGap, "20px"); assert_equals(getComputedStyle(target).columnGap, "20px");
}, "gap accepts em"); }, "grid-gap accepts em");
test( test(
function(){ function(){
var target = document.getElementById("gapEmTwo"); var target = document.getElementById("gapEmTwo");
assert_equals(getComputedStyle(target).rowGap, "20px"); assert_equals(getComputedStyle(target).rowGap, "20px");
assert_equals(getComputedStyle(target).columnGap, "40px"); assert_equals(getComputedStyle(target).columnGap, "40px");
}, "gap accepts em 2"); }, "grid-gap accepts em 2");
test( test(
function(){ function(){
var target = document.getElementById("gapVw"); var target = document.getElementById("gapVw");
@ -108,7 +110,7 @@
// in any window size we just check it's not "normal". // in any window size we just check it's not "normal".
assert_not_equals(getComputedStyle(target).rowGap, "normal"); assert_not_equals(getComputedStyle(target).rowGap, "normal");
assert_not_equals(getComputedStyle(target).columnGap, "normal"); assert_not_equals(getComputedStyle(target).columnGap, "normal");
}, "gap accepts vw"); }, "grid-gap accepts vw");
test( test(
function(){ function(){
var target = document.getElementById("gapVwTwo"); var target = document.getElementById("gapVwTwo");
@ -116,110 +118,116 @@
// in any window size we just check it's not "normal". // in any window size we just check it's not "normal".
assert_not_equals(getComputedStyle(target).rowGap, "normal"); assert_not_equals(getComputedStyle(target).rowGap, "normal");
assert_not_equals(getComputedStyle(target).columnGap, "normal"); assert_not_equals(getComputedStyle(target).columnGap, "normal");
}, "gap accepts vw and vh"); }, "grid-gap accepts vw and vh");
test( test(
function(){ function(){
var target = document.getElementById("gapPercent"); var target = document.getElementById("gapPercent");
assert_equals(getComputedStyle(target).rowGap, "15%"); assert_equals(getComputedStyle(target).rowGap, "15%");
assert_equals(getComputedStyle(target).columnGap, "15%"); assert_equals(getComputedStyle(target).columnGap, "15%");
}, "gap accepts percentage"); }, "grid-gap accepts percentage");
test( test(
function(){ function(){
var target = document.getElementById("gapPercentTwo"); var target = document.getElementById("gapPercentTwo");
assert_equals(getComputedStyle(target).rowGap, "15%"); assert_equals(getComputedStyle(target).rowGap, "15%");
assert_equals(getComputedStyle(target).columnGap, "10%"); assert_equals(getComputedStyle(target).columnGap, "10%");
}, "gap accepts percentage 2"); }, "grid-gap accepts percentage 2");
test( test(
function(){ function(){
var target = document.getElementById("gapCalc"); var target = document.getElementById("gapCalc");
assert_equals(getComputedStyle(target).rowGap, "14px"); assert_equals(getComputedStyle(target).rowGap, "14px");
assert_equals(getComputedStyle(target).columnGap, "14px"); assert_equals(getComputedStyle(target).columnGap, "14px");
}, "gap accepts calc()"); }, "grid-gap accepts calc()");
test(
function(){
var target = document.getElementById("gapCalcFixedPercent");
assert_equals(getComputedStyle(target).rowGap, "calc(5px + 10%)");
assert_equals(getComputedStyle(target).columnGap, "calc(5px + 10%)");
}, "grid-gap accepts calc() mixing fixed and percentage values");
test( test(
function(){ function(){
var target = document.getElementById("gapCalcTwo"); var target = document.getElementById("gapCalcTwo");
assert_equals(getComputedStyle(target).rowGap, "14px"); assert_equals(getComputedStyle(target).rowGap, "14px");
assert_equals(getComputedStyle(target).columnGap, "12px"); assert_equals(getComputedStyle(target).columnGap, "12px");
}, "gap accepts calc() 2"); }, "grid-gap accepts calc() 2");
test( test(
function(){ function(){
var target = document.getElementById("gapInitial"); var target = document.getElementById("gapInitial");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Initial gap is 'normal'"); }, "Initial grid-gap is 'normal'");
test( test(
function(){ function(){
var target = document.getElementById("gapInitialPx"); var target = document.getElementById("gapInitialPx");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Initial gap is 'normal' 2"); }, "Initial grid-gap is 'normal' 2");
test( test(
function(){ function(){
var target = document.getElementById("gapInherit"); var target = document.getElementById("gapInherit");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Initial inherited gap is 'normal'"); }, "Initial inherited grid-gap is 'normal'");
test( test(
function(){ function(){
var target = document.getElementById("gapInheritPx"); var target = document.getElementById("gapInheritPx");
assert_equals(getComputedStyle(target).rowGap, "12px"); assert_equals(getComputedStyle(target).rowGap, "12px");
assert_equals(getComputedStyle(target).columnGap, "12px"); assert_equals(getComputedStyle(target).columnGap, "12px");
}, "gap is inheritable"); }, "grid-gap is inheritable");
test( test(
function(){ function(){
var target = document.getElementById("invalidGridGapNegative"); var target = document.getElementById("invalidGridGapNegative");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Negative gap is invalid"); }, "Negative grid-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidGridGapMaxContent"); var target = document.getElementById("invalidGridGapMaxContent");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "'max-content' gap is invalid"); }, "'max-content' grid-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidGridGapNone"); var target = document.getElementById("invalidGridGapNone");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "'none' gap is invalid"); }, "'none' grid-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidGridGapAngle"); var target = document.getElementById("invalidGridGapAngle");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Angle gap is invalid"); }, "Angle grid-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidGridGapResolution"); var target = document.getElementById("invalidGridGapResolution");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Resolution gap is invalid"); }, "Resolution grid-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidGridGapTime"); var target = document.getElementById("invalidGridGapTime");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "Time gap is invalid"); }, "Time grid-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidGridGapThree"); var target = document.getElementById("invalidGridGapThree");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "gap with three values is invalid"); }, "grid-gap with three values is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidGridGapSlash"); var target = document.getElementById("invalidGridGapSlash");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "gap with slash is invalid"); }, "grid-gap with slash is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidGridGapOneWrong"); var target = document.getElementById("invalidGridGapOneWrong");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
assert_equals(getComputedStyle(target).columnGap, "normal"); assert_equals(getComputedStyle(target).columnGap, "normal");
}, "gap with one wrong value is invalid"); }, "grid-gap with one wrong value is invalid");
</script> </script>
</body> </body>

View file

@ -1,26 +1,27 @@
<!DOCTYPE html> <!DOCTYPE html>
<meta charset="utf-8"> <meta charset="utf-8">
<title>CSS Box Alignment Test: row-gap parsing</title> <title>CSS Box Alignment Test: grid-row-gap parsing</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://www.w3.org/TR/css-align-3/#gap-legacy"> <link rel="help" href="https://www.w3.org/TR/css-align-3/#gap-legacy">
<script src="/resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<style> <style>
.rowGapPx { row-gap: 12px; } .rowGapPx { grid-row-gap: 12px; }
#rowGapEm { row-gap: 2em; font: 10px/1 Monospace; } #rowGapEm { grid-row-gap: 2em; font: 10px/1 Monospace; }
#rowGapVw { row-gap: 2vw; } #rowGapVw { grid-row-gap: 2vw; }
#rowGapPercent { row-gap: 15%; } #rowGapPercent { grid-row-gap: 15%; }
#rowGapCalc { row-gap: calc(10px + 4px); } #rowGapCalc { grid-row-gap: calc(10px + 4px); }
.rowGapInitial { row-gap: initial; } #rowGapCalcFixedPercent { grid-row-gap: calc(5px + 10%); }
.rowGapInherit { row-gap: inherit; } .rowGapInitial { grid-row-gap: initial; }
.rowGapInherit { grid-row-gap: inherit; }
#invalidRowGapNegative { row-gap: -10px; } #invalidRowGapNegative { grid-row-gap: -10px; }
#invalidRowGapMaxContent { row-gap: max-content; } #invalidRowGapMaxContent { grid-row-gap: max-content; }
#invalidRowGapNone { row-gap: none; } #invalidRowGapNone { grid-row-gap: none; }
#invalidRowGapMultiple { row-gap: 10px 1px; } #invalidRowGapMultiple { grid-row-gap: 10px 1px; }
#invalidRowGapAngle { row-gap: 3rad; } #invalidRowGapAngle { grid-row-gap: 3rad; }
#invalidRowGapResolution { row-gap: 2dpi; } #invalidRowGapResolution { grid-row-gap: 2dpi; }
#invalidRowGapTime { row-gap: 200ms; } #invalidRowGapTime { grid-row-gap: 200ms; }
</style> </style>
<body> <body>
<div id="log"></div> <div id="log"></div>
@ -31,6 +32,7 @@
<div id="rowGapVw"></div> <div id="rowGapVw"></div>
<div id="rowGapPercent"></div> <div id="rowGapPercent"></div>
<div id="rowGapCalc"></div> <div id="rowGapCalc"></div>
<div id="rowGapCalcFixedPercent"></div>
<div id="rowGapInitial" class="rowGapInitial"></div> <div id="rowGapInitial" class="rowGapInitial"></div>
<div class="rowGapPx"> <div class="rowGapPx">
<div id="rowGapInitialPx" class="rowGapInitial"></div> <div id="rowGapInitialPx" class="rowGapInitial"></div>
@ -53,91 +55,96 @@
function(){ function(){
var target = document.getElementById("default"); var target = document.getElementById("default");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "Default row-gap is 'normal'"); }, "Default grid-row-gap is 'normal'");
test( test(
function(){ function(){
var target = document.getElementById("rowGapPx"); var target = document.getElementById("rowGapPx");
assert_equals(getComputedStyle(target).rowGap, "12px"); assert_equals(getComputedStyle(target).rowGap, "12px");
}, "row-gap accepts pixels"); }, "grid-row-gap accepts pixels");
test( test(
function(){ function(){
var target = document.getElementById("rowGapEm"); var target = document.getElementById("rowGapEm");
assert_equals(getComputedStyle(target).rowGap, "20px"); assert_equals(getComputedStyle(target).rowGap, "20px");
}, "row-gap accepts em"); }, "grid-row-gap accepts em");
test( test(
function(){ function(){
var target = document.getElementById("rowGapVw"); var target = document.getElementById("rowGapVw");
// The rowGap size would depend on the viewport width, so to make the test pass // The rowGap size would depend on the viewport width, so to make the test pass
// in any window size we just check it's not "normal". // in any window size we just check it's not "normal".
assert_not_equals(getComputedStyle(target).rowGap, "normal"); assert_not_equals(getComputedStyle(target).rowGap, "normal");
}, "row-gap accepts vw"); }, "grid-row-gap accepts vw");
test( test(
function(){ function(){
var target = document.getElementById("rowGapPercent"); var target = document.getElementById("rowGapPercent");
assert_equals(getComputedStyle(target).rowGap, "15%"); assert_equals(getComputedStyle(target).rowGap, "15%");
}, "row-gap accepts percentage"); }, "grid-row-gap accepts percentage");
test( test(
function(){ function(){
var target = document.getElementById("rowGapCalc"); var target = document.getElementById("rowGapCalc");
assert_equals(getComputedStyle(target).rowGap, "14px"); assert_equals(getComputedStyle(target).rowGap, "14px");
}, "row-gap accepts calc()"); }, "grid-row-gap accepts calc()");
test(
function(){
var target = document.getElementById("rowGapCalcFixedPercent");
assert_equals(getComputedStyle(target).rowGap, "calc(5px + 10%)");
}, "grid-row-gap accepts calc() mixing fixed and percentage values");
test( test(
function(){ function(){
var target = document.getElementById("rowGapInitial"); var target = document.getElementById("rowGapInitial");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "Initial row-gap is 'normal'"); }, "Initial grid-row-gap is 'normal'");
test( test(
function(){ function(){
var target = document.getElementById("rowGapInitialPx"); var target = document.getElementById("rowGapInitialPx");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "Initial row-gap is 'normal' 2"); }, "Initial grid-row-gap is 'normal' 2");
test( test(
function(){ function(){
var target = document.getElementById("rowGapInherit"); var target = document.getElementById("rowGapInherit");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "Initial inherited row-gap is 'normal'"); }, "Initial inherited grid-row-gap is 'normal'");
test( test(
function(){ function(){
var target = document.getElementById("rowGapInheritPx"); var target = document.getElementById("rowGapInheritPx");
assert_equals(getComputedStyle(target).rowGap, "12px"); assert_equals(getComputedStyle(target).rowGap, "12px");
}, "row-gap is inheritable"); }, "grid-row-gap is inheritable");
test( test(
function(){ function(){
var target = document.getElementById("invalidRowGapNegative"); var target = document.getElementById("invalidRowGapNegative");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "Negative row-gap is invalid"); }, "Negative grid-row-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidRowGapMaxContent"); var target = document.getElementById("invalidRowGapMaxContent");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "'max-content' row-gap is invalid"); }, "'max-content' grid-row-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidRowGapNone"); var target = document.getElementById("invalidRowGapNone");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "'none' row-gap is invalid"); }, "'none' grid-row-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidRowGapMultiple"); var target = document.getElementById("invalidRowGapMultiple");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "row-gap with multiple values is invalid"); }, "grid-row-gap with multiple values is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidRowGapAngle"); var target = document.getElementById("invalidRowGapAngle");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "Angle row-gap is invalid"); }, "Angle grid-row-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidRowGapResolution"); var target = document.getElementById("invalidRowGapResolution");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "Resolution row-gap is invalid"); }, "Resolution grid-row-gap is invalid");
test( test(
function(){ function(){
var target = document.getElementById("invalidRowGapTime"); var target = document.getElementById("invalidRowGapTime");
assert_equals(getComputedStyle(target).rowGap, "normal"); assert_equals(getComputedStyle(target).rowGap, "normal");
}, "Time row-gap is invalid"); }, "Time grid-row-gap is invalid");
</script> </script>
</body> </body>

View file

@ -11,6 +11,7 @@
#rowGapVw { row-gap: 2vw; } #rowGapVw { row-gap: 2vw; }
#rowGapPercent { row-gap: 15%; } #rowGapPercent { row-gap: 15%; }
#rowGapCalc { row-gap: calc(10px + 4px); } #rowGapCalc { row-gap: calc(10px + 4px); }
#rowGapCalcFixedPercent { row-gap: calc(5px + 10%); }
.rowGapInitial { row-gap: initial; } .rowGapInitial { row-gap: initial; }
.rowGapInherit { row-gap: inherit; } .rowGapInherit { row-gap: inherit; }
@ -31,6 +32,7 @@
<div id="rowGapVw"></div> <div id="rowGapVw"></div>
<div id="rowGapPercent"></div> <div id="rowGapPercent"></div>
<div id="rowGapCalc"></div> <div id="rowGapCalc"></div>
<div id="rowGapCalcFixedPercent"></div>
<div id="rowGapInitial" class="rowGapInitial"></div> <div id="rowGapInitial" class="rowGapInitial"></div>
<div class="rowGapPx"> <div class="rowGapPx">
<div id="rowGapInitialPx" class="rowGapInitial"></div> <div id="rowGapInitialPx" class="rowGapInitial"></div>
@ -81,6 +83,11 @@
var target = document.getElementById("rowGapCalc"); var target = document.getElementById("rowGapCalc");
assert_equals(getComputedStyle(target).rowGap, "14px"); assert_equals(getComputedStyle(target).rowGap, "14px");
}, "row-gap accepts calc()"); }, "row-gap accepts calc()");
test(
function(){
var target = document.getElementById("rowGapCalcFixedPercent");
assert_equals(getComputedStyle(target).rowGap, "calc(5px + 10%)");
}, "row-gap accepts calc() mixing fixed and percentage values");
test( test(
function(){ function(){
var target = document.getElementById("rowGapInitial"); var target = document.getElementById("rowGapInitial");

View file

@ -0,0 +1,30 @@
<!DOCTYPE html>
<title>Font Loading API IDL tests</title>
<link rel="help" href="https://drafts.csswg.org/css-font-loading/#fontfacesetloadevent">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
<script src="/resources/idlharness.js"></script>
<script>
"use strict";
function doTest([dom, cssfontloading]) {
const idl_array = new IdlArray();
idl_array.add_untested_idls(dom);
idl_array.add_untested_idls("[Exposed=Worker] interface WorkerGlobalScope : EventTarget { };");
idl_array.add_objects({Document: ["document"]});
idl_array.add_idls(cssfontloading);
idl_array.test();
}
function fetchText(url) {
return fetch(url).then((response) => response.text());
}
promise_test(() => {
return Promise.all([
"/interfaces/dom.idl",
"/interfaces/css-font-loading.idl",
].map(fetchText)).then(doTest);
}, "Test IDL implementation of CSS Font Loading");
</script>

View file

@ -0,0 +1,19 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Test: calc() function in font-variation-settings</title>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="help" href="https://drafts.csswg.org/css-values/#funcdef-calc">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
#test {
font-variation-settings: "XHGT" calc(0.7);
}
</style>
<div id="test"></div>
<script>
const div = document.querySelector("#test");
test(function() {
assert_equals(getComputedStyle(div).fontVariationSettings, "\"XHGT\" 0.7");
}, "calc() in font-variation-settings");
</script>

View file

@ -4,7 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks the behavior of the absolutely positioned elements with a grid container as containing block."> <meta name="assert" content="This test checks the behavior of the absolutely positioned elements with a grid container as containing block.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -4,7 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks the behavior of the absolutely positioned elements with a grid container as parent."> <meta name="assert" content="This test checks the behavior of the absolutely positioned elements with a grid container as parent.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -4,7 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="match" href="grid-paint-positioned-children-001-ref.html"> <link rel="match" href="grid-paint-positioned-children-001-ref.html">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {
border: 2px solid black; border: 2px solid black;

View file

@ -2,7 +2,7 @@
<meta charset="utf-8"> <meta charset="utf-8">
<title>CSS Grid Layout Test: Grid positioned children writing modes reference test</title> <title>CSS Grid Layout Test: Grid positioned children writing modes reference test</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="match" href="grid-positioned-children-writing-modes-001-ref.html"> <link rel="match" href="grid-positioned-children-writing-modes-001-ref.html">
<meta name="assert" content="This test checks the behavior of the positioned grid children in combination with the writing modes and text direction properties."> <meta name="assert" content="This test checks the behavior of the positioned grid children in combination with the writing modes and text direction properties.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -6,7 +6,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items don't avoid auto-fit tracks to collapse."> <meta name="assert" content="This test checks that positioned items don't avoid auto-fit tracks to collapse.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.container { .container {
width: 200px; width: 200px;

View file

@ -6,7 +6,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks tracks before the first in-flow item also collapse and positioned items don't have any impact."> <meta name="assert" content="This test checks tracks before the first in-flow item also collapse and positioned items don't have any impact.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.container { .container {
width: 200px; width: 200px;

View file

@ -6,7 +6,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items will use the area defined by the in-flow items, ignoring any collapsed track."> <meta name="assert" content="This test checks that positioned items will use the area defined by the in-flow items, ignoring any collapsed track.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.container { .container {
width: 200px; width: 200px;

View file

@ -6,7 +6,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items ignore collapsed gaps."> <meta name="assert" content="This test checks that positioned items ignore collapsed gaps.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.container { .container {
width: 200px; width: 200px;

View file

@ -6,7 +6,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items ignore collapsed gaps, both before and after the first in-flow item ."> <meta name="assert" content="This test checks that positioned items ignore collapsed gaps, both before and after the first in-flow item .">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.container { .container {
width: 200px; width: 200px;

View file

@ -6,7 +6,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items ignore collapsed gaps but consider those between in-flow items inside their grid area."> <meta name="assert" content="This test checks that positioned items ignore collapsed gaps but consider those between in-flow items inside their grid area.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.container { .container {
width: 200px; width: 200px;

View file

@ -6,7 +6,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#auto-repeat" title="7.2.2.2. Repeat-to-fill: auto-fill and auto-fit repetitions">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#valdef-repeat-auto-fit">
<meta name="assert" content="This test checks that positioned items ignore collapsed gaps even with non-empty tracks before and after."> <meta name="assert" content="This test checks that positioned items ignore collapsed gaps even with non-empty tracks before and after.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.container { .container {
width: 250px; width: 250px;

View file

@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="match" href="grid-positioned-items-background-001-ref.html"> <link rel="match" href="grid-positioned-items-background-001-ref.html">
<meta name="assert" content="This test checks that the background of positioned items is painted in the right position"> <meta name="assert" content="This test checks that the background of positioned items is painted in the right position">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="match" href="grid-positioned-items-background-rtl-001-ref.html"> <link rel="match" href="grid-positioned-items-background-rtl-001-ref.html">
<meta name="assert" content="This test checks that the background of positioned items is painted in the right position using RTL direction."> <meta name="assert" content="This test checks that the background of positioned items is painted in the right position using RTL direction.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align" title="10.5. Aligning the Grid: the justify-content and align-content properties"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align" title="10.5. Aligning the Grid: the justify-content and align-content properties">
<meta name="assert" content="This test checks the behavior of the positioned items in a grid using content alignment."> <meta name="assert" content="This test checks the behavior of the positioned items in a grid using content alignment.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<link rel="stylesheet" href="../../support/alignment.css"> <link rel="stylesheet" href="../../support/alignment.css">
<style> <style>

View file

@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align" title="10.5. Aligning the Grid: the justify-content and align-content properties"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-align" title="10.5. Aligning the Grid: the justify-content and align-content properties">
<meta name="assert" content="This test checks the behavior of the positioned items in a grid using content alignment in RTL."> <meta name="assert" content="This test checks the behavior of the positioned items in a grid using content alignment in RTL.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<link rel="stylesheet" href="../../support/alignment.css"> <link rel="stylesheet" href="../../support/alignment.css">
<style> <style>

View file

@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#gutters" title="10.1. Gutters: the row-gap, column-gap, and gap properties"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#gutters" title="10.1. Gutters: the row-gap, column-gap, and gap properties">
<meta name="assert" content="This test checks the behavior of the positioned items in a grid container with gaps."> <meta name="assert" content="This test checks the behavior of the positioned items in a grid container with gaps.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#gutters" title="10.1. Gutters: the row-gap, column-gap, and gap properties"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#gutters" title="10.1. Gutters: the row-gap, column-gap, and gap properties">
<meta name="assert" content="This test checks the behavior of the positioned items in a grid container with gaps in RTL."> <meta name="assert" content="This test checks the behavior of the positioned items in a grid container with gaps in RTL.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#implicit-grids" title="7.5. The Implicit Grid"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#implicit-grids" title="7.5. The Implicit Grid">
<meta name="assert" content="This test checks the behavior of the absolutely positioned grid items placed on the implicit grid."> <meta name="assert" content="This test checks the behavior of the absolutely positioned grid items placed on the implicit grid.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#implicit-grids" title="7.5. The Implicit Grid"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#implicit-grids" title="7.5. The Implicit Grid">
<meta name="assert" content="This test checks that grid placement properties of absolutely positioned items using implicit grid lines are treated as 'auto'."> <meta name="assert" content="This test checks that grid placement properties of absolutely positioned items using implicit grid lines are treated as 'auto'.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -4,7 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks that positioned grid items can be placed directly on the padding."> <meta name="assert" content="This test checks that positioned grid items can be placed directly on the padding.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -4,7 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks that grid placement properties of absolutely positioned items using unknown named grid lines are treated as 'auto'."> <meta name="assert" content="This test checks that grid placement properties of absolutely positioned items using unknown named grid lines are treated as 'auto'.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#implicit-grids" title="7.5. The Implicit Grid"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#implicit-grids" title="7.5. The Implicit Grid">
<meta name="assert" content="This test checks that positioned grid items are placed properly (including implicit tracks) even if the grid has implicit tracks."> <meta name="assert" content="This test checks that positioned grid items are placed properly (including implicit tracks) even if the grid has implicit tracks.">
<link rel="stylesheet" href="../support/grid.css"> <link rel="stylesheet" href="support/grid.css">
<style> <style>
.grid { .grid {

View file

@ -4,7 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks the different size options for absolutely positioned grid items."> <meta name="assert" content="This test checks the different size options for absolutely positioned grid items.">
<link href="../support/grid.css" rel="stylesheet"> <link href="support/grid.css" rel="stylesheet">
<style> <style>
.grid { .grid {

View file

@ -4,7 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks that positioned items shouldn't create implicit tracks on the grid."> <meta name="assert" content="This test checks that positioned items shouldn't create implicit tracks on the grid.">
<link href="../support/grid.css" rel="stylesheet"> <link href="support/grid.css" rel="stylesheet">
<style> <style>
.grid { .grid {

View file

@ -4,7 +4,7 @@
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning"> <link rel="help" href="https://drafts.csswg.org/css-grid-1/#abspos" title="9. Absolute Positioning">
<meta name="assert" content="This test checks that positioned items shouldn't take up space or otherwise participate in the layout of the grid."> <meta name="assert" content="This test checks that positioned items shouldn't take up space or otherwise participate in the layout of the grid.">
<link href="../support/grid.css" rel="stylesheet"> <link href="support/grid.css" rel="stylesheet">
<style> <style>
.grid { .grid {

View file

@ -3,7 +3,7 @@
<title>CSS Grid Layout Test: Positioned grid items sizing reference file</title> <title>CSS Grid Layout Test: Positioned grid items sizing reference file</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<meta name="flags" content="ahem"> <meta name="flags" content="ahem">
<link href="../support/grid.css" rel="stylesheet"> <link href="support/grid.css" rel="stylesheet">
<style> <style>
.grid { .grid {

Some files were not shown because too many files have changed in this diff Show more