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

Unified Diff: third_party/WebKit/Source/devtools/front_end/components/Linkifier.js

Issue 2902273002: DevTools: convert linkifyURL params into options object (Closed)
Patch Set: rebase and ac Created 3 years, 7 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
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 2807648aeae75321e40d69a71a08b7956c45816a..4b6c0555064adccc83d1309cbf3a13f7d5c7b921 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,12 @@ 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(
+ sourceURL,
+ {className: classes, lineNumber: lineNumber, columnNumber: columnNumber, maxLength: this._maxLength});
+ }
if (!target || target.isDisposed())
return fallbackAnchor;
var debuggerModel = target.model(SDK.DebuggerModel);
@@ -188,9 +190,11 @@ Components.Linkifier = class {
* @return {!Element}
*/
linkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumber, classes) {
- return this.maybeLinkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumber, classes) ||
+ var scriptLink = this.maybeLinkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumber, classes);
+ return scriptLink ||
Components.Linkifier.linkifyURL(
- sourceURL, undefined, classes, lineNumber, columnNumber, undefined, this._maxLength);
+ sourceURL,
+ {className: classes, lineNumber: lineNumber, columnNumber: columnNumber, maxLength: this._maxLength});
}
/**
@@ -226,8 +230,12 @@ 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(topFrame.url, {
+ className: classes,
+ lineNumber: topFrame.lineNumber,
+ columnNumber: topFrame.columnNumber,
+ maxLength: this._maxLength
+ });
if (target.isDisposed())
return fallbackAnchor;
@@ -324,15 +332,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(url, options) {
+ options = options || {};
+ var text = options.text;
+ var className = options.className || '';
+ var lineNumber = options.lineNumber;
+ var columnNumber = options.columnNumber;
+ var preventClick = options.preventClick;
+ var maxLength = options.maxLength || UI.MaxLengthForDisplayedURLs;
if (!url || url.trim().toLowerCase().startsWith('javascript:')) {
var element = createElementWithClass('span', className);
element.textContent = text || url || Common.UIString('(unknown)');
@@ -343,8 +353,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;
@@ -606,6 +615,18 @@ Components.Linkifier._untruncatedNodeTextSymbol = Symbol('Linkifier.untruncatedN
*/
Components._LinkInfo;
+/**
+ * @typedef {{
+ * 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
@@ -692,7 +713,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, {text: title, lineNumber: lineNumber, columnNumber: columnNumber});
}
return Components.linkifyStringAsFragmentWithCustomLinkifier(string, linkifier);

Powered by Google App Engine
This is Rietveld 408576698