| <script src='websocket_connection.js'></script> |
| <script> |
| // Listens for 'onmessage' or 'onclose' messages from the websocket, and sends |
| // them to the test fixture. |
| function connectionListener(e) { |
| if (e.data == 'onmessage') { |
| window.domAutomationController.send(true); |
| } else if (e.data == 'onclose') { |
| window.domAutomationController.send(false); |
| } |
| } |
| |
| // This page has two modes, one where the websocket connection lives in the |
| // document context, and one where it lives in a worker. This is encoded by the |
| // presence (or absence) of an URL param named 'inWorker'. |
| var url = new URL(location); |
| var connectWebSocket; |
| if (url.searchParams.get('inWorker')) { |
| var worker = new Worker('websocket_worker.js'); |
| worker.addEventListener('message', connectionListener); |
| connectWebSocket = (url) => { |
| worker.postMessage({url: url}); |
| }; |
| } else { |
| addEventListener('message', connectionListener); |
| var messageCallback = (data) => { self.postMessage(data, location); } |
| connectWebSocket = (url) => { |
| connectWebSocketWithMessageCallback(url, messageCallback); |
| }; |
| } |
| </script> |