| Index: third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/skip-waiting-installed-worker.js
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/skip-waiting-installed-worker.js b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/skip-waiting-installed-worker.js
|
| index bf582c770744391bfd38bec0da2e7701427c466a..eb63026d5c480ef47e42c8f4b73e1aa3fa79fb2f 100644
|
| --- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/skip-waiting-installed-worker.js
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/skip-waiting-installed-worker.js
|
| @@ -4,21 +4,32 @@ self.addEventListener('install', function() {
|
| self.state = 'installing';
|
| });
|
|
|
| +self.addEventListener('activate', function() {
|
| + self.state = 'activating';
|
| + });
|
| +
|
| self.addEventListener('message', function(event) {
|
| var port = event.data.port;
|
| if (self.state !== 'installing') {
|
| port.postMessage('FAIL: Worker should be waiting in installed state');
|
| return;
|
| }
|
| - self.skipWaiting()
|
| + event.waitUntil(self.skipWaiting()
|
| .then(function(result) {
|
| if (result !== undefined) {
|
| port.postMessage('FAIL: Promise should be resolved with undefined');
|
| return;
|
| }
|
| +
|
| + if (self.state === 'activating') {
|
| + port.postMessage(
|
| + 'FAIL: Promise should be resolved before worker is activated');
|
| + return;
|
| + }
|
| +
|
| port.postMessage('PASS');
|
| })
|
| .catch(function(e) {
|
| port.postMessage('FAIL: unexpected exception: ' + e);
|
| - });
|
| + }));
|
| });
|
|
|