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

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: rebase Created 3 years, 11 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) 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 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 /** 356 /**
353 * @param {string} url 357 * @param {string} url
354 * @param {number} lineNumber 358 * @param {number} lineNumber
355 * @param {number} columnNumber 359 * @param {number} columnNumber
356 * @return {?Element} 360 * @return {?Element}
357 */ 361 */
358 _linkifyLocation(url, lineNumber, columnNumber) { 362 _linkifyLocation(url, lineNumber, columnNumber) {
359 var target = this._target(); 363 var target = this._target();
360 if (!target) 364 if (!target)
361 return null; 365 return null;
362 return this._linkifier.linkifyScriptLocation(target, null, url, lineNumber, columnNumber, 'console-message-url'); 366 return this._linkifier.linkifyScriptLocation(target, null, url, lineNumber, columnNumber);
363 } 367 }
364 368
365 /** 369 /**
366 * @param {!Protocol.Runtime.StackTrace} stackTrace 370 * @param {!Protocol.Runtime.StackTrace} stackTrace
367 * @return {?Element} 371 * @return {?Element}
368 */ 372 */
369 _linkifyStackTraceTopFrame(stackTrace) { 373 _linkifyStackTraceTopFrame(stackTrace) {
370 var target = this._target(); 374 var target = this._target();
371 if (!target) 375 if (!target)
372 return null; 376 return null;
373 return this._linkifier.linkifyStackTraceTopFrame(target, stackTrace, 'consol e-message-url'); 377 return this._linkifier.linkifyStackTraceTopFrame(target, stackTrace);
374 } 378 }
375 379
376 /** 380 /**
377 * @param {string} scriptId 381 * @param {string} scriptId
378 * @param {string} url 382 * @param {string} url
379 * @param {number} lineNumber 383 * @param {number} lineNumber
380 * @param {number} columnNumber 384 * @param {number} columnNumber
381 * @return {?Element} 385 * @return {?Element}
382 */ 386 */
383 _linkifyScriptId(scriptId, url, lineNumber, columnNumber) { 387 _linkifyScriptId(scriptId, url, lineNumber, columnNumber) {
384 var target = this._target(); 388 var target = this._target();
385 if (!target) 389 if (!target)
386 return null; 390 return null;
387 return this._linkifier.linkifyScriptLocation( 391 return this._linkifier.linkifyScriptLocation(target, scriptId, url, lineNumb er, columnNumber);
388 target, scriptId, url, lineNumber, columnNumber, 'console-message-url');
389 } 392 }
390 393
391 /** 394 /**
392 * @param {!SDK.RemoteObject|!Object|string} parameter 395 * @param {!SDK.RemoteObject|!Object|string} parameter
393 * @param {?SDK.Target} target 396 * @param {?SDK.Target} target
394 * @return {!SDK.RemoteObject} 397 * @return {!SDK.RemoteObject}
395 */ 398 */
396 _parameterToRemoteObject(parameter, target) { 399 _parameterToRemoteObject(parameter, target) {
397 if (parameter instanceof SDK.RemoteObject) 400 if (parameter instanceof SDK.RemoteObject)
398 return parameter; 401 return parameter;
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
1011 this._contentElement.classList.add('repeated-message'); 1014 this._contentElement.classList.add('repeated-message');
1012 } 1015 }
1013 this._repeatCountElement.textContent = this._repeatCount; 1016 this._repeatCountElement.textContent = this._repeatCount;
1014 } 1017 }
1015 1018
1016 get text() { 1019 get text() {
1017 return this._message.messageText; 1020 return this._message.messageText;
1018 } 1021 }
1019 1022
1020 /** 1023 /**
1024 * @return {string}
1025 */
1026 toExportString() {
1027 var lines = [];
1028 var nodes = this.contentElement().childTextNodes();
1029 var messageContent = '';
1030 for (var i = 0; i < nodes.length; ++i) {
1031 var originalLinkText = Components.Linkifier.originalLinkText(nodes[i].pare ntElement);
1032 messageContent += typeof originalLinkText === 'string' ? originalLinkText : nodes[i].textContent;
1033 }
1034 for (var i = 0; i < this.repeatCount(); ++i)
1035 lines.push(messageContent);
1036 return lines.join('\n');
1037 }
1038
1039 /**
1021 * @param {?RegExp} regex 1040 * @param {?RegExp} regex
1022 */ 1041 */
1023 setSearchRegex(regex) { 1042 setSearchRegex(regex) {
1024 if (this._searchHiglightNodeChanges && this._searchHiglightNodeChanges.lengt h) 1043 if (this._searchHiglightNodeChanges && this._searchHiglightNodeChanges.lengt h)
1025 UI.revertDomChanges(this._searchHiglightNodeChanges); 1044 UI.revertDomChanges(this._searchHiglightNodeChanges);
1026 this._searchRegex = regex; 1045 this._searchRegex = regex;
1027 this._searchHighlightNodes = []; 1046 this._searchHighlightNodes = [];
1028 this._searchHiglightNodeChanges = []; 1047 this._searchHiglightNodeChanges = [];
1029 if (!this._searchRegex) 1048 if (!this._searchRegex)
1030 return; 1049 return;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
1189 toMessageElement() { 1208 toMessageElement() {
1190 if (!this._element) { 1209 if (!this._element) {
1191 super.toMessageElement(); 1210 super.toMessageElement();
1192 this._expandGroupIcon = UI.Icon.create('', 'expand-group-icon'); 1211 this._expandGroupIcon = UI.Icon.create('', 'expand-group-icon');
1193 this._contentElement.insertBefore(this._expandGroupIcon, this._contentElem ent.firstChild); 1212 this._contentElement.insertBefore(this._expandGroupIcon, this._contentElem ent.firstChild);
1194 this.setCollapsed(this._collapsed); 1213 this.setCollapsed(this._collapsed);
1195 } 1214 }
1196 return this._element; 1215 return this._element;
1197 } 1216 }
1198 }; 1217 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698