OLD | NEW |
---|---|
1 function handleString(event) { | 1 function handleString(event) { |
2 event.respondWith(new Response('Test string')); | 2 event.respondWith(new Response('Test string')); |
3 } | 3 } |
4 | 4 |
5 function handleBlob(event) { | 5 function handleBlob(event) { |
6 event.respondWith(new Response(new Blob(['Test blob']))); | 6 event.respondWith(new Response(new Blob(['Test blob']))); |
7 } | 7 } |
8 | 8 |
9 function handleReferrer(event) { | 9 function handleReferrer(event) { |
10 event.respondWith(new Response(new Blob( | 10 event.respondWith(new Response(new Blob( |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
63 event.respondWith(fetch('other.html').then(function(response) { | 63 event.respondWith(fetch('other.html').then(function(response) { |
64 lastResponseForUsedCheck = response; | 64 lastResponseForUsedCheck = response; |
65 return response; | 65 return response; |
66 })); | 66 })); |
67 } else { | 67 } else { |
68 event.respondWith(new Response( | 68 event.respondWith(new Response( |
69 'bodyUsed: ' + lastResponseForUsedCheck.bodyUsed)); | 69 'bodyUsed: ' + lastResponseForUsedCheck.bodyUsed)); |
70 } | 70 } |
71 } | 71 } |
72 | 72 |
73 function handleHeaders(event) { | |
74 var headers = []; | |
75 for (var header of event.request.headers) { | |
76 headers.push(header); | |
77 } | |
78 event.respondWith(new Response(JSON.stringify(headers))); | |
yhirano
2016/07/19 07:28:40
You can use Array.from(event.request.headers).
tyoshino (SeeGerritForStatus)
2016/07/19 08:50:31
Done.
| |
79 } | |
80 | |
73 self.addEventListener('fetch', function(event) { | 81 self.addEventListener('fetch', function(event) { |
74 var url = event.request.url; | 82 var url = event.request.url; |
75 var handlers = [ | 83 var handlers = [ |
76 { pattern: '?string', fn: handleString }, | 84 { pattern: '?string', fn: handleString }, |
77 { pattern: '?blob', fn: handleBlob }, | 85 { pattern: '?blob', fn: handleBlob }, |
78 { pattern: '?referrer', fn: handleReferrer }, | 86 { pattern: '?referrer', fn: handleReferrer }, |
79 { pattern: '?clientId', fn: handleClientId }, | 87 { pattern: '?clientId', fn: handleClientId }, |
80 { pattern: '?ignore', fn: function() {} }, | 88 { pattern: '?ignore', fn: function() {} }, |
81 { pattern: '?null', fn: handleNullBody }, | 89 { pattern: '?null', fn: handleNullBody }, |
82 { pattern: '?fetch', fn: handleFetch }, | 90 { pattern: '?fetch', fn: handleFetch }, |
83 { pattern: '?form-post', fn: handleFormPost }, | 91 { pattern: '?form-post', fn: handleFormPost }, |
84 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith }, | 92 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith }, |
85 { pattern: '?used-check', fn: handleUsedCheck } | 93 { pattern: '?used-check', fn: handleUsedCheck }, |
94 { pattern: '?headers', fn: handleHeaders } | |
86 ]; | 95 ]; |
87 | 96 |
88 var handler = null; | 97 var handler = null; |
89 for (var i = 0; i < handlers.length; ++i) { | 98 for (var i = 0; i < handlers.length; ++i) { |
90 if (url.indexOf(handlers[i].pattern) != -1) { | 99 if (url.indexOf(handlers[i].pattern) != -1) { |
91 handler = handlers[i]; | 100 handler = handlers[i]; |
92 break; | 101 break; |
93 } | 102 } |
94 } | 103 } |
95 | 104 |
96 if (handler) { | 105 if (handler) { |
97 handler.fn(event); | 106 handler.fn(event); |
98 } else { | 107 } else { |
99 event.respondWith(new Response(new Blob( | 108 event.respondWith(new Response(new Blob( |
100 ['Service Worker got an unexpected request: ' + url]))); | 109 ['Service Worker got an unexpected request: ' + url]))); |
101 } | 110 } |
102 }); | 111 }); |
OLD | NEW |