OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
232 * @param {?WebInspector.Target} target | 232 * @param {?WebInspector.Target} target |
233 * @param {string} source | 233 * @param {string} source |
234 * @param {?string} level | 234 * @param {?string} level |
235 * @param {string} messageText | 235 * @param {string} messageText |
236 * @param {string=} type | 236 * @param {string=} type |
237 * @param {?string=} url | 237 * @param {?string=} url |
238 * @param {number=} line | 238 * @param {number=} line |
239 * @param {number=} column | 239 * @param {number=} column |
240 * @param {!NetworkAgent.RequestId=} requestId | 240 * @param {!NetworkAgent.RequestId=} requestId |
241 * @param {!Array.<!RuntimeAgent.RemoteObject>=} parameters | 241 * @param {!Array.<!RuntimeAgent.RemoteObject>=} parameters |
242 * @param {!Array.<!ConsoleAgent.CallFrame>=} stackTrace | 242 * @param {!RuntimeAgent.StackTrace=} stackTrace |
243 * @param {number=} timestamp | 243 * @param {number=} timestamp |
244 * @param {!RuntimeAgent.ExecutionContextId=} executionContextId | 244 * @param {!RuntimeAgent.ExecutionContextId=} executionContextId |
245 * @param {!ConsoleAgent.AsyncStackTrace=} asyncStackTrace | |
246 * @param {?string=} scriptId | 245 * @param {?string=} scriptId |
247 * @param {number=} messageId | 246 * @param {number=} messageId |
248 * @param {number=} relatedMessageId | 247 * @param {number=} relatedMessageId |
249 */ | 248 */ |
250 WebInspector.ConsoleMessage = function(target, source, level, messageText, type,
url, line, column, requestId, parameters, stackTrace, timestamp, executionConte
xtId, asyncStackTrace, scriptId, messageId, relatedMessageId) | 249 WebInspector.ConsoleMessage = function(target, source, level, messageText, type,
url, line, column, requestId, parameters, stackTrace, timestamp, executionConte
xtId, scriptId, messageId, relatedMessageId) |
251 { | 250 { |
252 this._target = target; | 251 this._target = target; |
253 this.source = source; | 252 this.source = source; |
254 this.level = level; | 253 this.level = level; |
255 this.messageText = messageText; | 254 this.messageText = messageText; |
256 this.type = type || WebInspector.ConsoleMessage.MessageType.Log; | 255 this.type = type || WebInspector.ConsoleMessage.MessageType.Log; |
257 /** @type {string|undefined} */ | 256 /** @type {string|undefined} */ |
258 this.url = url || undefined; | 257 this.url = url || undefined; |
259 /** @type {number} */ | 258 /** @type {number} */ |
260 this.line = line || 0; | 259 this.line = line || 0; |
261 /** @type {number} */ | 260 /** @type {number} */ |
262 this.column = column || 0; | 261 this.column = column || 0; |
263 this.parameters = parameters; | 262 this.parameters = parameters; |
264 /** @type {!Array.<!ConsoleAgent.CallFrame>|undefined} */ | 263 /** @type {!RuntimeAgent.StackTrace|undefined} */ |
265 this.stackTrace = stackTrace; | 264 this.stackTrace = stackTrace; |
266 this.timestamp = timestamp || Date.now(); | 265 this.timestamp = timestamp || Date.now(); |
267 this.executionContextId = executionContextId || 0; | 266 this.executionContextId = executionContextId || 0; |
268 this.asyncStackTrace = asyncStackTrace; | |
269 this.scriptId = scriptId || null; | 267 this.scriptId = scriptId || null; |
270 this._messageId = messageId || 0; | 268 this._messageId = messageId || 0; |
271 this._relatedMessageId = relatedMessageId || 0; | 269 this._relatedMessageId = relatedMessageId || 0; |
272 | 270 |
273 this.request = requestId ? target.networkLog.requestForId(requestId) : null; | 271 this.request = requestId ? target.networkLog.requestForId(requestId) : null; |
274 | 272 |
275 if (this.request) { | 273 if (this.request) { |
276 var initiator = this.request.initiator(); | 274 var initiator = this.request.initiator(); |
277 if (initiator) { | 275 if (initiator) { |
278 this.stackTrace = initiator.stackTrace || undefined; | 276 this.stackTrace = initiator.stack || undefined; |
279 this.asyncStackTrace = initiator.asyncStackTrace; | |
280 if (initiator.url) { | 277 if (initiator.url) { |
281 this.url = initiator.url; | 278 this.url = initiator.url; |
282 this.line = initiator.lineNumber || 0; | 279 this.line = initiator.lineNumber || 0; |
283 } | 280 } |
284 } | 281 } |
285 } | 282 } |
286 } | 283 } |
287 | 284 |
288 WebInspector.ConsoleMessage.prototype = { | 285 WebInspector.ConsoleMessage.prototype = { |
289 /** | 286 /** |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 return false; | 353 return false; |
357 | 354 |
358 if (this._messageId || msg._messageId) | 355 if (this._messageId || msg._messageId) |
359 return false; | 356 return false; |
360 if (this._relatedMessageId || msg._relatedMessageId) | 357 if (this._relatedMessageId || msg._relatedMessageId) |
361 return false; | 358 return false; |
362 | 359 |
363 if (!this._isEqualStackTraces(this.stackTrace, msg.stackTrace)) | 360 if (!this._isEqualStackTraces(this.stackTrace, msg.stackTrace)) |
364 return false; | 361 return false; |
365 | 362 |
366 var asyncTrace1 = this.asyncStackTrace; | |
367 var asyncTrace2 = msg.asyncStackTrace; | |
368 while (asyncTrace1 || asyncTrace2) { | |
369 if (!asyncTrace1 || !asyncTrace2) | |
370 return false; | |
371 if (asyncTrace1.description !== asyncTrace2.description) | |
372 return false; | |
373 if (!this._isEqualStackTraces(asyncTrace1.callFrames, asyncTrace2.ca
llFrames)) | |
374 return false; | |
375 asyncTrace1 = asyncTrace1.asyncStackTrace; | |
376 asyncTrace2 = asyncTrace2.asyncStackTrace; | |
377 } | |
378 | |
379 if (this.parameters) { | 363 if (this.parameters) { |
380 if (!msg.parameters || this.parameters.length !== msg.parameters.len
gth) | 364 if (!msg.parameters || this.parameters.length !== msg.parameters.len
gth) |
381 return false; | 365 return false; |
382 | 366 |
383 for (var i = 0; i < msg.parameters.length; ++i) { | 367 for (var i = 0; i < msg.parameters.length; ++i) { |
384 // Never treat objects as equal - their properties might change
over time. | 368 // Never treat objects as equal - their properties might change
over time. |
385 if (this.parameters[i].type !== msg.parameters[i].type || msg.pa
rameters[i].type === "object" || this.parameters[i].value !== msg.parameters[i].
value) | 369 if (this.parameters[i].type !== msg.parameters[i].type || msg.pa
rameters[i].type === "object" || this.parameters[i].value !== msg.parameters[i].
value) |
386 return false; | 370 return false; |
387 } | 371 } |
388 } | 372 } |
389 | 373 |
390 return (this.target() === msg.target()) | 374 return (this.target() === msg.target()) |
391 && (this.source === msg.source) | 375 && (this.source === msg.source) |
392 && (this.type === msg.type) | 376 && (this.type === msg.type) |
393 && (this.level === msg.level) | 377 && (this.level === msg.level) |
394 && (this.line === msg.line) | 378 && (this.line === msg.line) |
395 && (this.url === msg.url) | 379 && (this.url === msg.url) |
396 && (this.messageText === msg.messageText) | 380 && (this.messageText === msg.messageText) |
397 && (this.request === msg.request) | 381 && (this.request === msg.request) |
398 && (this.executionContextId === msg.executionContextId) | 382 && (this.executionContextId === msg.executionContextId) |
399 && (this.scriptId === msg.scriptId); | 383 && (this.scriptId === msg.scriptId); |
400 }, | 384 }, |
401 | 385 |
402 /** | 386 /** |
403 * @param {!Array.<!ConsoleAgent.CallFrame>|undefined} stackTrace1 | 387 * @param {!RuntimeAgent.StackTrace|undefined} stackTrace1 |
404 * @param {!Array.<!ConsoleAgent.CallFrame>|undefined} stackTrace2 | 388 * @param {!RuntimeAgent.StackTrace|undefined} stackTrace2 |
405 * @return {boolean} | 389 * @return {boolean} |
406 */ | 390 */ |
407 _isEqualStackTraces: function(stackTrace1, stackTrace2) | 391 _isEqualStackTraces: function(stackTrace1, stackTrace2) |
408 { | 392 { |
409 stackTrace1 = stackTrace1 || []; | 393 if (!stackTrace1 !== !stackTrace2) |
410 stackTrace2 = stackTrace2 || []; | |
411 if (stackTrace1.length !== stackTrace2.length) | |
412 return false; | 394 return false; |
413 for (var i = 0, n = stackTrace1.length; i < n; ++i) { | 395 if (!stackTrace1) |
414 if (stackTrace1[i].url !== stackTrace2[i].url || | 396 return true; |
415 stackTrace1[i].functionName !== stackTrace2[i].functionName || | 397 var callFrames1 = stackTrace1.callFrames; |
416 stackTrace1[i].lineNumber !== stackTrace2[i].lineNumber || | 398 var callFrames2 = stackTrace2.callFrames; |
417 stackTrace1[i].columnNumber !== stackTrace2[i].columnNumber) | 399 if (callFrames1.length !== callFrames2.length) |
| 400 return false; |
| 401 for (var i = 0, n = callFrames1.length; i < n; ++i) { |
| 402 if (callFrames1[i].url !== callFrames2[i].url || |
| 403 callFrames1[i].functionName !== callFrames2[i].functionName || |
| 404 callFrames1[i].lineNumber !== callFrames2[i].lineNumber || |
| 405 callFrames1[i].columnNumber !== callFrames2[i].columnNumber) |
418 return false; | 406 return false; |
419 } | 407 } |
420 return true; | 408 return this._isEqualStackTraces(stackTrace1.parent, stackTrace2.parent); |
421 } | 409 } |
422 } | 410 } |
423 | 411 |
424 // Note: Keep these constants in sync with the ones in Console.h | 412 // Note: Keep these constants in sync with the ones in Console.h |
425 /** | 413 /** |
426 * @enum {string} | 414 * @enum {string} |
427 */ | 415 */ |
428 WebInspector.ConsoleMessage.MessageSource = { | 416 WebInspector.ConsoleMessage.MessageSource = { |
429 XML: "xml", | 417 XML: "xml", |
430 JS: "javascript", | 418 JS: "javascript", |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
502 this._console.target(), | 490 this._console.target(), |
503 payload.source, | 491 payload.source, |
504 payload.level, | 492 payload.level, |
505 payload.text, | 493 payload.text, |
506 payload.type, | 494 payload.type, |
507 payload.url, | 495 payload.url, |
508 payload.line, | 496 payload.line, |
509 payload.column, | 497 payload.column, |
510 payload.networkRequestId, | 498 payload.networkRequestId, |
511 payload.parameters, | 499 payload.parameters, |
512 payload.stackTrace, | 500 payload.stack, |
513 payload.timestamp * 1000, // Convert to ms. | 501 payload.timestamp * 1000, // Convert to ms. |
514 payload.executionContextId, | 502 payload.executionContextId, |
515 payload.asyncStackTrace, | |
516 payload.scriptId, | 503 payload.scriptId, |
517 payload.messageId, | 504 payload.messageId, |
518 payload.relatedMessageId); | 505 payload.relatedMessageId); |
519 this._console.addMessage(consoleMessage); | 506 this._console.addMessage(consoleMessage); |
520 }, | 507 }, |
521 | 508 |
522 /** | 509 /** |
523 * @override | 510 * @override |
524 * @param {number} count | 511 * @param {number} count |
525 */ | 512 */ |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
616 this.dispatchEventToListeners(WebInspector.ConsoleModel.Events.CommandEv
aluated, event.data); | 603 this.dispatchEventToListeners(WebInspector.ConsoleModel.Events.CommandEv
aluated, event.data); |
617 }, | 604 }, |
618 | 605 |
619 __proto__: WebInspector.Object.prototype | 606 __proto__: WebInspector.Object.prototype |
620 } | 607 } |
621 | 608 |
622 /** | 609 /** |
623 * @type {!WebInspector.MultitargetConsoleModel} | 610 * @type {!WebInspector.MultitargetConsoleModel} |
624 */ | 611 */ |
625 WebInspector.multitargetConsoleModel; | 612 WebInspector.multitargetConsoleModel; |
OLD | NEW |