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

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: comments addressed 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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 { 309 {
310 var target = this._target(); 310 var target = this._target();
311 if (!target) 311 if (!target)
312 return null; 312 return null;
313 // FIXME(62725): stack trace line/column numbers are one-based. 313 // FIXME(62725): stack trace line/column numbers are one-based.
314 lineNumber = lineNumber ? lineNumber - 1 : 0; 314 lineNumber = lineNumber ? lineNumber - 1 : 0;
315 columnNumber = columnNumber ? columnNumber - 1 : 0; 315 columnNumber = columnNumber ? columnNumber - 1 : 0;
316 return this._linkifier.linkifyScriptLocation(target, scriptId, url, line Number, columnNumber, "console-message-url"); 316 return this._linkifier.linkifyScriptLocation(target, scriptId, url, line Number, columnNumber, "console-message-url");
317 }, 317 },
318 318
319 /**
320 * @return {boolean}
321 */
322 isErrorOrWarning: function()
323 {
324 return (this._message.level === WebInspector.ConsoleMessage.MessageLevel .Warning || this._message.level === WebInspector.ConsoleMessage.MessageLevel.Err or);
325 },
326
327 _format: function(parameters) 319 _format: function(parameters)
328 { 320 {
329 // This node is used like a Builder. Values are continually appended ont o it. 321 // This node is used like a Builder. Values are continually appended ont o it.
330 var formattedResult = createElement("span"); 322 var formattedResult = createElement("span");
331 if (!parameters.length) 323 if (!parameters.length)
332 return formattedResult; 324 return formattedResult;
333 325
334 var target = this._target(); 326 var target = this._target();
335 327
336 // Formatting code below assumes that parameters are all wrappers wherea s frontend console 328 // Formatting code below assumes that parameters are all wrappers wherea s frontend console
337 // API allows passing arbitrary values as messages (strings, numbers, et c.). Wrap them here. 329 // API allows passing arbitrary values as messages (strings, numbers, et c.). Wrap them here.
338 for (var i = 0; i < parameters.length; ++i) { 330 for (var i = 0; i < parameters.length; ++i) {
339 // FIXME: Only pass runtime wrappers here. 331 // FIXME: Only pass runtime wrappers here.
340 if (parameters[i] instanceof WebInspector.RemoteObject) 332 if (parameters[i] instanceof WebInspector.RemoteObject)
341 continue; 333 continue;
342 334
343 if (!target) { 335 if (!target) {
344 parameters[i] = WebInspector.RemoteObject.fromLocalObject(parame ters[i]); 336 parameters[i] = WebInspector.RemoteObject.fromLocalObject(parame ters[i]);
345 continue; 337 continue;
346 } 338 }
347 339
348 if (typeof parameters[i] === "object") 340 if (typeof parameters[i] === "object")
349 parameters[i] = target.runtimeModel.createRemoteObject(parameter s[i]); 341 parameters[i] = target.runtimeModel.createRemoteObject(parameter s[i]);
350 else 342 else
351 parameters[i] = target.runtimeModel.createRemoteObjectFromPrimit iveValue(parameters[i]); 343 parameters[i] = target.runtimeModel.createRemoteObjectFromPrimit iveValue(parameters[i]);
352 } 344 }
353 345
354 // There can be string log and string eval result. We distinguish betwee n them based on message type. 346 // There can be string log and string eval result. We distinguish betwee n them based on message type.
355 var shouldFormatMessage = WebInspector.RemoteObject.type(parameters[0]) === "string" && (this._message.type !== WebInspector.ConsoleMessage.MessageType. Result || this._message.level === WebInspector.ConsoleMessage.MessageLevel.Error ); 347 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);
356 348
357 // Multiple parameters with the first being a format string. Save unused substitutions. 349 // Multiple parameters with the first being a format string. Save unused substitutions.
358 if (shouldFormatMessage) { 350 if (shouldFormatMessage) {
359 // Multiple parameters with the first being a format string. Save un used substitutions. 351 // Multiple parameters with the first being a format string. Save un used substitutions.
360 var result = this._formatWithSubstitutionString(parameters[0].descri ption, parameters.slice(1), formattedResult); 352 var result = this._formatWithSubstitutionString(parameters[0].descri ption, parameters.slice(1), formattedResult);
361 parameters = result.unusedSubstitutions; 353 parameters = result.unusedSubstitutions;
362 if (parameters.length) 354 if (parameters.length)
363 formattedResult.createTextChild(" "); 355 formattedResult.createTextChild(" ");
364 } 356 }
365 357
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 }, 926 },
935 927
936 /** 928 /**
937 * @return {!Element} 929 * @return {!Element}
938 */ 930 */
939 toMessageElement: function() 931 toMessageElement: function()
940 { 932 {
941 if (this._wrapperElement) 933 if (this._wrapperElement)
942 return this._wrapperElement; 934 return this._wrapperElement;
943 935
944 this._wrapperElement = createElementWithClass("div", "console-message-wr apper"); 936 this._wrapperElement = createElement("div");
937 this.updateMessageElement();
938 return this._wrapperElement;
939 },
940
941 updateMessageElement: function()
942 {
943 if (!this._wrapperElement)
944 return;
945
946 this._wrapperElement.className = "console-message-wrapper";
947 this._wrapperElement.removeChildren();
948
945 this._nestingLevelMarkers = []; 949 this._nestingLevelMarkers = [];
946 for (var i = 0; i < this._nestingLevel; ++i) 950 for (var i = 0; i < this._nestingLevel; ++i)
947 this._nestingLevelMarkers.push(this._wrapperElement.createChild("div ", "nesting-level-marker")); 951 this._nestingLevelMarkers.push(this._wrapperElement.createChild("div ", "nesting-level-marker"));
948 this._updateCloseGroupDecorations(); 952 this._updateCloseGroupDecorations();
949 this._wrapperElement.message = this; 953 this._wrapperElement.message = this;
950 954
951 switch (this._message.level) { 955 switch (this._message.level) {
952 case WebInspector.ConsoleMessage.MessageLevel.Log: 956 case WebInspector.ConsoleMessage.MessageLevel.Log:
953 this._wrapperElement.classList.add("console-log-level"); 957 this._wrapperElement.classList.add("console-log-level");
954 break; 958 break;
955 case WebInspector.ConsoleMessage.MessageLevel.Debug: 959 case WebInspector.ConsoleMessage.MessageLevel.Debug:
956 this._wrapperElement.classList.add("console-debug-level"); 960 this._wrapperElement.classList.add("console-debug-level");
957 break; 961 break;
958 case WebInspector.ConsoleMessage.MessageLevel.Warning: 962 case WebInspector.ConsoleMessage.MessageLevel.Warning:
959 this._wrapperElement.classList.add("console-warning-level"); 963 this._wrapperElement.classList.add("console-warning-level");
960 break; 964 break;
961 case WebInspector.ConsoleMessage.MessageLevel.Error: 965 case WebInspector.ConsoleMessage.MessageLevel.Error:
962 this._wrapperElement.classList.add("console-error-level"); 966 this._wrapperElement.classList.add("console-error-level");
963 break; 967 break;
968 case WebInspector.ConsoleMessage.MessageLevel.RevokedError:
969 this._wrapperElement.classList.add("console-revokedError-level");
dgozman 2015/04/21 09:16:36 I didn't find where this is generated.
pfeldman 2015/04/21 12:15:27 Ok, it is not! Still, it it a better name since it
970 break;
964 case WebInspector.ConsoleMessage.MessageLevel.Info: 971 case WebInspector.ConsoleMessage.MessageLevel.Info:
965 this._wrapperElement.classList.add("console-info-level"); 972 this._wrapperElement.classList.add("console-info-level");
966 break; 973 break;
967 } 974 }
968 975
969 this._wrapperElement.appendChild(this.contentElement()); 976 this._wrapperElement.appendChild(this.contentElement());
970 return this._wrapperElement;
971 }, 977 },
972 978
973 /** 979 /**
974 * @param {!TreeElement} parentTreeElement 980 * @param {!TreeElement} parentTreeElement
975 */ 981 */
976 _populateStackTraceTreeElement: function(parentTreeElement) 982 _populateStackTraceTreeElement: function(parentTreeElement)
977 { 983 {
978 var target = this._target(); 984 var target = this._target();
979 if (!target) 985 if (!target)
980 return; 986 return;
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
1096 break; 1102 break;
1097 case WebInspector.ConsoleMessage.MessageLevel.Warning: 1103 case WebInspector.ConsoleMessage.MessageLevel.Warning:
1098 levelString = "Warning"; 1104 levelString = "Warning";
1099 break; 1105 break;
1100 case WebInspector.ConsoleMessage.MessageLevel.Debug: 1106 case WebInspector.ConsoleMessage.MessageLevel.Debug:
1101 levelString = "Debug"; 1107 levelString = "Debug";
1102 break; 1108 break;
1103 case WebInspector.ConsoleMessage.MessageLevel.Error: 1109 case WebInspector.ConsoleMessage.MessageLevel.Error:
1104 levelString = "Error"; 1110 levelString = "Error";
1105 break; 1111 break;
1112 case WebInspector.ConsoleMessage.MessageLevel.RevokedError:
1113 levelString = "RevokedError";
1114 break;
1106 case WebInspector.ConsoleMessage.MessageLevel.Info: 1115 case WebInspector.ConsoleMessage.MessageLevel.Info:
1107 levelString = "Info"; 1116 levelString = "Info";
1108 break; 1117 break;
1109 } 1118 }
1110 1119
1111 return sourceString + " " + typeString + " " + levelString + ": " + this .formattedMessage().textContent + "\n" + this._message.url + " line " + this._me ssage.line; 1120 return sourceString + " " + typeString + " " + levelString + ": " + this .formattedMessage().textContent + "\n" + this._message.url + " line " + this._me ssage.line;
1112 }, 1121 },
1113 1122
1114 get text() 1123 get text()
1115 { 1124 {
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
1284 { 1293 {
1285 if (!this._wrapperElement) { 1294 if (!this._wrapperElement) {
1286 WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this ); 1295 WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this );
1287 this._wrapperElement.classList.toggle("collapsed", this._collapsed); 1296 this._wrapperElement.classList.toggle("collapsed", this._collapsed);
1288 } 1297 }
1289 return this._wrapperElement; 1298 return this._wrapperElement;
1290 }, 1299 },
1291 1300
1292 __proto__: WebInspector.ConsoleViewMessage.prototype 1301 __proto__: WebInspector.ConsoleViewMessage.prototype
1293 } 1302 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698