зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1541637 [wpt PR 16141] - Fix flaky `Sec-Fetch-*` tests., a=testonly
Automatic update from web-platform-tests Fix flaky `Sec-Fetch-*` tests. The tests in //fetch/sec-metadata use the server-side stash, but don't do so with unique-enough identifiers. This patch adds a nonce to the stash key used by the tests, ensuring that they're not interfering with each other. Bug: 947023 Change-Id: If24d441f6d0d9ced7f0eb1413eb78374fa3f62b5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1543795 Reviewed-by: Adam Rice <ricea@chromium.org> Commit-Queue: Mike West <mkwst@chromium.org> Cr-Commit-Position: refs/heads/master@{#645718} -- wpt-commits: c3e58eeeef43bd5a9dd905f1942e79b394d61924 wpt-pr: 16141
This commit is contained in:
Родитель
178bf4a80e
Коммит
374c01b5a4
|
@ -4,11 +4,14 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<body>
|
||||
<script>
|
||||
let nonce = token();
|
||||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "embed-same-origin";
|
||||
let key = "embed-same-origin" + nonce;
|
||||
|
||||
let e = document.createElement('embed');
|
||||
e.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
@ -27,7 +30,7 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "embed-same-site";
|
||||
let key = "embed-same-site" + nonce;
|
||||
|
||||
let e = document.createElement('embed');
|
||||
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
@ -46,7 +49,7 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "embed-cross-site";
|
||||
let key = "embed-cross-site" + nonce;
|
||||
|
||||
let e = document.createElement('embed');
|
||||
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
|
|
@ -4,11 +4,14 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<body>
|
||||
<script>
|
||||
let nonce = token();
|
||||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "object-same-origin";
|
||||
let key = "object-same-origin" + nonce;
|
||||
|
||||
let e = document.createElement('object');
|
||||
e.data = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
@ -27,7 +30,7 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "object-same-site";
|
||||
let key = "object-same-site" + nonce;
|
||||
|
||||
let e = document.createElement('object');
|
||||
e.data = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
@ -46,7 +49,7 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "object-cross-site";
|
||||
let key = "object-cross-site" + nonce;
|
||||
|
||||
let e = document.createElement('object');
|
||||
e.data = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
|
|
@ -4,11 +4,14 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<body></body>
|
||||
<script>
|
||||
promise_test(t => {
|
||||
let nonce = token();
|
||||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-cross-site-same-origin";
|
||||
let key = "redirect-cross-site-same-origin" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
@ -34,7 +37,7 @@ promise_test(t => {
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-cross-site-same-site";
|
||||
let key = "redirect-cross-site-same-site" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
@ -60,7 +63,7 @@ promise_test(t => {
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-cross-site-cross-site";
|
||||
let key = "redirect-cross-site-cross-site" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
|
|
@ -4,11 +4,14 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<body></body>
|
||||
<script>
|
||||
promise_test(t => {
|
||||
let nonce = token();
|
||||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-multiple-cross-site";
|
||||
let key = "redirect-multiple-cross-site" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "https://{{host}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-origin
|
||||
|
|
|
@ -4,11 +4,14 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<body></body>
|
||||
<script>
|
||||
promise_test(t => {
|
||||
let nonce = token();
|
||||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-multiple-same-site";
|
||||
let key = "redirect-multiple-same-site" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "https://{{host}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=" +// same-origin
|
||||
|
|
|
@ -4,11 +4,14 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<body></body>
|
||||
<script>
|
||||
promise_test(t => {
|
||||
let nonce = token();
|
||||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-same-origin-same-origin";
|
||||
let key = "redirect-same-origin-same-origin" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
@ -35,7 +38,7 @@ promise_test(t => {
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-same-origin-same-site";
|
||||
let key = "redirect-same-origin-same-site" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "/xhr/resources/redirect.py?location=https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
@ -62,7 +65,7 @@ promise_test(t => {
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-same-origin-cross-site";
|
||||
let key = "redirect-same-origin-cross-site" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
|
|
@ -4,11 +4,14 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<body></body>
|
||||
<script>
|
||||
promise_test(t => {
|
||||
let nonce = token();
|
||||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-same-site-same-origin";
|
||||
let key = "redirect-same-site-same-origin" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
@ -35,7 +38,7 @@ promise_test(t => {
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-same-site-same-site";
|
||||
let key = "redirect-same-site-same-site" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
@ -62,7 +65,7 @@ promise_test(t => {
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "redirect-same-site-cross-site";
|
||||
let key = "redirect-same-site-cross-site" + nonce;
|
||||
|
||||
let e = document.createElement('img');
|
||||
e.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/xhr/resources/redirect.py?location=https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
|
|
|
@ -4,11 +4,15 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<body>
|
||||
<script>
|
||||
let nonce = token();
|
||||
let key = "serviceworker-same-origin" + nonce;
|
||||
|
||||
if ('serviceWorker' in navigator) {
|
||||
window.addEventListener('load', function() {
|
||||
navigator.serviceWorker.register('https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=serviceworker-same-origin').then(function(registration) {
|
||||
navigator.serviceWorker.register('https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=' + key).then(function(registration) {
|
||||
test_same_origin();
|
||||
|
||||
// uninstall the serviceworker after the test
|
||||
|
@ -34,7 +38,6 @@
|
|||
function test_same_origin(){
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "serviceworker-same-origin";
|
||||
let expected = {"dest":"serviceworker", "site":"same-origin", "user":"?F", "mode": "same-origin"};
|
||||
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
|
||||
.then(response => response.text())
|
||||
|
|
|
@ -4,13 +4,16 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<script>
|
||||
let nonce = token();
|
||||
let key = "sharedworker-same-origin" + nonce;
|
||||
|
||||
// TESTS //
|
||||
if (window.Worker) {
|
||||
|
||||
// Same-Origin test
|
||||
var sharedWorker = new SharedWorker('/fetch/sec-metadata/resources/record-header.py?file=sharedworker-same-origin');
|
||||
var sharedWorker = new SharedWorker('/fetch/sec-metadata/resources/record-header.py?file=' + key);
|
||||
sharedWorker.port.start();
|
||||
|
||||
sharedWorker.onerror = function(){
|
||||
|
@ -25,7 +28,6 @@
|
|||
function test_same_origin(){
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "sharedworker-same-origin";
|
||||
let expected = {"dest":"sharedworker", "site":"same-origin", "user":"?F", "mode": "same-origin"};
|
||||
|
||||
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
|
||||
|
|
|
@ -4,11 +4,14 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<body></body>
|
||||
<script>
|
||||
let nonce = token();
|
||||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "style-same-origin";
|
||||
let key = "style-same-origin" + nonce;
|
||||
|
||||
let e = document.createElement('link');
|
||||
e.rel = "stylesheet";
|
||||
|
@ -28,7 +31,7 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "style-same-site";
|
||||
let key = "style-same-site" + nonce;
|
||||
|
||||
let e = document.createElement('link');
|
||||
e.rel = "stylesheet";
|
||||
|
@ -48,7 +51,7 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "style-cross-site";
|
||||
let key = "style-cross-site" + nonce;
|
||||
|
||||
let e = document.createElement('link');
|
||||
e.rel = "stylesheet";
|
||||
|
@ -68,7 +71,7 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "style-same-origin";
|
||||
let key = "style-same-origin-cors" + nonce;
|
||||
|
||||
let e = document.createElement('link');
|
||||
e.rel = "stylesheet";
|
||||
|
|
|
@ -4,9 +4,12 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<body>
|
||||
</body>
|
||||
<script>
|
||||
let nonce = token();
|
||||
|
||||
function createVideoElement() {
|
||||
let el = document.createElement('video');
|
||||
el.src = "/media/movie_5.mp4";
|
||||
|
@ -25,9 +28,10 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "track-same-origin" + nonce;
|
||||
let video = createVideoElement();
|
||||
let el = createTrack();
|
||||
el.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-same-origin";
|
||||
el.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
el.onload = t.step_func(_ => {
|
||||
expected = {
|
||||
"dest": "track",
|
||||
|
@ -35,7 +39,7 @@
|
|||
"user": "?F",
|
||||
"mode": "cors" // Because the `video` element has `crossorigin`
|
||||
};
|
||||
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-same-origin")
|
||||
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
|
||||
.then(response => response.text())
|
||||
.then(text => assert_header_equals(text, expected))
|
||||
.then(_ => resolve());
|
||||
|
@ -47,9 +51,10 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "track-same-site" + nonce;
|
||||
let video = createVideoElement();
|
||||
let el = createTrack();
|
||||
el.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-same-site";
|
||||
el.src = "https://{{hosts[][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
el.onload = t.step_func(_ => {
|
||||
expected = {
|
||||
"dest": "track",
|
||||
|
@ -57,7 +62,7 @@
|
|||
"user": "?F",
|
||||
"mode": "cors" // Because the `video` element has `crossorigin`
|
||||
};
|
||||
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-same-site")
|
||||
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
|
||||
.then(response => response.text())
|
||||
.then(text => assert_header_equals(text, expected))
|
||||
.then(resolve)
|
||||
|
@ -71,9 +76,10 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "track-cross-site" + nonce;
|
||||
let video = createVideoElement();
|
||||
let el = createTrack();
|
||||
el.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-cross-site";
|
||||
el.src = "https://{{hosts[alt][www]}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
el.onload = t.step_func(_ => {
|
||||
expected = {
|
||||
"dest": "track",
|
||||
|
@ -81,7 +87,7 @@
|
|||
"user": "?F",
|
||||
"mode": "cors" // Because the `video` element has `crossorigin`
|
||||
};
|
||||
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-cross-site")
|
||||
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
|
||||
.then(response => response.text())
|
||||
.then(text => assert_header_equals(text, expected))
|
||||
.then(resolve)
|
||||
|
@ -94,13 +100,14 @@
|
|||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "track-same-origin-cors" + nonce;
|
||||
let video = createVideoElement();
|
||||
|
||||
// Unset `crossorigin` to change the CORS mode:
|
||||
video.crossOrigin = undefined;
|
||||
|
||||
let el = createTrack();
|
||||
el.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=track-same-origin";
|
||||
el.src = "https://{{host}}:{{ports[https][0]}}/fetch/sec-metadata/resources/record-header.py?file=" + key;
|
||||
el.onload = t.step_func(_ => {
|
||||
expected = {
|
||||
"dest":"track",
|
||||
|
@ -108,7 +115,7 @@
|
|||
"user":"?F",
|
||||
"mode": "same-origin"
|
||||
};
|
||||
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=track-same-origin")
|
||||
fetch("/fetch/sec-metadata/resources/record-header.py?retrieve=true&file=" + key)
|
||||
.then(response => response.text())
|
||||
.then(text => assert_header_equals(text, expected))
|
||||
.then(_ => resolve());
|
||||
|
|
|
@ -4,10 +4,13 @@
|
|||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src=/fetch/sec-metadata/resources/helper.js></script>
|
||||
<script src=/common/utils.js></script>
|
||||
<script>
|
||||
let nonce = token();
|
||||
|
||||
promise_test(t => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let key = "worker-same-origin";
|
||||
let key = "worker-same-origin" + nonce;
|
||||
let w = new Worker("/fetch/sec-metadata/resources/record-header.py?file=" + key);
|
||||
w.onmessage = e => {
|
||||
let expected = {"dest":"worker", "site":"same-origin", "user":"?F", "mode": "same-origin"};
|
||||
|
|
Загрузка…
Ссылка в новой задаче