Index: LayoutTests/http/tests/serviceworker/resources/skip-waiting-installed-worker.js |
diff --git a/LayoutTests/http/tests/serviceworker/resources/skip-waiting-installed-worker.js b/LayoutTests/http/tests/serviceworker/resources/skip-waiting-installed-worker.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..12fdb47ba725c59f6aca71e1501c480a00e38ddd |
--- /dev/null |
+++ b/LayoutTests/http/tests/serviceworker/resources/skip-waiting-installed-worker.js |
@@ -0,0 +1,33 @@ |
+self.state = 'starting'; |
+ |
+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() |
+ .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 after worker activated'); |
+ return; |
+ } |
+ port.postMessage('PASS'); |
+ }) |
+ .catch(function(e) { |
+ port.postMessage('FAIL: unexpected exception: ' + e); |
+ }); |
+ }); |