Index: third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/request-end-to-end-worker.js |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/request-end-to-end-worker.js b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/request-end-to-end-worker.js |
index 323c7f24367aad2e8caff3351770752a0e54f98b..dcf6feefd7d3cdd236e6eb382d4f21bb2cb3dcb5 100644 |
--- a/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/request-end-to-end-worker.js |
+++ b/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/request-end-to-end-worker.js |
@@ -1,9 +1,20 @@ |
var port = undefined; |
+// Create a then-able object that is never resolved. |
+function createPending() { |
+ return { then: createPending }; |
+} |
onmessage = function(e) { |
var message = e.data; |
if (typeof message === 'object' && 'port' in message) { |
port = message.port; |
+ |
+ port.postMessage('received port'); |
+ // The ServiceWorker which handles the "message" event must persist long |
+ // enough to handle the subsequent "fetch" event. To promote test |
+ // simplicity, the worker prevents its own termination indefinitely via a |
+ // then-able that is never resolved. |
+ e.waitUntil(createPending()); |
} |
}; |