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 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
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 if (consoleMessage.parameters && consoleMessage.paramete rs.length === 1 && consoleMessage.parameters[0].type === "string") | |
170 this._messageElement = this._tryFormatAsError(/**@t ype {string} */(consoleMessage.parameters[0].value)); | |
171 | |
169 var args = consoleMessage.parameters || [consoleMessage. messageText]; | 172 var args = consoleMessage.parameters || [consoleMessage. messageText]; |
170 this._messageElement = this._format(args); | 173 this._messageElement = this._messageElement || this._for mat(args); |
171 } | 174 } |
172 } else if (consoleMessage.source === WebInspector.ConsoleMessage.Mes sageSource.Network) { | 175 } else if (consoleMessage.source === WebInspector.ConsoleMessage.Mes sageSource.Network) { |
173 if (consoleMessage.request) { | 176 if (consoleMessage.request) { |
174 this._messageElement = createElement("span"); | 177 this._messageElement = createElement("span"); |
175 if (consoleMessage.level === WebInspector.ConsoleMessage.Mes sageLevel.Error) { | 178 if (consoleMessage.level === WebInspector.ConsoleMessage.Mes sageLevel.Error) { |
176 this._messageElement.createTextChildren(consoleMessage.r equest.requestMethod, " "); | 179 this._messageElement.createTextChildren(consoleMessage.r equest.requestMethod, " "); |
177 this._messageElement.appendChild(WebInspector.Linkifier. linkifyUsingRevealer(consoleMessage.request, consoleMessage.request.url, console Message.request.url)); | 180 this._messageElement.appendChild(WebInspector.Linkifier. linkifyUsingRevealer(consoleMessage.request, consoleMessage.request.url, console Message.request.url)); |
178 if (consoleMessage.request.failed) | 181 if (consoleMessage.request.failed) |
179 this._messageElement.createTextChildren(" ", console Message.request.localizedFailDescription); | 182 this._messageElement.createTextChildren(" ", console Message.request.localizedFailDescription); |
180 else | 183 else |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
275 return this._linkifier.linkifyScriptLocation(target, null, url, lineNumb er, columnNumber, "console-message-url"); | 278 return this._linkifier.linkifyScriptLocation(target, null, url, lineNumb er, columnNumber, "console-message-url"); |
276 }, | 279 }, |
277 | 280 |
278 /** | 281 /** |
279 * @param {!ConsoleAgent.CallFrame} callFrame | 282 * @param {!ConsoleAgent.CallFrame} callFrame |
280 * @return {?Element} | 283 * @return {?Element} |
281 */ | 284 */ |
282 _linkifyCallFrame: function(callFrame) | 285 _linkifyCallFrame: function(callFrame) |
283 { | 286 { |
284 var target = this._target(); | 287 var target = this._target(); |
285 if (!this._linkifier) | |
286 return null; | |
287 | |
288 return this._linkifier.linkifyConsoleCallFrame(target, callFrame, "conso le-message-url"); | 288 return this._linkifier.linkifyConsoleCallFrame(target, callFrame, "conso le-message-url"); |
289 }, | 289 }, |
290 | 290 |
291 /** | 291 /** |
292 * @param {string} scriptId | 292 * @param {string} scriptId |
293 * @param {string} url | 293 * @param {string} url |
294 * @param {number} lineNumber | 294 * @param {number} lineNumber |
295 * @param {number} columnNumber | 295 * @param {number} columnNumber |
296 * @return {?Element} | 296 * @return {?Element} |
297 */ | 297 */ |
(...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1265 break; | 1265 break; |
1266 } | 1266 } |
1267 | 1267 |
1268 return sourceString + " " + typeString + " " + levelString + ": " + this .formattedMessage().textContent + "\n" + this._message.url + " line " + this._me ssage.line; | 1268 return sourceString + " " + typeString + " " + levelString + ": " + this .formattedMessage().textContent + "\n" + this._message.url + " line " + this._me ssage.line; |
1269 }, | 1269 }, |
1270 | 1270 |
1271 get text() | 1271 get text() |
1272 { | 1272 { |
1273 return this._message.messageText; | 1273 return this._message.messageText; |
1274 }, | 1274 }, |
1275 | |
1276 /** | |
1277 * @param {string} string | |
1278 * @return {?Element} | |
1279 */ | |
1280 _tryFormatAsError: function(string) | |
1281 { | |
1282 var errorPrefixes = ["EvalError", "ReferenceError", "SyntaxError", "Type Error", "RangeError", "Error", "URIError"]; | |
1283 if (!errorPrefixes.some(String.prototype.startsWith.bind(new String(stri ng)))) | |
1284 return null; | |
1285 | |
1286 var lines = string.split("\n"); | |
1287 var links = []; | |
1288 var position = 0; | |
1289 for (var i = 0; i < lines.length; ++i) { | |
1290 position += i > 0 ? lines[i - 1].length + 1 : 0; | |
1291 var hasAt = /^\s*at\s/.test(lines[i]); | |
vsevik
2014/10/27 09:04:56
s/hasAt/isCallFrameLine/
sergeyv
2014/10/30 14:38:39
Done.
| |
1292 if (!hasAt && links.length) | |
1293 return null; | |
1294 | |
1295 if (!hasAt) | |
1296 continue; | |
1297 | |
1298 var openBracketIndex = lines[i].indexOf("("); | |
1299 var closeBracketIndex = lines[i].indexOf(")"); | |
1300 var hasOpenBracket = openBracketIndex !== -1; | |
1301 var hasCloseBracket = closeBracketIndex !== -1; | |
1302 | |
1303 if ((openBracketIndex > closeBracketIndex) || (hasOpenBracket ^ has CloseBracket)) | |
1304 return null; | |
1305 | |
1306 var left = hasOpenBracket ? openBracketIndex + 1 : lines[i].indexOf( "at") + 3; | |
1307 var right = hasOpenBracket ? closeBracketIndex : lines[i].length; | |
1308 var linkPretender = lines[i].substring(left, right); | |
vsevik
2014/10/27 09:04:55
linkCandidate
sergeyv
2014/10/30 14:38:39
Done.
| |
1309 var splitResult = WebInspector.ParsedURL.splitLineAndColumn(linkPret ender); | |
1310 if (!splitResult) | |
1311 return null; | |
1312 | |
1313 var parsed = splitResult.url.asParsedURL(); | |
1314 if (!parsed) { | |
1315 var completeURL = WebInspector.ParsedURL.completeURL(WebInspecto r.targetManager.inspectedPageURL(), splitResult.url); | |
vsevik
2014/10/27 09:04:55
This could be incorrect in case of worker. Is ther
sergeyv
2014/10/30 14:38:39
Done.
| |
1316 parsed = completeURL ? completeURL.asParsedURL() : null; | |
1317 } | |
1318 | |
1319 if (!parsed) | |
1320 return null; | |
1321 | |
1322 links.push({url: parsed.url, positionLeft: position + left, position Right: position + right, lineNumber: splitResult.lineNumber, columnNumber: split Result.columnNumber}); | |
1323 } | |
1324 | |
1325 if (!links.length) | |
1326 return null; | |
1327 | |
1328 var formattedResult = createElement("span"); | |
1329 var start = 0; | |
1330 for (var i = 0; i < links.length; ++i) { | |
1331 formattedResult.appendChild(this._linkifier.linkifyStringAsFragment( this._target(), string.substring(start, links[i].positionLeft))); | |
1332 formattedResult.appendChild(this._linkifier.linkifyScriptLocation(th is._target(), null, links[i].url, links[i].lineNumber, links[i].columnNumber)); | |
1333 start = links[i].positionRight; | |
1334 } | |
1335 | |
1336 if (start != string.length) | |
1337 formattedResult.appendChild(this._linkifier.linkifyStringAsFragment( this._target(), string.substring(start))); | |
1338 | |
1339 return formattedResult; | |
1340 } | |
1275 } | 1341 } |
1276 | 1342 |
1277 /** | 1343 /** |
1278 * @constructor | 1344 * @constructor |
1279 * @extends {WebInspector.ConsoleViewMessage} | 1345 * @extends {WebInspector.ConsoleViewMessage} |
1280 * @param {!WebInspector.ConsoleMessage} consoleMessage | 1346 * @param {!WebInspector.ConsoleMessage} consoleMessage |
1281 * @param {!WebInspector.Linkifier} linkifier | 1347 * @param {!WebInspector.Linkifier} linkifier |
1282 * @param {number} nestingLevel | 1348 * @param {number} nestingLevel |
1283 */ | 1349 */ |
1284 WebInspector.ConsoleGroupViewMessage = function(consoleMessage, linkifier, nesti ngLevel) | 1350 WebInspector.ConsoleGroupViewMessage = function(consoleMessage, linkifier, nesti ngLevel) |
(...skipping 29 matching lines...) Expand all Loading... | |
1314 { | 1380 { |
1315 if (!this._wrapperElement) { | 1381 if (!this._wrapperElement) { |
1316 WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this ); | 1382 WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this ); |
1317 this._wrapperElement.classList.toggle("collapsed", this._collapsed); | 1383 this._wrapperElement.classList.toggle("collapsed", this._collapsed); |
1318 } | 1384 } |
1319 return this._wrapperElement; | 1385 return this._wrapperElement; |
1320 }, | 1386 }, |
1321 | 1387 |
1322 __proto__: WebInspector.ConsoleViewMessage.prototype | 1388 __proto__: WebInspector.ConsoleViewMessage.prototype |
1323 } | 1389 } |
OLD | NEW |