Auto merge of #27381 - servo-wpt-sync:wpt_update_23-07-2020, r=servo-wpt-sync

Sync WPT with upstream (23-07-2020)

Automated downstream sync of changes from upstream as of 23-07-2020.
[no-wpt-sync]
r? @servo-wpt-sync
This commit is contained in:
bors-servo 2020-07-23 06:53:35 -04:00 committed by GitHub
commit 9261cf6ead
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
69 changed files with 607 additions and 198 deletions

View file

@ -4,7 +4,7 @@
expected: TIMEOUT
[Opening a blob URL in a new window immediately before revoking it works.]
expected: FAIL
expected: TIMEOUT
[Fetching a blob URL immediately before revoking it works in an iframe.]
expected: FAIL

View file

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

View file

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

View file

@ -0,0 +1,4 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementsFromPoint-invalid-cases.html]
[The root element is the last element returned for otherwise empty queries within the viewport]
expected: FAIL

View file

@ -1,2 +0,0 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -312,27 +312,21 @@
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
expected: NOTRUN
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL

View file

@ -53,9 +53,9 @@
[combined text/javascript ]
expected: FAIL
[separate text/javascript;charset=windows-1252 error text/javascript]
expected: FAIL
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript error]
expected: FAIL

View file

@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
[X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-2.html]
expected: CRASH
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_nonescaping-1.html]
expected: CRASH
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL
expected: NOTRUN

View file

@ -0,0 +1,4 @@
[form-double-submit.html]
[default submit action should supersede onclick submit()]
expected: FAIL

View file

@ -1,5 +1,5 @@
[ignore-opens-during-unload.window.html]
expected: TIMEOUT
expected: CRASH
[document.open should bail out when ignore-opens-during-unload is greater than 0 during visibilitychange event (open(parent) while unloading parent and child)]
expected: TIMEOUT

View file

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

View file

@ -0,0 +1,52 @@
[idlharness.https.window.html]
[XRHitTestResult interface: operation createAnchor()]
expected: FAIL
[XRAnchor interface object name]
expected: FAIL
[XRAnchor interface: existence and properties of interface prototype object]
expected: FAIL
[XRAnchor interface object length]
expected: FAIL
[XRAnchorSet interface: existence and properties of interface object]
expected: FAIL
[XRAnchorSet interface: existence and properties of interface prototype object]
expected: FAIL
[XRAnchor interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[XRFrame interface: operation createAnchor(XRRigidTransform, XRSpace)]
expected: FAIL
[XRFrame interface: attribute trackedAnchors]
expected: FAIL
[XRAnchor interface: operation delete()]
expected: FAIL
[XRAnchorSet interface object name]
expected: FAIL
[XRAnchor interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[XRAnchorSet interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[XRAnchor interface: existence and properties of interface object]
expected: FAIL
[XRAnchor interface: attribute anchorSpace]
expected: FAIL
[XRAnchorSet interface object length]
expected: FAIL
[XRAnchorSet interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL

View file

@ -1,8 +1,7 @@
[shared-worker-in-data-url-context.window.html]
expected: TIMEOUT
[Create a shared worker in a data url frame]
expected: FAIL
[Create a data url shared worker in a data url frame]
expected: TIMEOUT
expected: FAIL

View file

@ -7,7 +7,7 @@
expected: FAIL
[Opening a blob URL in a new window immediately before revoking it works.]
expected: FAIL
expected: TIMEOUT
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: TIMEOUT

View file

@ -144804,7 +144804,7 @@
]
],
"grid-template-columns-fit-content-001.html": [
"83b53db39b154dc8001dbef809aeb0eff7774c2a",
"cecc53f89602413408647138319b30190af44768",
[
null,
[
@ -144817,7 +144817,7 @@
]
],
"grid-template-rows-fit-content-001.html": [
"f28aacb23bbd12c96efc4c157789bfdeaf943feb",
"14ac0c9c39b226ccc298c42b148220e6d8e74700",
[
null,
[
@ -162128,12 +162128,25 @@
]
],
"active-selection-056.html": [
"31c777dc1a6af287e648907c5448235f3298ba75",
"c8c5e0e2a873cf14cf5735304687465a14454768",
[
null,
[
[
"/css/css-pseudo/reference/ref-nothing-below.xht",
"/css/reference/ref-nothing-below.xht",
"=="
]
],
{}
]
],
"active-selection-057.html": [
"4a40d1f1a5ffd316a18a8e23df303a50b37de6ac",
[
null,
[
[
"/css/reference/ref-nothing-below.xht",
"=="
]
],
@ -162141,12 +162154,12 @@
]
],
"active-selection-063.html": [
"1d9a1c1ecd81008d4d3d5891b717d6bdadb3efe9",
"2a70a3b7123eaf0ea304d1bff5b9a7a35a580219",
[
null,
[
[
"/css/css-pseudo/reference/ref-filled-green-100px-square.xht",
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
@ -302021,11 +302034,11 @@
[]
],
"grid-template-columns-fit-content-001-ref.html": [
"f29a13e0fe060ae15835bacf8bc1bf3436c0b50f",
"13002a7037f05b6d3004605f4f8394cf462f68ab",
[]
],
"grid-template-rows-fit-content-001-ref.html": [
"bbadddc324f56c294679516b3152e8b7354aca26",
"dc39cccc68cbf3fc0f756b7282fd158fc1c6e8fb",
[]
],
"support": {
@ -305857,16 +305870,6 @@
"92ae71d83fcbea52e4120ed28af5438dd54d4509",
[]
],
"reference": {
"ref-filled-green-100px-square.xht": [
"05a13794482a94f6c10bd9d4c98704e63ef60331",
[]
],
"ref-nothing-below.xht": [
"c87db8094bd4bbb7ba5f18816730fd40c198149d",
[]
]
},
"selection-text-shadow-016-ref.html": [
"5e3eabc976e2bc75b6a290f2b740b54d8cdbf99a",
[]
@ -339094,6 +339097,10 @@
"06d6eec690ba8c70ab10f61fe9a9a1de286b6e70",
[]
],
"anchors.idl": [
"159bfaccd55e2ce3a8fac7490db2fb0393c8f2be",
[]
],
"appmanifest.idl": [
"926a4fc2022e71c28aa4a2ae3d1adc12104ee1ab",
[]
@ -339250,6 +339257,10 @@
"f664013ddefea7bc8950f7604c06f53c1c1aac48",
[]
],
"dom-overlays.idl": [
"958da865118d5fa76ea42adc678c877c5d06ef84",
[]
],
"dom.idl": [
"102c23123819ba2e9b633755cfb453b1f2168961",
[]
@ -341606,7 +341617,7 @@
[]
],
"FileSystemDirectoryHandle-iteration.js": [
"200f5af65f56fdc9280c8b957b187cc4ded93d20",
"3e721a0f017f0b393dba05a4f3b8dc098f6c0698",
[]
],
"FileSystemDirectoryHandle-removeEntry.js": [
@ -349732,7 +349743,7 @@
[]
],
"ci_wptrunner_infrastructure.sh": [
"89267b50cb6432c495d428a180c59659b5c5a60a",
"0709295f4a204fadbfdf00ab129e9fb90cced214",
[]
],
"commands.json": [
@ -349764,7 +349775,7 @@
[]
],
"taskcluster-run.py": [
"d8e42ccea2112694c6d3b8b1aa6ca7034ea22282",
"61d05689287a33c3470089e929d0c8871b6a46ef",
[]
],
"tc": {
@ -356155,7 +356166,7 @@
[]
],
"error.py": [
"0647e7eb61f834b1de0eb07296e876ce38aa8a47",
"8379656d73dd722717559054e7104fcfe607cb0c",
[]
],
"protocol.py": [
@ -356214,7 +356225,7 @@
[]
],
"run.py": [
"9c77c57ab3779090caef1dd44efad15794908705",
"32f903ce9bd64474aa387ac03a7bcb36d47bb8ae",
[]
],
"testfiles.py": [
@ -356308,7 +356319,7 @@
]
},
"requirements.txt": [
"8ac1d9f78b058115e67d929a98cd7b6dd50099c4",
"d10396d0d2b261cabfbdd1051a9b50ecb62a62e8",
[]
],
"requirements_android_webview.txt": [
@ -359313,7 +359324,7 @@
[]
],
"sync.py": [
"3fc77131c766f68d2f7c4c0af33ed6478d31e300",
"fa5d18550ccefd74a7980be1c13e3f2b0b147cd7",
[]
]
},
@ -388829,7 +388840,7 @@
]
],
"KeyframeEffect-getKeyframes.tentative.html": [
"f7d767dea8ca15589a53fae7952bb15e383ccd22",
"1119d06d4a33298d351d7d702d2a92d24282e1f8",
[
null,
{}
@ -396545,6 +396556,13 @@
{}
]
],
"grid-template-areas-one-cell.html": [
"dc341bc35d29e607e7ce8f1ce800a17d11ddcbac",
[
null,
{}
]
],
"grid-template-areas-valid.html": [
"9c9bd47ec894ccc0e389287120082fb4bf5c9905",
[
@ -456836,7 +456854,7 @@
]
],
"property.https.html": [
"dfa738075de58f7c979c007d768db9e5f131a422",
"67aebb5838bb5de62e8628836655f2a480b48b2d",
[
null,
{
@ -482286,7 +482304,7 @@
]
],
"rename_async_failure_handling.tentative.https.any.js": [
"64ea24fa65ebd55e7b9f343334a359356d56207b",
"038be88a3af6dc571e003a0edb14fd54362a5ef5",
[
"native-io/rename_async_failure_handling.tentative.https.any.html",
{
@ -482383,7 +482401,7 @@
]
],
"rename_sync_failure_handling.tentative.https.any.js": [
"92c42c7d3cd254dbf49e328de993fe222d30fc82",
"62a3d5b6af8e83ae98f2d26ad8524bf12fa185be",
[
"native-io/rename_sync_failure_handling.tentative.https.any.worker.html",
{
@ -523747,7 +523765,7 @@
]
],
"RTCPeerConnection-ontrack.https.html": [
"99f30c264b3648d52fda6bb50de980bcbe84be3c",
"ccdd29f6a50da94d689b7654d18a3c07ee4bc6db",
[
null,
{}
@ -530097,6 +530115,24 @@
null,
{}
]
],
"idlharness.https.window.js": [
"87a5c9e5582d524c2976f03baedf148cddf79256",
[
"webxr/anchors/idlharness.https.window.html",
{
"script_metadata": [
[
"script",
"/resources/WebIDLParser.js"
],
[
"script",
"/resources/idlharness.js"
]
]
}
]
]
},
"ar-module": {
@ -530154,6 +530190,24 @@
null,
{}
]
],
"idlharness.https.window.js": [
"ca20f4253898937c61aac108d9caeef1d39e2831",
[
"webxr/dom-overlay/idlharness.https.window.html",
{
"script_metadata": [
[
"script",
"/resources/WebIDLParser.js"
],
[
"script",
"/resources/idlharness.js"
]
]
}
]
]
},
"events_input_source_recreation.https.html": [

View file

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

View file

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

View file

@ -0,0 +1,4 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -0,0 +1,4 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -1,4 +0,0 @@
[elementsFromPoint-invalid-cases.html]
[The root element is the last element returned for otherwise empty queries within the viewport]
expected: FAIL

View file

@ -1,2 +0,0 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -312,27 +312,21 @@
[fetch(): separate response Content-Type: text/plain ]
expected: NOTRUN
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL

View file

@ -53,9 +53,9 @@
[combined text/javascript ]
expected: FAIL
[separate text/javascript;charset=windows-1252 error text/javascript]
expected: FAIL
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript error]
expected: FAIL

View file

@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
[X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL

View file

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

View file

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

View file

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

View file

@ -172,3 +172,6 @@
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
expected: FAIL
[HTML (standards) IMG usemap="no-hash-name"]
expected: FAIL

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-2.html]
expected: CRASH
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT

View file

@ -1,6 +1,6 @@
[iframe_sandbox_popups_nonescaping-1.html]
type: testharness
expected: CRASH
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL
expected: NOTRUN

View file

@ -0,0 +1,4 @@
[form-double-submit.html]
[default submit action should supersede onclick submit()]
expected: FAIL

View file

@ -1,5 +1,5 @@
[ignore-opens-during-unload.window.html]
expected: TIMEOUT
expected: CRASH
[ignore-opens-during-unload]
expected: FAIL

View file

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

View file

@ -0,0 +1,52 @@
[idlharness.https.window.html]
[XRHitTestResult interface: operation createAnchor()]
expected: FAIL
[XRAnchor interface object name]
expected: FAIL
[XRAnchor interface: existence and properties of interface prototype object]
expected: FAIL
[XRAnchor interface object length]
expected: FAIL
[XRAnchorSet interface: existence and properties of interface object]
expected: FAIL
[XRAnchorSet interface: existence and properties of interface prototype object]
expected: FAIL
[XRAnchor interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL
[XRFrame interface: operation createAnchor(XRRigidTransform, XRSpace)]
expected: FAIL
[XRFrame interface: attribute trackedAnchors]
expected: FAIL
[XRAnchor interface: operation delete()]
expected: FAIL
[XRAnchorSet interface object name]
expected: FAIL
[XRAnchor interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[XRAnchorSet interface: existence and properties of interface prototype object's @@unscopables property]
expected: FAIL
[XRAnchor interface: existence and properties of interface object]
expected: FAIL
[XRAnchor interface: attribute anchorSpace]
expected: FAIL
[XRAnchorSet interface object length]
expected: FAIL
[XRAnchorSet interface: existence and properties of interface prototype object's "constructor" property]
expected: FAIL

View file

@ -1,8 +1,7 @@
[shared-worker-in-data-url-context.window.html]
expected: TIMEOUT
[Create a shared worker in a data url frame]
expected: FAIL
[Create a data url shared worker in a data url frame]
expected: TIMEOUT
expected: FAIL

View file

@ -618,14 +618,14 @@ test(t => {
test(t => {
const div = addDiv(t);
div.style.animation = 'anim-custom-property-in-keyframe 100s';
div.style.animation = 'anim-custom-property-in-keyframe 100s steps(2, start)';
const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
{ offset: 0, computedOffset: 0, easing: "steps(2, start)", composite: "auto",
color: "rgb(0, 0, 0)" },
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
{ offset: 1, computedOffset: 1, easing: "steps(2, start)", composite: "auto",
color: "rgb(0, 255, 0)" },
];
assert_frame_lists_equal(frames, expected);

View file

@ -19,6 +19,7 @@
.item {
font: 10px/1 Ahem;
background: cyan;
padding-top: 2px;
}
.spanningItem {
@ -26,6 +27,7 @@
grid-column: 1 / -1;
grid-row: 2;
background: salmon;
padding-top: 2px;
}
.test {

View file

@ -42,6 +42,7 @@
.item {
font: 10px/1 Ahem;
background: cyan;
padding-top: 2px;
}
.spanningItem {
@ -49,6 +50,7 @@
grid-column: 1 / -1;
grid-row: 2;
background: salmon;
padding-top: 2px;
}
.test {

View file

@ -22,6 +22,7 @@
.item {
font: 10px/1 Ahem;
background: cyan;
padding-left: 2px;
}
.spanningItem {
@ -29,6 +30,7 @@
grid-row: 1 / -1;
grid-column: 2;
background: salmon;
padding-left: 2px;
}
.test {

View file

@ -47,6 +47,7 @@ div.grid > div { writing-mode: vertical-lr; }
.item {
font: 10px/1 Ahem;
background: cyan;
padding-left: 2px;
}
.spanningItem {
@ -54,6 +55,7 @@ div.grid > div { writing-mode: vertical-lr; }
grid-row: 1 / -1;
grid-column: 2;
background: salmon;
padding-left: 2px;
}
.test {

View file

@ -0,0 +1,34 @@
<!doctype html>
<title>grid-template-areas must define at least one cell</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel=author title="Tab Atkins-Bittner" href="https://www.xanthir.com/contact/">
<link rel=help href="https://www.w3.org/TR/css-grid-1/#grid-template-areas-property">
<meta name=assert content="grid-template-areas must define at least one cell to be valid.">
<script>
function testValidGta(val) {
test(()=>{
const root = document.children[0];
root.style.gridTemplateAreas = "";
root.style.gridTemplateAreas = val;
assert_not_equals(root.style.gridTemplateAreas, "");
}, `"grid-template-areas: ${val};" should be valid.`);
}
function testInvalidGta(val) {
test(()=>{
const root = document.children[0];
root.style.gridTemplateAreas = "";
root.style.gridTemplateAreas = val;
assert_equals(root.style.gridTemplateAreas, "");
}, `"grid-template-areas: ${val};" should be invalid.`);
}
testValidGta("'a'");
testValidGta("'.'");
testInvalidGta("''");
testInvalidGta("'' ''");
testInvalidGta("'$'");
testInvalidGta("' '");
</script>

View file

@ -6,7 +6,7 @@
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-selectors">
<link rel="match" href="reference/ref-nothing-below.xht">
<link rel="match" href="../reference/ref-nothing-below.xht">
<!--

View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Pseudo-Elements Test: active selection and 3 empty elements</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-selectors">
<link rel="match" href="../reference/ref-nothing-below.xht">
<meta content="" name="flags">
<meta name="assert" content="The &lt;div id=&quot;subtest1&quot;&gt; element and the &lt;hr&gt; element in this test are empty elements. Their background color can be painted but specifying their 'color' should generate no rendering effect of any kind. Since the 'background-color' has not been specified in the ::selection pseudo-element, then it defaults to 'transparent'. The &lt;div id=&quot;subtest3&quot;&gt; element is also an empty element since the 2 &amp;NewLine; character references are line break control characters. Their background color can not be painted. Therefore, in this test, nothing should be painted or viewable. The fact that lines break at preserved newline characters thanks to 'white-space: pre' does not change that.">
<style>
div#subtest1 , hr#subtest2
{
background-color: transparent; /* or initial or unset */
height: 100px;
}
hr#subtest2
{
border: none 0px;
}
div#subtest1::selection , hr#subtest2::selection
{
color: red;
}
div#subtest3
{
background-color: transparent; /* or initial or unset */
font-size: 100px;
white-space: pre; /* or pre-line or pre-wrap or break-spaces */
}
div#subtest3::selection
{
background-color: red;
}
</style>
<script>
function startTest()
{
var targetRange = document.createRange();
/* We first create an empty range */
targetRange.selectNodeContents(document.getElementById("test"));
/* Then we set the range boundaries to the children of div#test */
window.getSelection().addRange(targetRange);
/* Finally, we now select such range of content */
}
</script>
<body onload="startTest();">
<p>Test passes if there is nothing below.</p>
<div id="test">
<div id="subtest1">&nbsp;</div>
<hr id="subtest2">
<div id="subtest3">&NewLine;&NewLine;</div>
</div>

View file

@ -7,7 +7,7 @@
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-selectors">
<link rel="help" href="https://www.w3.org/TR/css-text-3/#tab-size-property">
<link rel="match" href="reference/ref-filled-green-100px-square.xht">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<meta content="" name="flags">

View file

@ -1,19 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Reftest Reference</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
<style type="text/css"><![CDATA[
div
{
background-color: green;
height: 100px;
width: 100px;
}
]]></style>
</head>
<body>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div></div>
</body>
</html>

View file

@ -1,18 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CSS Reftest Reference</title>
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
</head>
<body>
<p>Test passes if there is nothing below.</p>
</body>
</html>

View file

@ -47,7 +47,7 @@ origin.forEach(([origin_name, origin]) => {
const reportTo = reportToHeaders(report_token);
const openee_url = origin+ executor_path +
reportTo.header + reportTo.coopSameOriginHeader + coep_header +
reportTo.header + reportTo.coopReportOnlySameOriginHeader + coep_header +
`&uuid=${executor_token}`;
const openee = window.open(openee_url);
t.add_cleanup(() => send(executor_token, "window.close()"))

View file

@ -0,0 +1,27 @@
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: WebXR Anchors Module (https://immersive-web.github.io/anchors/)
[SecureContext, Exposed=Window]
interface XRAnchor {
readonly attribute XRSpace anchorSpace;
void delete();
};
partial interface XRFrame {
Promise<XRAnchor> createAnchor(XRRigidTransform pose, XRSpace space);
};
partial interface XRHitTestResult {
Promise<XRAnchor> createAnchor();
};
interface XRAnchorSet {
readonly setlike<XRAnchor>;
};
partial interface XRFrame {
[SameObject] readonly attribute XRAnchorSet trackedAnchors;
};

View file

@ -0,0 +1,31 @@
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: WebXR DOM Overlays Module (https://immersive-web.github.io/dom-overlays/)
partial interface mixin GlobalEventHandlers {
attribute EventHandler onbeforexrselect;
};
partial dictionary XRSessionInit {
XRDOMOverlayInit? domOverlay;
};
partial interface XRSession {
readonly attribute XRDOMOverlayState? domOverlayState;
};
dictionary XRDOMOverlayInit {
required Element root;
};
enum XRDOMOverlayType {
"screen",
"floating",
"head-locked"
};
dictionary XRDOMOverlayState {
XRDOMOverlayType type;
};

View file

@ -78,3 +78,21 @@ directory_test(async (t, root) => {
names.sort();
assert_array_equals(names, [file_name1, file_name2]);
}, 'keys: full iteration works');
directory_test(async (t, root) => {
const file_name1 = 'foo1.txt';
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
const next = (() => {
const iterator = root.entries();
return iterator.next();
})();
garbageCollect();
let entry = await next;
assert_false(entry.done);
assert_true(Array.isArray(entry.value));
assert_equals(entry.value.length, 2);
assert_equals(entry.value[0], file_name1);
assert_true(entry.value[1] instanceof FileSystemFileHandle);
assert_equals(entry.value[1].name, file_name1);
}, 'iteration while iterator gets garbage collected');

View file

@ -4,6 +4,11 @@
'use strict';
setup(async () => {
assert_implements(nativeIO.rename,
"nativeIO.rename is not implemented.");
});
promise_test(async testCase => {
const file1 = await nativeIO.open('test_file_1');
const file2 = await nativeIO.open('test_file_2');

View file

@ -4,6 +4,12 @@
'use strict';
setup(() => {
// Without this assertion, one test passes even if renameSync is not defined
assert_implements(nativeIO.renameSync,
"nativeIO.renameSync is not implemented.");
});
test(testCase => {
const file1 = nativeIO.openSync('test_file_1');
const file2 = nativeIO.openSync('test_file_2');

View file

@ -7,7 +7,7 @@ cd $WPT_ROOT
test_infrastructure() {
PY3_FLAG="$2"
TERM=dumb ./wpt $PY3_FLAG run --log-mach - --yes --manifest ~/meta/MANIFEST.json --metadata infrastructure/metadata/ --install-fonts $1 $PRODUCT infrastructure/
TERM=dumb ./wpt $PY3_FLAG run --log-mach - --yes --manifest ~/meta/MANIFEST.json --metadata infrastructure/metadata/ --install-fonts --install-webdriver $1 $PRODUCT infrastructure/
}
main() {

View file

@ -12,13 +12,14 @@ browser_specific_args = {
"servo": ["--install-browser", "--processes=12"]
}
def get_browser_args(product):
if product == "firefox":
local_binary = os.path.expanduser(os.path.join("~", "build", "firefox", "firefox"))
if os.path.exists(local_binary):
return ["--binary=%s" % local_binary]
print("WARNING: Local firefox binary not found")
return ["--install-browser"]
return ["--install-browser", "--install-webdriver"]
return browser_specific_args.get(product, [])

View file

@ -3,14 +3,18 @@ import json
from six import itervalues
class WebDriverException(Exception):
http_status = None
status_code = None
def __init__(self, http_status=None, status_code=None, message=None, stacktrace=None):
super(WebDriverException, self)
self.http_status = http_status
self.status_code = status_code
if http_status is not None:
self.http_status = http_status
if status_code is not None:
self.status_code = status_code
self.message = message
self.stacktrace = stacktrace

View file

@ -52,6 +52,9 @@ def create_parser():
parser.add_argument("--install-browser", action="store_true",
help="Install the browser from the release channel specified by --channel "
"(or the nightly channel by default).")
parser.add_argument("--install-webdriver", action="store_true",
help="Install WebDriver from the release channel specified by --channel "
"(or the nightly channel by default).")
parser._add_container_actions(wptcommandline.create_parser())
return parser
@ -217,14 +220,19 @@ Consider installing certutil via your OS package manager or directly.""")
kwargs["certutil_binary"] = certutil
if kwargs["webdriver_binary"] is None and "wdspec" in kwargs["test_types"]:
webdriver_binary = self.browser.find_webdriver()
webdriver_binary = None
if not kwargs["install_webdriver"]:
webdriver_binary = self.browser.find_webdriver()
if webdriver_binary is None:
install = self.prompt_install("geckodriver")
if install:
logger.info("Downloading geckodriver")
webdriver_binary = self.browser.install_webdriver(dest=self.venv.bin_path)
webdriver_binary = self.browser.install_webdriver(
dest=self.venv.bin_path,
channel=kwargs["browser_channel"],
browser_binary=kwargs["binary"])
else:
logger.info("Using webdriver binary %s" % webdriver_binary)
@ -314,7 +322,9 @@ class Chrome(BrowserSetup):
else:
raise WptrunError("Unable to locate Chrome binary")
if kwargs["webdriver_binary"] is None:
webdriver_binary = self.browser.find_webdriver()
webdriver_binary = None
if not kwargs["install_webdriver"]:
webdriver_binary = self.browser.find_webdriver()
if webdriver_binary is None:
install = self.prompt_install("chromedriver")
@ -323,6 +333,7 @@ class Chrome(BrowserSetup):
logger.info("Downloading chromedriver")
webdriver_binary = self.browser.install_webdriver(
dest=self.venv.bin_path,
channel=browser_channel,
browser_binary=kwargs["binary"],
)
else:
@ -355,7 +366,9 @@ class ChromeAndroid(BrowserSetup):
kwargs["package_name"] = self.browser.find_binary(
channel=browser_channel)
if kwargs["webdriver_binary"] is None:
webdriver_binary = self.browser.find_webdriver()
webdriver_binary = None
if not kwargs["install_webdriver"]:
webdriver_binary = self.browser.find_webdriver()
if webdriver_binary is None:
install = self.prompt_install("chromedriver")
@ -364,6 +377,7 @@ class ChromeAndroid(BrowserSetup):
logger.info("Downloading chromedriver")
webdriver_binary = self.browser.install_webdriver(
dest=self.venv.bin_path,
channel=browser_channel,
browser_binary=kwargs["package_name"],
)
else:
@ -397,14 +411,18 @@ class AndroidWeblayer(BrowserSetup):
if kwargs.get("device_serial"):
self.browser.device_serial = kwargs["device_serial"]
if kwargs["webdriver_binary"] is None:
webdriver_binary = self.browser.find_webdriver()
webdriver_binary = None
if not kwargs["install_webdriver"]:
webdriver_binary = self.browser.find_webdriver()
if webdriver_binary is None:
install = self.prompt_install("chromedriver")
if install:
logger.info("Downloading chromedriver")
webdriver_binary = self.browser.install_webdriver(dest=self.venv.bin_path)
webdriver_binary = self.browser.install_webdriver(
dest=self.venv.bin_path,
channel=kwargs["browser_channel"])
else:
logger.info("Using webdriver binary %s" % webdriver_binary)
@ -422,14 +440,18 @@ class AndroidWebview(BrowserSetup):
if kwargs.get("device_serial"):
self.browser.device_serial = kwargs["device_serial"]
if kwargs["webdriver_binary"] is None:
webdriver_binary = self.browser.find_webdriver()
webdriver_binary = None
if not kwargs["install_webdriver"]:
webdriver_binary = self.browser.find_webdriver()
if webdriver_binary is None:
install = self.prompt_install("chromedriver")
if install:
logger.info("Downloading chromedriver")
webdriver_binary = self.browser.install_webdriver(dest=self.venv.bin_path)
webdriver_binary = self.browser.install_webdriver(
dest=self.venv.bin_path,
channel=kwargs["browser_channel"])
else:
logger.info("Using webdriver binary %s" % webdriver_binary)
@ -445,14 +467,18 @@ class Opera(BrowserSetup):
def setup_kwargs(self, kwargs):
if kwargs["webdriver_binary"] is None:
webdriver_binary = self.browser.find_webdriver()
webdriver_binary = None
if not kwargs["install_webdriver"]:
webdriver_binary = self.browser.find_webdriver()
if webdriver_binary is None:
install = self.prompt_install("operadriver")
if install:
logger.info("Downloading operadriver")
webdriver_binary = self.browser.install_webdriver(dest=self.venv.bin_path)
webdriver_binary = self.browser.install_webdriver(
dest=self.venv.bin_path,
channel=kwargs["browser_channel"])
else:
logger.info("Using webdriver binary %s" % webdriver_binary)
@ -475,7 +501,9 @@ class EdgeChromium(BrowserSetup):
else:
raise WptrunError("Unable to locate Edge binary")
if kwargs["webdriver_binary"] is None:
webdriver_binary = self.browser.find_webdriver()
webdriver_binary = None
if not kwargs["install_webdriver"]:
webdriver_binary = self.browser.find_webdriver()
# Install browser if none are found or if it's found in venv path
if webdriver_binary is None or webdriver_binary in self.venv.bin_path:
@ -483,7 +511,9 @@ class EdgeChromium(BrowserSetup):
if install:
logger.info("Downloading msedgedriver")
webdriver_binary = self.browser.install_webdriver(dest=self.venv.bin_path, channel=browser_channel)
webdriver_binary = self.browser.install_webdriver(
dest=self.venv.bin_path,
channel=browser_channel)
else:
logger.info("Using webdriver binary %s" % webdriver_binary)
@ -695,7 +725,7 @@ def setup_logging(kwargs, default_config=None, formatter_defaults=None):
return logger
def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs):
def setup_wptrunner(venv, **kwargs):
from wptrunner import wptcommandline
from six import iteritems
@ -709,10 +739,10 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs):
if kwargs["product"] not in product_setup:
raise WptrunError("Unsupported product %s" % kwargs["product"])
setup_cls = product_setup[kwargs["product"]](venv, prompt)
setup_cls = product_setup[kwargs["product"]](venv, kwargs["prompt"])
setup_cls.install_requirements()
affected_revish = kwargs.pop("affected", None)
affected_revish = kwargs.get("affected")
if affected_revish is not None:
# TODO: Consolidate with `./wpt tests-affected --ignore-rules`:
# https://github.com/web-platform-tests/wpt/issues/14560
@ -731,7 +761,7 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs):
kwargs["test_list"] += test_list
kwargs["default_exclude"] = True
if install_browser and not kwargs["channel"]:
if kwargs["install_browser"] and not kwargs["channel"]:
logger.info("--install-browser is given but --channel is not set, default to nightly channel")
kwargs["channel"] = "nightly"
@ -745,15 +775,23 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs):
else:
logger.info("Valid channels for %s not known; using argument unmodified" % kwargs["product"])
kwargs["browser_channel"] = kwargs["channel"]
del kwargs["channel"]
if install_browser:
if kwargs["install_browser"]:
logger.info("Installing browser")
kwargs["binary"] = setup_cls.install(channel=channel)
setup_cls.setup(kwargs)
wptcommandline.check_args(kwargs)
# Remove kwargs we handle here
wptrunner_kwargs = kwargs.copy()
for kwarg in ["affected",
"install_browser",
"install_webdriver",
"channel",
"prompt"]:
del wptrunner_kwargs[kwarg]
wptcommandline.check_args(wptrunner_kwargs)
wptrunner_path = os.path.join(wpt_root, "tools", "wptrunner")
@ -762,28 +800,21 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs):
# Only update browser_version if it was not given as a command line
# argument, so that it can be overridden on the command line.
if not kwargs["browser_version"]:
kwargs["browser_version"] = setup_cls.browser.version(
binary=kwargs.get("binary") or kwargs.get("package_name"),
webdriver_binary=kwargs.get("webdriver_binary"),
if not wptrunner_kwargs["browser_version"]:
wptrunner_kwargs["browser_version"] = setup_cls.browser.version(
binary=wptrunner_kwargs.get("binary") or wptrunner_kwargs.get("package_name"),
webdriver_binary=wptrunner_kwargs.get("webdriver_binary"),
)
return kwargs
return wptrunner_kwargs
def run(venv, **kwargs):
setup_logging(kwargs)
# Remove arguments that aren't passed to wptrunner
prompt = kwargs.pop("prompt", True)
install_browser = kwargs.pop("install_browser", False)
wptrunner_kwargs = setup_wptrunner(venv, **kwargs)
kwargs = setup_wptrunner(venv,
prompt=prompt,
install_browser=install_browser,
**kwargs)
rv = run_single(venv, **kwargs) > 0
rv = run_single(venv, **wptrunner_kwargs) > 0
return rv

View file

@ -4,6 +4,6 @@ mozlog==6.0
mozdebug==0.2
# Pillow 7 requires Python 3
pillow==6.2.2 # pyup: <7.0
urllib3[secure]==1.25.9
urllib3[secure]==1.25.10
requests==2.24.0
six==1.15.0

View file

@ -2,6 +2,8 @@ import collections
import sys
import time
import six
from webdriver import error
@ -107,7 +109,7 @@ class Poll(object):
be returned by this function.
"""
rv = None
last_exc = None
tb = None
start = self.clock.time()
end = start + self.timeout
@ -118,7 +120,7 @@ class Poll(object):
except (KeyboardInterrupt, SystemExit):
raise
except self.exceptions:
last_exc = sys.exc_info()
_, _, tb = sys.exc_info()
# re-adjust the interval depending on how long
# the callback took to evaluate the condition
@ -135,11 +137,9 @@ class Poll(object):
if self.exc_cls is not None:
elapsed = round((self.clock.time() - start), 1)
message = ""
message = "Timed out after {} seconds".format(elapsed)
if self.exc_msg is not None:
message = " with message: {}".format(self.exc_msg)
raise self.exc_cls(
"Timed out after {} seconds{}".format(elapsed, message),
cause=last_exc)
message = "{} with message: {}".format(message, self.exc_msg)
six.reraise(self.exc_cls, self.exc_cls(message=message), tb)
else:
return rv

View file

@ -230,4 +230,29 @@ a=ssrc:1001 cname:some
await new Promise(resolve => t.step_timeout(resolve, 100));
}, `addTransceiver() with inactive direction should not cause remote connection to fire ontrack when setRemoteDescription()`);
["audio", "video"].forEach(type => promise_test(async t => {
const pc1 = new RTCPeerConnection();
t.add_cleanup(() => pc1.close());
const pc2 = new RTCPeerConnection();
t.add_cleanup(() => pc2.close());
const checkNoUnexpectedTrack = ({track}) => {
assert_equals(track.kind, type, `ontrack event should not fire for ${track.kind}`);
};
pc2.ontrack = t.step_func(checkNoUnexpectedTrack);
pc1.ontrack = t.step_func(checkNoUnexpectedTrack);
await pc1.setLocalDescription(await pc1.createOffer(
{ offerToReceiveVideo: true, offerToReceiveAudio: true }));
pc2.addTrack(...await getTrackFromUserMedia(type));
await pc2.setRemoteDescription(pc1.localDescription);
await pc2.setLocalDescription(await pc2.createAnswer());
await pc1.setRemoteDescription(pc2.localDescription);
await new Promise(resolve => t.step_timeout(resolve, 100));
}, `Using offerToReceiveAudio and offerToReceiveVideo should only cause a ${type} track event to fire, if ${type} was the only type negotiated`));
</script>

View file

@ -0,0 +1,16 @@
// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
'use strict';
// https://immersive-web.github.io/anchors/
idl_test(
['anchors'],
['hit-test', 'webxr', 'dom'],
async idl_array => {
idl_array.add_objects({
// TODO: Add object instances
});
}
);

View file

@ -0,0 +1,16 @@
// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
'use strict';
// https://immersive-web.github.io/dom-overlays/
idl_test(
['dom-overlays'],
['webxr', 'html', 'dom'],
async idl_array => {
idl_array.add_objects({
// TODO: Add object instances
});
}
);