Chromium Code Reviews| 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 b72baa3c79f0c14f754ce789260a77deadbe0b0d..7231ebd2a4ff30da0b6e17cd6e64303c3cf65f6f 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/components/Linkifier.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/components/Linkifier.js |
| @@ -149,10 +149,16 @@ Components.Linkifier = class { |
| * @return {?Element} |
| */ |
| maybeLinkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumber, classes) { |
| - var fallbackAnchor = sourceURL ? |
| - Components.Linkifier.linkifyURL( |
| - sourceURL, undefined, classes, lineNumber, columnNumber, undefined, this._maxLength) : |
| - null; |
| + var fallbackAnchor = null; |
| + if (sourceURL) { |
| + fallbackAnchor = Components.Linkifier.linkifyURL({ |
| + url: sourceURL, |
| + className: classes, |
| + lineNumber: lineNumber, |
| + columnNumber: columnNumber, |
| + maxLength: this._maxLength |
| + }); |
| + } |
| if (!target || target.isDisposed()) |
| return fallbackAnchor; |
| var debuggerModel = target.model(SDK.DebuggerModel); |
| @@ -188,9 +194,14 @@ Components.Linkifier = class { |
| * @return {!Element} |
| */ |
| linkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumber, classes) { |
| - return this.maybeLinkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumber, classes) || |
| - Components.Linkifier.linkifyURL( |
| - sourceURL, undefined, classes, lineNumber, columnNumber, undefined, this._maxLength); |
| + var scriptLink = this.maybeLinkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumber, classes); |
| + return scriptLink || Components.Linkifier.linkifyURL({ |
| + url: sourceURL, |
| + className: classes, |
| + lineNumber: lineNumber, |
| + columnNumber: columnNumber, |
| + maxLength: this._maxLength |
| + }); |
| } |
| /** |
| @@ -226,8 +237,13 @@ Components.Linkifier = class { |
| console.assert(stackTrace.callFrames && stackTrace.callFrames.length); |
| var topFrame = stackTrace.callFrames[0]; |
| - var fallbackAnchor = Components.Linkifier.linkifyURL( |
| - topFrame.url, undefined, classes, topFrame.lineNumber, topFrame.columnNumber, undefined, this._maxLength); |
| + var fallbackAnchor = Components.Linkifier.linkifyURL({ |
| + url: topFrame.url, |
| + className: classes, |
| + lineNumber: topFrame.lineNumber, |
| + columnNumber: topFrame.columnNumber, |
| + maxLength: this._maxLength |
| + }); |
| if (target.isDisposed()) |
| return fallbackAnchor; |
| @@ -323,16 +339,17 @@ Components.Linkifier = class { |
| } |
| /** |
| - * @param {string} url |
| - * @param {string=} text |
| - * @param {string=} className |
| - * @param {number=} lineNumber |
| - * @param {number=} columnNumber |
| - * @param {boolean=} preventClick |
| - * @param {number=} maxLength |
| + * @param {!Components.LinkifyURLOptions} options |
| * @return {!Element} |
| */ |
| - static linkifyURL(url, text, className, lineNumber, columnNumber, preventClick, maxLength) { |
| + static linkifyURL(options) { |
|
pfeldman
2017/05/31 21:54:59
In my original review, I was suggesting to only co
luoe
2017/06/02 18:21:12
I see. Looks better to me!
|
| + var url = options.url; |
| + var text = options.text; |
| + var className = options.className || ''; |
| + var lineNumber = options.lineNumber; |
| + var columnNumber = options.columnNumber; |
| + var preventClick = options.preventClick; |
| + var maxLength = maxLength || UI.MaxLengthForDisplayedURLs; |
| if (!url || url.trim().toLowerCase().startsWith('javascript:')) { |
| var element = createElementWithClass('span', className); |
| element.textContent = text || url || Common.UIString('(unknown)'); |
| @@ -343,8 +360,7 @@ Components.Linkifier = class { |
| if (typeof lineNumber === 'number' && !text) |
| linkText += ':' + (lineNumber + 1); |
| var title = linkText !== url ? url : ''; |
| - var link = Components.Linkifier._createLink( |
| - linkText, className || '', maxLength || UI.MaxLengthForDisplayedURLs, title, url, preventClick); |
| + var link = Components.Linkifier._createLink(linkText, className, maxLength, title, url, preventClick); |
| var info = Components.Linkifier._linkInfo(link); |
| if (typeof lineNumber === 'number') |
| info.lineNumber = lineNumber; |
| @@ -607,6 +623,19 @@ Components.Linkifier._untruncatedNodeTextSymbol = Symbol('Linkifier.untruncatedN |
| Components._LinkInfo; |
| /** |
| + * @typedef {{ |
| + * url: string, |
| + * text: (string|undefined), |
| + * className: (string|undefined), |
| + * lineNumber: (number|undefined), |
| + * columnNumber: (number|undefined), |
| + * preventClick: (boolean|undefined), |
| + * maxLength: (number|undefined) |
| + * }} |
| + */ |
| +Components.LinkifyURLOptions; |
| + |
| +/** |
| * The maximum length before strings are considered too long for finding URLs. |
| * @const |
| * @type {number} |
| @@ -692,7 +721,7 @@ Components.linkifyStringAsFragment = function(string) { |
| * @return {!Node} |
| */ |
| function linkifier(title, url, lineNumber, columnNumber) { |
| - return Components.Linkifier.linkifyURL(url, title, undefined, lineNumber, columnNumber); |
| + return Components.Linkifier.linkifyURL({url: url, text: title, lineNumber: lineNumber, columnNumber: columnNumber}); |
| } |
| return Components.linkifyStringAsFragmentWithCustomLinkifier(string, linkifier); |