| 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 const headers = Array.from(event.request.headers); |
| 75 event.respondWith(new Response(JSON.stringify(headers))); |
| 76 } |
| 77 |
| 73 self.addEventListener('fetch', function(event) { | 78 self.addEventListener('fetch', function(event) { |
| 74 var url = event.request.url; | 79 var url = event.request.url; |
| 75 var handlers = [ | 80 var handlers = [ |
| 76 { pattern: '?string', fn: handleString }, | 81 { pattern: '?string', fn: handleString }, |
| 77 { pattern: '?blob', fn: handleBlob }, | 82 { pattern: '?blob', fn: handleBlob }, |
| 78 { pattern: '?referrer', fn: handleReferrer }, | 83 { pattern: '?referrer', fn: handleReferrer }, |
| 79 { pattern: '?clientId', fn: handleClientId }, | 84 { pattern: '?clientId', fn: handleClientId }, |
| 80 { pattern: '?ignore', fn: function() {} }, | 85 { pattern: '?ignore', fn: function() {} }, |
| 81 { pattern: '?null', fn: handleNullBody }, | 86 { pattern: '?null', fn: handleNullBody }, |
| 82 { pattern: '?fetch', fn: handleFetch }, | 87 { pattern: '?fetch', fn: handleFetch }, |
| 83 { pattern: '?form-post', fn: handleFormPost }, | 88 { pattern: '?form-post', fn: handleFormPost }, |
| 84 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith }, | 89 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith }, |
| 85 { pattern: '?used-check', fn: handleUsedCheck } | 90 { pattern: '?used-check', fn: handleUsedCheck }, |
| 91 { pattern: '?headers', fn: handleHeaders } |
| 86 ]; | 92 ]; |
| 87 | 93 |
| 88 var handler = null; | 94 var handler = null; |
| 89 for (var i = 0; i < handlers.length; ++i) { | 95 for (var i = 0; i < handlers.length; ++i) { |
| 90 if (url.indexOf(handlers[i].pattern) != -1) { | 96 if (url.indexOf(handlers[i].pattern) != -1) { |
| 91 handler = handlers[i]; | 97 handler = handlers[i]; |
| 92 break; | 98 break; |
| 93 } | 99 } |
| 94 } | 100 } |
| 95 | 101 |
| 96 if (handler) { | 102 if (handler) { |
| 97 handler.fn(event); | 103 handler.fn(event); |
| 98 } else { | 104 } else { |
| 99 event.respondWith(new Response(new Blob( | 105 event.respondWith(new Response(new Blob( |
| 100 ['Service Worker got an unexpected request: ' + url]))); | 106 ['Service Worker got an unexpected request: ' + url]))); |
| 101 } | 107 } |
| 102 }); | 108 }); |
| OLD | NEW |