OLD | NEW |
---|---|
(Empty) | |
1 <html> | |
2 <head> | |
3 <script src="../inspector-test.js"></script> | |
4 <script src="service-workers-test.js"></script> | |
5 <script> | |
6 | |
7 function initializeServiceWorker(script, scope) { | |
8 return navigator.serviceWorker.register(script, {scope: scope}) | |
9 .then(reg => waitForActivated(reg.installing)); | |
10 } | |
11 | |
12 function waitForActivated(worker) { | |
13 if (worker.state === 'activated') | |
14 return Promise.resolve(); | |
15 if (worker.state === 'redundant') | |
16 return Promise.reject(new Error('The worker is redundant')); | |
17 return new Promise(resolve => { | |
18 worker.addEventListener('statechange', _ => { | |
19 if (worker.state === 'activated') | |
20 resolve(); | |
21 }); | |
22 }); | |
23 } | |
24 | |
25 function loadIframe(url) | |
26 { | |
27 var callback; | |
28 var promise = new Promise((fulfill) => callback = fulfill); | |
29 var frame = document.createElement('iframe'); | |
30 frame.src = url; | |
31 frame.onload = callback; | |
32 document.body.appendChild(frame); | |
33 return promise; | |
34 } | |
35 | |
36 function test() | |
37 { | |
38 var scriptURL = "http://127.0.0.1:8000/inspector/service-workers/resources/n avigation-preload-worker.php"; | |
39 var scope = "http://127.0.0.1:8000/inspector/service-workers/resources/navig ation-preload-scope.php"; | |
40 | |
41 InspectorTest.addSniffer(SDK.NetworkDispatcher.prototype, | |
42 "navigationPreloadSent", | |
43 navigationPreloadSent, | |
44 true); | |
45 InspectorTest.addSniffer(SDK.NetworkDispatcher.prototype, | |
46 "navigationPreloadResponseReceived", | |
47 navigationPreloadResponseReceived, | |
48 true); | |
49 InspectorTest.addSniffer(SDK.NetworkDispatcher.prototype, | |
50 "navigationPreloadFailed", | |
51 navigationPreloadFailed, | |
52 true); | |
53 InspectorTest.addSniffer(SDK.NetworkDispatcher.prototype, | |
54 "navigationPreloadFinished", | |
55 navigationPreloadFinished, | |
56 true); | |
57 | |
58 function navigationPreloadSent(requestId, url, timestamp, wallTime, initiato r) | |
59 { | |
60 InspectorTest.addResult("navigationPreloadSent:"); | |
61 InspectorTest.addResult(" url: " + url); | |
62 InspectorTest.addResult(" initiator.type: " + initiator.type); | |
63 } | |
64 function navigationPreloadResponseReceived(requestId, timestamp, response) | |
65 { | |
66 InspectorTest.addResult("navigationPreloadResponseReceived:"); | |
67 InspectorTest.addResult(" response.url: " + response.url); | |
68 InspectorTest.addResult(" response.timing available: " + | |
69 !!response.timing); | |
70 InspectorTest.addResult(" response.requestHeaders available: " + | |
71 !!response.requestHeaders); | |
72 if (response.requestHeaders) { | |
73 InspectorTest.addResult( | |
74 " response.requestHeaders['Service-Worker-Navigation-Preload']: " + | |
75 response.requestHeaders['Service-Worker-Navigation-Preload']); | |
76 } | |
77 | |
78 } | |
79 function navigationPreloadFailed(requestId, timestamp, errorMessage) | |
80 { | |
81 InspectorTest.addResult("navigationPreloadFailed:"); | |
82 InspectorTest.addResult(" errorMessage: " + errorMessage); | |
83 } | |
84 function navigationPreloadFinished(requestId, timestamp) | |
85 { | |
86 InspectorTest.addResult("navigationPreloadFinished:"); | |
87 } | |
88 | |
89 InspectorTest.callFunctionInPageAsync("initializeServiceWorker", | |
90 [ scriptURL, scope ]) | |
91 .then(_ => { | |
92 InspectorTest.addResult("-----------------"); | |
93 InspectorTest.addResult("Loading an iframe."); | |
94 return InspectorTest.callFunctionInPageAsync("loadIframe", [ scope ]); | |
95 }) | |
96 .then(_ => { | |
97 InspectorTest.addResult("The iframe loaded."); | |
98 InspectorTest.addResult("-----------------"); | |
99 InspectorTest.addResult("Loading another iframe."); | |
100 return InspectorTest.callFunctionInPageAsync( | |
101 "loadIframe", [ scope + "?BrokenCunked"]); | |
falken
2017/01/18 14:50:07
Chunked
horo
2017/01/19 09:57:09
Done.
| |
102 }) | |
103 .then(_ => { | |
104 InspectorTest.addResult("The iframe loaded."); | |
105 InspectorTest.addResult("-----------------"); | |
106 InspectorTest.addResult("Loading another iframe."); | |
107 return InspectorTest.callFunctionInPageAsync( | |
108 "loadIframe", [ scope + "?RedirectError"]); | |
109 }) | |
110 .then(_ => { | |
111 InspectorTest.addResult("The iframe loaded."); | |
112 InspectorTest.addResult("-----------------"); | |
113 InspectorTest.addResult("Done"); | |
114 InspectorTest.completeTest(); | |
115 }); | |
116 } | |
117 | |
118 </script> | |
119 </head> | |
120 <body onload="runTest()"> | |
121 <p>Tests the navigation request related events are available in the DevTools</p> | |
122 </body> | |
123 </html> | |
OLD | NEW |