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

Side by Side Diff: LayoutTests/http/tests/serviceworker/resources/extendable-event-waituntil.js

Issue 435453002: [ServiceWorker] Update formatting for tests. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 var pendingPorts = []; 1 var pendingPorts = [];
2 var portResolves = []; 2 var portResolves = [];
3 3
4 onmessage = function(e) { 4 onmessage = function(e) {
5 var message = e.data; 5 var message = e.data;
6 if ('port' in message) { 6 if ('port' in message) {
7 var resolve = self.portResolves.shift(); 7 var resolve = self.portResolves.shift();
8 if (resolve) 8 if (resolve)
9 resolve(message.port); 9 resolve(message.port);
10 else 10 else
11 self.pendingPorts.push(message.port); 11 self.pendingPorts.push(message.port);
12 } 12 }
13 }; 13 };
14 14
15 function fulfillPromise() { 15 function fulfillPromise() {
16 return new Promise(function(resolve) { 16 return new Promise(function(resolve) {
17 // Make sure the oninstall/onactivate callback returns first. 17 // Make sure the oninstall/onactivate callback returns first.
18 Promise.resolve().then(function() { 18 Promise.resolve().then(function() {
19 var port = self.pendingPorts.shift(); 19 var port = self.pendingPorts.shift();
20 if (port) 20 if (port)
21 resolve(port); 21 resolve(port);
22 else 22 else
23 self.portResolves.push(resolve); 23 self.portResolves.push(resolve);
24 }); 24 });
25 }).then(function(port) { 25 }).then(function(port) {
26 port.postMessage('SYNC'); 26 port.postMessage('SYNC');
27 return new Promise(function(resolve) { 27 return new Promise(function(resolve) {
28 port.onmessage = function(e) { 28 port.onmessage = function(e) {
29 if (e.data == 'ACK') 29 if (e.data == 'ACK')
30 resolve(); 30 resolve();
31 }; 31 };
32 }); 32 });
33 }); 33 });
34 } 34 }
35 35
36 function rejectPromise() { 36 function rejectPromise() {
37 return new Promise(function(resolve, reject) { 37 return new Promise(function(resolve, reject) {
38 // Make sure the oninstall/onactivate callback returns first. 38 // Make sure the oninstall/onactivate callback returns first.
39 Promise.resolve().then(reject); 39 Promise.resolve().then(reject);
40 }); 40 });
41 } 41 }
42 42
43 function stripScopeName(scope) { 43 function stripScopeName(scope) {
44 return scope.split('/').slice(-1)[0]; 44 return scope.split('/').slice(-1)[0];
45 } 45 }
46 46
47 oninstall = function(e) { 47 oninstall = function(e) {
48 switch (stripScopeName(self.scope)) { 48 switch (stripScopeName(self.scope)) {
49 case 'install-fulfilled': 49 case 'install-fulfilled':
50 e.waitUntil(fulfillPromise()); 50 e.waitUntil(fulfillPromise());
51 break; 51 break;
52 case 'install-rejected': 52 case 'install-rejected':
53 e.waitUntil(rejectPromise()); 53 e.waitUntil(rejectPromise());
54 break; 54 break;
55 } 55 }
56 }; 56 };
57 57
58 onactivate = function(e) { 58 onactivate = function(e) {
59 switch (stripScopeName(self.scope)) { 59 switch (stripScopeName(self.scope)) {
60 case 'activate-fulfilled': 60 case 'activate-fulfilled':
61 e.waitUntil(fulfillPromise()); 61 e.waitUntil(fulfillPromise());
62 break; 62 break;
63 case 'activate-rejected': 63 case 'activate-rejected':
64 e.waitUntil(rejectPromise()); 64 e.waitUntil(rejectPromise());
65 break; 65 break;
66 case 'activate-multiple-fulfilled': 66 case 'activate-multiple-fulfilled':
67 e.waitUntil(fulfillPromise()); 67 e.waitUntil(fulfillPromise());
68 e.waitUntil(fulfillPromise()); 68 e.waitUntil(fulfillPromise());
69 break; 69 break;
70 case 'activate-reject-precedence': 70 case 'activate-reject-precedence':
71 e.waitUntil(fulfillPromise()); 71 e.waitUntil(fulfillPromise());
72 e.waitUntil(rejectPromise()); 72 e.waitUntil(rejectPromise());
73 break; 73 break;
74 } 74 }
75 }; 75 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698