Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/clients-get-worker.js |
| diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/clients-get-worker.js b/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/clients-get-worker.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..9ac2c22645897ad1f15c19170b635cb4b3db077c |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/clients-get-worker.js |
| @@ -0,0 +1,53 @@ |
| +self.onfetch = function(e) { |
| + if (e.request.url.indexOf("clients-get-frame.html") >= 0) { |
| + if (e.clientId === null) { |
|
nhiroki
2016/02/08 06:27:03
Can you add a comment like this?
// On navigation
jungkees
2016/02/12 15:03:22
Done.
|
| + e.respondWith(fetch(e.request)); |
| + } else { |
| + e.respondWith(Response.error()); |
| + } |
| + return; |
| + } |
| + e.respondWith(new Response(e.clientId)); |
| +}; |
| + |
| +self.onmessage = function(e) { |
| + var port = e.data.port; |
| + if (e.data.message == 'get_client_ids') { |
|
nhiroki
2016/02/08 06:27:03
The first if-block is almost equal to the second e
jungkees
2016/02/12 15:03:22
I merged them but posted undefined instead of [und
|
| + var clientIds = e.data.clientIds; |
| + var message = []; |
| + |
| + Promise.all( |
| + clientIds.map(function(clientId) { |
| + return self.clients.get(clientId); |
| + }).concat(self.clients.get("invalid-id")) |
| + ).then(function(clients) { |
| + clients.forEach(function(client) { |
| + if (client instanceof Client) { |
| + message.push([client.visibilityState, |
| + client.focused, |
| + client.url, |
| + client.frameType]); |
| + } else { |
| + message.push(client); |
| + } |
| + }); |
| + port.postMessage(message); |
| + }); |
| + } else if (e.data.message == 'get_other_client_id') { |
| + var clientId = e.data.clientId; |
| + var message; |
| + |
| + self.clients.get(clientId) |
| + .then(function(client) { |
| + if (client instanceof Client) { |
| + message = [client.visibilityState, |
| + client.focused, |
| + client.url, |
| + client.frameType]; |
| + } else { |
| + message = client; |
| + } |
| + port.postMessage(message); |
| + }); |
| + } |
| +}; |