| Index: third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/resources/clients-get-worker.js
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/resources/clients-get-worker.js b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/resources/clients-get-worker.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9ac2c22645897ad1f15c19170b635cb4b3db077c
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/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) {
|
| + 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') {
|
| + 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);
|
| + });
|
| + }
|
| +};
|
|
|