| OLD | NEW |
| 1 var port = undefined; | 1 'use strict'; |
| 2 // Create a then-able object that is never resolved. | |
| 3 function createPending() { | |
| 4 return { then: createPending }; | |
| 5 } | |
| 6 | |
| 7 onmessage = function(e) { | |
| 8 var message = e.data; | |
| 9 if (typeof message === 'object' && 'port' in message) { | |
| 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()); | |
| 18 } | |
| 19 }; | |
| 20 | 2 |
| 21 onfetch = function(e) { | 3 onfetch = function(e) { |
| 22 var headers = {}; | 4 var headers = {}; |
| 23 var errorNameWhileAppendingHeader; | |
| 24 for (var header of e.request.headers) { | 5 for (var header of e.request.headers) { |
| 25 var key = header[0], value = header[1]; | 6 var key = header[0], value = header[1]; |
| 26 headers[key] = value; | 7 headers[key] = value; |
| 27 } | 8 } |
| 28 var errorNameWhileAddingHeader = ''; | 9 var append_header_error = ''; |
| 29 try { | 10 try { |
| 30 e.request.headers.append('Test-Header', 'TestValue'); | 11 e.request.headers.append('Test-Header', 'TestValue'); |
| 31 } catch (e) { | 12 } catch (error) { |
| 32 errorNameWhileAppendingHeader = e.name; | 13 append_header_error = error.name; |
| 33 } | 14 } |
| 34 port.postMessage({ | 15 |
| 35 url: e.request.url, | 16 var request_construct_error = ''; |
| 36 mode: e.request.mode, | 17 try { |
| 37 method: e.request.method, | 18 new Request(e.request, {method: 'GET'}); |
| 38 referrer: e.request.referrer, | 19 } catch (error) { |
| 39 headers: headers, | 20 request_construct_error = error.name; |
| 40 headerSize: e.request.headers.size, | 21 } |
| 41 errorNameWhileAppendingHeader: errorNameWhileAppendingHeader | 22 |
| 42 }); | 23 e.respondWith(new Response(JSON.stringify({ |
| 24 url: e.request.url, |
| 25 method: e.request.method, |
| 26 referrer: e.request.referrer, |
| 27 headers: headers, |
| 28 mode: e.request.mode, |
| 29 credentials: e.request.credentials, |
| 30 redirect: e.request.redirect, |
| 31 append_header_error: append_header_error, |
| 32 request_construct_error: request_construct_error |
| 33 }))); |
| 43 }; | 34 }; |
| OLD | NEW |