| OLD | NEW |
| 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> |
| OLD | NEW |