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

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

Issue 1095943002: DevTools: [console] Logged promise rejections do not change state once handled (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: for landing Created 5 years, 8 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 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 default: 185 default:
186 if (consoleMessage.parameters && consoleMessage.paramete rs.length === 1 && consoleMessage.parameters[0].type === "string") 186 if (consoleMessage.parameters && consoleMessage.paramete rs.length === 1 && consoleMessage.parameters[0].type === "string")
187 this._messageElement = this._tryFormatAsError(/**@t ype {string} */(consoleMessage.parameters[0].value)); 187 this._messageElement = this._tryFormatAsError(/**@t ype {string} */(consoleMessage.parameters[0].value));
188 188
189 var args = consoleMessage.parameters || [consoleMessage. messageText]; 189 var args = consoleMessage.parameters || [consoleMessage. messageText];
190 this._messageElement = this._messageElement || this._for mat(args); 190 this._messageElement = this._messageElement || this._for mat(args);
191 } 191 }
192 } else if (consoleMessage.source === WebInspector.ConsoleMessage.Mes sageSource.Network) { 192 } else if (consoleMessage.source === WebInspector.ConsoleMessage.Mes sageSource.Network) {
193 if (consoleMessage.request) { 193 if (consoleMessage.request) {
194 this._messageElement = createElement("span"); 194 this._messageElement = createElement("span");
195 if (consoleMessage.level === WebInspector.ConsoleMessage.Mes sageLevel.Error) { 195 if (consoleMessage.level === WebInspector.ConsoleMessage.Mes sageLevel.Error || consoleMessage.level === WebInspector.ConsoleMessage.MessageL evel.RevokedError) {
196 this._messageElement.createTextChildren(consoleMessage.r equest.requestMethod, " "); 196 this._messageElement.createTextChildren(consoleMessage.r equest.requestMethod, " ");
197 this._messageElement.appendChild(WebInspector.Linkifier. linkifyUsingRevealer(consoleMessage.request, consoleMessage.request.url, console Message.request.url)); 197 this._messageElement.appendChild(WebInspector.Linkifier. linkifyUsingRevealer(consoleMessage.request, consoleMessage.request.url, console Message.request.url));
198 if (consoleMessage.request.failed) 198 if (consoleMessage.request.failed)
199 this._messageElement.createTextChildren(" ", console Message.request.localizedFailDescription); 199 this._messageElement.createTextChildren(" ", console Message.request.localizedFailDescription);
200 else 200 else
201 this._messageElement.createTextChildren(" ", String( consoleMessage.request.statusCode), " (", consoleMessage.request.statusText, ")" ); 201 this._messageElement.createTextChildren(" ", String( consoleMessage.request.statusCode), " (", consoleMessage.request.statusText, ")" );
202 } else { 202 } else {
203 var fragment = WebInspector.linkifyStringAsFragmentWithC ustomLinkifier(consoleMessage.messageText, linkifyRequest.bind(consoleMessage)); 203 var fragment = WebInspector.linkifyStringAsFragmentWithC ustomLinkifier(consoleMessage.messageText, linkifyRequest.bind(consoleMessage));
204 this._messageElement.appendChild(fragment); 204 this._messageElement.appendChild(fragment);
205 } 205 }
(...skipping 24 matching lines...) Expand all
230 } 230 }
231 } 231 }
232 232
233 this._formattedMessage.appendChild(this._messageElement); 233 this._formattedMessage.appendChild(this._messageElement);
234 if (this._anchorElement) { 234 if (this._anchorElement) {
235 // Append a space to prevent the anchor text from being glued to the console message when the user selects and copies the console messages. 235 // Append a space to prevent the anchor text from being glued to the console message when the user selects and copies the console messages.
236 this._anchorElement.appendChild(createTextNode(" ")); 236 this._anchorElement.appendChild(createTextNode(" "));
237 this._formattedMessage.insertBefore(this._anchorElement, this._forma ttedMessage.firstChild); 237 this._formattedMessage.insertBefore(this._anchorElement, this._forma ttedMessage.firstChild);
238 } 238 }
239 239
240 var dumpStackTrace = !!consoleMessage.stackTrace && consoleMessage.stack Trace.length && (consoleMessage.source === WebInspector.ConsoleMessage.MessageSo urce.Network || consoleMessage.level === WebInspector.ConsoleMessage.MessageLeve l.Error || consoleMessage.type === WebInspector.ConsoleMessage.MessageType.Trace ); 240 var dumpStackTrace = !!consoleMessage.stackTrace && consoleMessage.stack Trace.length && (consoleMessage.source === WebInspector.ConsoleMessage.MessageSo urce.Network || consoleMessage.level === WebInspector.ConsoleMessage.MessageLeve l.Error || consoleMessage.level === WebInspector.ConsoleMessage.MessageLevel.Rev okedError || consoleMessage.type === WebInspector.ConsoleMessage.MessageType.Tra ce);
241 if (dumpStackTrace) { 241 if (dumpStackTrace) {
242 var treeOutline = new TreeOutline(); 242 var treeOutline = new TreeOutline();
243 treeOutline.element.classList.add("outline-disclosure", "outline-dis closure-no-padding"); 243 treeOutline.element.classList.add("outline-disclosure", "outline-dis closure-no-padding");
244 var content = this._formattedMessage; 244 var content = this._formattedMessage;
245 var root = new TreeElement(content); 245 var root = new TreeElement(content);
246 root.toggleOnClick = true; 246 root.toggleOnClick = true;
247 root.selectable = false; 247 root.selectable = false;
248 content.treeElementForTest = root; 248 content.treeElementForTest = root;
249 treeOutline.appendChild(root); 249 treeOutline.appendChild(root);
250 if (consoleMessage.type === WebInspector.ConsoleMessage.MessageType. Trace) 250 if (consoleMessage.type === WebInspector.ConsoleMessage.MessageType. Trace)
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 { 312 {
313 var target = this._target(); 313 var target = this._target();
314 if (!target) 314 if (!target)
315 return null; 315 return null;
316 // FIXME(62725): stack trace line/column numbers are one-based. 316 // FIXME(62725): stack trace line/column numbers are one-based.
317 lineNumber = lineNumber ? lineNumber - 1 : 0; 317 lineNumber = lineNumber ? lineNumber - 1 : 0;
318 columnNumber = columnNumber ? columnNumber - 1 : 0; 318 columnNumber = columnNumber ? columnNumber - 1 : 0;
319 return this._linkifier.linkifyScriptLocation(target, scriptId, url, line Number, columnNumber, "console-message-url"); 319 return this._linkifier.linkifyScriptLocation(target, scriptId, url, line Number, columnNumber, "console-message-url");
320 }, 320 },
321 321
322 /**
323 * @return {boolean}
324 */
325 isErrorOrWarning: function()
326 {
327 return (this._message.level === WebInspector.ConsoleMessage.MessageLevel .Warning || this._message.level === WebInspector.ConsoleMessage.MessageLevel.Err or);
328 },
329
330 _format: function(parameters) 322 _format: function(parameters)
331 { 323 {
332 // This node is used like a Builder. Values are continually appended ont o it. 324 // This node is used like a Builder. Values are continually appended ont o it.
333 var formattedResult = createElement("span"); 325 var formattedResult = createElement("span");
334 if (!parameters.length) 326 if (!parameters.length)
335 return formattedResult; 327 return formattedResult;
336 328
337 var target = this._target(); 329 var target = this._target();
338 330
339 // Formatting code below assumes that parameters are all wrappers wherea s frontend console 331 // Formatting code below assumes that parameters are all wrappers wherea s frontend console
340 // API allows passing arbitrary values as messages (strings, numbers, et c.). Wrap them here. 332 // API allows passing arbitrary values as messages (strings, numbers, et c.). Wrap them here.
341 for (var i = 0; i < parameters.length; ++i) { 333 for (var i = 0; i < parameters.length; ++i) {
342 // FIXME: Only pass runtime wrappers here. 334 // FIXME: Only pass runtime wrappers here.
343 if (parameters[i] instanceof WebInspector.RemoteObject) 335 if (parameters[i] instanceof WebInspector.RemoteObject)
344 continue; 336 continue;
345 337
346 if (!target) { 338 if (!target) {
347 parameters[i] = WebInspector.RemoteObject.fromLocalObject(parame ters[i]); 339 parameters[i] = WebInspector.RemoteObject.fromLocalObject(parame ters[i]);
348 continue; 340 continue;
349 } 341 }
350 342
351 if (typeof parameters[i] === "object") 343 if (typeof parameters[i] === "object")
352 parameters[i] = target.runtimeModel.createRemoteObject(parameter s[i]); 344 parameters[i] = target.runtimeModel.createRemoteObject(parameter s[i]);
353 else 345 else
354 parameters[i] = target.runtimeModel.createRemoteObjectFromPrimit iveValue(parameters[i]); 346 parameters[i] = target.runtimeModel.createRemoteObjectFromPrimit iveValue(parameters[i]);
355 } 347 }
356 348
357 // There can be string log and string eval result. We distinguish betwee n them based on message type. 349 // There can be string log and string eval result. We distinguish betwee n them based on message type.
358 var shouldFormatMessage = WebInspector.RemoteObject.type(parameters[0]) === "string" && (this._message.type !== WebInspector.ConsoleMessage.MessageType. Result || this._message.level === WebInspector.ConsoleMessage.MessageLevel.Error ); 350 var shouldFormatMessage = WebInspector.RemoteObject.type(parameters[0]) === "string" && (this._message.type !== WebInspector.ConsoleMessage.MessageType. Result || this._message.level === WebInspector.ConsoleMessage.MessageLevel.Error || this._message.level === WebInspector.ConsoleMessage.MessageLevel.RevokedErro r);
359 351
360 // Multiple parameters with the first being a format string. Save unused substitutions. 352 // Multiple parameters with the first being a format string. Save unused substitutions.
361 if (shouldFormatMessage) { 353 if (shouldFormatMessage) {
362 // Multiple parameters with the first being a format string. Save un used substitutions. 354 // Multiple parameters with the first being a format string. Save un used substitutions.
363 var result = this._formatWithSubstitutionString(parameters[0].descri ption, parameters.slice(1), formattedResult); 355 var result = this._formatWithSubstitutionString(parameters[0].descri ption, parameters.slice(1), formattedResult);
364 parameters = result.unusedSubstitutions; 356 parameters = result.unusedSubstitutions;
365 if (parameters.length) 357 if (parameters.length)
366 formattedResult.createTextChild(" "); 358 formattedResult.createTextChild(" ");
367 } 359 }
368 360
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after
937 }, 929 },
938 930
939 /** 931 /**
940 * @return {!Element} 932 * @return {!Element}
941 */ 933 */
942 toMessageElement: function() 934 toMessageElement: function()
943 { 935 {
944 if (this._wrapperElement) 936 if (this._wrapperElement)
945 return this._wrapperElement; 937 return this._wrapperElement;
946 938
947 this._wrapperElement = createElementWithClass("div", "console-message-wr apper"); 939 this._wrapperElement = createElement("div");
940 this.updateMessageElement();
941 return this._wrapperElement;
942 },
943
944 updateMessageElement: function()
945 {
946 if (!this._wrapperElement)
947 return;
948
949 this._wrapperElement.className = "console-message-wrapper";
950 this._wrapperElement.removeChildren();
951
948 this._nestingLevelMarkers = []; 952 this._nestingLevelMarkers = [];
949 for (var i = 0; i < this._nestingLevel; ++i) 953 for (var i = 0; i < this._nestingLevel; ++i)
950 this._nestingLevelMarkers.push(this._wrapperElement.createChild("div ", "nesting-level-marker")); 954 this._nestingLevelMarkers.push(this._wrapperElement.createChild("div ", "nesting-level-marker"));
951 this._updateCloseGroupDecorations(); 955 this._updateCloseGroupDecorations();
952 this._wrapperElement.message = this; 956 this._wrapperElement.message = this;
953 957
954 switch (this._message.level) { 958 switch (this._message.level) {
955 case WebInspector.ConsoleMessage.MessageLevel.Log: 959 case WebInspector.ConsoleMessage.MessageLevel.Log:
956 this._wrapperElement.classList.add("console-log-level"); 960 this._wrapperElement.classList.add("console-log-level");
957 break; 961 break;
958 case WebInspector.ConsoleMessage.MessageLevel.Debug: 962 case WebInspector.ConsoleMessage.MessageLevel.Debug:
959 this._wrapperElement.classList.add("console-debug-level"); 963 this._wrapperElement.classList.add("console-debug-level");
960 break; 964 break;
961 case WebInspector.ConsoleMessage.MessageLevel.Warning: 965 case WebInspector.ConsoleMessage.MessageLevel.Warning:
962 this._wrapperElement.classList.add("console-warning-level"); 966 this._wrapperElement.classList.add("console-warning-level");
963 break; 967 break;
964 case WebInspector.ConsoleMessage.MessageLevel.Error: 968 case WebInspector.ConsoleMessage.MessageLevel.Error:
965 this._wrapperElement.classList.add("console-error-level"); 969 this._wrapperElement.classList.add("console-error-level");
966 break; 970 break;
971 case WebInspector.ConsoleMessage.MessageLevel.RevokedError:
972 this._wrapperElement.classList.add("console-revokedError-level");
973 break;
967 case WebInspector.ConsoleMessage.MessageLevel.Info: 974 case WebInspector.ConsoleMessage.MessageLevel.Info:
968 this._wrapperElement.classList.add("console-info-level"); 975 this._wrapperElement.classList.add("console-info-level");
969 break; 976 break;
970 } 977 }
971 978
972 this._wrapperElement.appendChild(this.contentElement()); 979 this._wrapperElement.appendChild(this.contentElement());
973 return this._wrapperElement;
974 }, 980 },
975 981
976 /** 982 /**
977 * @param {!TreeElement} parentTreeElement 983 * @param {!TreeElement} parentTreeElement
978 */ 984 */
979 _populateStackTraceTreeElement: function(parentTreeElement) 985 _populateStackTraceTreeElement: function(parentTreeElement)
980 { 986 {
981 var target = this._target(); 987 var target = this._target();
982 if (!target) 988 if (!target)
983 return; 989 return;
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
1099 break; 1105 break;
1100 case WebInspector.ConsoleMessage.MessageLevel.Warning: 1106 case WebInspector.ConsoleMessage.MessageLevel.Warning:
1101 levelString = "Warning"; 1107 levelString = "Warning";
1102 break; 1108 break;
1103 case WebInspector.ConsoleMessage.MessageLevel.Debug: 1109 case WebInspector.ConsoleMessage.MessageLevel.Debug:
1104 levelString = "Debug"; 1110 levelString = "Debug";
1105 break; 1111 break;
1106 case WebInspector.ConsoleMessage.MessageLevel.Error: 1112 case WebInspector.ConsoleMessage.MessageLevel.Error:
1107 levelString = "Error"; 1113 levelString = "Error";
1108 break; 1114 break;
1115 case WebInspector.ConsoleMessage.MessageLevel.RevokedError:
1116 levelString = "RevokedError";
1117 break;
1109 case WebInspector.ConsoleMessage.MessageLevel.Info: 1118 case WebInspector.ConsoleMessage.MessageLevel.Info:
1110 levelString = "Info"; 1119 levelString = "Info";
1111 break; 1120 break;
1112 } 1121 }
1113 1122
1114 return sourceString + " " + typeString + " " + levelString + ": " + this .formattedMessage().textContent + "\n" + this._message.url + " line " + this._me ssage.line; 1123 return sourceString + " " + typeString + " " + levelString + ": " + this .formattedMessage().textContent + "\n" + this._message.url + " line " + this._me ssage.line;
1115 }, 1124 },
1116 1125
1117 get text() 1126 get text()
1118 { 1127 {
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
1287 { 1296 {
1288 if (!this._wrapperElement) { 1297 if (!this._wrapperElement) {
1289 WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this ); 1298 WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this );
1290 this._wrapperElement.classList.toggle("collapsed", this._collapsed); 1299 this._wrapperElement.classList.toggle("collapsed", this._collapsed);
1291 } 1300 }
1292 return this._wrapperElement; 1301 return this._wrapperElement;
1293 }, 1302 },
1294 1303
1295 __proto__: WebInspector.ConsoleViewMessage.prototype 1304 __proto__: WebInspector.ConsoleViewMessage.prototype
1296 } 1305 }
OLDNEW
« no previous file with comments | « Source/devtools/front_end/console/ConsoleView.js ('k') | Source/devtools/front_end/console/consoleView.css » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698