OLD | NEW |
1 self.addEventListener('install', function(event) { | 1 self.addEventListener('install', function(event) { |
2 var params = JSON.parse(decodeURIComponent(location.search.substring(1))); | 2 var params = JSON.parse(decodeURIComponent(location.search.substring(1))); |
3 if (!('scopes' in params)) { | 3 if (!('scopes' in params)) { |
4 if ('relscopes' in params) { | 4 if ('relscopes' in params) { |
5 params.scopes = params.relscopes.map(s => registration.scope + s); | 5 params.scopes = params.relscopes.map(s => registration.scope + s); |
6 } else { | 6 } else { |
7 params.scopes = [registration.scope]; | 7 params.scopes = [registration.scope]; |
8 } | 8 } |
9 } | 9 } |
10 if (!('origins' in params)) | 10 if (!('origins' in params)) |
(...skipping 17 matching lines...) Expand all Loading... |
28 | 28 |
29 function handle_meta(event) { | 29 function handle_meta(event) { |
30 var data = { | 30 var data = { |
31 origin: event.origin, | 31 origin: event.origin, |
32 referrer: event.request.referrer | 32 referrer: event.request.referrer |
33 }; | 33 }; |
34 event.respondWith({response: new Response(JSON.stringify(data)), | 34 event.respondWith({response: new Response(JSON.stringify(data)), |
35 origin: event.origin}); | 35 origin: event.origin}); |
36 } | 36 } |
37 | 37 |
| 38 function handle_script(event) { |
| 39 event.respondWith({origin: event.origin, response: |
| 40 new Response('self.DidLoad("Foreign Fetch");')}); |
| 41 } |
| 42 |
38 self.addEventListener('foreignfetch', function(event) { | 43 self.addEventListener('foreignfetch', function(event) { |
39 var url = event.request.url; | 44 var url = event.request.url; |
40 var handlers = [ | 45 var handlers = [ |
41 { pattern: '?basic', fn: handle_basic }, | 46 { pattern: '?basic', fn: handle_basic }, |
42 { pattern: '?fallback', fn: handle_fallback }, | 47 { pattern: '?fallback', fn: handle_fallback }, |
43 { pattern: '?onmessage', fn: handle_onmessage }, | 48 { pattern: '?onmessage', fn: handle_onmessage }, |
44 { pattern: '?meta', fn: handle_meta } | 49 { pattern: '?meta', fn: handle_meta }, |
| 50 { pattern: '?script', fn: handle_script } |
45 ]; | 51 ]; |
46 | 52 |
47 var handler = null; | 53 var handler = null; |
48 for (var i = 0; i < handlers.length; ++i) { | 54 for (var i = 0; i < handlers.length; ++i) { |
49 if (url.indexOf(handlers[i].pattern) != -1) { | 55 if (url.indexOf(handlers[i].pattern) != -1) { |
50 handler = handlers[i]; | 56 handler = handlers[i]; |
51 break; | 57 break; |
52 } | 58 } |
53 } | 59 } |
54 | 60 |
55 if (handler) { | 61 if (handler) { |
56 handler.fn(event); | 62 handler.fn(event); |
57 } else { | 63 } else { |
58 event.respondWith(new Response('unexpected request')); | 64 event.respondWith({origin: event.origin, |
| 65 response: new Response('unexpected request')}); |
59 } | 66 } |
60 }); | 67 }); |
OLD | NEW |