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

Side by Side Diff: LayoutTests/http/tests/inspector/debugger-test.js

Issue 118293002: DevTools: Support XHR async call stacks in the debugger. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: addressed Created 7 years 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
« no previous file with comments | « no previous file | LayoutTests/http/tests/inspector/inspector-test.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 var initialize_DebuggerTest = function() { 1 var initialize_DebuggerTest = function() {
2 2
3 InspectorTest.startDebuggerTest = function(callback, quiet) 3 InspectorTest.startDebuggerTest = function(callback, quiet)
4 { 4 {
5 if (quiet !== undefined) 5 if (quiet !== undefined)
6 InspectorTest._quiet = quiet; 6 InspectorTest._quiet = quiet;
7 WebInspector.showPanel("sources"); 7 WebInspector.showPanel("sources");
8 8
9 if (WebInspector.debuggerModel.debuggerEnabled()) 9 if (WebInspector.debuggerModel.debuggerEnabled())
10 startTest(); 10 startTest();
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 InspectorTest.evaluateInConsole("setTimeout(testFunction, 0)"); 76 InspectorTest.evaluateInConsole("setTimeout(testFunction, 0)");
77 InspectorTest.addResult("Set timer for test function."); 77 InspectorTest.addResult("Set timer for test function.");
78 }; 78 };
79 79
80 InspectorTest.runTestFunctionAndWaitUntilPaused = function(callback) 80 InspectorTest.runTestFunctionAndWaitUntilPaused = function(callback)
81 { 81 {
82 InspectorTest.runTestFunction(); 82 InspectorTest.runTestFunction();
83 InspectorTest.waitUntilPaused(callback); 83 InspectorTest.waitUntilPaused(callback);
84 }; 84 };
85 85
86 InspectorTest.runAsyncCallStacksTest = function(totalDebuggerStatements, maxAsyn cCallStackDepth)
87 {
88 InspectorTest.setQuiet(true);
89 InspectorTest.startDebuggerTest(step1);
90
91 function step1()
92 {
93 DebuggerAgent.setAsyncCallStackDepth(maxAsyncCallStackDepth, step2);
94 }
95
96 function step2()
97 {
98 InspectorTest.runTestFunctionAndWaitUntilPaused(didPaused);
99 }
100
101 var step = 0;
102 var callStacksOutput = [];
103 function didPaused(callFrames, reason, breakpointIds, asyncStackTrace)
104 {
105 ++step;
106 callStacksOutput.push(InspectorTest.captureStackTraceIntoString(callFram es, asyncStackTrace) + "\n");
107 if (step < totalDebuggerStatements) {
108 InspectorTest.resumeExecution(InspectorTest.waitUntilPaused.bind(Ins pectorTest, didPaused));
109 } else {
110 InspectorTest.addResult("Captured call stacks in no particular order :");
111 callStacksOutput.sort();
112 InspectorTest.addResults(callStacksOutput);
113 InspectorTest.completeDebuggerTest();
114 }
115 }
116 };
117
86 InspectorTest.waitUntilPausedNextTime = function(callback) 118 InspectorTest.waitUntilPausedNextTime = function(callback)
87 { 119 {
88 InspectorTest._waitUntilPausedCallback = InspectorTest.safeWrap(callback); 120 InspectorTest._waitUntilPausedCallback = InspectorTest.safeWrap(callback);
89 }; 121 };
90 122
91 InspectorTest.waitUntilPaused = function(callback) 123 InspectorTest.waitUntilPaused = function(callback)
92 { 124 {
93 callback = InspectorTest.safeWrap(callback); 125 callback = InspectorTest.safeWrap(callback);
94 126
95 if (InspectorTest._pausedScriptArguments) 127 if (InspectorTest._pausedScriptArguments)
(...skipping 19 matching lines...) Expand all
115 147
116 InspectorTest.resumeExecution = function(callback) 148 InspectorTest.resumeExecution = function(callback)
117 { 149 {
118 if (WebInspector.panels.sources.paused) 150 if (WebInspector.panels.sources.paused)
119 WebInspector.panels.sources._togglePause(); 151 WebInspector.panels.sources._togglePause();
120 InspectorTest.waitUntilResumed(callback); 152 InspectorTest.waitUntilResumed(callback);
121 }; 153 };
122 154
123 InspectorTest.captureStackTrace = function(callFrames, asyncStackTrace, options) 155 InspectorTest.captureStackTrace = function(callFrames, asyncStackTrace, options)
124 { 156 {
157 InspectorTest.addResult(InspectorTest.captureStackTraceIntoString(callFrames , asyncStackTrace, options));
158 };
159
160 InspectorTest.captureStackTraceIntoString = function(callFrames, asyncStackTrace , options)
yurys 2013/12/23 12:40:31 Consider making it private.
aandrey 2013/12/23 13:01:29 I call it directly from the new test.
161 {
162 var results = [];
125 options = options || {}; 163 options = options || {};
126 164
127 function printCallFrames(callFrames) 165 function printCallFrames(callFrames)
128 { 166 {
129 for (var i = 0; i < callFrames.length; i++) { 167 for (var i = 0; i < callFrames.length; i++) {
130 var frame = callFrames[i]; 168 var frame = callFrames[i];
131 var script = WebInspector.debuggerModel.scriptForId(frame.location.s criptId); 169 var script = WebInspector.debuggerModel.scriptForId(frame.location.s criptId);
132 var url; 170 var url;
133 var lineNumber; 171 var lineNumber;
134 if (script) { 172 if (script) {
135 url = WebInspector.displayNameForURL(script.sourceURL); 173 url = WebInspector.displayNameForURL(script.sourceURL);
136 lineNumber = frame.location.lineNumber + 1; 174 lineNumber = frame.location.lineNumber + 1;
137 } else { 175 } else {
138 url = "(internal script)"; 176 url = "(internal script)";
139 lineNumber = "(line number)"; 177 lineNumber = "(line number)";
140 } 178 }
141 var s = " " + i + ") " + frame.functionName + " (" + url + (optio ns.dropLineNumbers ? "" : ":" + lineNumber) + ")"; 179 var s = " " + i + ") " + frame.functionName + " (" + url + (optio ns.dropLineNumbers ? "" : ":" + lineNumber) + ")";
142 InspectorTest.addResult(s); 180 results.push(s);
143 if (options.printReturnValue && frame.returnValue) 181 if (options.printReturnValue && frame.returnValue)
144 InspectorTest.addResult(" <return>: " + frame.returnValue. description); 182 results.push(" <return>: " + frame.returnValue.description );
145 } 183 }
146 } 184 }
147 185
148 InspectorTest.addResult("Call stack:"); 186 results.push("Call stack:");
149 printCallFrames(callFrames); 187 printCallFrames(callFrames);
150 188
151 while (asyncStackTrace) { 189 while (asyncStackTrace) {
152 InspectorTest.addResult(" [" + (asyncStackTrace.description || "Async Call") + "]"); 190 results.push(" [" + (asyncStackTrace.description || "Async Call") + " ]");
153 printCallFrames(asyncStackTrace.callFrames); 191 printCallFrames(asyncStackTrace.callFrames);
154 if (asyncStackTrace.callFrames[0].functionName === "testFunction") 192 if (asyncStackTrace.callFrames.peekLast().functionName === "testFunction ")
155 break; 193 break;
156 asyncStackTrace = asyncStackTrace.asyncStackTrace; 194 asyncStackTrace = asyncStackTrace.asyncStackTrace;
157 } 195 }
196 return results.join("\n");
158 }; 197 };
159 198
160 InspectorTest.dumpSourceFrameContents = function(sourceFrame) 199 InspectorTest.dumpSourceFrameContents = function(sourceFrame)
161 { 200 {
162 InspectorTest.addResult("==Source frame contents start=="); 201 InspectorTest.addResult("==Source frame contents start==");
163 var textEditor = sourceFrame._textEditor; 202 var textEditor = sourceFrame._textEditor;
164 for (var i = 0; i < textEditor.linesCount; ++i) 203 for (var i = 0; i < textEditor.linesCount; ++i)
165 InspectorTest.addResult(textEditor.line(i)); 204 InspectorTest.addResult(textEditor.line(i));
166 InspectorTest.addResult("==Source frame contents end=="); 205 InspectorTest.addResult("==Source frame contents end==");
167 }; 206 };
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 378
340 InspectorTest.checkUILocation = function(uiSourceCode, lineNumber, columnNumber, location) 379 InspectorTest.checkUILocation = function(uiSourceCode, lineNumber, columnNumber, location)
341 { 380 {
342 InspectorTest.assertEquals(uiSourceCode, location.uiSourceCode, "Incorrect u iSourceCode, expected '" + (uiSourceCode ? uiSourceCode.originURL() : null) + "' ," + 381 InspectorTest.assertEquals(uiSourceCode, location.uiSourceCode, "Incorrect u iSourceCode, expected '" + (uiSourceCode ? uiSourceCode.originURL() : null) + "' ," +
343 " but got '" + (location.uiSourceCode ? location.uiSourceCode.originURL() : null) + "'"); 382 " but got '" + (location.uiSourceCode ? location.uiSourceCode.originURL() : null) + "'");
344 InspectorTest.assertEquals(lineNumber, location.lineNumber, "Incorrect lineN umber, expected '" + lineNumber + "', but got '" + location.lineNumber + "'"); 383 InspectorTest.assertEquals(lineNumber, location.lineNumber, "Incorrect lineN umber, expected '" + lineNumber + "', but got '" + location.lineNumber + "'");
345 InspectorTest.assertEquals(columnNumber, location.columnNumber, "Incorrect c olumnNumber, expected '" + columnNumber + "', but got '" + location.columnNumber + "'"); 384 InspectorTest.assertEquals(columnNumber, location.columnNumber, "Incorrect c olumnNumber, expected '" + columnNumber + "', but got '" + location.columnNumber + "'");
346 }; 385 };
347 386
348 }; 387 };
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/http/tests/inspector/inspector-test.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698