Index: third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/postmessage-transferables-worker.js |
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/postmessage-transferables-worker.js b/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/postmessage-transferables-worker.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d35c1c952b880069eafe25aa971d8aa7c9293e05 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/postmessage-transferables-worker.js |
@@ -0,0 +1,24 @@ |
+var messageHandler = function(port, e) { |
+ var text_decoder = new TextDecoder; |
+ port.postMessage({ |
+ content: text_decoder.decode(e.data), |
+ byteLength: e.data.byteLength |
+ }); |
+ |
+ // Send back the array buffer via Client.postMessage. |
+ port.postMessage(e.data, [e.data.buffer]); |
+ |
+ port.postMessage({ |
+ content: text_decoder.decode(e.data), |
+ byteLength: e.data.byteLength |
+ }); |
+}; |
+ |
+self.addEventListener('message', e => { |
+ if (e.ports[0]) { |
+ // Wait for messages sent via MessagePort. |
+ e.ports[0].onmessage = messageHandler.bind(null, e.ports[0]); |
+ return; |
+ } |
+ messageHandler(e.source, e); |
+ }); |