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

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

Issue 2903083002: DevTools: shorten console links to 40 chars (Closed)
Patch Set: Created 3 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 /** 142 /**
143 * @param {?SDK.Target} target 143 * @param {?SDK.Target} target
144 * @param {?string} scriptId 144 * @param {?string} scriptId
145 * @param {string} sourceURL 145 * @param {string} sourceURL
146 * @param {number} lineNumber 146 * @param {number} lineNumber
147 * @param {number=} columnNumber 147 * @param {number=} columnNumber
148 * @param {string=} classes 148 * @param {string=} classes
149 * @return {?Element} 149 * @return {?Element}
150 */ 150 */
151 maybeLinkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumb er, classes) { 151 maybeLinkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumb er, classes) {
152 var fallbackAnchor = 152 var fallbackAnchor = sourceURL ?
153 sourceURL ? Components.Linkifier.linkifyURL(sourceURL, undefined, classe s, lineNumber, columnNumber) : null; 153 Components.Linkifier.linkifyURL(
154 sourceURL, undefined, classes, lineNumber, columnNumber, undefined, this._maxLength) :
155 null;
154 if (!target || target.isDisposed()) 156 if (!target || target.isDisposed())
155 return fallbackAnchor; 157 return fallbackAnchor;
156 var debuggerModel = target.model(SDK.DebuggerModel); 158 var debuggerModel = target.model(SDK.DebuggerModel);
157 if (!debuggerModel) 159 if (!debuggerModel)
158 return fallbackAnchor; 160 return fallbackAnchor;
159 161
160 var rawLocation = 162 var rawLocation =
161 (scriptId ? debuggerModel.createRawLocationByScriptId(scriptId, lineNumb er, columnNumber || 0) : null) || 163 (scriptId ? debuggerModel.createRawLocationByScriptId(scriptId, lineNumb er, columnNumber || 0) : null) ||
162 debuggerModel.createRawLocationByURL(sourceURL, lineNumber, columnNumber || 0); 164 debuggerModel.createRawLocationByURL(sourceURL, lineNumber, columnNumber || 0);
163 if (!rawLocation) 165 if (!rawLocation)
(...skipping 16 matching lines...) Expand all
180 * @param {?SDK.Target} target 182 * @param {?SDK.Target} target
181 * @param {?string} scriptId 183 * @param {?string} scriptId
182 * @param {string} sourceURL 184 * @param {string} sourceURL
183 * @param {number} lineNumber 185 * @param {number} lineNumber
184 * @param {number=} columnNumber 186 * @param {number=} columnNumber
185 * @param {string=} classes 187 * @param {string=} classes
186 * @return {!Element} 188 * @return {!Element}
187 */ 189 */
188 linkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumber, c lasses) { 190 linkifyScriptLocation(target, scriptId, sourceURL, lineNumber, columnNumber, c lasses) {
189 return this.maybeLinkifyScriptLocation(target, scriptId, sourceURL, lineNumb er, columnNumber, classes) || 191 return this.maybeLinkifyScriptLocation(target, scriptId, sourceURL, lineNumb er, columnNumber, classes) ||
190 Components.Linkifier.linkifyURL(sourceURL, undefined, classes, lineNumbe r, columnNumber); 192 Components.Linkifier.linkifyURL(
193 sourceURL, undefined, classes, lineNumber, columnNumber, undefined, this._maxLength);
191 } 194 }
192 195
193 /** 196 /**
194 * @param {!SDK.DebuggerModel.Location} rawLocation 197 * @param {!SDK.DebuggerModel.Location} rawLocation
195 * @param {string} fallbackUrl 198 * @param {string} fallbackUrl
196 * @param {string=} classes 199 * @param {string=} classes
197 * @return {!Element} 200 * @return {!Element}
198 */ 201 */
199 linkifyRawLocation(rawLocation, fallbackUrl, classes) { 202 linkifyRawLocation(rawLocation, fallbackUrl, classes) {
200 return this.linkifyScriptLocation( 203 return this.linkifyScriptLocation(
(...skipping 15 matching lines...) Expand all
216 /** 219 /**
217 * @param {!SDK.Target} target 220 * @param {!SDK.Target} target
218 * @param {!Protocol.Runtime.StackTrace} stackTrace 221 * @param {!Protocol.Runtime.StackTrace} stackTrace
219 * @param {string=} classes 222 * @param {string=} classes
220 * @return {!Element} 223 * @return {!Element}
221 */ 224 */
222 linkifyStackTraceTopFrame(target, stackTrace, classes) { 225 linkifyStackTraceTopFrame(target, stackTrace, classes) {
223 console.assert(stackTrace.callFrames && stackTrace.callFrames.length); 226 console.assert(stackTrace.callFrames && stackTrace.callFrames.length);
224 227
225 var topFrame = stackTrace.callFrames[0]; 228 var topFrame = stackTrace.callFrames[0];
226 var fallbackAnchor = 229 var fallbackAnchor = Components.Linkifier.linkifyURL(
227 Components.Linkifier.linkifyURL(topFrame.url, undefined, classes, topFra me.lineNumber, topFrame.columnNumber); 230 topFrame.url, undefined, classes, topFrame.lineNumber, topFrame.columnNu mber, undefined, this._maxLength);
228 if (target.isDisposed()) 231 if (target.isDisposed())
229 return fallbackAnchor; 232 return fallbackAnchor;
230 233
231 var debuggerModel = target.model(SDK.DebuggerModel); 234 var debuggerModel = target.model(SDK.DebuggerModel);
232 var rawLocations = debuggerModel.createRawLocationsByStackTrace(stackTrace); 235 var rawLocations = debuggerModel.createRawLocationsByStackTrace(stackTrace);
233 if (rawLocations.length === 0) 236 if (rawLocations.length === 0)
234 return fallbackAnchor; 237 return fallbackAnchor;
235 238
236 var anchor = Components.Linkifier._createLink('', classes || ''); 239 var anchor = Components.Linkifier._createLink('', classes || '');
237 var info = Components.Linkifier._linkInfo(anchor); 240 var info = Components.Linkifier._linkInfo(anchor);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 info.icon = icon; 322 info.icon = icon;
320 } 323 }
321 324
322 /** 325 /**
323 * @param {string} url 326 * @param {string} url
324 * @param {string=} text 327 * @param {string=} text
325 * @param {string=} className 328 * @param {string=} className
326 * @param {number=} lineNumber 329 * @param {number=} lineNumber
327 * @param {number=} columnNumber 330 * @param {number=} columnNumber
328 * @param {boolean=} preventClick 331 * @param {boolean=} preventClick
332 * @param {number=} maxLength
329 * @return {!Element} 333 * @return {!Element}
330 */ 334 */
331 static linkifyURL(url, text, className, lineNumber, columnNumber, preventClick ) { 335 static linkifyURL(url, text, className, lineNumber, columnNumber, preventClick , maxLength) {
pfeldman 2017/05/24 20:16:29 Do you know who uses prevent click? Maybe it is ti
luoe 2017/05/24 21:58:25 Only Elements' tree outline and SSP have links tha
332 if (!url || url.trim().toLowerCase().startsWith('javascript:')) { 336 if (!url || url.trim().toLowerCase().startsWith('javascript:')) {
333 var element = createElementWithClass('span', className); 337 var element = createElementWithClass('span', className);
334 element.textContent = text || url || Common.UIString('(unknown)'); 338 element.textContent = text || url || Common.UIString('(unknown)');
335 return element; 339 return element;
336 } 340 }
337 341
338 var linkText = text || Bindings.displayNameForURL(url); 342 var linkText = text || Bindings.displayNameForURL(url);
339 if (typeof lineNumber === 'number' && !text) 343 if (typeof lineNumber === 'number' && !text)
340 linkText += ':' + (lineNumber + 1); 344 linkText += ':' + (lineNumber + 1);
341 var title = linkText !== url ? url : ''; 345 var title = linkText !== url ? url : '';
342 var link = Components.Linkifier._createLink( 346 var link = Components.Linkifier._createLink(
343 linkText, className || '', UI.MaxLengthForDisplayedURLs, title, url, pre ventClick); 347 linkText, className || '', maxLength || UI.MaxLengthForDisplayedURLs, ti tle, url, preventClick);
344 var info = Components.Linkifier._linkInfo(link); 348 var info = Components.Linkifier._linkInfo(link);
345 if (typeof lineNumber === 'number') 349 if (typeof lineNumber === 'number')
346 info.lineNumber = lineNumber; 350 info.lineNumber = lineNumber;
347 if (typeof columnNumber === 'number') 351 if (typeof columnNumber === 'number')
348 info.columnNumber = columnNumber; 352 info.columnNumber = columnNumber;
349 return link; 353 return link;
350 } 354 }
351 355
352 /** 356 /**
353 * @param {!Object} revealable 357 * @param {!Object} revealable
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 contextMenu.appendSeparator(); 820 contextMenu.appendSeparator();
817 contextMenu.appendItem(Common.UIString('Save'), save.bind(null, false)); 821 contextMenu.appendItem(Common.UIString('Save'), save.bind(null, false));
818 822
819 if (contentProvider instanceof Workspace.UISourceCode) { 823 if (contentProvider instanceof Workspace.UISourceCode) {
820 var uiSourceCode = /** @type {!Workspace.UISourceCode} */ (contentProvider ); 824 var uiSourceCode = /** @type {!Workspace.UISourceCode} */ (contentProvider );
821 if (!uiSourceCode.project().canSetFileContent()) 825 if (!uiSourceCode.project().canSetFileContent())
822 contextMenu.appendItem(Common.UIString.capitalize('Save ^as...'), save.b ind(null, true)); 826 contextMenu.appendItem(Common.UIString.capitalize('Save ^as...'), save.b ind(null, true));
823 } 827 }
824 } 828 }
825 }; 829 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698