OLD | NEW |
1 var port = undefined; | 1 var port = undefined; |
| 2 // Create a then-able object that is never resolved. |
| 3 function createPending() { |
| 4 return { then: createPending }; |
| 5 } |
2 | 6 |
3 onmessage = function(e) { | 7 onmessage = function(e) { |
4 var message = e.data; | 8 var message = e.data; |
5 if (typeof message === 'object' && 'port' in message) { | 9 if (typeof message === 'object' && 'port' in message) { |
6 port = message.port; | 10 port = message.port; |
| 11 |
| 12 port.postMessage('received port'); |
| 13 // The ServiceWorker which handles the "message" event must persist long |
| 14 // enough to handle the subsequent "fetch" event. To promote test |
| 15 // simplicity, the worker prevents its own termination indefinitely via a |
| 16 // then-able that is never resolved. |
| 17 e.waitUntil(createPending()); |
7 } | 18 } |
8 }; | 19 }; |
9 | 20 |
10 onfetch = function(e) { | 21 onfetch = function(e) { |
11 var headers = {}; | 22 var headers = {}; |
12 var errorNameWhileAppendingHeader; | 23 var errorNameWhileAppendingHeader; |
13 for (var header of e.request.headers) { | 24 for (var header of e.request.headers) { |
14 var key = header[0], value = header[1]; | 25 var key = header[0], value = header[1]; |
15 headers[key] = value; | 26 headers[key] = value; |
16 } | 27 } |
17 var errorNameWhileAddingHeader = ''; | 28 var errorNameWhileAddingHeader = ''; |
18 try { | 29 try { |
19 e.request.headers.append('Test-Header', 'TestValue'); | 30 e.request.headers.append('Test-Header', 'TestValue'); |
20 } catch (e) { | 31 } catch (e) { |
21 errorNameWhileAppendingHeader = e.name; | 32 errorNameWhileAppendingHeader = e.name; |
22 } | 33 } |
23 port.postMessage({ | 34 port.postMessage({ |
24 url: e.request.url, | 35 url: e.request.url, |
25 mode: e.request.mode, | 36 mode: e.request.mode, |
26 method: e.request.method, | 37 method: e.request.method, |
27 referrer: e.request.referrer, | 38 referrer: e.request.referrer, |
28 headers: headers, | 39 headers: headers, |
29 headerSize: e.request.headers.size, | 40 headerSize: e.request.headers.size, |
30 errorNameWhileAppendingHeader: errorNameWhileAppendingHeader | 41 errorNameWhileAppendingHeader: errorNameWhileAppendingHeader |
31 }); | 42 }); |
32 }; | 43 }; |
OLD | NEW |