Index: third_party/WebKit/Source/devtools/front_end/components/Linkifier.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/components/Linkifier.js b/third_party/WebKit/Source/devtools/front_end/components/Linkifier.js |
index c1c0279ca26fc9e1d7a8b630dcfa68e2d673ce04..fafc839fb64d3b8bcf2a5b23634abccfab9f31dd 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/components/Linkifier.js |
+++ b/third_party/WebKit/Source/devtools/front_end/components/Linkifier.js |
@@ -160,19 +160,20 @@ WebInspector.Linkifier.prototype = { |
* @param {number} lineNumber |
* @param {number=} columnNumber |
* @param {string=} classes |
- * @return {!Element} |
+ * @return {?Element} |
*/ |
- linkifyScriptLocation: function(target, scriptId, sourceURL, lineNumber, columnNumber, classes) |
+ maybeLinkifyScriptLocation: function(target, scriptId, sourceURL, lineNumber, columnNumber, classes) |
{ |
- var fallbackAnchor = WebInspector.linkifyResourceAsNode(sourceURL, lineNumber, columnNumber, classes); |
+ var fallbackAnchor = sourceURL ? WebInspector.linkifyResourceAsNode(sourceURL, lineNumber, columnNumber, classes) : null; |
if (!target || target.isDetached()) |
return fallbackAnchor; |
var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
if (!debuggerModel) |
return fallbackAnchor; |
- var rawLocation = scriptId ? debuggerModel.createRawLocationByScriptId(scriptId, lineNumber, columnNumber || 0) : |
- debuggerModel.createRawLocationByURL(sourceURL, lineNumber, columnNumber || 0); |
+ var rawLocation = |
+ debuggerModel.createRawLocationByScriptId(scriptId, lineNumber, columnNumber || 0) || |
+ debuggerModel.createRawLocationByURL(sourceURL, lineNumber, columnNumber || 0); |
if (!rawLocation) |
return fallbackAnchor; |
@@ -186,6 +187,21 @@ WebInspector.Linkifier.prototype = { |
}, |
/** |
+ * @param {?WebInspector.Target} target |
+ * @param {?string} scriptId |
+ * @param {string} sourceURL |
+ * @param {number} lineNumber |
+ * @param {number=} columnNumber |
+ * @param {string=} classes |
+ * @return {!Element} |
+ */ |
+ linkifyScriptLocation: function(target, scriptId, sourceURL, lineNumber, columnNumber, classes) |
+ { |
+ return this.maybeLinkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumber, classes) |
+ || WebInspector.linkifyResourceAsNode(sourceURL, lineNumber, columnNumber, classes); |
+ }, |
+ |
+ /** |
* @param {!WebInspector.DebuggerModel.Location} rawLocation |
* @param {string} fallbackUrl |
* @param {string=} classes |
@@ -200,20 +216,20 @@ WebInspector.Linkifier.prototype = { |
* @param {?WebInspector.Target} target |
* @param {!RuntimeAgent.CallFrame} callFrame |
* @param {string=} classes |
- * @return {!Element} |
+ * @return {?Element} |
*/ |
- linkifyConsoleCallFrame: function(target, callFrame, classes) |
+ maybeLinkifyConsoleCallFrame: function(target, callFrame, classes) |
{ |
- return this.linkifyScriptLocation(target, callFrame.scriptId, callFrame.url, callFrame.lineNumber, callFrame.columnNumber, classes); |
+ return this.maybeLinkifyScriptLocation(target, callFrame.scriptId, callFrame.url, callFrame.lineNumber, callFrame.columnNumber, classes); |
}, |
/** |
* @param {?WebInspector.Target} target |
* @param {!RuntimeAgent.CallFrame} callFrame |
* @param {string=} classes |
- * @return {!Element} |
+ * @return {?Element} |
*/ |
- linkifyConsoleCallFrameForTimeline: function(target, callFrame, classes) |
+ maybeLinkifyConsoleCallFrameForTimeline: function(target, callFrame, classes) |
{ |
// TODO(kozyatinskiy): remove this when Profilers will migrate to 0-based lineNumber and columnNumber. |
return this.linkifyScriptLocation(target, callFrame.scriptId, callFrame.url, callFrame.lineNumber - 1, callFrame.columnNumber - 1, classes); |
@@ -534,7 +550,12 @@ WebInspector.linkifyStringAsFragment = function(string) |
*/ |
WebInspector.linkifyResourceAsNode = function(url, lineNumber, columnNumber, classes, tooltipText, urlDisplayName) |
{ |
- var linkText = urlDisplayName ? urlDisplayName : url ? WebInspector.displayNameForURL(url) : WebInspector.UIString("(program)"); |
+ if (!url) { |
+ var element = createElementWithClass("span", classes); |
+ element.textContent = urlDisplayName || WebInspector.UIString("(unknown)"); |
+ return element; |
+ } |
+ var linkText = urlDisplayName || WebInspector.displayNameForURL(url); |
if (typeof lineNumber === "number") |
linkText += ":" + (lineNumber + 1); |
var anchor = WebInspector.linkifyURLAsNode(url, linkText, classes, false, tooltipText); |