| 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 |