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 handleReferrerPolicy(event) { |
| 15 event.respondWith(new Response(new Blob( |
| 16 ['ReferrerPolicy: ' + event.request.referrerPolicy]))); |
| 17 } |
| 18 |
| 19 function handleReferrerFull(event) { |
| 20 event.respondWith(new Response(new Blob( |
| 21 ['Referrer: ' + event.request.referrer + '\n' + |
| 22 'ReferrerPolicy: ' + event.request.referrerPolicy]))); |
| 23 } |
| 24 |
14 function handleClientId(event) { | 25 function handleClientId(event) { |
15 var body; | 26 var body; |
16 if (event.clientId !== null) { | 27 if (event.clientId !== null) { |
17 body = 'Client ID Found: ' + event.clientId; | 28 body = 'Client ID Found: ' + event.clientId; |
18 } else { | 29 } else { |
19 body = 'Client ID Not Found'; | 30 body = 'Client ID Not Found'; |
20 } | 31 } |
21 event.respondWith(new Response(body)); | 32 event.respondWith(new Response(body)); |
22 } | 33 } |
23 | 34 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 event.respondWith(fetch('other.html').then(function(response) { | 74 event.respondWith(fetch('other.html').then(function(response) { |
64 lastResponseForUsedCheck = response; | 75 lastResponseForUsedCheck = response; |
65 return response; | 76 return response; |
66 })); | 77 })); |
67 } else { | 78 } else { |
68 event.respondWith(new Response( | 79 event.respondWith(new Response( |
69 'bodyUsed: ' + lastResponseForUsedCheck.bodyUsed)); | 80 'bodyUsed: ' + lastResponseForUsedCheck.bodyUsed)); |
70 } | 81 } |
71 } | 82 } |
72 | 83 |
73 function handleHeaders(event) { | 84 function handleFragmentCheck(event) { |
74 const headers = Array.from(event.request.headers); | 85 var body; |
75 event.respondWith(new Response(JSON.stringify(headers))); | 86 if (event.request.url.indexOf('#') === -1) { |
| 87 body = 'Fragment Not Found'; |
| 88 } else { |
| 89 body = 'Fragment Found'; |
| 90 } |
| 91 event.respondWith(new Response(body)); |
| 92 } |
| 93 |
| 94 function handleCache(event) { |
| 95 event.respondWith(new Response(event.request.cache)); |
| 96 } |
| 97 |
| 98 function handleEventSource(event) { |
| 99 if (event.request.mode === 'navigate') { |
| 100 return; |
| 101 } |
| 102 var data = { |
| 103 mode: event.request.mode, |
| 104 cache: event.request.cache, |
| 105 credentials: event.request.credentials |
| 106 }; |
| 107 var body = 'data:' + JSON.stringify(data) + '\n\n'; |
| 108 event.respondWith(new Response(body, { |
| 109 headers: { 'Content-Type': 'text/event-stream' } |
| 110 } |
| 111 )); |
| 112 } |
| 113 |
| 114 function handleIntegrity(event) { |
| 115 event.respondWith(new Response(event.request.integrity)); |
76 } | 116 } |
77 | 117 |
78 self.addEventListener('fetch', function(event) { | 118 self.addEventListener('fetch', function(event) { |
79 var url = event.request.url; | 119 var url = event.request.url; |
80 var handlers = [ | 120 var handlers = [ |
81 { pattern: '?string', fn: handleString }, | 121 { pattern: '?string', fn: handleString }, |
82 { pattern: '?blob', fn: handleBlob }, | 122 { pattern: '?blob', fn: handleBlob }, |
| 123 { pattern: '?referrerFull', fn: handleReferrerFull }, |
| 124 { pattern: '?referrerPolicy', fn: handleReferrerPolicy }, |
83 { pattern: '?referrer', fn: handleReferrer }, | 125 { pattern: '?referrer', fn: handleReferrer }, |
84 { pattern: '?clientId', fn: handleClientId }, | 126 { pattern: '?clientId', fn: handleClientId }, |
85 { pattern: '?ignore', fn: function() {} }, | 127 { pattern: '?ignore', fn: function() {} }, |
86 { pattern: '?null', fn: handleNullBody }, | 128 { pattern: '?null', fn: handleNullBody }, |
87 { pattern: '?fetch', fn: handleFetch }, | 129 { pattern: '?fetch', fn: handleFetch }, |
88 { pattern: '?form-post', fn: handleFormPost }, | 130 { pattern: '?form-post', fn: handleFormPost }, |
89 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith }, | 131 { pattern: '?multiple-respond-with', fn: handleMultipleRespondWith }, |
90 { pattern: '?used-check', fn: handleUsedCheck }, | 132 { pattern: '?used-check', fn: handleUsedCheck }, |
91 { pattern: '?headers', fn: handleHeaders } | 133 { pattern: '?fragment-check', fn: handleFragmentCheck }, |
| 134 { pattern: '?cache', fn: handleCache }, |
| 135 { pattern: '?eventsource', fn: handleEventSource }, |
| 136 { pattern: '?integrity', fn: handleIntegrity }, |
92 ]; | 137 ]; |
93 | 138 |
94 var handler = null; | 139 var handler = null; |
95 for (var i = 0; i < handlers.length; ++i) { | 140 for (var i = 0; i < handlers.length; ++i) { |
96 if (url.indexOf(handlers[i].pattern) != -1) { | 141 if (url.indexOf(handlers[i].pattern) != -1) { |
97 handler = handlers[i]; | 142 handler = handlers[i]; |
98 break; | 143 break; |
99 } | 144 } |
100 } | 145 } |
101 | 146 |
102 if (handler) { | 147 if (handler) { |
103 handler.fn(event); | 148 handler.fn(event); |
104 } else { | 149 } else { |
105 event.respondWith(new Response(new Blob( | 150 event.respondWith(new Response(new Blob( |
106 ['Service Worker got an unexpected request: ' + url]))); | 151 ['Service Worker got an unexpected request: ' + url]))); |
107 } | 152 } |
108 }); | 153 }); |
OLD | NEW |