OLD | NEW |
1 function get_query_params(url) { | 1 function get_query_params(url) { |
2 var search = (new URL(url)).search; | 2 var search = (new URL(url)).search; |
3 if (!search) { | 3 if (!search) { |
4 return {}; | 4 return {}; |
5 } | 5 } |
6 var ret = {}; | 6 var ret = {}; |
7 var params = search.substring(1).split('&'); | 7 var params = search.substring(1).split('&'); |
8 params.forEach(function(param) { | 8 params.forEach(function(param) { |
9 var element = param.split('='); | 9 var element = param.split('='); |
10 ret[decodeURIComponent(element[0])] = decodeURIComponent(element[1]); | 10 ret[decodeURIComponent(element[0])] = decodeURIComponent(element[1]); |
11 }); | 11 }); |
12 return ret; | 12 return ret; |
13 } | 13 } |
14 | 14 |
15 function get_request_init(params) { | 15 function get_request_init(params) { |
16 var init = {}; | 16 var init = {}; |
17 if (params['method']) { | 17 if (params['method']) { |
18 init['method'] = params['method']; | 18 init['method'] = params['method']; |
19 } | 19 } |
20 if (params['mode']) { | 20 if (params['mode']) { |
21 init['mode'] = params['mode']; | 21 init['mode'] = params['mode']; |
22 } | 22 } |
23 if (params['credentials']) { | 23 if (params['credentials']) { |
24 init['credentials'] = params['credentials']; | 24 init['credentials'] = params['credentials']; |
25 } | 25 } |
| 26 if (params['redirect-mode']) { |
| 27 init['redirect'] = params['redirect-mode']; |
| 28 } |
26 return init; | 29 return init; |
27 } | 30 } |
28 | 31 |
29 self.addEventListener('fetch', function(event) { | 32 self.addEventListener('fetch', function(event) { |
30 var params = get_query_params(event.request.url); | 33 var params = get_query_params(event.request.url); |
31 var init = get_request_init(params); | 34 var init = get_request_init(params); |
32 var url = params['url']; | 35 var url = params['url']; |
33 if (params['ignore']) { | 36 if (params['ignore']) { |
34 return; | 37 return; |
35 } | 38 } |
(...skipping 22 matching lines...) Expand all Loading... |
58 return; | 61 return; |
59 } | 62 } |
60 event.respondWith(new Promise(function(resolve, reject) { | 63 event.respondWith(new Promise(function(resolve, reject) { |
61 var request = event.request; | 64 var request = event.request; |
62 if (url) { | 65 if (url) { |
63 request = new Request(url, init); | 66 request = new Request(url, init); |
64 } | 67 } |
65 fetch(request).then(resolve, reject); | 68 fetch(request).then(resolve, reject); |
66 })); | 69 })); |
67 }); | 70 }); |
OLD | NEW |