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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/console/ConsoleViewMessage.js

Issue 2571713005: DevTools: untruncate links on console export (Closed)
Patch Set: test desc Created 4 years 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 3 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
4 * Copyright (C) 2009 Joseph Pecoraro 4 * Copyright (C) 2009 Joseph Pecoraro
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 9 *
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 if (consoleMessage.source !== SDK.ConsoleMessage.MessageSource.Network || co nsoleMessage.request) { 285 if (consoleMessage.source !== SDK.ConsoleMessage.MessageSource.Network || co nsoleMessage.request) {
286 if (consoleMessage.scriptId) { 286 if (consoleMessage.scriptId) {
287 anchorElement = this._linkifyScriptId( 287 anchorElement = this._linkifyScriptId(
288 consoleMessage.scriptId, consoleMessage.url || '', consoleMessage.li ne, consoleMessage.column); 288 consoleMessage.scriptId, consoleMessage.url || '', consoleMessage.li ne, consoleMessage.column);
289 } else if (consoleMessage.stackTrace && consoleMessage.stackTrace.callFram es.length) { 289 } else if (consoleMessage.stackTrace && consoleMessage.stackTrace.callFram es.length) {
290 anchorElement = this._linkifyStackTraceTopFrame(consoleMessage.stackTrac e); 290 anchorElement = this._linkifyStackTraceTopFrame(consoleMessage.stackTrac e);
291 } else if (consoleMessage.url && consoleMessage.url !== 'undefined') { 291 } else if (consoleMessage.url && consoleMessage.url !== 'undefined') {
292 anchorElement = this._linkifyLocation(consoleMessage.url, consoleMessage .line, consoleMessage.column); 292 anchorElement = this._linkifyLocation(consoleMessage.url, consoleMessage .line, consoleMessage.column);
293 } 293 }
294 } else if (consoleMessage.url) { 294 } else if (consoleMessage.url) {
295 anchorElement = Components.Linkifier.linkifyURL(consoleMessage.url, undefi ned, 'console-message-url'); 295 anchorElement = Components.Linkifier.linkifyURL(consoleMessage.url, undefi ned);
296 } 296 }
297 297
298 // Append a space to prevent the anchor text from being glued to the console message when the user selects and copies the console messages. 298 // Append a space to prevent the anchor text from being glued to the console message when the user selects and copies the console messages.
299 if (anchorElement) 299 if (anchorElement) {
300 anchorElement.appendChild(createTextNode(' ')); 300 var anchorWrapperElement = createElementWithClass('span', 'console-message -anchor');
301 return anchorElement; 301 anchorWrapperElement.appendChild(anchorElement);
302 anchorWrapperElement.createTextChild(' ');
303 return anchorWrapperElement;
304 }
305 return null;
302 } 306 }
303 307
304 /** 308 /**
305 * @param {!SDK.ConsoleMessage} consoleMessage 309 * @param {!SDK.ConsoleMessage} consoleMessage
306 * @param {!SDK.Target} target 310 * @param {!SDK.Target} target
307 * @param {!Components.Linkifier} linkifier 311 * @param {!Components.Linkifier} linkifier
308 * @return {!Element} 312 * @return {!Element}
309 */ 313 */
310 _buildMessageWithStackTrace(consoleMessage, target, linkifier) { 314 _buildMessageWithStackTrace(consoleMessage, target, linkifier) {
311 var toggleElement = createElementWithClass('div', 'console-message-stack-tra ce-toggle'); 315 var toggleElement = createElementWithClass('div', 'console-message-stack-tra ce-toggle');
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 /** 353 /**
350 * @param {string} url 354 * @param {string} url
351 * @param {number} lineNumber 355 * @param {number} lineNumber
352 * @param {number} columnNumber 356 * @param {number} columnNumber
353 * @return {?Element} 357 * @return {?Element}
354 */ 358 */
355 _linkifyLocation(url, lineNumber, columnNumber) { 359 _linkifyLocation(url, lineNumber, columnNumber) {
356 var target = this._target(); 360 var target = this._target();
357 if (!target) 361 if (!target)
358 return null; 362 return null;
359 return this._linkifier.linkifyScriptLocation(target, null, url, lineNumber, columnNumber, 'console-message-url'); 363 return this._linkifier.linkifyScriptLocation(target, null, url, lineNumber, columnNumber);
360 } 364 }
361 365
362 /** 366 /**
363 * @param {!Protocol.Runtime.StackTrace} stackTrace 367 * @param {!Protocol.Runtime.StackTrace} stackTrace
364 * @return {?Element} 368 * @return {?Element}
365 */ 369 */
366 _linkifyStackTraceTopFrame(stackTrace) { 370 _linkifyStackTraceTopFrame(stackTrace) {
367 var target = this._target(); 371 var target = this._target();
368 if (!target) 372 if (!target)
369 return null; 373 return null;
370 return this._linkifier.linkifyStackTraceTopFrame(target, stackTrace, 'consol e-message-url'); 374 return this._linkifier.linkifyStackTraceTopFrame(target, stackTrace);
371 } 375 }
372 376
373 /** 377 /**
374 * @param {string} scriptId 378 * @param {string} scriptId
375 * @param {string} url 379 * @param {string} url
376 * @param {number} lineNumber 380 * @param {number} lineNumber
377 * @param {number} columnNumber 381 * @param {number} columnNumber
378 * @return {?Element} 382 * @return {?Element}
379 */ 383 */
380 _linkifyScriptId(scriptId, url, lineNumber, columnNumber) { 384 _linkifyScriptId(scriptId, url, lineNumber, columnNumber) {
381 var target = this._target(); 385 var target = this._target();
382 if (!target) 386 if (!target)
383 return null; 387 return null;
384 return this._linkifier.linkifyScriptLocation( 388 return this._linkifier.linkifyScriptLocation(target, scriptId, url, lineNumb er, columnNumber);
385 target, scriptId, url, lineNumber, columnNumber, 'console-message-url');
386 } 389 }
387 390
388 /** 391 /**
389 * @param {!SDK.RemoteObject|!Object|string} parameter 392 * @param {!SDK.RemoteObject|!Object|string} parameter
390 * @param {?SDK.Target} target 393 * @param {?SDK.Target} target
391 * @return {!SDK.RemoteObject} 394 * @return {!SDK.RemoteObject}
392 */ 395 */
393 _parameterToRemoteObject(parameter, target) { 396 _parameterToRemoteObject(parameter, target) {
394 if (parameter instanceof SDK.RemoteObject) 397 if (parameter instanceof SDK.RemoteObject)
395 return parameter; 398 return parameter;
(...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after
1084 this._contentElement.classList.add('repeated-message'); 1087 this._contentElement.classList.add('repeated-message');
1085 } 1088 }
1086 this._repeatCountElement.textContent = this._repeatCount; 1089 this._repeatCountElement.textContent = this._repeatCount;
1087 } 1090 }
1088 1091
1089 get text() { 1092 get text() {
1090 return this._message.messageText; 1093 return this._message.messageText;
1091 } 1094 }
1092 1095
1093 /** 1096 /**
1097 * @return {string}
1098 */
1099 toExportString() {
1100 var lines = [];
1101 var messageContent = this.contentElement()
dgozman 2017/01/10 01:03:30 Let's reformat somehow...
luoe 2017/01/10 22:21:44 Done.
1102 .childTextNodes()
1103 .map(node => {
dgozman 2017/01/10 01:03:30 var nodes = ...; for (var index = 0; index < nodes
luoe 2017/01/10 22:21:44 Done.
1104 var originalLinkText = Components.Linkifier.origi nalLinkText(node.parentElement);
1105 return typeof originalLinkText === 'string' ? ori ginalLinkText : node.textContent;
1106 })
1107 .join('');
1108 for (var i = 0; i < this.repeatCount(); ++i)
1109 lines.push(messageContent);
1110 return lines.join('\n');
1111 }
1112
1113 /**
1094 * @param {?RegExp} regex 1114 * @param {?RegExp} regex
1095 */ 1115 */
1096 setSearchRegex(regex) { 1116 setSearchRegex(regex) {
1097 if (this._searchHiglightNodeChanges && this._searchHiglightNodeChanges.lengt h) 1117 if (this._searchHiglightNodeChanges && this._searchHiglightNodeChanges.lengt h)
1098 UI.revertDomChanges(this._searchHiglightNodeChanges); 1118 UI.revertDomChanges(this._searchHiglightNodeChanges);
1099 this._searchRegex = regex; 1119 this._searchRegex = regex;
1100 this._searchHighlightNodes = []; 1120 this._searchHighlightNodes = [];
1101 this._searchHiglightNodeChanges = []; 1121 this._searchHiglightNodeChanges = [];
1102 if (!this._searchRegex) 1122 if (!this._searchRegex)
1103 return; 1123 return;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
1262 toMessageElement() { 1282 toMessageElement() {
1263 if (!this._element) { 1283 if (!this._element) {
1264 super.toMessageElement(); 1284 super.toMessageElement();
1265 this._expandGroupIcon = UI.Icon.create('', 'expand-group-icon'); 1285 this._expandGroupIcon = UI.Icon.create('', 'expand-group-icon');
1266 this._contentElement.insertBefore(this._expandGroupIcon, this._contentElem ent.firstChild); 1286 this._contentElement.insertBefore(this._expandGroupIcon, this._contentElem ent.firstChild);
1267 this.setCollapsed(this._collapsed); 1287 this.setCollapsed(this._collapsed);
1268 } 1288 }
1269 return this._element; 1289 return this._element;
1270 } 1290 }
1271 }; 1291 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698