Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(69)

Side by Side Diff: LayoutTests/inspector-protocol/debugger/suspend-setTimeout-on-pause-in-dedicated-worker.html

Issue 298383002: Suspend setTimeout callbacks while dedicated worker execution is paused (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fixed ASSERT condition Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <html> 1 <html>
2 <head> 2 <head>
3 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto r-protocol-test.js"></script> 3 <script type="text/javascript" src="../../http/tests/inspector-protocol/inspecto r-protocol-test.js"></script>
4 <script> 4 <script>
5 var worker; 5 var worker;
6 6
7 function startWorker() 7 function startWorker()
8 { 8 {
9 worker = new Worker("resources/dedicated-worker-step-into.js"); 9 worker = new Worker("resources/dedicated-worker-suspend-setTimeout.js");
10 worker.onmessage = function(event) { }; 10 worker.onmessage = function(event) { };
11 worker.postMessage(1); 11 worker.postMessage(1);
12 log("Started worker"); 12 log("Started worker");
13 } 13 }
14 14
15 15
16 function test() 16 function test()
17 { 17 {
18 18
19 var workerId; 19 var workerId;
20 var workerRequestId = 1; 20 var workerRequestId = 1;
21 function sendCommandToWorker(method, params) 21 function sendCommandToWorker(method, params)
22 { 22 {
23 var requestId = workerRequestId++;
23 InspectorTest.sendCommand("Worker.sendMessageToWorker", 24 InspectorTest.sendCommand("Worker.sendMessageToWorker",
24 { 25 {
25 "workerId": workerId, 26 "workerId": workerId,
26 "message": { "method": method, 27 "message": { "method": method,
27 "params": params, 28 "params": params,
28 "id": workerRequestId++ } 29 "id": requestId }
29 }); 30 });
31 return requestId;
30 } 32 }
31 33
32 function didEnableWorkerDebugging(messageObject) 34 function didEnableWorkerDebugging(messageObject)
33 { 35 {
34 if ("error" in messageObject) { 36 if ("error" in messageObject) {
35 InspectorTest.log("FAIL: Couldn't enable worker debugger: " + messag eObject.error.message); 37 InspectorTest.log("FAIL: Couldn't enable worker debugger: " + messag eObject.error.message);
36 InspectorTest.completeTest(); 38 InspectorTest.completeTest();
37 } 39 }
38 } 40 }
39 InspectorTest.sendCommand("Worker.enable", {}, didEnableWorkerDebugging); 41 InspectorTest.sendCommand("Worker.enable", {}, didEnableWorkerDebugging);
40 InspectorTest.sendCommand("Worker.setAutoconnectToWorkers", { "value": true }); 42 InspectorTest.sendCommand("Worker.setAutoconnectToWorkers", { "value": true });
41 InspectorTest.sendCommand("Runtime.evaluate", { "expression": "startWorker() " }); 43 InspectorTest.sendCommand("Runtime.evaluate", { "expression": "startWorker() " });
42 44
43 InspectorTest.eventHandler["Worker.workerCreated"] = function(messageObject) 45 InspectorTest.eventHandler["Worker.workerCreated"] = function(messageObject)
44 { 46 {
45 workerId = messageObject["params"]["workerId"]; 47 workerId = messageObject["params"]["workerId"];
46 InspectorTest.log("Worker created"); 48 InspectorTest.log("Worker created");
47 sendCommandToWorker("Debugger.enable", {}); 49 sendCommandToWorker("Debugger.enable", {});
48 sendCommandToWorker("Runtime.run", {}); 50 sendCommandToWorker("Runtime.run", {});
49 } 51 }
50 52
51 var pauseCount = 0; 53 var pauseCount = 0;
54 var evalRequestId;
52 InspectorTest.eventHandler["Worker.dispatchMessageFromWorker"] = function(me ssageObject) 55 InspectorTest.eventHandler["Worker.dispatchMessageFromWorker"] = function(me ssageObject)
53 { 56 {
54 var message = messageObject["params"]["message"]; 57 var message = messageObject["params"]["message"];
55 if (message["method"] === "Debugger.paused") { 58 if (message["method"] === "Debugger.paused") {
56 InspectorTest.log("SUCCESS: Worker paused"); 59 InspectorTest.log("SUCCESS: Worker paused");
57 if (++pauseCount === 1) { 60 if (++pauseCount === 1) {
58 InspectorTest.log("Stepping into..."); 61 evalRequestId = sendCommandToWorker("Runtime.evaluate", { "expre ssion": "global_value" });
59 sendCommandToWorker("Debugger.stepInto", {});
60 } else { 62 } else {
61 sendCommandToWorker("Debugger.disable", {}); 63 InspectorTest.log("FAIL: debugger paused second time");
62 InspectorTest.completeTest(); 64 InspectorTest.completeTest();
63 } 65 }
66 } else if (evalRequestId && message["id"] === evalRequestId) {
67 var value = message["result"]["result"]["value"];
68 if (value === 1)
69 InspectorTest.log("SUCCESS: global_value is 1");
70 else
71 InspectorTest.log("FAIL: setTimeout callback fired while script execution was paused");
72 sendCommandToWorker("Debugger.disable", {});
73 InspectorTest.completeTest();
64 } 74 }
65 } 75 }
66
67 } 76 }
68 </script> 77 </script>
69 </head> 78 </head>
70 <body onLoad="runTest();"> 79 <body onLoad="runTest();">
71 <p>Tests that dedicated worker won't crash on attempt to step into.<a href="http s://code.google.com/p/chromium/issues/detail?id=232392">Bug 232392.</a> 80 <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>
72 </p> 81 </p>
73 </body> 82 </body>
74 </html> 83 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698