| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/protocol-test.js"></script> |
| <script src="resources/breakpoint.js"></script> |
| <script> |
| function runBreakpointWithCondition() |
| { |
| // The debugger should hit a breakpoint inside the breakpointWithCondition call. |
| breakpointWithCondition(1, 2); |
| // If we get here it means that the debugger was disconnected and the execution continued as usual. |
| log("PASS: Test did not crash after debugger disconnected."); |
| testRunner.notifyDone(); |
| } |
| |
| // This function is called by the breakpoint condition. |
| function disconnect() |
| { |
| log("Closing the inspector."); |
| window.internals.closeDummyInspectorFrontend(); |
| // Throwing an exception will make the debugger execute some code using a dead context. |
| // Test passes if the debugger is not crashing. |
| throw new Error(); |
| } |
| |
| function test() |
| { |
| InspectorProtocol.eventHandler["Debugger.scriptParsed"] = function(messageObject) |
| { |
| if (/resources\/breakpoint\.js$/.test(messageObject.params.url)) { |
| ProtocolTest.log("Found breakpoint.js"); |
| var breakpoint = { |
| location: { |
| scriptId: messageObject.params.scriptId, |
| lineNumber: 8, |
| columnNumber: 0 |
| }, |
| options: { |
| condition: "disconnect()" |
| } |
| }; |
| InspectorProtocol.sendCommand("Debugger.setBreakpoint", breakpoint, InspectorProtocol.checkForError); |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "runBreakpointWithCondition()"}); |
| } |
| } |
| |
| InspectorProtocol.eventHandler["Debugger.paused"] = function(messageObject) |
| { |
| ProtocolTest.log("FAIL: Paused in debugger: reason = \"" + messageObject.params.reason + "\""); |
| ProtocolTest.completeTest(); |
| } |
| |
| InspectorProtocol.sendCommand("Debugger.enable", {}); |
| InspectorProtocol.sendCommand("Debugger.setBreakpointsActive", {active: true}); |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Debugger.setBreakpoint with an action that throws an exception should not pause the debugger.</p> |
| </body> |
| </html> |