Index: Source/devtools/front_end/ConsoleViewMessage.js |
diff --git a/Source/devtools/front_end/ConsoleViewMessage.js b/Source/devtools/front_end/ConsoleViewMessage.js |
index 18f54e27ffa3d8275ec9a5b94247573f2ec6f2e8..bc530d79165b8b94fa9e968cc98e191f21066997 100644 |
--- a/Source/devtools/front_end/ConsoleViewMessage.js |
+++ b/Source/devtools/front_end/ConsoleViewMessage.js |
@@ -30,7 +30,7 @@ |
/** |
* @constructor |
- * |
+ * @param {!WebInspector.Target} target |
* @param {!WebInspector.ConsoleMessage} consoleMessage |
* @param {?WebInspector.Linkifier} linkifier |
*/ |
@@ -161,11 +161,11 @@ WebInspector.ConsoleViewMessage.prototype = { |
} |
if (consoleMessage.source !== WebInspector.ConsoleMessage.MessageSource.Network || consoleMessage.request) { |
- if (consoleMessage.stackTrace && consoleMessage.stackTrace.length && consoleMessage.stackTrace[0].scriptId) { |
- this._anchorElement = this._linkifyCallFrame(consoleMessage.stackTrace[0]); |
- } else if (consoleMessage.url && consoleMessage.url !== "undefined") { |
+ var callFrame = this._callFrameAnchorFromStackTrace(consoleMessage.stackTrace); |
+ if (callFrame) |
+ this._anchorElement = this._linkifyCallFrame(callFrame); |
+ else if (consoleMessage.url && consoleMessage.url !== "undefined") |
this._anchorElement = this._linkifyLocation(consoleMessage.url, consoleMessage.line, consoleMessage.column); |
- } |
} |
this._formattedMessage.appendChild(this._messageElement); |
@@ -248,6 +248,30 @@ WebInspector.ConsoleViewMessage.prototype = { |
}, |
/** |
+ * @param {?Array.<!ConsoleAgent.CallFrame>} stackTrace |
+ * @return {?ConsoleAgent.CallFrame} |
+ */ |
+ _callFrameAnchorFromStackTrace: function(stackTrace) |
+ { |
+ if (!stackTrace || !stackTrace.length) |
+ return null; |
+ var callFrame = stackTrace[0].scriptId ? stackTrace[0] : null; |
+ if (!WebInspector.experimentsSettings.frameworksDebuggingSupport.isEnabled()) |
+ return callFrame; |
+ if (!WebInspector.settings.skipStackFramesSwitch.get()) |
+ return callFrame; |
+ var regex = WebInspector.settings.skipStackFramesPattern.asRegExp(); |
+ if (!regex) |
+ return callFrame; |
+ for (var i = 0; i < stackTrace.length; ++i) { |
+ var script = this._target.debuggerModel.scriptForId(stackTrace[i].scriptId); |
+ if (!script || !regex.test(script.sourceURL)) |
+ return stackTrace[i].scriptId ? stackTrace[i] : null; |
+ } |
+ return callFrame; |
+ }, |
+ |
+ /** |
* @return {boolean} |
*/ |
isErrorOrWarning: function() |