OLD | NEW |
(Empty) | |
| 1 (async function(testRunner) { |
| 2 let {page, session, dp} = await testRunner.startBlank('Tests that setTimeout c
allback will not fire while script execution is paused.Bug 377926.'); |
| 3 |
| 4 var workerId; |
| 5 var workerRequestId = 1; |
| 6 function sendCommandToWorker(method, params) { |
| 7 var message = {method, params, id: workerRequestId}; |
| 8 dp.Target.sendMessageToTarget({targetId: workerId, message: JSON.stringify(m
essage)}); |
| 9 return workerRequestId++; |
| 10 } |
| 11 |
| 12 dp.Target.setAutoAttach({autoAttach: true, waitForDebuggerOnStart: true}); |
| 13 await session.evaluate(` |
| 14 window.worker = new Worker('${testRunner.url('resources/dedicated-worker-sus
pend-setTimeout.js')}'); |
| 15 window.worker.onmessage = function(event) { }; |
| 16 window.worker.postMessage(1); |
| 17 `); |
| 18 testRunner.log('Started worker'); |
| 19 |
| 20 var messageObject = await dp.Target.onceAttachedToTarget(); |
| 21 workerId = messageObject.params.targetInfo.targetId; |
| 22 testRunner.log('Worker created'); |
| 23 |
| 24 sendCommandToWorker('Debugger.enable', {}); |
| 25 sendCommandToWorker('Runtime.runIfWaitingForDebugger', {}); |
| 26 |
| 27 var pauseCount = 0; |
| 28 var evalRequestId; |
| 29 dp.Target.onReceivedMessageFromTarget(async messageObject => { |
| 30 var message = JSON.parse(messageObject.params.message); |
| 31 if (message.method === 'Debugger.paused') { |
| 32 testRunner.log('SUCCESS: Worker paused'); |
| 33 if (++pauseCount === 1) { |
| 34 evalRequestId = sendCommandToWorker('Runtime.evaluate', {expression: 'gl
obal_value'}); |
| 35 } else { |
| 36 testRunner.log('FAIL: debugger paused second time'); |
| 37 testRunner.completeTest(); |
| 38 } |
| 39 } else if (evalRequestId && message.id === evalRequestId) { |
| 40 var value = message.result.result.value; |
| 41 if (value === 1) |
| 42 testRunner.log('SUCCESS: global_value is 1'); |
| 43 else |
| 44 testRunner.log('FAIL: setTimeout callback fired while script execution w
as paused'); |
| 45 sendCommandToWorker('Debugger.disable', {}); |
| 46 testRunner.completeTest(); |
| 47 } |
| 48 }); |
| 49 }) |
OLD | NEW |