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

Side by Side Diff: chrome/test/data/extensions/api_test/service_worker/sync/page.js

Issue 1812503002: Fix race in ServiceWorkerBackgroundSyncTest.Sync (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Verify messages Created 4 years, 9 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/test/data/extensions/api_test/service_worker/sync/sw.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 var registerSyncOnServiceWorker = new Promise(function(resolve, reject) { 5 var registerSyncOnServiceWorker = new Promise(function(resolve, reject) {
6 var serviceWorker; 6 var serviceWorker;
7 navigator.serviceWorker.register('sw.js').then(function() { 7 navigator.serviceWorker.register('sw.js').then(function() {
8 // Wait until the service worker is active. 8 // Wait until the service worker is active.
9 return navigator.serviceWorker.ready; 9 return navigator.serviceWorker.ready;
10 }).then(function(registration) { 10 }).then(function(registration) {
11 serviceWorker = registration.active; 11 serviceWorker = registration.active;
12 return registration.sync.register('send-chats'); 12 return registration.sync.register('send-chats');
13 }).then(function() { 13 }).then(function() {
14 resolve(serviceWorker); 14 resolve(serviceWorker);
15 }).catch(function(err) { 15 }).catch(function(err) {
16 reject(err); 16 reject(err);
17 }); 17 });
18 }); 18 });
19 19
20 window.runServiceWorker = function() { 20 window.runServiceWorker = function() {
21 registerSyncOnServiceWorker.then(function(serviceWorker) { 21 registerSyncOnServiceWorker.then(function(serviceWorker) {
22 var mc = new MessageChannel(); 22 var mc = new MessageChannel();
23 // Called when ServiceWorker.onsync fires. 23 // Called when ServiceWorker.onsync fires.
24 mc.port1.onmessage = function(e) { 24 mc.port1.onmessage = function(e) {
25 if (e.data == 'connected') {
26 window.domAutomationController.send('SERVICE_WORKER_READY');
27 return;
28 }
25 if (e.data != 'SYNC: send-chats') { 29 if (e.data != 'SYNC: send-chats') {
26 console.log('SW returned incorrect data: ' + e.data); 30 console.log('SW returned incorrect data: ' + e.data);
27 chrome.test.sendMessage('FAIL'); // Fails the test fast. 31 chrome.test.sendMessage('FAIL'); // Fails the test fast.
28 return; 32 return;
29 } 33 }
30 chrome.test.sendMessage(e.data); 34 chrome.test.sendMessage(e.data);
31 }; 35 };
32 serviceWorker.postMessage('connect', [mc.port2]); 36 serviceWorker.postMessage('connect', [mc.port2]);
33 window.domAutomationController.send('SERVICE_WORKER_READY');
34 }).catch(function(err) { 37 }).catch(function(err) {
35 window.domAutomationController.send(err); 38 window.domAutomationController.send(err);
36 }); 39 });
37 }; 40 };
OLDNEW
« no previous file with comments | « no previous file | chrome/test/data/extensions/api_test/service_worker/sync/sw.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698