Index: LayoutTests/http/tests/serviceworker/fetch-request-no-freshness-headers.html |
diff --git a/LayoutTests/http/tests/serviceworker/fetch-request-no-freshness-headers.html b/LayoutTests/http/tests/serviceworker/fetch-request-no-freshness-headers.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7372c08a21d359c3df95a638e9d85f7466121ad2 |
--- /dev/null |
+++ b/LayoutTests/http/tests/serviceworker/fetch-request-no-freshness-headers.html |
@@ -0,0 +1,56 @@ |
+<!DOCTYPE html> |
+<title>Service Worker: the headers of FetchEvent shouldn't contain freshness headers</title> |
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
+<script src="resources/test-helpers.js?pipe=sub"></script> |
+<script> |
+async_test(function(t) { |
+ var SCOPE = 'resources/fetch-request-no-freshness-headers-iframe.html'; |
+ var SCRIPT = 'resources/fetch-request-no-freshness-headers-worker.js'; |
+ var worker; |
+ service_worker_unregister_and_register(t, SCRIPT, SCOPE) |
+ .then(function(registration) { |
+ return wait_for_update(t, registration); |
+ }) |
+ .then(function(sw) { |
+ worker = sw; |
+ return wait_for_state(t, sw, 'activated'); |
+ }) |
+ .then(function() { return with_iframe(SCOPE); }) |
+ .then(function(frame) { |
+ return new Promise(function(resolve) { |
+ frame.onload = function() { |
+ resolve(frame); |
+ }; |
+ frame.contentWindow.location.reload(); |
+ }); |
+ }) |
+ .then(function(frame) { |
+ return new Promise(function(resolve) { |
+ var channel = new MessageChannel(); |
+ channel.port1.onmessage = t.step_func(function(msg) { |
+ unload_iframe(frame); |
+ resolve(msg); |
+ }); |
+ worker.postMessage( |
+ {port: channel.port2}, [channel.port2]); |
+ }); |
+ }) |
+ .then(function(msg) { |
+ var freshness_headers = { |
+ 'if-none-match': true, |
+ 'if-modified-since': true |
+ }; |
+ msg.data.requests.forEach(t.step_func(function(request) { |
+ request.headers.forEach(t.step_func(function(header) { |
+ assert_false( |
+ !!freshness_headers[header[0]], |
+ header[0] + ' header must not be set in the ' + |
+ 'FetchEvent\'s request. (url = ' + request.url + ')'); |
+ })); |
+ })) |
+ service_worker_unregister_and_done(t, SCOPE); |
+ }) |
+ .catch(unreached_rejection(t)); |
+ }, 'The headers of FetchEvent shouldn\'t contain freshness headers.'); |
+</script> |