OLD | NEW |
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 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 /** | 119 /** |
120 * @return {!WebInspector.ConsoleMessage} | 120 * @return {!WebInspector.ConsoleMessage} |
121 */ | 121 */ |
122 consoleMessage: function() | 122 consoleMessage: function() |
123 { | 123 { |
124 return this._message; | 124 return this._message; |
125 }, | 125 }, |
126 | 126 |
127 _formatMessage: function() | 127 _formatMessage: function() |
128 { | 128 { |
129 this._formattedMessage = document.createElement("span"); | 129 this._formattedMessage = createElement("span"); |
130 this._formattedMessage.className = "console-message-text source-code"; | 130 this._formattedMessage.className = "console-message-text source-code"; |
131 | 131 |
132 /** | 132 /** |
133 * @param {string} title | 133 * @param {string} title |
134 * @return {!Element} | 134 * @return {!Element} |
135 * @this {WebInspector.ConsoleMessage} | 135 * @this {WebInspector.ConsoleMessage} |
136 */ | 136 */ |
137 function linkifyRequest(title) | 137 function linkifyRequest(title) |
138 { | 138 { |
139 return WebInspector.Linkifier.linkifyUsingRevealer(/** @type {!WebIn
spector.NetworkRequest} */ (this.request), title, this.url); | 139 return WebInspector.Linkifier.linkifyUsingRevealer(/** @type {!WebIn
spector.NetworkRequest} */ (this.request), title, this.url); |
140 } | 140 } |
141 | 141 |
142 var consoleMessage = this._message; | 142 var consoleMessage = this._message; |
143 if (!this._messageElement) { | 143 if (!this._messageElement) { |
144 if (consoleMessage.source === WebInspector.ConsoleMessage.MessageSou
rce.ConsoleAPI) { | 144 if (consoleMessage.source === WebInspector.ConsoleMessage.MessageSou
rce.ConsoleAPI) { |
145 switch (consoleMessage.type) { | 145 switch (consoleMessage.type) { |
146 case WebInspector.ConsoleMessage.MessageType.Trace: | 146 case WebInspector.ConsoleMessage.MessageType.Trace: |
147 this._messageElement = this._format(consoleMessage.param
eters || ["console.trace()"]); | 147 this._messageElement = this._format(consoleMessage.param
eters || ["console.trace()"]); |
148 break; | 148 break; |
149 case WebInspector.ConsoleMessage.MessageType.Clear: | 149 case WebInspector.ConsoleMessage.MessageType.Clear: |
150 this._messageElement = document.createTextNode(WebInspec
tor.UIString("Console was cleared")); | 150 this._messageElement = createTextNode(WebInspector.UIStr
ing("Console was cleared")); |
151 this._formattedMessage.classList.add("console-info"); | 151 this._formattedMessage.classList.add("console-info"); |
152 break; | 152 break; |
153 case WebInspector.ConsoleMessage.MessageType.Assert: | 153 case WebInspector.ConsoleMessage.MessageType.Assert: |
154 var args = [WebInspector.UIString("Assertion failed:")]; | 154 var args = [WebInspector.UIString("Assertion failed:")]; |
155 if (consoleMessage.parameters) | 155 if (consoleMessage.parameters) |
156 args = args.concat(consoleMessage.parameters); | 156 args = args.concat(consoleMessage.parameters); |
157 this._messageElement = this._format(args); | 157 this._messageElement = this._format(args); |
158 break; | 158 break; |
159 case WebInspector.ConsoleMessage.MessageType.Dir: | 159 case WebInspector.ConsoleMessage.MessageType.Dir: |
160 var obj = consoleMessage.parameters ? consoleMessage.par
ameters[0] : undefined; | 160 var obj = consoleMessage.parameters ? consoleMessage.par
ameters[0] : undefined; |
161 var args = ["%O", obj]; | 161 var args = ["%O", obj]; |
162 this._messageElement = this._format(args); | 162 this._messageElement = this._format(args); |
163 break; | 163 break; |
164 case WebInspector.ConsoleMessage.MessageType.Profile: | 164 case WebInspector.ConsoleMessage.MessageType.Profile: |
165 case WebInspector.ConsoleMessage.MessageType.ProfileEnd: | 165 case WebInspector.ConsoleMessage.MessageType.ProfileEnd: |
166 this._messageElement = this._format([consoleMessage.mess
ageText]); | 166 this._messageElement = this._format([consoleMessage.mess
ageText]); |
167 break; | 167 break; |
168 default: | 168 default: |
169 var args = consoleMessage.parameters || [consoleMessage.
messageText]; | 169 var args = consoleMessage.parameters || [consoleMessage.
messageText]; |
170 this._messageElement = this._format(args); | 170 this._messageElement = this._format(args); |
171 } | 171 } |
172 } else if (consoleMessage.source === WebInspector.ConsoleMessage.Mes
sageSource.Network) { | 172 } else if (consoleMessage.source === WebInspector.ConsoleMessage.Mes
sageSource.Network) { |
173 if (consoleMessage.request) { | 173 if (consoleMessage.request) { |
174 this._messageElement = document.createElement("span"); | 174 this._messageElement = createElement("span"); |
175 if (consoleMessage.level === WebInspector.ConsoleMessage.Mes
sageLevel.Error) { | 175 if (consoleMessage.level === WebInspector.ConsoleMessage.Mes
sageLevel.Error) { |
176 this._messageElement.createTextChildren(consoleMessage.r
equest.requestMethod, " "); | 176 this._messageElement.createTextChildren(consoleMessage.r
equest.requestMethod, " "); |
177 this._messageElement.appendChild(WebInspector.Linkifier.
linkifyUsingRevealer(consoleMessage.request, consoleMessage.request.url, console
Message.request.url)); | 177 this._messageElement.appendChild(WebInspector.Linkifier.
linkifyUsingRevealer(consoleMessage.request, consoleMessage.request.url, console
Message.request.url)); |
178 if (consoleMessage.request.failed) | 178 if (consoleMessage.request.failed) |
179 this._messageElement.createTextChildren(" ", console
Message.request.localizedFailDescription); | 179 this._messageElement.createTextChildren(" ", console
Message.request.localizedFailDescription); |
180 else | 180 else |
181 this._messageElement.createTextChildren(" ", String(
consoleMessage.request.statusCode), " (", consoleMessage.request.statusText, ")"
); | 181 this._messageElement.createTextChildren(" ", String(
consoleMessage.request.statusCode), " (", consoleMessage.request.statusText, ")"
); |
182 } else { | 182 } else { |
183 var fragment = WebInspector.linkifyStringAsFragmentWithC
ustomLinkifier(consoleMessage.messageText, linkifyRequest.bind(consoleMessage)); | 183 var fragment = WebInspector.linkifyStringAsFragmentWithC
ustomLinkifier(consoleMessage.messageText, linkifyRequest.bind(consoleMessage)); |
184 this._messageElement.appendChild(fragment); | 184 this._messageElement.appendChild(fragment); |
(...skipping 20 matching lines...) Expand all Loading... |
205 var callFrame = this._callFrameAnchorFromStackTrace(consoleMessa
ge.stackTrace, useBlackboxing); | 205 var callFrame = this._callFrameAnchorFromStackTrace(consoleMessa
ge.stackTrace, useBlackboxing); |
206 if (callFrame) | 206 if (callFrame) |
207 this._anchorElement = this._linkifyCallFrame(callFrame); | 207 this._anchorElement = this._linkifyCallFrame(callFrame); |
208 else if (consoleMessage.url && consoleMessage.url !== "undefined
") | 208 else if (consoleMessage.url && consoleMessage.url !== "undefined
") |
209 this._anchorElement = this._linkifyLocation(consoleMessage.u
rl, consoleMessage.line, consoleMessage.column); | 209 this._anchorElement = this._linkifyLocation(consoleMessage.u
rl, consoleMessage.line, consoleMessage.column); |
210 } | 210 } |
211 } | 211 } |
212 | 212 |
213 this._formattedMessage.appendChild(this._messageElement); | 213 this._formattedMessage.appendChild(this._messageElement); |
214 if (this._anchorElement) { | 214 if (this._anchorElement) { |
215 this._formattedMessage.insertBefore(document.createTextNode(" "), th
is._formattedMessage.firstChild); | 215 this._formattedMessage.insertBefore(createTextNode(" "), this._forma
ttedMessage.firstChild); |
216 this._formattedMessage.insertBefore(this._anchorElement, this._forma
ttedMessage.firstChild); | 216 this._formattedMessage.insertBefore(this._anchorElement, this._forma
ttedMessage.firstChild); |
217 } | 217 } |
218 | 218 |
219 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
); | 219 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
); |
220 if (dumpStackTrace) { | 220 if (dumpStackTrace) { |
221 var ol = document.createElement("ol"); | 221 var ol = createElement("ol"); |
222 ol.className = "outline-disclosure"; | 222 ol.className = "outline-disclosure"; |
223 var treeOutline = new TreeOutline(ol); | 223 var treeOutline = new TreeOutline(ol); |
224 | 224 |
225 var content = this._formattedMessage; | 225 var content = this._formattedMessage; |
226 var root = new TreeElement(content, null, true); | 226 var root = new TreeElement(content, null, true); |
227 root.toggleOnClick = true; | 227 root.toggleOnClick = true; |
228 root.selectable = false; | 228 root.selectable = false; |
229 content.treeElementForTest = root; | 229 content.treeElementForTest = root; |
230 treeOutline.appendChild(root); | 230 treeOutline.appendChild(root); |
231 if (consoleMessage.type === WebInspector.ConsoleMessage.MessageType.
Trace) | 231 if (consoleMessage.type === WebInspector.ConsoleMessage.MessageType.
Trace) |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 * @return {boolean} | 337 * @return {boolean} |
338 */ | 338 */ |
339 isErrorOrWarning: function() | 339 isErrorOrWarning: function() |
340 { | 340 { |
341 return (this._message.level === WebInspector.ConsoleMessage.MessageLevel
.Warning || this._message.level === WebInspector.ConsoleMessage.MessageLevel.Err
or); | 341 return (this._message.level === WebInspector.ConsoleMessage.MessageLevel
.Warning || this._message.level === WebInspector.ConsoleMessage.MessageLevel.Err
or); |
342 }, | 342 }, |
343 | 343 |
344 _format: function(parameters) | 344 _format: function(parameters) |
345 { | 345 { |
346 // This node is used like a Builder. Values are continually appended ont
o it. | 346 // This node is used like a Builder. Values are continually appended ont
o it. |
347 var formattedResult = document.createElement("span"); | 347 var formattedResult = createElement("span"); |
348 if (!parameters.length) | 348 if (!parameters.length) |
349 return formattedResult; | 349 return formattedResult; |
350 | 350 |
351 var target = this._target(); | 351 var target = this._target(); |
352 | 352 |
353 // Formatting code below assumes that parameters are all wrappers wherea
s frontend console | 353 // Formatting code below assumes that parameters are all wrappers wherea
s frontend console |
354 // API allows passing arbitrary values as messages (strings, numbers, et
c.). Wrap them here. | 354 // API allows passing arbitrary values as messages (strings, numbers, et
c.). Wrap them here. |
355 for (var i = 0; i < parameters.length; ++i) { | 355 for (var i = 0; i < parameters.length; ++i) { |
356 // FIXME: Only pass runtime wrappers here. | 356 // FIXME: Only pass runtime wrappers here. |
357 if (parameters[i] instanceof WebInspector.RemoteObject) | 357 if (parameters[i] instanceof WebInspector.RemoteObject) |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
401 /** | 401 /** |
402 * @param {!WebInspector.RemoteObject} output | 402 * @param {!WebInspector.RemoteObject} output |
403 * @param {boolean=} forceObjectFormat | 403 * @param {boolean=} forceObjectFormat |
404 * @param {boolean=} includePreview | 404 * @param {boolean=} includePreview |
405 * @return {!Element} | 405 * @return {!Element} |
406 */ | 406 */ |
407 _formatParameter: function(output, forceObjectFormat, includePreview) | 407 _formatParameter: function(output, forceObjectFormat, includePreview) |
408 { | 408 { |
409 var type = forceObjectFormat ? "object" : (output.subtype || output.type
); | 409 var type = forceObjectFormat ? "object" : (output.subtype || output.type
); |
410 var formatter = this._customFormatters[type] || this._formatParameterAsV
alue; | 410 var formatter = this._customFormatters[type] || this._formatParameterAsV
alue; |
411 var span = document.createElement("span"); | 411 var span = createElement("span"); |
412 span.className = "console-formatted-" + type + " source-code"; | 412 span.className = "console-formatted-" + type + " source-code"; |
413 formatter.call(this, output, span, includePreview); | 413 formatter.call(this, output, span, includePreview); |
414 return span; | 414 return span; |
415 }, | 415 }, |
416 | 416 |
417 /** | 417 /** |
418 * @param {!WebInspector.RemoteObject} obj | 418 * @param {!WebInspector.RemoteObject} obj |
419 * @param {!Element} elem | 419 * @param {!Element} elem |
420 */ | 420 */ |
421 _formatParameterAsValue: function(obj, elem) | 421 _formatParameterAsValue: function(obj, elem) |
(...skipping 13 matching lines...) Expand all Loading... |
435 this._formatParameterAsArrayOrObject(obj, elem, includePreview); | 435 this._formatParameterAsArrayOrObject(obj, elem, includePreview); |
436 }, | 436 }, |
437 | 437 |
438 /** | 438 /** |
439 * @param {!WebInspector.RemoteObject} obj | 439 * @param {!WebInspector.RemoteObject} obj |
440 * @param {!Element} elem | 440 * @param {!Element} elem |
441 * @param {boolean=} includePreview | 441 * @param {boolean=} includePreview |
442 */ | 442 */ |
443 _formatParameterAsArrayOrObject: function(obj, elem, includePreview) | 443 _formatParameterAsArrayOrObject: function(obj, elem, includePreview) |
444 { | 444 { |
445 var titleElement = document.createElement("span"); | 445 var titleElement = createElement("span"); |
446 if (includePreview && obj.preview) { | 446 if (includePreview && obj.preview) { |
447 titleElement.classList.add("console-object-preview"); | 447 titleElement.classList.add("console-object-preview"); |
448 var lossless = this._appendObjectPreview(titleElement, obj.preview,
obj); | 448 var lossless = this._appendObjectPreview(titleElement, obj.preview,
obj); |
449 if (lossless) { | 449 if (lossless) { |
450 elem.appendChild(titleElement); | 450 elem.appendChild(titleElement); |
451 titleElement.addEventListener("contextmenu", this._contextMenuEv
entFired.bind(this, obj), false); | 451 titleElement.addEventListener("contextmenu", this._contextMenuEv
entFired.bind(this, obj), false); |
452 return; | 452 return; |
453 } | 453 } |
454 } else { | 454 } else { |
455 titleElement.createTextChild(obj.description || ""); | 455 titleElement.createTextChild(obj.description || ""); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
565 }, | 565 }, |
566 | 566 |
567 /** | 567 /** |
568 * @param {string} type | 568 * @param {string} type |
569 * @param {string=} subtype | 569 * @param {string=} subtype |
570 * @param {string=} description | 570 * @param {string=} description |
571 * @return {!Element} | 571 * @return {!Element} |
572 */ | 572 */ |
573 _renderPropertyPreview: function(type, subtype, description) | 573 _renderPropertyPreview: function(type, subtype, description) |
574 { | 574 { |
575 var span = document.createElementWithClass("span", "console-formatted-"
+ (subtype || type)); | 575 var span = createElementWithClass("span", "console-formatted-" + (subtyp
e || type)); |
576 description = description || ""; | 576 description = description || ""; |
577 | 577 |
578 if (type === "function") { | 578 if (type === "function") { |
579 span.textContent = "function"; | 579 span.textContent = "function"; |
580 return span; | 580 return span; |
581 } | 581 } |
582 | 582 |
583 if (type === "object" && subtype === "node" && description) { | 583 if (type === "object" && subtype === "node" && description) { |
584 span.classList.add("console-formatted-preview-node"); | 584 span.classList.add("console-formatted-preview-node"); |
585 WebInspector.DOMPresentationUtils.createSpansForNodeTitle(span, desc
ription); | 585 WebInspector.DOMPresentationUtils.createSpansForNodeTitle(span, desc
ription); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
637 else | 637 else |
638 array.getOwnProperties(this._printArray.bind(this, array, elem)); | 638 array.getOwnProperties(this._printArray.bind(this, array, elem)); |
639 }, | 639 }, |
640 | 640 |
641 /** | 641 /** |
642 * @param {!Array.<!WebInspector.RemoteObject>} parameters | 642 * @param {!Array.<!WebInspector.RemoteObject>} parameters |
643 * @return {!Element} | 643 * @return {!Element} |
644 */ | 644 */ |
645 _formatParameterAsTable: function(parameters) | 645 _formatParameterAsTable: function(parameters) |
646 { | 646 { |
647 var element = document.createElement("span"); | 647 var element = createElement("span"); |
648 var table = parameters[0]; | 648 var table = parameters[0]; |
649 if (!table || !table.preview) | 649 if (!table || !table.preview) |
650 return element; | 650 return element; |
651 | 651 |
652 var columnNames = []; | 652 var columnNames = []; |
653 var preview = table.preview; | 653 var preview = table.preview; |
654 var rows = []; | 654 var rows = []; |
655 for (var i = 0; i < preview.properties.length; ++i) { | 655 for (var i = 0; i < preview.properties.length; ++i) { |
656 var rowProperty = preview.properties[i]; | 656 var rowProperty = preview.properties[i]; |
657 var rowPreview = rowProperty.valuePreview; | 657 var rowPreview = rowProperty.valuePreview; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
702 this._dataGridParents.set(dataGrid, dataGridContainer); | 702 this._dataGridParents.set(dataGrid, dataGridContainer); |
703 return element; | 703 return element; |
704 }, | 704 }, |
705 | 705 |
706 /** | 706 /** |
707 * @param {!WebInspector.RemoteObject} output | 707 * @param {!WebInspector.RemoteObject} output |
708 * @param {!Element} elem | 708 * @param {!Element} elem |
709 */ | 709 */ |
710 _formatParameterAsString: function(output, elem) | 710 _formatParameterAsString: function(output, elem) |
711 { | 711 { |
712 var span = document.createElement("span"); | 712 var span = createElement("span"); |
713 span.className = "console-formatted-string source-code"; | 713 span.className = "console-formatted-string source-code"; |
714 span.appendChild(WebInspector.linkifyStringAsFragment(output.description
|| "")); | 714 span.appendChild(WebInspector.linkifyStringAsFragment(output.description
|| "")); |
715 | 715 |
716 // Make black quotes. | 716 // Make black quotes. |
717 elem.classList.remove("console-formatted-string"); | 717 elem.classList.remove("console-formatted-string"); |
718 elem.createTextChild("\""); | 718 elem.createTextChild("\""); |
719 elem.appendChild(span); | 719 elem.appendChild(span); |
720 elem.createTextChild("\""); | 720 elem.createTextChild("\""); |
721 }, | 721 }, |
722 | 722 |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
871 | 871 |
872 function bypassFormatter(obj) | 872 function bypassFormatter(obj) |
873 { | 873 { |
874 return (obj instanceof Node) ? obj : ""; | 874 return (obj instanceof Node) ? obj : ""; |
875 } | 875 } |
876 | 876 |
877 var currentStyle = null; | 877 var currentStyle = null; |
878 function styleFormatter(obj) | 878 function styleFormatter(obj) |
879 { | 879 { |
880 currentStyle = {}; | 880 currentStyle = {}; |
881 var buffer = document.createElement("span"); | 881 var buffer = createElement("span"); |
882 buffer.setAttribute("style", obj.description); | 882 buffer.setAttribute("style", obj.description); |
883 for (var i = 0; i < buffer.style.length; i++) { | 883 for (var i = 0; i < buffer.style.length; i++) { |
884 var property = buffer.style[i]; | 884 var property = buffer.style[i]; |
885 if (isWhitelistedProperty(property)) | 885 if (isWhitelistedProperty(property)) |
886 currentStyle[property] = buffer.style[property]; | 886 currentStyle[property] = buffer.style[property]; |
887 } | 887 } |
888 } | 888 } |
889 | 889 |
890 function isWhitelistedProperty(property) | 890 function isWhitelistedProperty(property) |
891 { | 891 { |
(...skipping 21 matching lines...) Expand all Loading... |
913 | 913 |
914 formatters._ = bypassFormatter; | 914 formatters._ = bypassFormatter; |
915 | 915 |
916 function append(a, b) | 916 function append(a, b) |
917 { | 917 { |
918 if (b instanceof Node) | 918 if (b instanceof Node) |
919 a.appendChild(b); | 919 a.appendChild(b); |
920 else if (typeof b !== "undefined") { | 920 else if (typeof b !== "undefined") { |
921 var toAppend = WebInspector.linkifyStringAsFragment(String(b)); | 921 var toAppend = WebInspector.linkifyStringAsFragment(String(b)); |
922 if (currentStyle) { | 922 if (currentStyle) { |
923 var wrapper = document.createElement('span'); | 923 var wrapper = createElement('span'); |
924 for (var key in currentStyle) | 924 for (var key in currentStyle) |
925 wrapper.style[key] = currentStyle[key]; | 925 wrapper.style[key] = currentStyle[key]; |
926 wrapper.appendChild(toAppend); | 926 wrapper.appendChild(toAppend); |
927 toAppend = wrapper; | 927 toAppend = wrapper; |
928 } | 928 } |
929 a.appendChild(toAppend); | 929 a.appendChild(toAppend); |
930 } | 930 } |
931 return a; | 931 return a; |
932 } | 932 } |
933 | 933 |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1035 }, | 1035 }, |
1036 | 1036 |
1037 /** | 1037 /** |
1038 * @return {!Element} | 1038 * @return {!Element} |
1039 */ | 1039 */ |
1040 contentElement: function() | 1040 contentElement: function() |
1041 { | 1041 { |
1042 if (this._element) | 1042 if (this._element) |
1043 return this._element; | 1043 return this._element; |
1044 | 1044 |
1045 var element = document.createElementWithClass("div", "console-message"); | 1045 var element = createElementWithClass("div", "console-message"); |
1046 this._element = element; | 1046 this._element = element; |
1047 | 1047 |
1048 switch (this._message.level) { | 1048 switch (this._message.level) { |
1049 case WebInspector.ConsoleMessage.MessageLevel.Log: | 1049 case WebInspector.ConsoleMessage.MessageLevel.Log: |
1050 element.classList.add("console-log-level"); | 1050 element.classList.add("console-log-level"); |
1051 break; | 1051 break; |
1052 case WebInspector.ConsoleMessage.MessageLevel.Debug: | 1052 case WebInspector.ConsoleMessage.MessageLevel.Debug: |
1053 element.classList.add("console-debug-level"); | 1053 element.classList.add("console-debug-level"); |
1054 break; | 1054 break; |
1055 case WebInspector.ConsoleMessage.MessageLevel.Warning: | 1055 case WebInspector.ConsoleMessage.MessageLevel.Warning: |
(...skipping 21 matching lines...) Expand all Loading... |
1077 }, | 1077 }, |
1078 | 1078 |
1079 /** | 1079 /** |
1080 * @return {!Element} | 1080 * @return {!Element} |
1081 */ | 1081 */ |
1082 toMessageElement: function() | 1082 toMessageElement: function() |
1083 { | 1083 { |
1084 if (this._wrapperElement) | 1084 if (this._wrapperElement) |
1085 return this._wrapperElement; | 1085 return this._wrapperElement; |
1086 | 1086 |
1087 this._wrapperElement = document.createElementWithClass("div", "console-m
essage-wrapper"); | 1087 this._wrapperElement = createElementWithClass("div", "console-message-wr
apper"); |
1088 this._nestingLevelMarkers = []; | 1088 this._nestingLevelMarkers = []; |
1089 for (var i = 0; i < this._nestingLevel; ++i) | 1089 for (var i = 0; i < this._nestingLevel; ++i) |
1090 this._nestingLevelMarkers.push(this._wrapperElement.createChild("div
", "nesting-level-marker")); | 1090 this._nestingLevelMarkers.push(this._wrapperElement.createChild("div
", "nesting-level-marker")); |
1091 this._updateCloseGroupDecorations(); | 1091 this._updateCloseGroupDecorations(); |
1092 this._wrapperElement.message = this; | 1092 this._wrapperElement.message = this; |
1093 | 1093 |
1094 this._wrapperElement.appendChild(this.contentElement()); | 1094 this._wrapperElement.appendChild(this.contentElement()); |
1095 return this._wrapperElement; | 1095 return this._wrapperElement; |
1096 }, | 1096 }, |
1097 | 1097 |
1098 /** | 1098 /** |
1099 * @param {!TreeElement} parentTreeElement | 1099 * @param {!TreeElement} parentTreeElement |
1100 */ | 1100 */ |
1101 _populateStackTraceTreeElement: function(parentTreeElement) | 1101 _populateStackTraceTreeElement: function(parentTreeElement) |
1102 { | 1102 { |
1103 /** | 1103 /** |
1104 * @param {!Array.<!ConsoleAgent.CallFrame>=} stackTrace | 1104 * @param {!Array.<!ConsoleAgent.CallFrame>=} stackTrace |
1105 * @this {WebInspector.ConsoleViewMessage} | 1105 * @this {WebInspector.ConsoleViewMessage} |
1106 */ | 1106 */ |
1107 function appendStackTrace(stackTrace) | 1107 function appendStackTrace(stackTrace) |
1108 { | 1108 { |
1109 if (!stackTrace) | 1109 if (!stackTrace) |
1110 return; | 1110 return; |
1111 | 1111 |
1112 for (var i = 0; i < stackTrace.length; i++) { | 1112 for (var i = 0; i < stackTrace.length; i++) { |
1113 var frame = stackTrace[i]; | 1113 var frame = stackTrace[i]; |
1114 | 1114 |
1115 var content = document.createElementWithClass("div", "stacktrace
-entry"); | 1115 var content = createElementWithClass("div", "stacktrace-entry"); |
1116 var functionName = frame.functionName || WebInspector.UIString("
(anonymous function)"); | 1116 var functionName = frame.functionName || WebInspector.UIString("
(anonymous function)"); |
1117 if (frame.scriptId) { | 1117 if (frame.scriptId) { |
1118 var urlElement = this._linkifyCallFrame(frame); | 1118 var urlElement = this._linkifyCallFrame(frame); |
1119 if (!urlElement) | 1119 if (!urlElement) |
1120 continue; | 1120 continue; |
1121 content.appendChild(urlElement); | 1121 content.appendChild(urlElement); |
1122 content.createTextChild(" "); | 1122 content.createTextChild(" "); |
1123 } | 1123 } |
1124 | 1124 |
1125 content.createChild("span", "console-message-text source-code").
textContent = functionName; | 1125 content.createChild("span", "console-message-text source-code").
textContent = functionName; |
1126 parentTreeElement.appendChild(new TreeElement(content)); | 1126 parentTreeElement.appendChild(new TreeElement(content)); |
1127 } | 1127 } |
1128 } | 1128 } |
1129 | 1129 |
1130 appendStackTrace.call(this, this._message.stackTrace); | 1130 appendStackTrace.call(this, this._message.stackTrace); |
1131 | 1131 |
1132 for (var asyncTrace = this._message.asyncStackTrace; asyncTrace; asyncTr
ace = asyncTrace.asyncStackTrace) { | 1132 for (var asyncTrace = this._message.asyncStackTrace; asyncTrace; asyncTr
ace = asyncTrace.asyncStackTrace) { |
1133 if (!asyncTrace.callFrames || !asyncTrace.callFrames.length) | 1133 if (!asyncTrace.callFrames || !asyncTrace.callFrames.length) |
1134 break; | 1134 break; |
1135 var content = document.createElementWithClass("div", "stacktrace-ent
ry"); | 1135 var content = createElementWithClass("div", "stacktrace-entry"); |
1136 var description = WebInspector.asyncStackTraceLabel(asyncTrace.descr
iption); | 1136 var description = WebInspector.asyncStackTraceLabel(asyncTrace.descr
iption); |
1137 content.createChild("span", "console-message-text source-code consol
e-async-trace-text").textContent = description; | 1137 content.createChild("span", "console-message-text source-code consol
e-async-trace-text").textContent = description; |
1138 parentTreeElement.appendChild(new TreeElement(content)); | 1138 parentTreeElement.appendChild(new TreeElement(content)); |
1139 appendStackTrace.call(this, asyncTrace.callFrames); | 1139 appendStackTrace.call(this, asyncTrace.callFrames); |
1140 } | 1140 } |
1141 }, | 1141 }, |
1142 | 1142 |
1143 resetIncrementRepeatCount: function() | 1143 resetIncrementRepeatCount: function() |
1144 { | 1144 { |
1145 this._repeatCount = 1; | 1145 this._repeatCount = 1; |
1146 if (!this._repeatCountElement) | 1146 if (!this._repeatCountElement) |
1147 return; | 1147 return; |
1148 | 1148 |
1149 this._repeatCountElement.remove(); | 1149 this._repeatCountElement.remove(); |
1150 delete this._repeatCountElement; | 1150 delete this._repeatCountElement; |
1151 }, | 1151 }, |
1152 | 1152 |
1153 incrementRepeatCount: function() | 1153 incrementRepeatCount: function() |
1154 { | 1154 { |
1155 this._repeatCount++; | 1155 this._repeatCount++; |
1156 this._showRepeatCountElement(); | 1156 this._showRepeatCountElement(); |
1157 }, | 1157 }, |
1158 | 1158 |
1159 _showRepeatCountElement: function() | 1159 _showRepeatCountElement: function() |
1160 { | 1160 { |
1161 if (!this._element) | 1161 if (!this._element) |
1162 return; | 1162 return; |
1163 | 1163 |
1164 if (!this._repeatCountElement) { | 1164 if (!this._repeatCountElement) { |
1165 this._repeatCountElement = document.createElement("span"); | 1165 this._repeatCountElement = createElement("span"); |
1166 this._repeatCountElement.className = "bubble-repeat-count"; | 1166 this._repeatCountElement.className = "bubble-repeat-count"; |
1167 | 1167 |
1168 this._element.insertBefore(this._repeatCountElement, this._element.f
irstChild); | 1168 this._element.insertBefore(this._repeatCountElement, this._element.f
irstChild); |
1169 this._element.classList.add("repeated-message"); | 1169 this._element.classList.add("repeated-message"); |
1170 } | 1170 } |
1171 this._repeatCountElement.textContent = this._repeatCount; | 1171 this._repeatCountElement.textContent = this._repeatCount; |
1172 }, | 1172 }, |
1173 | 1173 |
1174 /** | 1174 /** |
1175 * @return {string} | 1175 * @return {string} |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1311 { | 1311 { |
1312 if (!this._wrapperElement) { | 1312 if (!this._wrapperElement) { |
1313 WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this
); | 1313 WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this
); |
1314 this._wrapperElement.classList.toggle("collapsed", this._collapsed); | 1314 this._wrapperElement.classList.toggle("collapsed", this._collapsed); |
1315 } | 1315 } |
1316 return this._wrapperElement; | 1316 return this._wrapperElement; |
1317 }, | 1317 }, |
1318 | 1318 |
1319 __proto__: WebInspector.ConsoleViewMessage.prototype | 1319 __proto__: WebInspector.ConsoleViewMessage.prototype |
1320 } | 1320 } |
OLD | NEW |