OLD | NEW |
| (Empty) |
1 <html> | |
2 <head> | |
3 <script type="text/javascript" src="../../http/tests/inspector-protocol/resource
s/inspector-protocol-test.js"></script> | |
4 <script> | |
5 var worker; | |
6 | |
7 function startWorker() | |
8 { | |
9 worker = new Worker("resources/dedicated-worker-suspend-setTimeout.js"); | |
10 worker.onmessage = function(event) { }; | |
11 worker.postMessage(1); | |
12 log("Started worker"); | |
13 } | |
14 | |
15 | |
16 function test() | |
17 { | |
18 | |
19 var workerId; | |
20 var workerRequestId = 1; | |
21 function sendCommandToWorker(method, params) | |
22 { | |
23 var requestId = workerRequestId++; | |
24 InspectorTest.sendCommand("Target.sendMessageToTarget", | |
25 { | |
26 "targetId": workerId, | |
27 "message": JSON.stringify({ "method": method, | |
28 "params": params, | |
29 "id": requestId }) | |
30 }); | |
31 return requestId; | |
32 } | |
33 | |
34 function didEnableWorkerDebugging(messageObject) | |
35 { | |
36 if ("error" in messageObject) { | |
37 InspectorTest.log("FAIL: Couldn't enable worker debugger: " + messag
eObject.error.message); | |
38 InspectorTest.completeTest(); | |
39 } | |
40 } | |
41 InspectorTest.sendCommand("Target.setAutoAttach", {autoAttach: true, waitFor
DebuggerOnStart: true}, didEnableWorkerDebugging); | |
42 InspectorTest.sendCommand("Runtime.evaluate", { "expression": "startWorker()
" }); | |
43 | |
44 InspectorTest.eventHandler["Target.attachedToTarget"] = function(messageObje
ct) | |
45 { | |
46 workerId = messageObject["params"]["targetInfo"]["targetId"]; | |
47 InspectorTest.log("Worker created"); | |
48 sendCommandToWorker("Debugger.enable", {}); | |
49 sendCommandToWorker("Runtime.runIfWaitingForDebugger", {}); | |
50 } | |
51 | |
52 var pauseCount = 0; | |
53 var evalRequestId; | |
54 InspectorTest.eventHandler["Target.receivedMessageFromTarget"] = function(me
ssageObject) | |
55 { | |
56 var message = JSON.parse(messageObject["params"]["message"]); | |
57 if (message["method"] === "Debugger.paused") { | |
58 InspectorTest.log("SUCCESS: Worker paused"); | |
59 if (++pauseCount === 1) { | |
60 evalRequestId = sendCommandToWorker("Runtime.evaluate", { "expre
ssion": "global_value" }); | |
61 } else { | |
62 InspectorTest.log("FAIL: debugger paused second time"); | |
63 InspectorTest.completeTest(); | |
64 } | |
65 } else if (evalRequestId && message["id"] === evalRequestId) { | |
66 var value = message["result"]["result"]["value"]; | |
67 if (value === 1) | |
68 InspectorTest.log("SUCCESS: global_value is 1"); | |
69 else | |
70 InspectorTest.log("FAIL: setTimeout callback fired while script
execution was paused"); | |
71 sendCommandToWorker("Debugger.disable", {}); | |
72 InspectorTest.completeTest(); | |
73 } | |
74 } | |
75 } | |
76 </script> | |
77 </head> | |
78 <body onLoad="runTest();"> | |
79 <p>Tests that setTimeout callback will not fire while script execution is paused
.<a href="https://code.google.com/p/chromium/issues/detail?id=377926">Bug 377926
.</a> | |
80 </p> | |
81 </body> | |
82 </html> | |
OLD | NEW |