OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 function getStyleURL() { | 5 function getStyleURL() { |
6 // This is not a style sheet, but it must still be classified as "stylesheet" | 6 // This is not a style sheet, but it must still be classified as "stylesheet" |
7 // because it is loaded as a style sheet. | 7 // because it is loaded as a style sheet. |
8 return getServerURL('empty.html?as-style'); | 8 return getServerURL('empty.html?as-style'); |
9 } | 9 } |
10 | 10 |
11 function getScriptURL() { | 11 function getScriptURL() { |
12 // The file is empty, so JS errors will not be generated upon execution. | 12 // The file is empty, so JS errors will not be generated upon execution. |
13 return getServerURL('empty.html?as-script'); | 13 // |
| 14 // We load from '127.0.0.1', as that is a whitelistable source of script |
| 15 // from outside the extension's package. |
| 16 return getServerURL('empty.html?as-script', '127.0.0.1'); |
14 } | 17 } |
15 | 18 |
16 function getFontURL() { | 19 function getFontURL() { |
17 // Not a font, but will be loaded as a font. | 20 // Not a font, but will be loaded as a font. |
18 return getServerURL('empty.html?as-font'); | 21 return getServerURL('empty.html?as-font'); |
19 } | 22 } |
20 | 23 |
21 function getWorkerURL() { | 24 function getWorkerURL() { |
22 // This file is empty, so it does not generate JavaScript errors when loaded | 25 // This file is empty, so it does not generate JavaScript errors when loaded |
23 // as a worker script. | 26 // as a worker script. |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 ip: '127.0.0.1', | 199 ip: '127.0.0.1', |
197 fromCache: false, | 200 fromCache: false, |
198 statusLine: 'HTTP/1.1 200 OK', | 201 statusLine: 'HTTP/1.1 200 OK', |
199 statusCode: 200, | 202 statusCode: 200, |
200 }, | 203 }, |
201 }], | 204 }], |
202 [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders', | 205 [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders', |
203 'onHeadersReceived', 'onResponseStarted', 'onCompleted']], | 206 'onHeadersReceived', 'onResponseStarted', 'onCompleted']], |
204 getScriptFilter()); | 207 getScriptFilter()); |
205 | 208 |
206 // This tab is an extension, and the default Content Security Policy forbids | |
207 // injecting external scripts in the page. So we just load the script in a | |
208 // frame via a data:-URL (which is not subject to the extension's CSP). | |
209 // | |
210 // data-URLs are not visible to the webRequest API, so we don't have to | |
211 // include the frame in the expectations - this is a nice side effect. | |
212 var frame = document.createElement('iframe'); | 209 var frame = document.createElement('iframe'); |
213 frame.src = 'data:text/html,<script src="' + getScriptURL() + '"></script>'; | 210 frame.src = 'data:text/html,<script src="' + getScriptURL() + '"></script>'; |
214 document.body.appendChild(frame); | 211 document.body.appendChild(frame); |
215 }, | 212 }, |
216 | 213 |
217 function typeFont() { | 214 function typeFont() { |
218 expect([ | 215 expect([ |
219 { label: 'onBeforeRequest', | 216 { label: 'onBeforeRequest', |
220 event: 'onBeforeRequest', | 217 event: 'onBeforeRequest', |
221 details: { | 218 details: { |
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
607 var frame = document.createElement('iframe'); | 604 var frame = document.createElement('iframe'); |
608 document.body.appendChild(frame); | 605 document.body.appendChild(frame); |
609 frame.contentWindow.onunload = function() { | 606 frame.contentWindow.onunload = function() { |
610 console.log('Going to send beacon...'); | 607 console.log('Going to send beacon...'); |
611 var sentBeacon = frame.contentWindow.navigator.sendBeacon(getSlowURL()); | 608 var sentBeacon = frame.contentWindow.navigator.sendBeacon(getSlowURL()); |
612 chrome.test.assertTrue(sentBeacon); | 609 chrome.test.assertTrue(sentBeacon); |
613 }; | 610 }; |
614 frame.remove(); | 611 frame.remove(); |
615 }, | 612 }, |
616 ]); | 613 ]); |
OLD | NEW |