| 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)) |
| 11 params.origins = ['*']; | 11 params.origins = ['*']; |
| 12 event.registerForeignFetch(params); | 12 event.registerForeignFetch(params); |
| 13 }); | 13 }); |
| 14 | 14 |
| 15 function handle_basic(event) { | 15 function handle_basic(event) { |
| 16 event.respondWith({response: new Response('Foreign Fetch'), origin: event.orig
in}); | 16 event.respondWith({response: new Response('Foreign Fetch'), origin: event.orig
in}); |
| 17 } | 17 } |
| 18 | 18 |
| 19 function handle_null(event) { |
| 20 event.respondWith({response: null }); |
| 21 } |
| 22 |
| 19 function handle_onmessage(event) { | 23 function handle_onmessage(event) { |
| 20 event.respondWith({origin: event.origin, response: | 24 event.respondWith({origin: event.origin, response: |
| 21 new Response('<script>window.onmessage = e => e.ports[0].postMessage("failed
");</script>', | 25 new Response('<script>window.onmessage = e => e.ports[0].postMessage("failed
");</script>', |
| 22 {headers: {'Content-Type': 'text/html'}})}); | 26 {headers: {'Content-Type': 'text/html'}})}); |
| 23 } | 27 } |
| 24 | 28 |
| 25 function handle_fallback(event) { | 29 function handle_fallback(event) { |
| 26 // Do nothing. | 30 // Do nothing. |
| 27 } | 31 } |
| 28 | 32 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 42 | 46 |
| 43 function handle_script(event) { | 47 function handle_script(event) { |
| 44 event.respondWith({origin: event.origin, response: | 48 event.respondWith({origin: event.origin, response: |
| 45 new Response('self.DidLoad("Foreign Fetch");')}); | 49 new Response('self.DidLoad("Foreign Fetch");')}); |
| 46 } | 50 } |
| 47 | 51 |
| 48 self.addEventListener('foreignfetch', function(event) { | 52 self.addEventListener('foreignfetch', function(event) { |
| 49 var url = event.request.url; | 53 var url = event.request.url; |
| 50 var handlers = [ | 54 var handlers = [ |
| 51 { pattern: '?basic', fn: handle_basic }, | 55 { pattern: '?basic', fn: handle_basic }, |
| 56 { pattern: '?null', fn: handle_null }, |
| 52 { pattern: '?fallback', fn: handle_fallback }, | 57 { pattern: '?fallback', fn: handle_fallback }, |
| 53 { pattern: '?fetch', fn: handle_fetch }, | 58 { pattern: '?fetch', fn: handle_fetch }, |
| 54 { pattern: '?onmessage', fn: handle_onmessage }, | 59 { pattern: '?onmessage', fn: handle_onmessage }, |
| 55 { pattern: '?meta', fn: handle_meta }, | 60 { pattern: '?meta', fn: handle_meta }, |
| 56 { pattern: '?script', fn: handle_script } | 61 { pattern: '?script', fn: handle_script } |
| 57 ]; | 62 ]; |
| 58 | 63 |
| 59 var handler = null; | 64 var handler = null; |
| 60 for (var i = 0; i < handlers.length; ++i) { | 65 for (var i = 0; i < handlers.length; ++i) { |
| 61 if (url.indexOf(handlers[i].pattern) != -1) { | 66 if (url.indexOf(handlers[i].pattern) != -1) { |
| 62 handler = handlers[i]; | 67 handler = handlers[i]; |
| 63 break; | 68 break; |
| 64 } | 69 } |
| 65 } | 70 } |
| 66 | 71 |
| 67 if (handler) { | 72 if (handler) { |
| 68 handler.fn(event); | 73 handler.fn(event); |
| 69 } else { | 74 } else { |
| 70 event.respondWith({origin: event.origin, | 75 event.respondWith({origin: event.origin, |
| 71 response: new Response('unexpected request')}); | 76 response: new Response('unexpected request')}); |
| 72 } | 77 } |
| 73 }); | 78 }); |
| OLD | NEW |