Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Unified Diff: third_party/WebKit/LayoutTests/imported/wpt/service-workers/service-worker/resources/clients-get-worker.js

Issue 2415873002: Import w3c tests for the service workers (Closed)
Patch Set: Rebase Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+ });
+ }
+};

Powered by Google App Engine
This is Rietveld 408576698