Update web-platform-tests to revision 8a14626934f5748a4ea6210847a02c0d8bbc8560

This commit is contained in:
WPT Sync Bot 2019-03-07 20:52:27 -05:00
parent defc176333
commit 4851e4e2b9
133 changed files with 3076 additions and 304 deletions

View file

@ -0,0 +1,63 @@
<!DOCTYPE html>
<!---
Tentative test against:
https://github.com/whatwg/fetch/pull/853
-->
<html>
<head>
<meta charset="utf-8">
<title>Stale Revalidation Requests don't get sent to service worker</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../service-workers/service-worker/resources/test-helpers.sub.js"></script>
<script src="/common/utils.js"></script>
</head>
<body>
<script>
// Duplicating this resource to make service worker scoping simpler.
async function setupRegistration(t, scope) {
const reg = await navigator.serviceWorker.register('sw-intercept.js');
await wait_for_state(t, reg.installing, 'activated');
add_completion_callback(_ => reg.unregister());
return reg;
}
function wait25ms(test) {
return new Promise(resolve => {
test.step_timeout(() => {
resolve();
}, 25);
});
}
promise_test(async (test) => {
var request_token = token();
const uri = 'stale-script.py?token=' + request_token;
await setupRegistration(test, 'stale-script.py');
var service_worker_count = 0;
navigator.serviceWorker.addEventListener('message', function once(event) {
if (event.data.endsWith(uri)) {
service_worker_count++;
}
});
const response = await fetch(uri);
const response2 = await fetch(uri);
assert_equals(response.headers.get('Unique-Id'), response2.headers.get('Unique-Id'));
while(true) {
const revalidation_check = await fetch(`stale-script.py?query&token=` + request_token);
if (revalidation_check.headers.get('Count') == '2') {
// The service worker should not see the revalidation request.
assert_equals(service_worker_count, 2);
break;
}
await wait25ms(test);
}
}, 'Second fetch returns same response');
</script>
</body>
</html>

View file

@ -9,12 +9,28 @@ https://github.com/whatwg/fetch/pull/853
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<script>
function wait25ms(test) {
return new Promise(resolve => {
test.step_timeout(() => {
resolve();
}, 25);
});
}
promise_test(async (test) => {
var request_token = token();
const response = await fetch(`stale-script.py?token=` + request_token);
const response2 = await fetch(`stale-script.py?token=` + request_token);
assert_not_equals(response.headers.get('Unique-Id'), response2.headers.get('Unique-Id'));
}, 'Second fetch does not return same response');
assert_equals(response.headers.get('Unique-Id'), response2.headers.get('Unique-Id'));
while(true) {
const revalidation_check = await fetch(`stale-script.py?query&token=` + request_token);
if (revalidation_check.headers.get('Count') == '2') {
break;
}
await wait25ms(test);
}
}, 'Second fetch returns same response');
</script>

View file

@ -8,6 +8,8 @@ def main(request, response):
if request.GET.first("query", None) != None:
headers = [("Count", count)]
content = ""
if count < 2:
request.server.stash.put(token, count)
return 200, headers, content
else:
count = count + 1

View file

@ -10,6 +10,8 @@ def main(request, response):
if request.GET.first("query", None) != None:
headers = [("Count", count)]
content = ""
if count < 2:
request.server.stash.put(token, count)
return 200, headers, content
else:
count = count + 1

View file

@ -13,6 +13,8 @@ def main(request, response):
if request.GET.first("query", None) != None:
headers = [("Count", count)]
content = ""
if count < 2:
request.server.stash.put(token, count)
return 200, headers, content
else:
count = count + 1

View file

@ -0,0 +1,14 @@
async function broadcast(msg) {
for (const client of await clients.matchAll()) {
client.postMessage(msg);
}
}
self.addEventListener('fetch', event => {
event.waitUntil(broadcast(event.request.url));
event.respondWith(fetch(event.request));
});
self.addEventListener('activate', event => {
self.clients.claim();
});