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

Unified Diff: Source/devtools/front_end/sdk/ScriptSnippetModel.js

Issue 290633009: DevTools: Show detailed information for exceptions during snippet execution. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/inspector/InspectorDebuggerAgent.cpp ('k') | Source/devtools/protocol.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/front_end/sdk/ScriptSnippetModel.js
diff --git a/Source/devtools/front_end/sdk/ScriptSnippetModel.js b/Source/devtools/front_end/sdk/ScriptSnippetModel.js
index 248ded46803a8bc8f3325f37958ccae53507c6ef..a7a75fd02f6e8fc6cf07d7275ae7199cba68e0fb 100644
--- a/Source/devtools/front_end/sdk/ScriptSnippetModel.js
+++ b/Source/devtools/front_end/sdk/ScriptSnippetModel.js
@@ -245,11 +245,11 @@ WebInspector.ScriptSnippetModel.prototype = {
/**
* @param {!WebInspector.Target} target
* @param {?string} error
- * @param {string=} scriptId
- * @param {string=} syntaxErrorMessage
+ * @param {!DebuggerAgent.ScriptId=} scriptId
+ * @param {?DebuggerAgent.ExceptionDetails=} exceptionDetails
* @this {WebInspector.ScriptSnippetModel}
*/
- function compileCallback(target, error, scriptId, syntaxErrorMessage)
+ function compileCallback(target, error, scriptId, exceptionDetails)
{
if (!uiSourceCode || this._mappingForTarget.get(target).evaluationIndex(uiSourceCode) !== evaluationIndex)
return;
@@ -260,27 +260,23 @@ WebInspector.ScriptSnippetModel.prototype = {
}
if (!scriptId) {
- var consoleMessage = new WebInspector.ConsoleMessage(
- target,
- WebInspector.ConsoleMessage.MessageSource.JS,
- WebInspector.ConsoleMessage.MessageLevel.Error,
- syntaxErrorMessage || "");
- target.consoleModel.addMessage(consoleMessage);
+ this._printRunOrCompileScriptResultFailure(target, exceptionDetails, evaluationUrl);
return;
}
var breakpointLocations = this._removeBreakpoints(uiSourceCode);
this._restoreBreakpoints(uiSourceCode, breakpointLocations);
- this._runScript(scriptId, executionContext);
+ this._runScript(scriptId, executionContext, evaluationUrl);
}
},
/**
* @param {!DebuggerAgent.ScriptId} scriptId
* @param {!WebInspector.ExecutionContext} executionContext
+ * @param {?string=} sourceURL
*/
- _runScript: function(scriptId, executionContext)
+ _runScript: function(scriptId, executionContext, sourceURL)
{
var target = executionContext.target();
target.debuggerAgent().runScript(scriptId, executionContext.id, "console", false, runCallback.bind(this, target));
@@ -289,39 +285,65 @@ WebInspector.ScriptSnippetModel.prototype = {
* @param {!WebInspector.Target} target
* @param {?string} error
* @param {?RuntimeAgent.RemoteObject} result
- * @param {boolean=} wasThrown
+ * @param {?DebuggerAgent.ExceptionDetails=} exceptionDetails
* @this {WebInspector.ScriptSnippetModel}
*/
- function runCallback(target, error, result, wasThrown)
+ function runCallback(target, error, result, exceptionDetails)
{
if (error) {
console.error(error);
return;
}
- this._printRunScriptResult(target, result, wasThrown);
+ if (!exceptionDetails)
+ this._printRunScriptResult(target, result, sourceURL);
+ else
+ this._printRunOrCompileScriptResultFailure(target, exceptionDetails, sourceURL);
}
},
/**
* @param {!WebInspector.Target} target
* @param {?RuntimeAgent.RemoteObject} result
- * @param {boolean=} wasThrown
+ * @param {?string=} sourceURL
*/
- _printRunScriptResult: function(target, result, wasThrown)
+ _printRunScriptResult: function(target, result, sourceURL)
{
- var level = (wasThrown ? WebInspector.ConsoleMessage.MessageLevel.Error : WebInspector.ConsoleMessage.MessageLevel.Log);
- var message = new WebInspector.ConsoleMessage(target,
+ var consoleMessage = new WebInspector.ConsoleMessage(
+ target,
WebInspector.ConsoleMessage.MessageSource.JS,
- level,
+ WebInspector.ConsoleMessage.MessageLevel.Log,
"",
undefined,
+ sourceURL,
undefined,
undefined,
undefined,
+ [result],
+ undefined);
+ target.consoleModel.addMessage(consoleMessage);
+ },
+
+ /**
+ * @param {!WebInspector.Target} target
+ * @param {?DebuggerAgent.ExceptionDetails=} exceptionDetails
+ * @param {?string=} sourceURL
+ */
+ _printRunOrCompileScriptResultFailure: function(target, exceptionDetails, sourceURL)
+ {
+ var consoleMessage = new WebInspector.ConsoleMessage(
+ target,
+ exceptionDetails.source,
+ WebInspector.ConsoleMessage.MessageLevel.Error,
+ exceptionDetails.text,
+ undefined,
+ sourceURL,
+ exceptionDetails.line,
+ exceptionDetails.column,
+ undefined,
undefined,
- [result]);
- target.consoleModel.addMessage(message);
+ exceptionDetails.stackTrace);
aandrey 2014/07/19 13:15:59 We also need to pass Console.AsyncStackTrace with
+ target.consoleModel.addMessage(consoleMessage);
},
/**
« no previous file with comments | « Source/core/inspector/InspectorDebuggerAgent.cpp ('k') | Source/devtools/protocol.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698