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

Side by Side Diff: third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/extendable-event-async-waituntil.js

Issue 2877543003: [ServiceWorker] Allow waitUntil to be called multiple times asynchronously (Closed)
Patch Set: Address comments from shimazu@ Created 3 years, 7 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
OLDNEW
1 // controlled by 'init'/'done' messages. 1 // controlled by 'init'/'done' messages.
2 var resolveLockPromise; 2 var resolveLockPromise;
3 var port; 3 var port;
4 4
5 self.addEventListener('message', function(event) { 5 self.addEventListener('message', function(event) {
6 var waitPromise; 6 var waitPromise;
7 var resolveTestPromise; 7 var resolveTestPromise;
8 8
9 switch (event.data.step) { 9 switch (event.data.step) {
10 case 'init': 10 case 'init':
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 async_task_waituntil(event).then(reportResultExpecting('InvalidStateErro r')); 43 async_task_waituntil(event).then(reportResultExpecting('InvalidStateErro r'));
44 break; 44 break;
45 case 'script-extendable-event': 45 case 'script-extendable-event':
46 new_event_waituntil().then(reportResultExpecting('InvalidStateError')); 46 new_event_waituntil().then(reportResultExpecting('InvalidStateError'));
47 break; 47 break;
48 } 48 }
49 event.source.postMessage('ACK'); 49 event.source.postMessage('ACK');
50 }); 50 });
51 51
52 self.addEventListener('fetch', function(event) { 52 self.addEventListener('fetch', function(event) {
53 var resolveFetch; 53 if (event.request.url.indexOf('pending-respondwith-async-waituntil') != -1) {
54 let response = new Promise((res) => { resolveFetch = res; }); 54 var resolveFetch;
55 event.respondWith(response); 55 let response = new Promise((res) => { resolveFetch = res; });
56 async_task_waituntil(event) 56 event.respondWith(response);
57 .then(reportResultExpecting('OK')) 57 async_task_waituntil(event)
58 .then(() => { resolveFetch(new Response('OK')); }); 58 .then(reportResultExpecting('OK'))
59 .then(() => { resolveFetch(new Response('OK')); });
60 } else if (event.request.url.endsWith('respondwith-microtask-sync-waituntil' ) != -1) {
61 event.respondWith(Promise.resolve().then(() => {
62 sync_waituntil(event).then(reportResultExpecting('OK'));
63 return new Response('OK');
64 }));
falken 2017/05/24 08:24:18 did these tests catch an implementation bug? i wo
leonhsl(Using Gerrit) 2017/05/25 00:16:39 I thought test coverage for respondWith is not eno
leonhsl(Using Gerrit) 2017/05/25 06:43:55 Done.
65 } else if (event.request.url.endsWith('respondwith-microtask-async-waituntil ') != -1) {
66 event.respondWith(Promise.resolve().then(() => {
67 async_microtask_waituntil(event).then(reportResultExpecting('OK'));
68 return new Response('OK');
69 }));
falken 2017/05/24 08:24:18 nit: indentation looks wrong, 62-63 and 67-68 shou
leonhsl(Using Gerrit) 2017/05/25 00:16:39 Acknowledged.
70 }
59 }); 71 });
60 72
61 function reportResultExpecting(expectedResult) { 73 function reportResultExpecting(expectedResult) {
62 return function (result) { 74 return function (result) {
63 port.postMessage({result : result, expected: expectedResult}); 75 port.postMessage({result : result, expected: expectedResult});
64 return result; 76 return result;
65 }; 77 };
66 } 78 }
67 79
68 function sync_waituntil(event) { 80 function sync_waituntil(event) {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 setTimeout(() => { 118 setTimeout(() => {
107 try { 119 try {
108 event.waitUntil(Promise.resolve()); 120 event.waitUntil(Promise.resolve());
109 res('OK'); 121 res('OK');
110 } catch (error) { 122 } catch (error) {
111 res(error.name); 123 res(error.name);
112 } 124 }
113 }, 0); 125 }, 0);
114 }); 126 });
115 } 127 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698