OLD | NEW |
---|---|
1 var port = null; | 1 get_message().then(client_navigate); |
nhiroki
2016/01/25 09:50:31
This worker can be terminated before "client_navig
zino
2016/01/29 05:36:38
Done.
| |
2 | 2 |
3 self.onmessage = function(e) { | 3 function get_message() { |
4 port = e.data.port; | 4 return new Promise(function(resolve) { |
5 port.onmessage = on_message; | 5 self.addEventListener('message', function(e) { |
nhiroki
2016/01/25 09:50:31
"self.addEventListener('message', resolve)"
zino
2016/01/29 05:36:38
Done.
| |
6 port.postMessage('ready'); | 6 resolve(e); |
7 }; | 7 }); |
8 | |
9 function on_message(e) { | |
10 var url = e.data; | |
11 var client; | |
12 | |
13 self.clients.matchAll({ includeUncontrolled : true }).then(function(cs) { | |
14 cs.forEach(function(c) { c.frameType == 'nested' && (client = c); }); | |
15 return client.navigate(url); | |
16 }) | |
17 .then(function(c) { | |
18 if (!c) | |
19 port.postMessage(c); | |
20 else | |
21 port.postMessage(c.url); | |
22 }) | |
23 .catch(function(e) { | |
24 port.postMessage(e.name); | |
25 }); | 8 }); |
26 } | 9 } |
10 | |
11 function client_navigate(e) | |
12 { | |
13 console.log(e); | |
nhiroki
2016/01/25 09:50:31
Can you remove this?
zino
2016/01/29 05:36:38
Done.
| |
14 var port = e.data.port; | |
15 var url = e.data.url; | |
16 | |
17 return clients.matchAll({ includeUncontrolled : true }) | |
18 .then(function(client_list) { | |
19 for (var i = 0; i < client_list.length; i++) { | |
20 var client = client_list[i]; | |
21 if (client.frameType == 'nested') | |
22 return client.navigate(url); | |
23 } | |
24 }) | |
25 .then(function(new_client) { | |
26 if (new_client === null) | |
27 port.postMessage(new_client); | |
28 else | |
29 port.postMessage(new_client.url); | |
30 }) | |
31 .catch(function(error) { | |
32 port.postMessage(error.name); | |
33 }); | |
34 } | |
OLD | NEW |