| 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( |
| 11 ['Referrer: ' + event.request.referrer]))); | 11 ['Referrer: ' + event.request.referrer]))); |
| 12 } | 12 } |
| 13 | 13 |
| 14 function handleNullBody(event) { | 14 function handleNullBody(event) { |
| 15 event.respondWith(new Response(null)); | 15 event.respondWith(new Response(null)); |
| 16 } | 16 } |
| 17 | 17 |
| 18 function handleReject(event) { | |
| 19 event.respondWith(new Promise(function(resolve, reject) { | |
| 20 reject('rejected!'); | |
| 21 })); | |
| 22 } | |
| 23 | |
| 24 function handleFetch(event) { | 18 function handleFetch(event) { |
| 25 event.respondWith(fetch('other.html')); | 19 event.respondWith(fetch('other.html')); |
| 26 } | 20 } |
| 27 | 21 |
| 28 function handleFormPost(event) { | 22 function handleFormPost(event) { |
| 29 event.respondWith(new Promise(function(resolve) { | 23 event.respondWith(new Promise(function(resolve) { |
| 30 event.request.text() | 24 event.request.text() |
| 31 .then(function(result) { | 25 .then(function(result) { |
| 32 resolve(new Response(event.request.method + ':' + result)); | 26 resolve(new Response(event.request.method + ':' + result)); |
| 33 }) | 27 }) |
| (...skipping 14 matching lines...) Expand all Loading... |
| 48 } | 42 } |
| 49 | 43 |
| 50 self.addEventListener('fetch', function(event) { | 44 self.addEventListener('fetch', function(event) { |
| 51 var url = event.request.url; | 45 var url = event.request.url; |
| 52 var handlers = [ | 46 var handlers = [ |
| 53 { pattern: '?string', fn: handleString }, | 47 { pattern: '?string', fn: handleString }, |
| 54 { pattern: '?blob', fn: handleBlob }, | 48 { pattern: '?blob', fn: handleBlob }, |
| 55 { pattern: '?referrer', fn: handleReferrer }, | 49 { pattern: '?referrer', fn: handleReferrer }, |
| 56 { pattern: '?ignore', fn: function() {} }, | 50 { pattern: '?ignore', fn: function() {} }, |
| 57 { pattern: '?null', fn: handleNullBody }, | 51 { pattern: '?null', fn: handleNullBody }, |
| 58 { pattern: '?reject', fn: handleReject }, | |
| 59 { pattern: '?fetch', fn: handleFetch }, | 52 { pattern: '?fetch', fn: handleFetch }, |
| 60 { pattern: '?form-post', fn: handleFormPost }, | 53 { pattern: '?form-post', fn: handleFormPost }, |
| 61 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith } | 54 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith } |
| 62 ]; | 55 ]; |
| 63 | 56 |
| 64 var handler = null; | 57 var handler = null; |
| 65 for (var i = 0; i < handlers.length; ++i) { | 58 for (var i = 0; i < handlers.length; ++i) { |
| 66 if (url.indexOf(handlers[i].pattern) != -1) { | 59 if (url.indexOf(handlers[i].pattern) != -1) { |
| 67 handler = handlers[i]; | 60 handler = handlers[i]; |
| 68 break; | 61 break; |
| 69 } | 62 } |
| 70 } | 63 } |
| 71 | 64 |
| 72 if (handler) { | 65 if (handler) { |
| 73 handler.fn(event); | 66 handler.fn(event); |
| 74 } else { | 67 } else { |
| 75 event.respondWith(new Response(new Blob( | 68 event.respondWith(new Response(new Blob( |
| 76 ['Service Worker got an unexpected request: ' + url]))); | 69 ['Service Worker got an unexpected request: ' + url]))); |
| 77 } | 70 } |
| 78 }); | 71 }); |
| OLD | NEW |