3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/elements-test.js"></script>
5 <script src="../../http/tests/inspector/debugger-test.js"></script>
8 function testFunction()
11 debugger; // Reload follows, nothing below should break.
12 console.log("Middle: Breakpoint 1"); // Breakpoint
13 console.log("Middle: Breakpoint 2"); // Breakpoint
14 console.assert(false, "Assertion failed!");
15 console.error("Some console.error message");
16 debugger; // Should skip this also.
17 var element = document.getElementById("element");
18 var parent = element.parentElement;
19 var child = document.createElement("span");
20 element.setAttribute("foo", "bar"); // DOM breakpoint: AttributeModified
21 element.appendChild(child); // DOM breakpoint: SubtreeModified
22 parent.removeChild(element); // DOM breakpoint: NodeRemoved
23 parent.appendChild(element);
24 element.click(); // Event breakpoint
27 eval("throwException()");
30 function throwException()
36 throw new Error("error message");
51 InspectorTest.startDebuggerTest(step1);
55 InspectorTest.showScriptSource("skip-pauses-until-reload.html", didShowScriptSource);
58 function didShowScriptSource(sourceFrame)
60 InspectorTest.addResult("Script source was shown.");
61 InspectorTest.addResult("Set up breakpoints.");
62 InspectorTest.setBreakpoint(sourceFrame, 11, "", true);
63 InspectorTest.setBreakpoint(sourceFrame, 12, "", true);
64 InspectorTest.addResult("Set up to pause on all exceptions.");
65 // FIXME: Test is flaky with PauseOnAllExceptions due to races in debugger.
66 DebuggerAgent.setPauseOnExceptions(WebInspector.DebuggerModel.PauseOnExceptionsState.DontPauseOnExceptions);
67 InspectorTest.nodeWithId("element", didResolveNode);
70 function didResolveNode(node)
72 WebInspector.showPanel("elements");
73 var pane = WebInspector.domBreakpointsSidebarPane;
74 InspectorTest.addResult("Set up DOM breakpoints.");
75 pane._setBreakpoint(node, pane._breakpointTypes.SubtreeModified, true);
76 pane._setBreakpoint(node, pane._breakpointTypes.AttributeModified, true);
77 pane._setBreakpoint(node, pane._breakpointTypes.NodeRemoved, true);
78 setUpEventBreakpoints();
81 function setUpEventBreakpoints()
83 WebInspector.showPanel("sources");
84 var pane = WebInspector.panels.sources.sidebarPanes.eventListenerBreakpoints;
85 InspectorTest.addResult("Set up Event breakpoints.");
86 pane._setBreakpoint("listener:click");
87 InspectorTest.runAfterPendingDispatches(didSetUp);
92 InspectorTest.addResult("Did set up.");
93 InspectorTest.runTestFunctionAndWaitUntilPaused(didPause);
96 function didPause(callFrames)
98 InspectorTest.captureStackTrace(callFrames);
99 DebuggerAgent.setSkipAllPauses(true, true, didSetSkipAllPauses);
102 function didSetSkipAllPauses()
104 InspectorTest.addResult("Set up to skip all pauses.");
108 function doReloadPage()
110 InspectorTest.addResult("Reloading the page...");
111 InspectorTest.waitUntilPausedNextTime(didPauseAfterReload);
112 InspectorTest.reloadPage(didReloadPage);
114 function didReloadPage()
116 InspectorTest.addResult("PASS: Reloaded without hitting breakpoints.");
117 InspectorTest.completeDebuggerTest();
120 function didPauseAfterReload(callFrames)
122 InspectorTest.addResult("FAIL: Should not pause while reloading the page!");
123 InspectorTest.captureStackTrace(callFrames);
124 InspectorTest.waitUntilPausedNextTime(didPauseAfterReload);
125 InspectorTest.resumeExecution();
133 <body onload="runTest()">
134 <p>Tests that 'skip all pauses' mode blocks breakpoint and gets cancelled right at page reload.
137 <div id="element" onclick="return 0;"></div>