| OLD | NEW |
| 1 (async function(testRunner) { | 1 (async function(testRunner) { |
| 2 let {page, session, dp} = await testRunner.startBlank(''); | 2 let {page, session, dp} = await testRunner.startBlank(''); |
| 3 | 3 |
| 4 await session.evaluate(` | 4 await session.evaluate(` |
| 5 var worker = null; | 5 var worker = null; |
| 6 var onMessageCallbacks = {}; | 6 var onMessageCallbacks = {}; |
| 7 | 7 |
| 8 function startWorker() { | 8 function startWorker() { |
| 9 var callback; | 9 var callback; |
| 10 var promise = new Promise((fulfill) => callback = fulfill); | 10 var promise = new Promise((fulfill) => callback = fulfill); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 worker.terminate(); | 32 worker.terminate(); |
| 33 worker = null; | 33 worker = null; |
| 34 } | 34 } |
| 35 `); | 35 `); |
| 36 | 36 |
| 37 var workerEventHandler = {}; | 37 var workerEventHandler = {}; |
| 38 dp.Target.onAttachedToTarget(onWorkerCreated); | 38 dp.Target.onAttachedToTarget(onWorkerCreated); |
| 39 dp.Target.onReceivedMessageFromTarget(onWorkerMessage); | 39 dp.Target.onReceivedMessageFromTarget(onWorkerMessage); |
| 40 workerEventHandler['Runtime.consoleAPICalled'] = onConsoleAPICalledFromWorker; | 40 workerEventHandler['Runtime.consoleAPICalled'] = onConsoleAPICalledFromWorker; |
| 41 | 41 |
| 42 var workerId; | 42 var workerSessionId; |
| 43 | 43 |
| 44 function onWorkerCreated(payload) { | 44 function onWorkerCreated(payload) { |
| 45 testRunner.log('Worker.created'); | 45 testRunner.log('Worker.created'); |
| 46 workerId = payload.params.targetInfo.targetId; | 46 workerSessionId = payload.params.sessionId; |
| 47 } | 47 } |
| 48 | 48 |
| 49 var requestId = 0; | 49 var requestId = 0; |
| 50 var dispatchTable = []; | 50 var dispatchTable = []; |
| 51 | 51 |
| 52 function sendCommandToWorker(method, params, callback) { | 52 function sendCommandToWorker(method, params, callback) { |
| 53 dispatchTable[++requestId] = callback; | 53 dispatchTable[++requestId] = callback; |
| 54 var messageObject = { | 54 var messageObject = { |
| 55 'method': method, | 55 'method': method, |
| 56 'params': params, | 56 'params': params, |
| 57 'id': requestId | 57 'id': requestId |
| 58 }; | 58 }; |
| 59 dp.Target.sendMessageToTarget({ | 59 dp.Target.sendMessageToTarget({ |
| 60 targetId: workerId, | 60 sessionId: workerSessionId, |
| 61 message: JSON.stringify(messageObject) | 61 message: JSON.stringify(messageObject) |
| 62 }); | 62 }); |
| 63 } | 63 } |
| 64 | 64 |
| 65 function onWorkerMessage(payload) { | 65 function onWorkerMessage(payload) { |
| 66 if (payload.params.targetId !== workerId) | 66 if (payload.params.sessionId !== workerSessionId) |
| 67 testRunner.log('targetId mismatch'); | 67 testRunner.log('targetId mismatch'); |
| 68 var messageObject = JSON.parse(payload.params.message); | 68 var messageObject = JSON.parse(payload.params.message); |
| 69 var messageId = messageObject['id']; | 69 var messageId = messageObject['id']; |
| 70 if (typeof messageId === 'number') { | 70 if (typeof messageId === 'number') { |
| 71 var handler = dispatchTable[messageId]; | 71 var handler = dispatchTable[messageId]; |
| 72 dispatchTable[messageId] = null; | 72 dispatchTable[messageId] = null; |
| 73 if (handler && typeof handler === 'function') | 73 if (handler && typeof handler === 'function') |
| 74 handler(messageObject); | 74 handler(messageObject); |
| 75 } else { | 75 } else { |
| 76 var eventName = messageObject['method']; | 76 var eventName = messageObject['method']; |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 if (!steps.length) { | 235 if (!steps.length) { |
| 236 testRunner.completeTest(); | 236 testRunner.completeTest(); |
| 237 return; | 237 return; |
| 238 } | 238 } |
| 239 var nextStep = steps.shift(); | 239 var nextStep = steps.shift(); |
| 240 nextStep(runNextStep); | 240 nextStep(runNextStep); |
| 241 } | 241 } |
| 242 | 242 |
| 243 runNextStep(); | 243 runNextStep(); |
| 244 }) | 244 }) |
| OLD | NEW |