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

Side by Side Diff: chrome/test/data/notifications/notification_test_utils.js

Issue 1082273003: Fix NotificationUIManagerTest::testShowAndCloseMultipleNotifications. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@n-db-Integrate
Patch Set: Created 5 years, 8 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 | « chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationUIManagerTest.java ('k') | no next file » | 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 g_activated_service_worker_promise = null;
Michael van Ouwerkerk 2015/04/15 11:02:09 nit: use camelCase for js, the entire language is
Peter Beverloo 2015/04/15 17:13:35 Done.
6
5 // Returns a promise that will be resolved with an activated Service 7 // Returns a promise that will be resolved with an activated Service
6 // Worker, or rejects when the Service Worker could not be started. There 8 // Worker, or rejects when the Service Worker could not be started. There
7 // will be a message port to and from the worker in |messagePort|. 9 // will be a message port to and from the worker in |messagePort|.
8 function GetActivatedServiceWorker(script, scope) { 10 function GetActivatedServiceWorker(script, scope) {
9 return navigator.serviceWorker.getRegistration(scope) 11 if (g_activated_service_worker_promise == null) {
10 .then(function(registration) { 12 g_activated_service_worker_promise =
11 // Unregister any existing Service Worker. 13 navigator.serviceWorker.getRegistration(scope)
12 if (registration) 14 .then(function(registration) {
13 return registration.unregister(); 15 // Unregister any existing Service Worker.
14 }).then(function() { 16 if (registration)
15 // Register the Service Worker again. 17 return registration.unregister();
16 return navigator.serviceWorker.register(script, { scope: scope }); 18 }).then(function() {
17 }).then(function(registration) { 19 // Register the Service Worker again.
18 if (registration.active) { 20 return navigator.serviceWorker.register(script, { scope: scope });
19 return registration; 21 }).then(function(registration) {
20 } else if (registration.waiting || registration.installing) { 22 if (registration.active) {
21 var worker = registration.waiting || registration.installing; 23 return registration;
24 } else if (registration.waiting || registration.installing) {
25 var worker = registration.waiting || registration.installing;
26 return new Promise(function(resolve) {
27 worker.addEventListener('statechange', function () {
28 if (worker.state === 'activated')
29 resolve(registration);
30 });
31 });
32 } else {
33 return Promise.reject('Service Worker in invalid state.');
34 }
35 }).then(function(registration) {
22 return new Promise(function(resolve) { 36 return new Promise(function(resolve) {
23 worker.addEventListener('statechange', function () { 37 var channel = new MessageChannel();
24 if (worker.state === 'activated') 38 channel.port1.addEventListener('message', function(event) {
39 if (event.data == 'ready')
25 resolve(registration); 40 resolve(registration);
26 }); 41 });
42
43 registration.active.postMessage(channel.port2,
44 [ channel.port2 ]);
45
46 messagePort = channel.port1;
47 messagePort.start();
27 }); 48 });
28 } else { 49 });
29 return Promise.reject('Service Worker in invalid state.'); 50 }
30 }
31 }).then(function(registration) {
32 return new Promise(function(resolve) {
33 var channel = new MessageChannel();
34 channel.port1.addEventListener('message', function(event) {
35 if (event.data == 'ready')
36 resolve(registration);
37 });
38 51
39 registration.active.postMessage(channel.port2, 52 return g_activated_service_worker_promise;
40 [ channel.port2 ]);
41
42 messagePort = channel.port1;
43 messagePort.start();
44 });
45 });
46 } 53 }
OLDNEW
« no previous file with comments | « chrome/android/javatests/src/org/chromium/chrome/browser/notifications/NotificationUIManagerTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698