Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/windowclient-navigate-worker.js |
| diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/windowclient-navigate-worker.js b/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/windowclient-navigate-worker.js |
| index b155d62f92a725a13da45f4fc94aeb58615e8641..18173d8bdf58a16f02309006d12f79c2b1bd6f8d 100644 |
| --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/windowclient-navigate-worker.js |
| +++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/windowclient-navigate-worker.js |
| @@ -1,26 +1,34 @@ |
| -var port = null; |
| +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.
|
| -self.onmessage = function(e) { |
| - port = e.data.port; |
| - port.onmessage = on_message; |
| - port.postMessage('ready'); |
| -}; |
| +function get_message() { |
| + return new Promise(function(resolve) { |
| + self.addEventListener('message', function(e) { |
|
nhiroki
2016/01/25 09:50:31
"self.addEventListener('message', resolve)"
zino
2016/01/29 05:36:38
Done.
|
| + resolve(e); |
| + }); |
| + }); |
| +} |
| -function on_message(e) { |
| - var url = e.data; |
| - var client; |
| +function client_navigate(e) |
| +{ |
| + console.log(e); |
|
nhiroki
2016/01/25 09:50:31
Can you remove this?
zino
2016/01/29 05:36:38
Done.
|
| + var port = e.data.port; |
| + var url = e.data.url; |
| - self.clients.matchAll({ includeUncontrolled : true }).then(function(cs) { |
| - cs.forEach(function(c) { c.frameType == 'nested' && (client = c); }); |
| - return client.navigate(url); |
| + return clients.matchAll({ includeUncontrolled : true }) |
| + .then(function(client_list) { |
| + for (var i = 0; i < client_list.length; i++) { |
| + var client = client_list[i]; |
| + if (client.frameType == 'nested') |
| + return client.navigate(url); |
| + } |
| }) |
| - .then(function(c) { |
| - if (!c) |
| - port.postMessage(c); |
| + .then(function(new_client) { |
| + if (new_client === null) |
| + port.postMessage(new_client); |
| else |
| - port.postMessage(c.url); |
| + port.postMessage(new_client.url); |
| }) |
| - .catch(function(e) { |
| - port.postMessage(e.name); |
| + .catch(function(error) { |
| + port.postMessage(error.name); |
| }); |
| } |