| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/protocol-test.js"></script> |
| <script src="resources/breakpoint.js"></script> |
| <script> |
| function test() |
| { |
| InspectorProtocol.sendCommand("Debugger.enable", {}); |
| InspectorProtocol.sendCommand("Debugger.setBreakpointsActive", {active: true}); |
| |
| var allowedToHitBreakpoint = false; |
| var breakpointIdentifier = null; |
| |
| InspectorProtocol.eventHandler["Debugger.scriptParsed"] = function(messageObject) |
| { |
| if (/resources\/breakpoint\.js$/.test(messageObject.params.url)) { |
| ProtocolTest.log("Found breakpoint.js"); |
| var scriptIdentifier = messageObject.params.scriptId; |
| var location = {scriptId: scriptIdentifier, lineNumber: 13, columnNumber: 0}; |
| var options = {autoContinue: true}; |
| InspectorProtocol.sendCommand("Debugger.setBreakpoint", {location: location, options: options}, function(responseObject) { |
| InspectorProtocol.checkForError(responseObject); |
| breakpointIdentifier = responseObject.result.breakpointId; |
| ProtocolTest.log("Running breakpointAutomaticallyContinue multiple times with automatically continue"); |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "breakpointAutomaticallyContinue()"}); |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "breakpointAutomaticallyContinue()"}); |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "breakpointAutomaticallyContinue()"}, function() { |
| ProtocolTest.log("Removing breakpoint"); |
| InspectorProtocol.sendCommand("Debugger.removeBreakpoint", {"breakpointId": breakpointIdentifier}, function(responseObject) { |
| InspectorProtocol.checkForError(responseObject); |
| allowedToHitBreakpoint = true; |
| options = {autoContinue: false}; |
| ProtocolTest.log("Setting new breakpoint without autoContinue that should trigger"); |
| InspectorProtocol.sendCommand("Debugger.setBreakpoint", {location: location, options: options}, function(responseObject) { |
| InspectorProtocol.checkForError(responseObject); |
| InspectorProtocol.sendCommand("Runtime.evaluate", {expression: "breakpointAutomaticallyContinue()"}); |
| }); |
| }); |
| }); |
| }); |
| } |
| } |
| |
| InspectorProtocol.eventHandler["Debugger.paused"] = function(messageObject) |
| { |
| ProtocolTest.log("Hit Breakpoint!"); |
| |
| if (!allowedToHitBreakpoint) { |
| ProtocolTest.log("FAIL: should not have hit breakpoint."); |
| ProtocolTest.completeTest(); |
| } else { |
| ProtocolTest.log("PASS: hit breakpoint when allowed."); |
| ProtocolTest.completeTest(); |
| } |
| } |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Debugger.setBreakpoint options.autoContinue</p> |
| </body> |
| </html> |