Update web-platform-tests to revision 688aeffbd02c1e05a159c64938ad9b43e3d8ec6e

This commit is contained in:
WPT Sync Bot 2020-08-07 08:22:05 +00:00
parent 080e9dc6df
commit f99a7ba468
63 changed files with 1330 additions and 870 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

@ -0,0 +1,4 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -0,0 +1,4 @@
[position-absolute-015.html]
[#abspos 1]
expected: FAIL

View file

@ -318,15 +318,15 @@
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/plain;charset=gbk text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL

View file

@ -56,6 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript;charset=windows-1252 text/javascript]
[separate text/javascript ]
expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +0,0 @@
[form-double-submit-3.html]
[<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL

View file

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

View file

@ -1,4 +0,0 @@
[iframe_005.html]
[document.write external script into iframe write back into parent]
expected: FAIL

View file

@ -0,0 +1,4 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

@ -4,5 +4,5 @@
expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL
expected: TIMEOUT

View file

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

View file

@ -0,0 +1,2 @@
[Worker-constructor.html]
expected: ERROR

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

@ -124291,6 +124291,32 @@
{}
]
],
"forced-break-at-fragmentainer-start-000.html": [
"d5796ba641b524b6379c1ab9f37dad6408bc5a10",
[
null,
[
[
"/css/reference/ref-filled-green-100px-square-only.html",
"=="
]
],
{}
]
],
"forced-break-at-fragmentainer-start-001.html": [
"b3ad80ca9a0dfac7574362e6ff8528ee0c39e8e9",
[
null,
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"form-control.html": [
"8ef6eedae252f36de3bfeef8c3a6db23bf6f3d89",
[
@ -129869,6 +129895,19 @@
],
{}
]
],
"content-visibility-074.html": [
"ff6381ce3d0950c0b3c3822171c2b81d851ded15",
[
null,
[
[
"/css/css-contain/content-visibility/content-visibility-074-ref.html",
"=="
]
],
{}
]
]
},
"counter-scoping-001.html": [
@ -155551,6 +155590,19 @@
{}
]
],
"increase-prev-sibling-height.html": [
"109fe89952e923222071fea33ed9f92b69cf323f",
[
null,
[
[
"/css/css-multicol/increase-prev-sibling-height-ref.html",
"=="
]
],
{}
]
],
"inline-block-and-column-span-all.html": [
"c968a0875cd7cc41c3c1dd83abee425ba0e639bb",
[
@ -248348,7 +248400,7 @@
[]
],
".taskcluster.yml": [
"526fc13212e9b2ac9abfb54fcdcddea63a63c80a",
"b1a8162db4b21c594b3060ce6109d98bf6f98d31",
[]
],
".well-known": {
@ -293278,6 +293330,10 @@
"b2232a4a72546b12a05f4ab84d41ef85c20959dc",
[]
],
"content-visibility-074-ref.html": [
"82a6c263fa906d70f76dc78fcd6d7b6c3b461b86",
[]
],
"inline-container-with-child-ref.html": [
"af51cbd5db8f3eff56411345860548e95fe4d354",
[]
@ -304811,6 +304867,10 @@
"7c33b48f5e6077ad87a230d8ca54976e55785445",
[]
],
"increase-prev-sibling-height-ref.html": [
"963f584f17d502f6d693dfe8d662ec2b3978f4ff",
[]
],
"multicol-block-no-clip-001-ref.xht": [
"1313948514e9cd6c96ad45ff60ba9c327a0b9838",
[]
@ -343042,7 +343102,7 @@
[]
],
"child-frame-script.mjs": [
"2c6760a3e3707f06b5f3f904eec5e0aa21ec9586",
"783e36092daae6a3998a2701d110add2f55c3a0f",
[]
],
"child-frame-script.mjs.headers": [
@ -343050,7 +343110,7 @@
[]
],
"helpers.mjs": [
"e8425c240b5e5821bc16708044863f73bf5f4697",
"73f9406b476bb4afa708d043fb8bb68e6618d946",
[]
],
"helpers.mjs.headers": [
@ -350794,11 +350854,11 @@
[]
],
"run_tc.py": [
"a5a8ca7db29ab484fe397475f9b5cfc412d6517f",
"3a3b0d8090baf7ab60f364dfd6908b6be7011f8e",
[]
],
"taskcluster-run.py": [
"d228e21990a1960bd19b3a1ea16207cc3fcfad55",
"245ee7fa5925e20df7eead0c86993494475a55e4",
[]
],
"tc": {
@ -350832,7 +350892,7 @@
],
"tasks": {
"test.yml": [
"2fc11e0b27b853c5af507581ebd44772741d20d0",
"b1534c9d230d0b443ba2ecf83aacc58598221ae8",
[]
]
},
@ -350864,7 +350924,7 @@
[]
],
"test_valid.py": [
"88ffdb2951133474884c89c2dfa0a2e029c9ca19",
"472f83f86a0fbb154502f48dfb5cfcc09cf8459f",
[]
]
}
@ -360224,7 +360284,7 @@
[]
],
"keys.py": [
"a62318814f3617bab6376f960c8ffc82d22b8d9b",
"2d38e1dff8760ff6d29b6e06d0ba3ac510471e1e",
[]
],
"mouse.py": [
@ -393794,6 +393854,13 @@
{}
]
],
"position-absolute-015.html": [
"1c0f3bc4c2888a12d20e2ab704f835f359366b81",
[
null,
{}
]
],
"position-relative-percentage-top-001.html": [
"3ec47c1d42d69330c616a87f0b22208f8d6196a6",
[
@ -393802,7 +393869,7 @@
]
],
"quirks-auto-block-size-with-percentage-item.html": [
"966f39f173952f01268dcd26a9a5892bf4a689a9",
"f5c3d7c1818366c403896bc1da44af11ed4e0f5b",
[
null,
{}
@ -458245,7 +458312,7 @@
]
],
"reporting-redirect-with-same-origin-allow-popups.https.html": [
"bb76df811da5949c2d6f5196428a4a09d8bd9a56",
"f807561f17488c1b05ea779f6b0aa64c7a10d197",
[
null,
{
@ -487413,7 +487480,7 @@
"pointerevents": {
"compat": {
"pointerevent_compat-mouse-events-when-removing-nodes.html": [
"4388b2db308d70a24b70d94ed2441a468c2267ee",
"88d03b7965efc241893b8fbfc4c8f2e2b0967bf5",
[
null,
{
@ -487422,7 +487489,7 @@
]
],
"pointerevent_mouse-on-object.html": [
"d8912a2652b405e6a5882b21f657308142c5e77b",
"fa0e97ff30c234c3311eadacef094e3c0b385acf",
[
null,
{
@ -513281,7 +513348,7 @@
]
],
"SVGGeometryElement.getPointAtLength-03.svg": [
"61737efb7da187cb8bcb18c3eff49e5e204cf1c0",
"8d3f7e36123200a55f6d0232d4753d0b29ce1854",
[
null,
{}

View file

@ -0,0 +1,4 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -0,0 +1,4 @@
[position-absolute-015.html]
[#abspos 1]
expected: FAIL

View file

@ -318,15 +318,15 @@
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/plain;charset=gbk text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL

View file

@ -56,6 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
[separate text/javascript;charset=windows-1252 text/javascript]
[separate text/javascript ]
expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +1,5 @@
[embedded-opener-remove-frame.html]
expected: CRASH
expected: TIMEOUT
[opener and "removed" embedded documents]
expected: FAIL
@ -7,5 +7,5 @@
expected: FAIL
[opener of discarded auxiliary browsing context]
expected: FAIL
expected: TIMEOUT

View file

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

View file

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

View file

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

View file

@ -1,4 +0,0 @@
[form-double-submit-3.html]
[<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL

View file

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

View file

@ -1,4 +0,0 @@
[iframe_005.html]
[document.write external script into iframe write back into parent]
expected: FAIL

View file

@ -0,0 +1,4 @@
[module-static-import-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

@ -5,5 +5,5 @@
expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: FAIL
expected: TIMEOUT

View file

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

View file

@ -0,0 +1,2 @@
[Worker-constructor.html]
expected: ERROR

View file

@ -7,7 +7,7 @@ tasks:
run_task:
$if: 'tasks_for == "github-push"'
then:
$if: 'event.ref in ["refs/heads/master", "refs/heads/epochs/daily", "refs/heads/epochs/weekly", "refs/heads/triggers/chrome_stable", "refs/heads/triggers/chrome_beta", "refs/heads/triggers/chrome_dev", "refs/heads/triggers/firefox_stable", "refs/heads/triggers/firefox_beta", "refs/heads/triggers/firefox_nightly", "refs/heads/triggers/webkitgtk_minibrowser_stable", "refs/heads/triggers/webkitgtk_minibrowser_nightly", "refs/heads/triggers/servo_nightly"]'
$if: 'event.ref in ["refs/heads/master", "refs/heads/epochs/daily", "refs/heads/epochs/weekly", "refs/heads/triggers/chrome_stable", "refs/heads/triggers/chrome_beta", "refs/heads/triggers/chrome_dev", "refs/heads/triggers/chrome_nightly", "refs/heads/triggers/firefox_stable", "refs/heads/triggers/firefox_beta", "refs/heads/triggers/firefox_nightly", "refs/heads/triggers/webkitgtk_minibrowser_stable", "refs/heads/triggers/webkitgtk_minibrowser_nightly", "refs/heads/triggers/servo_nightly"]'
then: true
else: false
else:

View file

@ -0,0 +1,11 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/css-break-3/#forced-breaks">
<link rel="help" href="https://www.w3.org/TR/css-break-3/#unforced-breaks">
<meta name="assert" content="A forced break at the block-start of the fragmentainer is allowed, as long as it's otherwise at a valid class A break point">
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
<p>Test passes if there is a filled green square.</p>
<div style="columns:1; column-fill:auto; width:100px; height:100px; background:green;">
<div style="break-after:column;"></div>
<div style="height:99px; background:white;"></div>
</div>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/css-break-3/#forced-breaks">
<link rel="help" href="https://www.w3.org/TR/css-break-3/#unforced-breaks">
<meta name="assert" content="A forced break at the block-start of the fragmentainer is not allowed unless it's at a valid class A break point">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div style="columns:2; column-fill:auto; column-gap:0; width:100px; height:100px; background:red;">
<div>
<div style="break-before:column; height:200px; background:green;"></div>
</div>
</div>

View file

@ -0,0 +1,35 @@
<!doctype HTML>
<html>
<meta charset="utf8">
<title>CSS Content Visibility: toggling auto with composited descedant (reference)</title>
<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-contain/#content-visibility">
<style>
#a { will-change: transform; }
#b { height: 15000px; }
#c {
width: 800px;
height: 600px;
}
#d {
will-change: transform;
top: 0px;
width: 500px;
height: 500px;
background: green;
}
.contain {
contain: layout style paint;
}
</style>
<div id="a">
</div>
<div id="b">
<div id="c" class=contain>
<div id="d"></div>
</div>
</div>
</div>

View file

@ -0,0 +1,69 @@
<!doctype HTML>
<html class="reftest-wait">
<meta charset="utf8">
<title>CSS Content Visibility: toggling auto with composited descedant</title>
<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-contain/#content-visibility">
<link rel="match" href="content-visibility-074-ref.html">
<meta name="assert" content="after toggling content-visibility auto a few times, composited descedant is visible.">
<script src="/common/reftest-wait.js"></script>
<style>
#a { will-change: transform; }
#b { height: 15000px; }
#c {
width: 800px;
height: 600px;
}
#d {
will-change: transform;
top: 0px;
width: 500px;
height: 500px;
background: green;
}
.auto {
content-visibility: auto;
}
</style>
<div id="a">
</div>
<div id="b">
<div id="c" class=auto>
<div id="d"></div>
</div>
</div>
</div>
<script>
function runTest(step) {
if (step % 2 == 0) {
requestAnimationFrame(() => runTest(step + 1));
return;
}
switch(step) {
case 1:
document.getElementById("c").classList.remove("auto");
break;
case 3:
document.getElementById("c").classList.add("auto");
break;
case 5:
document.getElementById("c").classList.remove("auto");
break;
case 7:
document.getElementById("c").classList.add("auto");
break;
case 9:
takeScreenshot();
return;
}
requestAnimationFrame(() => runTest(step + 1));
}
window.onload = () => requestAnimationFrame(() => runTest(0));
</script>

View file

@ -0,0 +1,19 @@
<!doctype html>
<title>abspos flex children with top margins</title>
<link rel="author" title="Manuel Rego" href="mailto:rego@igalia.com">
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#abspos-items">
<link rel="bookmark" href="https://crbug.com/886592">
<meta name="assert" content="Check abspos position of flex children with margins in justify-content: flex-end container.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<div style="display: flex; width: 200px; height: 100px; justify-content: flex-end; border: solid thick; position: relative;">
<div style="background: cyan; margin: 20px; position: absolute; width: 30px; height: 40px;" data-offset-x="150" id="abspos"></div>
</div>
<script>
checkLayout('#abspos');
</script>

View file

@ -2,6 +2,14 @@
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/CSS22/visudet.html#the-height-property">
<meta name="assert" content="The percentage height resolution quirk isn't applied to flexboxes.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<!-- Have to wait for onload to fire to ensure the image is loaded. -->
<body onload="checkLayout('#container')">
<p>There should be a green square to the left of a blue square, and no red.</p>
<div id="container" style="width:200px; height:456px;">
<div style="display:flex; background:blue;" data-expected-height="100">
@ -9,9 +17,3 @@
<div style="width: 50px; height: 100%; background: red;" data-expected-height="0"></div>
</div>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<script>
checkLayout("#container");
</script>

View file

@ -0,0 +1,5 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<p>The word "PASS" should be seen below.</p>
<div style="height:2em; background:black;"></div>
PASS

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<link rel="help" href="https://www.w3.org/TR/css-multicol-1/">
<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1066640">
<link rel="match" href="increase-prev-sibling-height-ref.html">
<p>The word "PASS" should be seen below.</p>
<div id="elm" style="background:black;"></div>
<div style="columns:2;">
PASS
</div>
<script>
requestAnimationFrame(()=>{
requestAnimationFrame(()=>{
elm.style.height = "2em";
});
});
</script>

View file

@ -1,6 +1,5 @@
<title>
COOP reports are to the opener when the opener used COOP-RO+COEP and then its
cross-origin openee tries to access it.
Tests the redirect interaction with COOP same-origin-allow-popups.
</title>
<meta name=timeout content=long>
<script src=/resources/testharness.js></script>
@ -12,31 +11,59 @@
const directory = "/html/cross-origin-opener-policy/reporting";
const executor_path = directory + "/resources/executor.html?pipe=";
const same_origin = get_host_info().HTTPS_ORIGIN;
const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN;
const same_origin = {
host: get_host_info().HTTPS_ORIGIN,
name: "Same origin"
};
const cross_origin = {
host: get_host_info().HTTPS_REMOTE_ORIGIN,
name: "Cross origin"
};
const coep_header = '|header(Cross-Origin-Embedder-Policy,require-corp)';
promise_test(async t => {
// Tests the redirect interaction with COOP same-origin-allow-popups and
// reporting:
// 1 - open the opener document on origin same_origin wit COOP
// same-origin-allow-popups.
// 2 - opener opens popup with document on origin popup_origin, no COOP and a
// redirect header (HTTP 302, location).
// 3 - redirection to a document with origin same_origin and COOP
// same-origin-allow-popups.
//
// The navigation (2) to the first document of the popup stays in the same
// browsing context group due to the same-origin-allow-popups COOP of the
// opener.
// The redirect (3) to the final document does since it compares the
// popup_origin/unsafe-none document with the
// same-origin/same-origin-allow-popups document.
//
// A opens B, B redirects to C.
//
// Document Origin COOP
// -------- ------------ ------------------------
// A same-origin same-origin-allow-popups
// B popup-origin unsafe-none
// C same-origin same-origin-allow-popups
function redirect_test( popup_origin ) {
promise_test(async t => {
// The test window.
const this_window_token = token();
// The "opener" window. This has COOP same-origin-allow-popups and a reporter.
// The "opener" window. This has COOP same-origin-allow-popups and a
// reporter.
const opener_report_token= token();
const opener_token = token();
const opener_reportTo = reportToHeaders(opener_report_token);
const opener_url = same_origin + executor_path + opener_reportTo.header +
opener_reportTo.coopSameOriginAllowPopupsHeader +
const opener_url = same_origin.host + executor_path +
opener_reportTo.header + opener_reportTo.coopSameOriginAllowPopupsHeader +
`&uuid=${opener_token}`;
// The "openee" window.
// The initial URL is cross-origin with the opener, and redirects to a
// same-origin page with same-origin-allow-popups.
// The navigation to the cross-origin page stays in the same browsing context
// group due to the same-origin-allow-popups policy, but the redirect to the
// final page does since it compares the cross-origin/unsafe-none document
// with the same-origin/same-origin-allow-popups document.
// The initial document does not have COOP and is on popup_origin, it
// redirects to a same-origin (with the opener) document with COOP
// same-origin-allow-popups.
const openee_token = token();
const openee_redirect_url = same_origin + executor_path +
const openee_redirect_url = same_origin.host + executor_path +
opener_reportTo.header + opener_reportTo.coopSameOriginAllowPopupsHeader +
`&uuid=${openee_token}`;
const redirect_header = 'status(302)' +
@ -46,7 +73,7 @@ promise_test(async t => {
.replace(/\\\\,/g, "\\\\\\,")
.replace(/\(/g, "%28")
.replace(/\)/g, "%29"))})`;
const openee_url = cross_origin + executor_path + redirect_header +
const openee_url = popup_origin.host + executor_path + redirect_header +
`&uuid=${openee_token}`;
// 1. Create the opener window.
let opener_window_proxy = window.open(opener_url);
@ -71,13 +98,18 @@ promise_test(async t => {
assert_equals(await receive(this_window_token), "true", "openee.closed");
// 5. Check a report sent to the openee.
let report = await receiveReport(opener_report_token, "navigation-to-document")
let report = await receiveReport(
opener_report_token,
"navigation-to-document");
assert_not_equals(report, "timeout", "Report not received");
assert_equals(report.type, "coop");
assert_equals(report.url, openee_redirect_url.replace(/"/g, '%22'));
assert_equals(report.body["disposition"], "enforce");
assert_equals(report.body["effective-policy"], "same-origin-allow-popups");
assert_equals(report.body["document-uri"], openee_url);
}, "Cross-origin openee redirected to same-origin with same-origin-allow-popups");
}, `${popup_origin.name} openee redirected to same-origin with same-origin-allow-popups`);
}
redirect_test(same_origin);
redirect_test(cross_origin);
</script>

View file

@ -30,6 +30,14 @@ window.onmessage = async (e) => {
} catch (e) {
parent.postMessage(e.name, "*");
}
} else if (e.data.command === "access frameElement") {
if (frameElement === null) {
parent.postMessage("null", "*");
} else if (frameElement?.constructor?.name === "HTMLIFrameElement") {
parent.postMessage("frameElement accessed successfully", "*");
} else {
parent.postMessage("something wierd happened", "*");
}
} else if (e.data.command === "get originIsolationRestricted") {
parent.postMessage(self.originIsolationRestricted, "*");
}

View file

@ -79,12 +79,18 @@ export function testSameAgentCluster(testFrames, testLabelPrefix) {
promise_test(async () => {
const frameWindow = frames[testFrames[1]];
const frameElement = document.querySelectorAll("iframe")[testFrames[1]];
// Must not throw
frameWindow.document;
// Must not throw
frameWindow.location.href;
assert_not_equals(frameElement.contentDocument, null, "contentDocument");
const whatHappened = await accessFrameElement(frameWindow);
assert_equals(whatHappened, "frameElement accessed successfully");
}, `${prefix}setting document.domain must give sync access`);
} else {
// Between the two children at the index given by testFrames[0] and
@ -101,6 +107,9 @@ export function testSameAgentCluster(testFrames, testLabelPrefix) {
const whatHappened2 = await accessLocationHrefBetween(testFrames);
assert_equals(whatHappened2, "accessed location.href successfully");
// We don't test contentDocument/frameElement for these because accessing
// those via siblings has to go through the parent anyway.
}, `${prefix}setting document.domain must give sync access`);
}
}
@ -130,13 +139,20 @@ export function testDifferentAgentClusters(testFrames, testLabelPrefix) {
promise_test(async () => {
const frameWindow = frames[testFrames[1]];
const frameElement = document.querySelectorAll("iframe")[testFrames[1]];
assert_throws_dom("SecurityError", DOMException, () => {
frameWindow.document;
});
assert_throws_dom("SecurityError", DOMException, () => {
frameWindow.location.href;
});
assert_equals(frameElement.contentDocument, null, "contentDocument");
const whatHappened = await accessFrameElement(frameWindow);
assert_equals(whatHappened, "null");
}, `${prefix}setting document.domain must not give sync access`);
} else {
// Between the two children at the index given by testFrames[0] and
@ -153,6 +169,9 @@ export function testDifferentAgentClusters(testFrames, testLabelPrefix) {
const whatHappened2 = await accessLocationHrefBetween(testFrames);
assert_equals(whatHappened2, "SecurityError");
// We don't test contentDocument/frameElement for these because accessing
// those via siblings has to go through the parent anyway.
}, `${prefix}setting document.domain must not give sync access`);
}
}
@ -263,6 +282,11 @@ async function accessLocationHrefBetween(testFrames) {
return waitForMessage(sourceFrame);
}
async function accessFrameElement(frameWindow) {
frameWindow.postMessage({ command: "access frameElement" }, "*");
return waitForMessage(frameWindow);
}
function waitForMessage(expectedSource) {
return new Promise(resolve => {
const handler = e => {

View file

@ -64,18 +64,16 @@ function createGreenBoxAndAddListeners() {
function performActions() {
var rect = document.getElementById("green").getBoundingClientRect();
var x1 = rect.left + 5;
var y1 = rect.top + 5;
var x1 = Math.ceil(rect.left + 5);
var y1 = Math.ceil(rect.top + 5);
return new test_driver.Actions()
.pointerMove(0, 0)
.pointerMove(rect.left + 5, rect.top + 5)
.pointerDown(0)
.pointerUp(0)
.pointerMove(x1, y1)
.pointerDown()
.pointerUp()
.send()
.then( () => {
return resolveWhen( () => receivedEvents.length == 6 );
});
.then( () => resolveWhen( () => receivedEvents.length == 6 ) );
}
function testScenario(targetEvent, expectedEvents, description) {

View file

@ -39,10 +39,13 @@ promise_test(async() => {
done_clicked = false;
receivedEvents = [];
await new test_driver.Actions().pointerMove(rect.left+5, rect.top+5).pointerDown(0).pointerUp(0).send().then(() => {
return clickInTarget("mouse", done);
});
await resolveWhen(()=>{return done_clicked;});
await new test_driver.Actions()
.pointerMove(Math.ceil(rect.left+5), Math.ceil(rect.top+5))
.pointerDown()
.pointerUp()
.send()
.then(() => clickInTarget("mouse", done));
await resolveWhen(() => done_clicked);
assert_array_equals(receivedEvents, ["pointermove", "mousemove", "pointerdown", "mousedown", "pointerup", "mouseup"],
"Click on object should result in the correct sequence of events");
@ -52,10 +55,14 @@ promise_test(async() => {
done_clicked = false;
receivedEvents = [];
await new test_driver.Actions().pointerMove(rect.left+5, rect.top+5).pointerDown(0).pointerMove(rect.left-5, rect.top-5).pointerUp(0).send().then(() => {
return clickInTarget("mouse", done);
});
await resolveWhen(()=>{return done_clicked;});
await new test_driver.Actions()
.pointerMove(Math.ceil(rect.left+5), Math.ceil(rect.top+5))
.pointerDown()
.pointerMove(Math.ceil(rect.left-5), Math.ceil(rect.top-5))
.pointerUp()
.send()
.then(() => clickInTarget("mouse", done));
await resolveWhen(() => done_clicked);
assert_array_equals(receivedEvents, ["pointermove", "mousemove", "pointerdown", "mousedown", "pointermove", "mousemove", "pointerup", "mouseup"],
"Drag from object should result in the correct sequence of events");

View file

@ -8,7 +8,6 @@
<script><![CDATA[
test(function() {
var pathElement = document.createElementNS("http://www.w3.org/2000/svg", "path");
pathElement.setAttribute("d", 'M0,20 L400,20 L640,20');
assert_throws_dom("InvalidStateError", function() { pathElement.getPointAtLength(700) });
}, document.title + " with SVGPathElement");

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Before After
Before After

View file

@ -141,7 +141,7 @@ def install_certificates():
def install_chrome(channel):
if channel in ("experimental", "dev", "nightly"):
if channel in ("experimental", "dev"):
deb_archive = "google-chrome-unstable_current_amd64.deb"
elif channel == "beta":
deb_archive = "google-chrome-beta_current_amd64.deb"
@ -323,6 +323,9 @@ def setup_environment(args):
if "chrome" in args.browser:
assert args.channel is not None
# Chrome Nightly will be installed via `wpt run --install-browser`
# later in taskcluster-run.py.
if args.channel != "nightly":
install_chrome(args.channel)
elif "webkitgtk_minibrowser" in args.browser:
assert args.channel is not None

View file

@ -8,19 +8,19 @@ import shutil
import subprocess
import sys
browser_specific_args = {
"servo": ["--install-browser", "--processes=12"]
}
def get_browser_args(product):
def get_browser_args(product, channel):
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", "--install-webdriver"]
return browser_specific_args.get(product, [])
if product == "servo":
return ["--install-browser", "--processes=12"]
if product == "chrome" and channel == "nightly":
return ["--install-browser", "--install-webdriver"]
return []
def find_wptreport(args):
@ -43,7 +43,7 @@ def gzip_file(filename, delete_original=True):
os.unlink(filename)
def main(product, commit_range, wpt_args):
def main(product, channel, commit_range, wpt_args):
"""Invoke the `wpt run` command according to the needs of the Taskcluster
continuous integration service."""
@ -75,7 +75,7 @@ def main(product, commit_range, wpt_args):
"--no-headless",
"--verify-log-full"
]
wpt_args += get_browser_args(product)
wpt_args += get_browser_args(product, channel)
# Hack to run servo with one process only for wdspec
if product == "servo" and "--test-type=wdspec" in wpt_args:
@ -107,6 +107,8 @@ if __name__ == "__main__":
determine the list of test to execute""")
parser.add_argument("product", action="store",
help="Browser to run tests in")
parser.add_argument("channel", action="store",
help="Channel of the browser")
parser.add_argument("wpt_args", nargs="*",
help="Arguments to forward to `wpt run` command")
main(**vars(parser.parse_args()))

View file

@ -59,6 +59,7 @@ components:
command: >-
./tools/ci/taskcluster-run.py
${vars.browser}
${vars.channel}
--
--channel=${vars.channel}
--log-wptreport=../artifacts/wpt_report.json
@ -67,6 +68,7 @@ components:
--this-chunk=${chunks.id}
--total-chunks=${chunks.total}
--test-type=${vars.suite}
trigger-master:
trigger:
branch:
@ -170,6 +172,13 @@ tasks:
use:
- trigger-daily
- trigger-push
- vars:
# Chromium ToT
browser: chrome
channel: nightly
use:
- trigger-daily
- trigger-push
- vars:
browser: chrome
channel: dev
@ -245,6 +254,13 @@ tasks:
use:
- trigger-daily
- trigger-push
- vars:
# Chromium ToT
browser: chrome
channel: nightly
use:
- trigger-daily
- trigger-push
- vars:
browser: chrome
channel: dev
@ -299,6 +315,7 @@ tasks:
./tools/ci/taskcluster-run.py
--commit-range base_head
${vars.browser}
${vars.channel}
--
--channel=${vars.channel}
--verify
@ -319,6 +336,7 @@ tasks:
./tools/ci/taskcluster-run.py
--commit-range base_head
${vars.browser}
${vars.channel}
--
--channel=${vars.channel}
--no-fail-on-unexpected
@ -341,6 +359,7 @@ tasks:
./tools/ci/taskcluster-run.py
--commit-range task_head
${vars.browser}
${vars.channel}
--
--channel=${vars.channel}
--no-fail-on-unexpected

View file

@ -128,7 +128,7 @@ def test_verify_payload():
'wpt-firefox-nightly-print-reftest-1',
'wpt-chrome-dev-print-reftest-1',
'lint']),
("pr_event.json", True, {".taskcluster.yml",".travis.yml","tools/ci/start.sh"},
("pr_event.json", True, {".taskcluster.yml", ".travis.yml", "tools/ci/start.sh"},
['lint',
'tools/ unittests (Python 2)',
'tools/ unittests (Python 3.6)',
@ -171,6 +171,22 @@ def test_verify_payload():
'wpt-firefox-stable-testharness-14',
'wpt-firefox-stable-testharness-15',
'wpt-firefox-stable-testharness-16',
'wpt-chrome-nightly-testharness-1',
'wpt-chrome-nightly-testharness-2',
'wpt-chrome-nightly-testharness-3',
'wpt-chrome-nightly-testharness-4',
'wpt-chrome-nightly-testharness-5',
'wpt-chrome-nightly-testharness-6',
'wpt-chrome-nightly-testharness-7',
'wpt-chrome-nightly-testharness-8',
'wpt-chrome-nightly-testharness-9',
'wpt-chrome-nightly-testharness-10',
'wpt-chrome-nightly-testharness-11',
'wpt-chrome-nightly-testharness-12',
'wpt-chrome-nightly-testharness-13',
'wpt-chrome-nightly-testharness-14',
'wpt-chrome-nightly-testharness-15',
'wpt-chrome-nightly-testharness-16',
'wpt-chrome-stable-testharness-1',
'wpt-chrome-stable-testharness-2',
'wpt-chrome-stable-testharness-3',
@ -224,6 +240,11 @@ def test_verify_payload():
'wpt-firefox-stable-reftest-3',
'wpt-firefox-stable-reftest-4',
'wpt-firefox-stable-reftest-5',
'wpt-chrome-nightly-reftest-1',
'wpt-chrome-nightly-reftest-2',
'wpt-chrome-nightly-reftest-3',
'wpt-chrome-nightly-reftest-4',
'wpt-chrome-nightly-reftest-5',
'wpt-chrome-stable-reftest-1',
'wpt-chrome-stable-reftest-2',
'wpt-chrome-stable-reftest-3',
@ -241,6 +262,8 @@ def test_verify_payload():
'wpt-servo-nightly-reftest-5',
'wpt-firefox-stable-wdspec-1',
'wpt-firefox-stable-wdspec-2',
'wpt-chrome-nightly-wdspec-1',
'wpt-chrome-nightly-wdspec-2',
'wpt-chrome-stable-wdspec-1',
'wpt-chrome-stable-wdspec-2',
'wpt-webkitgtk_minibrowser-nightly-wdspec-1',
@ -248,11 +271,13 @@ def test_verify_payload():
'wpt-servo-nightly-wdspec-1',
'wpt-servo-nightly-wdspec-2',
'wpt-firefox-stable-crashtest-1',
'wpt-chrome-nightly-crashtest-1',
'wpt-chrome-stable-crashtest-1',
'wpt-webkitgtk_minibrowser-nightly-crashtest-1',
'wpt-servo-nightly-crashtest-1',
'wpt-firefox-stable-print-reftest-1',
'wpt-chrome-stable-print-reftest-1',])
'wpt-chrome-nightly-print-reftest-1',
'wpt-chrome-stable-print-reftest-1'])
])
def test_schedule_tasks(event_path, is_pr, files_changed, expected):
with mock.patch("tools.ci.tc.decision.get_fetch_rev", return_value=(None, None, None)):

View file

@ -6,3 +6,6 @@
[WebGL test #1: context does not exist]
expected: FAIL
[WebGL test #14: should be red\nat (0, 0) expected: 255,0,0,255 was 0,255,0,255]
expected: FAIL

View file

@ -7,75 +7,3 @@
[WebGL test #1: context does not exist]
expected: FAIL
[WebGL test #9: Canvas should be red]
expected: FAIL
[WebGL test #17: Canvas should be red]
expected: FAIL
[WebGL test #23: Canvas should be red]
expected: FAIL
[WebGL test #8: Canvas should be red]
expected: FAIL
[WebGL test #13: Canvas should be red]
expected: FAIL
[WebGL test #18: Canvas should be red]
expected: FAIL
[WebGL test #5: Canvas should be red]
expected: FAIL
[WebGL test #14: Canvas should be red]
expected: FAIL
[WebGL test #22: Canvas should be red]
expected: FAIL
[WebGL test #20: Canvas should be red]
expected: FAIL
[WebGL test #3: Canvas should be red]
expected: FAIL
[WebGL test #24: Canvas should be red]
expected: FAIL
[WebGL test #7: Canvas should be red]
expected: FAIL
[WebGL test #11: Canvas should be red]
expected: FAIL
[WebGL test #2: Canvas should be red]
expected: FAIL
[WebGL test #4: Canvas should be red]
expected: FAIL
[WebGL test #1: Canvas should be red]
expected: FAIL
[WebGL test #21: Canvas should be red]
expected: FAIL
[WebGL test #6: Canvas should be red]
expected: FAIL
[WebGL test #19: Canvas should be red]
expected: FAIL
[WebGL test #12: Canvas should be red]
expected: FAIL
[WebGL test #16: Canvas should be red]
expected: FAIL
[WebGL test #10: Canvas should be red]
expected: FAIL
[WebGL test #15: Canvas should be red]
expected: FAIL