| (async function(testRunner) { |
| var {page, session, dp} = await testRunner.startBlank( |
| 'Tests that tasks order is not changed when worker is resumed.'); |
| await dp.Target.setAutoAttach({autoAttach: true, waitForDebuggerOnStart: true, |
| flatten: true}); |
| |
| const attachedPromise = dp.Target.onceAttachedToTarget(); |
| await session.evaluate(` |
| const workerScript = \` |
| self.count = 0; |
| self.onmessage = msg => { |
| if (++self.count === 1) { |
| debugger; |
| console.log("Should be one:", self.count); |
| debugger; |
| } else { |
| (function FAIL_Should_Not_Pause_Here() { debugger; })(); |
| } |
| }; |
| //# sourceURL=worker.js\`; |
| const blob = new Blob([workerScript], { type: "text/javascript" }); |
| worker = new Worker(URL.createObjectURL(blob)); |
| worker.postMessage(1); |
| `); |
| |
| const event = await attachedPromise; |
| const childSession = session.createChild(event.params.sessionId); |
| testRunner.log('Worker created'); |
| |
| await childSession.protocol.Debugger.enable(); |
| |
| await childSession.protocol.Runtime.runIfWaitingForDebugger(); |
| await childSession.protocol.Debugger.oncePaused(); |
| |
| await session.evaluate(`worker.postMessage(2)`); |
| await childSession.protocol.Debugger.resume(); |
| await childSession.protocol.Debugger.oncePaused(); |
| const value = await childSession.evaluate('self.count'); |
| testRunner.log(`count must be 1: ${value}`); |
| |
| await childSession.protocol.Debugger.disable(); |
| testRunner.completeTest(); |
| }) |