OLD | NEW |
---|---|
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="../resources/testharness.js"></script> | 2 <script src="../resources/testharness.js"></script> |
3 <script src="../resources/testharnessreport.js"></script> | 3 <script src="../resources/testharnessreport.js"></script> |
4 <script src="../resources/get-host-info.js"></script> | 4 <script src="../resources/get-host-info.js"></script> |
5 <script src="resources/test-helpers.js"></script> | 5 <script src="resources/test-helpers.js"></script> |
6 <script src="resources/foreign-fetch-helpers.js"></script> | 6 <script src="resources/foreign-fetch-helpers.js"></script> |
7 <body> | 7 <body> |
8 <script> | 8 <script> |
9 var host_info = get_host_info(); | 9 var host_info = get_host_info(); |
10 | 10 |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
150 frame.contentDocument.head.appendChild(meta); | 150 frame.contentDocument.head.appendChild(meta); |
151 return frame.contentWindow.fetch(remote_url, {mode: 'no-cors'}); | 151 return frame.contentWindow.fetch(remote_url, {mode: 'no-cors'}); |
152 }) | 152 }) |
153 .then(response => response.json()) | 153 .then(response => response.json()) |
154 .then(response_data => { | 154 .then(response_data => { |
155 assert_equals('', response_data.referrer); | 155 assert_equals('', response_data.referrer); |
156 assert_equals('null', response_data.origin); | 156 assert_equals('null', response_data.origin); |
157 }); | 157 }); |
158 }, 'Referrer and origin are set correctly in ForeignFetchEvent.'); | 158 }, 'Referrer and origin are set correctly in ForeignFetchEvent.'); |
159 | 159 |
160 function fetch_from_iframe(origin, url) { | |
161 return with_iframe(origin + | |
162 '/serviceworker/resources/foreign-fetch-helper-iframe.html') | |
163 .then(frame => new Promise((resolve) => { | |
164 var channel = new MessageChannel(); | |
165 frame.contentWindow.postMessage({url: url, | |
166 port: channel.port1}, | |
167 '*', [channel.port1]); | |
168 channel.port2.onmessage = reply => resolve(reply.data); | |
169 })); | |
170 } | |
171 | |
172 promise_test(t => { | |
173 var scope = 'simple.txt?basic_insecure'; | |
174 var remote_url = | |
175 host_info.AUTHENTICATED_ORIGIN + '/serviceworker/resources/' + scope; | |
176 return install_cross_origin_worker(t, worker_for_scopes(['']), scope, | |
177 host_info.AUTHENTICATED_ORIGIN) | |
178 .then(() => fetch_from_iframe(host_info.HTTPS_REMOTE_ORIGIN, remote_url)) | |
179 .then(response => assert_equals(response, 'Success: Foreign Fetch')) | |
180 .then(() => fetch_from_iframe(host_info.UNAUTHENTICATED_ORIGIN, | |
181 remote_url)) | |
kinuko
2016/06/03 09:17:16
nit: indent slightly off?
Marijn Kruisselbrink
2016/06/06 19:23:34
Fixed
| |
182 .then(response => assert_equals(response, | |
183 'Error: TypeError: Failed to fetch')); | |
184 }, 'Service Worker does not intercept fetches from an insecure context.'); | |
185 | |
160 </script> | 186 </script> |
161 </body> | 187 </body> |
OLD | NEW |