Chromium Code Reviews| 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 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 189 } | 189 } |
| 190 this._messageElement = this._format([consoleMessage.messageT ext]); | 190 this._messageElement = this._format([consoleMessage.messageT ext]); |
| 191 } | 191 } |
| 192 } else { | 192 } else { |
| 193 var args = consoleMessage.parameters || [consoleMessage.messageT ext]; | 193 var args = consoleMessage.parameters || [consoleMessage.messageT ext]; |
| 194 this._messageElement = this._format(args); | 194 this._messageElement = this._format(args); |
| 195 } | 195 } |
| 196 } | 196 } |
| 197 | 197 |
| 198 if (consoleMessage.source !== WebInspector.ConsoleMessage.MessageSource. Network || consoleMessage.request) { | 198 if (consoleMessage.source !== WebInspector.ConsoleMessage.MessageSource. Network || consoleMessage.request) { |
| 199 var callFrame = this._callFrameAnchorFromStackTrace(consoleMessage.s tackTrace); | 199 console.assert(this._linkifier); |
| 200 if (callFrame) | 200 if (this._linkifier) |
| 201 this._anchorElement = this._linkifyCallFrame(callFrame); | 201 this._anchorElement = this._linkifier.linkifyTopUnblackboxedCons oleCallFrame(this._target(), consoleMessage.stackTrace, "console-message-url", t rue); |
|
vsevik
2014/08/07 09:11:58
I don't think we should update the console message
aandrey
2014/08/07 10:24:59
I'm not sure I follow you here.
Anyway, I did't ch
| |
| 202 else if (consoleMessage.url && consoleMessage.url !== "undefined") | 202 if (!this._anchorElement && consoleMessage.url && consoleMessage.url !== "undefined") |
| 203 this._anchorElement = this._linkifyLocation(consoleMessage.url, consoleMessage.line, consoleMessage.column); | 203 this._anchorElement = this._linkifyLocation(consoleMessage.url, consoleMessage.line, consoleMessage.column); |
| 204 } | 204 } |
| 205 | 205 |
| 206 this._formattedMessage.appendChild(this._messageElement); | 206 this._formattedMessage.appendChild(this._messageElement); |
| 207 if (this._anchorElement) { | 207 if (this._anchorElement) { |
| 208 this._formattedMessage.appendChild(document.createTextNode(" ")); | 208 this._formattedMessage.appendChild(document.createTextNode(" ")); |
| 209 this._formattedMessage.appendChild(this._anchorElement); | 209 this._formattedMessage.appendChild(this._anchorElement); |
| 210 } | 210 } |
| 211 | 211 |
| 212 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 ); | 212 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 ); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 248 /** | 248 /** |
| 249 * @param {string} url | 249 * @param {string} url |
| 250 * @param {number} lineNumber | 250 * @param {number} lineNumber |
| 251 * @param {number} columnNumber | 251 * @param {number} columnNumber |
| 252 * @return {?Element} | 252 * @return {?Element} |
| 253 */ | 253 */ |
| 254 _linkifyLocation: function(url, lineNumber, columnNumber) | 254 _linkifyLocation: function(url, lineNumber, columnNumber) |
| 255 { | 255 { |
| 256 console.assert(this._linkifier); | 256 console.assert(this._linkifier); |
| 257 var target = this._target(); | 257 var target = this._target(); |
| 258 if (!this._linkifier || !target) | 258 if (!this._linkifier) |
| 259 return null; | 259 return null; |
| 260 // FIXME(62725): stack trace line/column numbers are one-based. | 260 // FIXME(62725): stack trace line/column numbers are one-based. |
| 261 lineNumber = lineNumber ? lineNumber - 1 : 0; | 261 lineNumber = lineNumber ? lineNumber - 1 : 0; |
| 262 columnNumber = columnNumber ? columnNumber - 1 : 0; | 262 columnNumber = columnNumber ? columnNumber - 1 : 0; |
| 263 if (this._message.source === WebInspector.ConsoleMessage.MessageSource.C SS) { | 263 if (this._message.source === WebInspector.ConsoleMessage.MessageSource.C SS) { |
| 264 if (!target) | |
| 265 return null; | |
| 264 var headerIds = target.cssModel.styleSheetIdsForURL(url); | 266 var headerIds = target.cssModel.styleSheetIdsForURL(url); |
| 265 var cssLocation = new WebInspector.CSSLocation(target, headerIds[0] || null, url, lineNumber, columnNumber); | 267 var cssLocation = new WebInspector.CSSLocation(target, headerIds[0] || null, url, lineNumber, columnNumber); |
| 266 return this._linkifier.linkifyCSSLocation(cssLocation, "console-mess age-url"); | 268 return this._linkifier.linkifyCSSLocation(cssLocation, "console-mess age-url"); |
| 267 } | 269 } |
| 268 | 270 |
| 269 return this._linkifier.linkifyScriptLocation(target, null, url, lineNumb er, columnNumber, "console-message-url"); | 271 return this._linkifier.linkifyScriptLocation(target, null, url, lineNumb er, columnNumber, "console-message-url"); |
| 270 }, | 272 }, |
| 271 | 273 |
| 272 /** | 274 /** |
| 273 * @param {!ConsoleAgent.CallFrame} callFrame | |
| 274 * @return {?Element} | |
| 275 */ | |
| 276 _linkifyCallFrame: function(callFrame) | |
| 277 { | |
| 278 console.assert(this._linkifier); | |
| 279 var target = this._target(); | |
| 280 if (!this._linkifier) | |
| 281 return null; | |
| 282 | |
| 283 return this._linkifier.linkifyConsoleCallFrame(target, callFrame, "conso le-message-url"); | |
| 284 }, | |
| 285 | |
| 286 /** | |
| 287 * @param {?Array.<!ConsoleAgent.CallFrame>} stackTrace | |
| 288 * @return {?ConsoleAgent.CallFrame} | |
| 289 */ | |
| 290 _callFrameAnchorFromStackTrace: function(stackTrace) | |
| 291 { | |
| 292 if (!stackTrace || !stackTrace.length) | |
| 293 return null; | |
| 294 var callFrame = stackTrace[0].scriptId ? stackTrace[0] : null; | |
| 295 if (!WebInspector.experimentsSettings.frameworksDebuggingSupport.isEnabl ed()) | |
| 296 return callFrame; | |
| 297 var regex = WebInspector.settings.skipStackFramesPattern.asRegExp(); | |
| 298 if (!regex) | |
| 299 return callFrame; | |
| 300 for (var i = 0; i < stackTrace.length; ++i) { | |
| 301 var script = this._target().debuggerModel.scriptForId(stackTrace[i]. scriptId); | |
| 302 if (!script || !regex.test(script.sourceURL)) | |
| 303 return stackTrace[i].scriptId ? stackTrace[i] : null; | |
| 304 } | |
| 305 return callFrame; | |
| 306 }, | |
| 307 | |
| 308 /** | |
| 309 * @return {boolean} | 275 * @return {boolean} |
| 310 */ | 276 */ |
| 311 isErrorOrWarning: function() | 277 isErrorOrWarning: function() |
| 312 { | 278 { |
| 313 return (this._message.level === WebInspector.ConsoleMessage.MessageLevel .Warning || this._message.level === WebInspector.ConsoleMessage.MessageLevel.Err or); | 279 return (this._message.level === WebInspector.ConsoleMessage.MessageLevel .Warning || this._message.level === WebInspector.ConsoleMessage.MessageLevel.Err or); |
| 314 }, | 280 }, |
| 315 | 281 |
| 316 _format: function(parameters) | 282 _format: function(parameters) |
| 317 { | 283 { |
| 318 // This node is used like a Builder. Values are continually appended ont o it. | 284 // This node is used like a Builder. Values are continually appended ont o it. |
| (...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1055 if (!stackTrace) | 1021 if (!stackTrace) |
| 1056 return; | 1022 return; |
| 1057 | 1023 |
| 1058 for (var i = 0; i < stackTrace.length; i++) { | 1024 for (var i = 0; i < stackTrace.length; i++) { |
| 1059 var frame = stackTrace[i]; | 1025 var frame = stackTrace[i]; |
| 1060 | 1026 |
| 1061 var content = document.createElementWithClass("div", "stacktrace -entry"); | 1027 var content = document.createElementWithClass("div", "stacktrace -entry"); |
| 1062 var functionName = frame.functionName || WebInspector.UIString(" (anonymous function)"); | 1028 var functionName = frame.functionName || WebInspector.UIString(" (anonymous function)"); |
| 1063 content.createChild("span", "console-message-text source-code"). textContent = functionName; | 1029 content.createChild("span", "console-message-text source-code"). textContent = functionName; |
| 1064 | 1030 |
| 1065 if (frame.scriptId) { | 1031 if (frame.scriptId && this._linkifier) { |
| 1066 content.createTextChild(" "); | 1032 content.createTextChild(" "); |
| 1067 var urlElement = this._linkifyCallFrame(frame); | 1033 content.appendChild(this._linkifier.linkifyConsoleCallFrame( this._target(), frame, "console-message-url")); |
| 1068 if (!urlElement) | |
| 1069 continue; | |
| 1070 content.appendChild(urlElement); | |
| 1071 } | 1034 } |
| 1072 | 1035 |
| 1073 parentTreeElement.appendChild(new TreeElement(content)); | 1036 parentTreeElement.appendChild(new TreeElement(content)); |
| 1074 } | 1037 } |
| 1075 } | 1038 } |
| 1076 | 1039 |
| 1077 appendStackTrace.call(this, this._message.stackTrace); | 1040 appendStackTrace.call(this, this._message.stackTrace); |
| 1078 | 1041 |
| 1079 for (var asyncTrace = this._message.asyncStackTrace; asyncTrace; asyncTr ace = asyncTrace.asyncStackTrace) { | 1042 for (var asyncTrace = this._message.asyncStackTrace; asyncTrace; asyncTr ace = asyncTrace.asyncStackTrace) { |
| 1080 if (!asyncTrace.callFrames || !asyncTrace.callFrames.length) | 1043 if (!asyncTrace.callFrames || !asyncTrace.callFrames.length) |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1258 { | 1221 { |
| 1259 if (!this._wrapperElement) { | 1222 if (!this._wrapperElement) { |
| 1260 WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this ); | 1223 WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this ); |
| 1261 this._wrapperElement.classList.toggle("collapsed", this._collapsed); | 1224 this._wrapperElement.classList.toggle("collapsed", this._collapsed); |
| 1262 } | 1225 } |
| 1263 return this._wrapperElement; | 1226 return this._wrapperElement; |
| 1264 }, | 1227 }, |
| 1265 | 1228 |
| 1266 __proto__: WebInspector.ConsoleViewMessage.prototype | 1229 __proto__: WebInspector.ConsoleViewMessage.prototype |
| 1267 } | 1230 } |
| OLD | NEW |