Index: LayoutTests/http/tests/serviceworker/chromium/resources/postmessage-cross-process-worker.js |
diff --git a/LayoutTests/http/tests/serviceworker/chromium/resources/postmessage-cross-process-worker.js b/LayoutTests/http/tests/serviceworker/chromium/resources/postmessage-cross-process-worker.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3b60019713b6073830a800178d2a7022ffb9d362 |
--- /dev/null |
+++ b/LayoutTests/http/tests/serviceworker/chromium/resources/postmessage-cross-process-worker.js |
@@ -0,0 +1,32 @@ |
+var port; |
+var resultport = null; |
+var result = null; |
+ |
+function send_result_if_ready() { |
+ if (resultport && result) { |
+ resultport.postMessage(result); |
+ } |
+} |
+ |
+self.onmessage = function(e) { |
+ var message = e.data; |
+ if ('port' in message) { |
+ port = message.port; |
+ port.onmessage = on_message; |
+ } else if ('done' in message) { |
+ result = message.done; |
+ send_result_if_ready(); |
+ } else if ('resultport' in message) { |
+ resultport = message.resultport; |
+ send_result_if_ready(); |
+ } |
+}; |
+ |
+function on_message(e) { |
+ var message = e.data; |
+ if ('value' in message) { |
+ port.postMessage('Acking value: ' + message.value); |
+ } else if ('done' in message) { |
+ port.postMessage('quit'); |
+ } |
+} |