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

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: up + test 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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 46
47 /** @type {?UI.DataGrid} */ 47 /** @type {?UI.DataGrid} */
48 this._dataGrid = null; 48 this._dataGrid = null;
49 this._previewFormatter = new Components.RemoteObjectPreviewFormatter(); 49 this._previewFormatter = new Components.RemoteObjectPreviewFormatter();
50 this._searchRegex = null; 50 this._searchRegex = null;
51 /** @type {?UI.Icon} */ 51 /** @type {?UI.Icon} */
52 this._messageLevelIcon = null; 52 this._messageLevelIcon = null;
53 } 53 }
54 54
55 /** 55 /**
56 * @param {!Node} node
57 * @return {string}
58 */
59 static _contentTransform(node) {
60 var originalLinkText = Components.Linkifier.originalLinkText(node.parentElem ent);
61 if (typeof originalLinkText === 'string')
62 return originalLinkText;
63 return node.textContent;
64 }
65
66 /**
56 * @return {?SDK.Target} 67 * @return {?SDK.Target}
57 */ 68 */
58 _target() { 69 _target() {
59 return this.consoleMessage().target(); 70 return this.consoleMessage().target();
60 } 71 }
61 72
62 /** 73 /**
63 * @override 74 * @override
64 * @return {!Element} 75 * @return {!Element}
65 */ 76 */
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 if (consoleMessage.source !== SDK.ConsoleMessage.MessageSource.Network || co nsoleMessage.request) { 296 if (consoleMessage.source !== SDK.ConsoleMessage.MessageSource.Network || co nsoleMessage.request) {
286 if (consoleMessage.scriptId) { 297 if (consoleMessage.scriptId) {
287 anchorElement = this._linkifyScriptId( 298 anchorElement = this._linkifyScriptId(
288 consoleMessage.scriptId, consoleMessage.url || '', consoleMessage.li ne, consoleMessage.column); 299 consoleMessage.scriptId, consoleMessage.url || '', consoleMessage.li ne, consoleMessage.column);
289 } else if (consoleMessage.stackTrace && consoleMessage.stackTrace.callFram es.length) { 300 } else if (consoleMessage.stackTrace && consoleMessage.stackTrace.callFram es.length) {
290 anchorElement = this._linkifyStackTraceTopFrame(consoleMessage.stackTrac e); 301 anchorElement = this._linkifyStackTraceTopFrame(consoleMessage.stackTrac e);
291 } else if (consoleMessage.url && consoleMessage.url !== 'undefined') { 302 } else if (consoleMessage.url && consoleMessage.url !== 'undefined') {
292 anchorElement = this._linkifyLocation(consoleMessage.url, consoleMessage .line, consoleMessage.column); 303 anchorElement = this._linkifyLocation(consoleMessage.url, consoleMessage .line, consoleMessage.column);
293 } 304 }
294 } else if (consoleMessage.url) { 305 } else if (consoleMessage.url) {
295 anchorElement = Components.Linkifier.linkifyURL(consoleMessage.url, undefi ned, 'console-message-url'); 306 anchorElement = Components.Linkifier.linkifyURL(consoleMessage.url, undefi ned);
296 } 307 }
297 308
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. 309 // 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) 310 if (anchorElement) {
300 anchorElement.appendChild(createTextNode(' ')); 311 var anchorWrapperElement = createElementWithClass('span', 'console-message -anchor');
301 return anchorElement; 312 anchorWrapperElement.appendChild(anchorElement);
313 anchorWrapperElement.createTextChild(' ');
314 return anchorWrapperElement;
315 }
316 return null;
302 } 317 }
303 318
304 /** 319 /**
305 * @param {!SDK.ConsoleMessage} consoleMessage 320 * @param {!SDK.ConsoleMessage} consoleMessage
306 * @param {!SDK.Target} target 321 * @param {!SDK.Target} target
307 * @param {!Components.Linkifier} linkifier 322 * @param {!Components.Linkifier} linkifier
308 * @return {!Element} 323 * @return {!Element}
309 */ 324 */
310 _buildMessageWithStackTrace(consoleMessage, target, linkifier) { 325 _buildMessageWithStackTrace(consoleMessage, target, linkifier) {
311 var toggleElement = createElementWithClass('div', 'console-message-stack-tra ce-toggle'); 326 var toggleElement = createElementWithClass('div', 'console-message-stack-tra ce-toggle');
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 /** 364 /**
350 * @param {string} url 365 * @param {string} url
351 * @param {number} lineNumber 366 * @param {number} lineNumber
352 * @param {number} columnNumber 367 * @param {number} columnNumber
353 * @return {?Element} 368 * @return {?Element}
354 */ 369 */
355 _linkifyLocation(url, lineNumber, columnNumber) { 370 _linkifyLocation(url, lineNumber, columnNumber) {
356 var target = this._target(); 371 var target = this._target();
357 if (!target) 372 if (!target)
358 return null; 373 return null;
359 return this._linkifier.linkifyScriptLocation(target, null, url, lineNumber, columnNumber, 'console-message-url'); 374 return this._linkifier.linkifyScriptLocation(target, null, url, lineNumber, columnNumber);
360 } 375 }
361 376
362 /** 377 /**
363 * @param {!Protocol.Runtime.StackTrace} stackTrace 378 * @param {!Protocol.Runtime.StackTrace} stackTrace
364 * @return {?Element} 379 * @return {?Element}
365 */ 380 */
366 _linkifyStackTraceTopFrame(stackTrace) { 381 _linkifyStackTraceTopFrame(stackTrace) {
367 var target = this._target(); 382 var target = this._target();
368 if (!target) 383 if (!target)
369 return null; 384 return null;
370 return this._linkifier.linkifyStackTraceTopFrame(target, stackTrace, 'consol e-message-url'); 385 return this._linkifier.linkifyStackTraceTopFrame(target, stackTrace);
371 } 386 }
372 387
373 /** 388 /**
374 * @param {string} scriptId 389 * @param {string} scriptId
375 * @param {string} url 390 * @param {string} url
376 * @param {number} lineNumber 391 * @param {number} lineNumber
377 * @param {number} columnNumber 392 * @param {number} columnNumber
378 * @return {?Element} 393 * @return {?Element}
379 */ 394 */
380 _linkifyScriptId(scriptId, url, lineNumber, columnNumber) { 395 _linkifyScriptId(scriptId, url, lineNumber, columnNumber) {
381 var target = this._target(); 396 var target = this._target();
382 if (!target) 397 if (!target)
383 return null; 398 return null;
384 return this._linkifier.linkifyScriptLocation( 399 return this._linkifier.linkifyScriptLocation(target, scriptId, url, lineNumb er, columnNumber);
385 target, scriptId, url, lineNumber, columnNumber, 'console-message-url');
386 } 400 }
387 401
388 /** 402 /**
389 * @param {!SDK.RemoteObject|!Object|string} parameter 403 * @param {!SDK.RemoteObject|!Object|string} parameter
390 * @param {?SDK.Target} target 404 * @param {?SDK.Target} target
391 * @return {!SDK.RemoteObject} 405 * @return {!SDK.RemoteObject}
392 */ 406 */
393 _parameterToRemoteObject(parameter, target) { 407 _parameterToRemoteObject(parameter, target) {
394 if (parameter instanceof SDK.RemoteObject) 408 if (parameter instanceof SDK.RemoteObject)
395 return parameter; 409 return parameter;
(...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after
1084 this._contentElement.classList.add('repeated-message'); 1098 this._contentElement.classList.add('repeated-message');
1085 } 1099 }
1086 this._repeatCountElement.textContent = this._repeatCount; 1100 this._repeatCountElement.textContent = this._repeatCount;
1087 } 1101 }
1088 1102
1089 get text() { 1103 get text() {
1090 return this._message.messageText; 1104 return this._message.messageText;
1091 } 1105 }
1092 1106
1093 /** 1107 /**
1108 * @return {string}
1109 */
1110 toExportString() {
1111 var lines = [];
1112 var messageContent = this.contentElement().deepTextContent(Console.ConsoleVi ewMessage._contentTransform);
1113 for (var i = 0; i < this.repeatCount(); ++i)
1114 lines.push(messageContent);
1115 return lines.join('\n');
1116 }
1117
1118 /**
1094 * @param {?RegExp} regex 1119 * @param {?RegExp} regex
1095 */ 1120 */
1096 setSearchRegex(regex) { 1121 setSearchRegex(regex) {
1097 if (this._searchHiglightNodeChanges && this._searchHiglightNodeChanges.lengt h) 1122 if (this._searchHiglightNodeChanges && this._searchHiglightNodeChanges.lengt h)
1098 UI.revertDomChanges(this._searchHiglightNodeChanges); 1123 UI.revertDomChanges(this._searchHiglightNodeChanges);
1099 this._searchRegex = regex; 1124 this._searchRegex = regex;
1100 this._searchHighlightNodes = []; 1125 this._searchHighlightNodes = [];
1101 this._searchHiglightNodeChanges = []; 1126 this._searchHiglightNodeChanges = [];
1102 if (!this._searchRegex) 1127 if (!this._searchRegex)
1103 return; 1128 return;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
1262 toMessageElement() { 1287 toMessageElement() {
1263 if (!this._element) { 1288 if (!this._element) {
1264 super.toMessageElement(); 1289 super.toMessageElement();
1265 this._expandGroupIcon = UI.Icon.create('', 'expand-group-icon'); 1290 this._expandGroupIcon = UI.Icon.create('', 'expand-group-icon');
1266 this._contentElement.insertBefore(this._expandGroupIcon, this._contentElem ent.firstChild); 1291 this._contentElement.insertBefore(this._expandGroupIcon, this._contentElem ent.firstChild);
1267 this.setCollapsed(this._collapsed); 1292 this.setCollapsed(this._collapsed);
1268 } 1293 }
1269 return this._element; 1294 return this._element;
1270 } 1295 }
1271 }; 1296 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698