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

Side by Side Diff: LayoutTests/inspector/sources/debugger/frameworks-steppings.html

Issue 309013005: DevTools: Event listener breakpoint should not stop if happened inside framework. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: one more test 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
(Empty)
1 <html>
2 <head>
3 <script src="../../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../../http/tests/inspector/debugger-test.js"></script>
5 <script src="resources/framework.js"></script>
6 <script>
7
8 function testFunction()
9 {
10 debugger;
11 Framework.safeRun(function callback1() {
12 Framework.safeRun(Framework.empty, callback2);
13 });
14 }
15
16 function callback2()
17 {
18 Framework.safeRun(Framework.empty, Framework.empty); // Should be skipped: a ll callbacks are inside frameworks.
19 Framework.safeRun(Framework.empty, Framework.throwFrameworkException, callba ck3); // Should be enough to step into callback3
20 }
21
22 function callback3()
23 {
24 var func = Framework.bind(callback4, null, 1);
25 func = Framework.bind(func, null, 2);
26 func = Framework.bind(func, null, 3);
27 Framework.safeRun(func);
28 }
29
30 function callback4()
31 {
32 Framework.safeRun(Framework.doSomeWork, function() {
33 return 0; // Should NOT step into this callback (otherwise too many Step Ins)
34 });
35 try {
36 Framework.throwFrameworkException("message");
37 } catch (e) {
38 window.ex = e;
39 }
40 }
41
42 function test()
43 {
44 var frameworkRegexString = "/framework\\.js$";
45 WebInspector.experimentsSettings.frameworksDebuggingSupport.enableForTest();
46 WebInspector.settings.skipStackFramesSwitch.set(true);
47 WebInspector.settings.skipStackFramesPattern.set(frameworkRegexString);
48
49 InspectorTest.setQuiet(true);
50 InspectorTest.startDebuggerTest(step1);
51
52 function step1()
53 {
54 InspectorTest.runTestFunctionAndWaitUntilPaused(didPause);
55 }
56
57 var actions = [
58 "Print", // debugger;
59 "StepInto", "StepInto", "Print", // callback1
60 "StepInto", "Print", // callback2
61 "StepInto", "Print", // callback2, skipped
62 "StepInto", "Print", // callback3
63 "StepInto", "StepInto", "StepInto", "StepInto", "Print", // callback4
64 "StepInto", "Print", // callback4, skipped
65 "StepInto", "Print", // callback4, inside catch
66 "StepOut", "Print", // return to callback3
67 "StepOver", "Print", // return to callback2
68 "StepInto", "Print", // return to callback1
69 ];
70
71 function didPause(callFrames, reason, breakpointIds, asyncStackTrace)
72 {
73 var action = actions.shift();
74 if (action === "Print") {
75 InspectorTest.captureStackTrace(callFrames);
76 InspectorTest.addResult("");
77 while (action === "Print")
78 action = actions.shift();
79 }
80
81 if (!action) {
82 InspectorTest.completeDebuggerTest();
83 return;
84 }
85
86 InspectorTest.addResult("Executing " + action + "...");
87 switch (action) {
88 case "StepInto":
89 WebInspector.panels.sources._stepIntoButton.element.click();
90 break;
91 case "StepOver":
92 WebInspector.panels.sources._stepOverButton.element.click();
93 break;
94 case "StepOut":
95 WebInspector.panels.sources._stepOutButton.element.click();
96 break;
97 default:
98 InspectorTest.addResult("FAIL: Unknown action: " + action);
99 InspectorTest.completeDebuggerTest();
100 return;
101 }
102 InspectorTest.waitUntilResumed(InspectorTest.waitUntilPaused.bind(Inspec torTest, didPause));
103 }
104 }
105
106 </script>
107 </head>
108
109 <body onload="runTest()">
110 <input type='button' onclick='testFunction()' value='Test'/>
111 <p>
112 Tests stepping into/over/out with framework black-boxing.
113 </p>
114 </body>
115 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698