| <!DOCTYPE html> |
| <title>Service Worker: Visibility of headers during fetch.</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/common/get-host-info.sub.js"></script> |
| <script src="resources/test-helpers.sub.js"></script> |
| <body> |
| <script> |
| var worker = 'resources/fetch-rewrite-worker.js'; |
| var path = base_path() + 'resources/fetch-access-control.py'; |
| var host_info = get_host_info(); |
| var frame; |
| |
| promise_test(function(t) { |
| var scope = 'resources/fetch-header-visibility-iframe.html'; |
| return service_worker_unregister_and_register(t, worker, scope) |
| .then(function(reg) { |
| t.add_cleanup(function() { |
| return service_worker_unregister(t, scope); |
| }); |
| |
| return wait_for_state(t, reg.installing, 'activated'); |
| }) |
| .then(function() { |
| frame = document.createElement('iframe'); |
| frame.src = scope; |
| document.body.appendChild(frame); |
| |
| // Resolve a promise when we recieve 2 success messages |
| return new Promise(function(resolve, reject) { |
| var remaining = 4; |
| function onMessage(e) { |
| if (e.data == 'PASS') { |
| remaining--; |
| if (remaining == 0) { |
| resolve(); |
| } else { |
| return; |
| } |
| } else { |
| reject(e.data); |
| } |
| |
| window.removeEventListener('message', onMessage); |
| } |
| window.addEventListener('message', onMessage); |
| }); |
| }) |
| .then(function(result) { |
| frame.remove(); |
| }); |
| }, 'Visibility of defaulted headers during interception'); |
| </script> |
| </body> |