Chromium Code Reviews| Index: Source/devtools/front_end/sdk/ConsoleModel.js |
| diff --git a/Source/devtools/front_end/sdk/ConsoleModel.js b/Source/devtools/front_end/sdk/ConsoleModel.js |
| index f658ef6a7a89bb76a3c65478049fba2ed88a3156..2349fcacf387d38c14a43ea549e1c2b9f51e8c35 100644 |
| --- a/Source/devtools/front_end/sdk/ConsoleModel.js |
| +++ b/Source/devtools/front_end/sdk/ConsoleModel.js |
| @@ -39,8 +39,11 @@ WebInspector.ConsoleModel = function(target) |
| /** @type {!Array.<!WebInspector.ConsoleMessage>} */ |
| this._messages = []; |
| - this.warnings = 0; |
| - this.errors = 0; |
| + /** @type {!Map<number, !WebInspector.ConsoleMessage>} */ |
| + this._messageBySequenceNumber = new Map(); |
| + this._warnings = 0; |
| + this._errors = 0; |
| + this._revokedErrors = 0; |
| this._consoleAgent = target.consoleAgent(); |
| target.registerConsoleDispatcher(new WebInspector.ConsoleDispatcher(this)); |
| this._enableAgent(); |
| @@ -72,10 +75,16 @@ WebInspector.ConsoleModel.prototype = { |
| */ |
| addMessage: function(msg) |
| { |
| - msg.index = this._messages.length; |
| this._messages.push(msg); |
| + this._messageBySequenceNumber.set(msg.sequenceNumber, msg); |
| + if (msg._relatedSequenceNumber) { |
| + var relatedMessage = this._messageBySequenceNumber.get(msg._relatedSequenceNumber); |
| + if (relatedMessage) |
| + msg.setRelatedMessage(relatedMessage); |
| + } |
| + if (msg.level === WebInspector.ConsoleMessage.MessageLevel.RevokedError && msg.relatedMessage()) |
|
dgozman
2015/04/21 09:16:36
Move this to |_incrementErrorWarningCount|.
pfeldman
2015/04/21 12:15:27
Handled it separately.
|
| + this._errors--; |
| this._incrementErrorWarningCount(msg); |
| - |
| this.dispatchEventToListeners(WebInspector.ConsoleModel.Events.MessageAdded, msg); |
| }, |
| @@ -86,10 +95,13 @@ WebInspector.ConsoleModel.prototype = { |
| { |
| switch (msg.level) { |
| case WebInspector.ConsoleMessage.MessageLevel.Warning: |
| - this.warnings++; |
| + this._warnings++; |
| break; |
| case WebInspector.ConsoleMessage.MessageLevel.Error: |
| - this.errors++; |
| + this._errors++; |
| + break; |
| + case WebInspector.ConsoleMessage.MessageLevel.RevokedError: |
| + this._revokedErrors++; |
| break; |
| } |
| }, |
| @@ -111,11 +123,37 @@ WebInspector.ConsoleModel.prototype = { |
| _messagesCleared: function() |
| { |
| this._messages = []; |
| - this.errors = 0; |
| - this.warnings = 0; |
| + this._messageBySequenceNumber.clear(); |
| + this._errors = 0; |
| + this._revokedErrors = 0; |
| + this._warnings = 0; |
| this.dispatchEventToListeners(WebInspector.ConsoleModel.Events.ConsoleCleared); |
| }, |
| + /** |
| + * @return {number} |
| + */ |
| + errors: function() |
| + { |
| + return this._errors; |
| + }, |
| + |
| + /** |
| + * @return {number} |
| + */ |
| + revokedErrors: function() |
| + { |
| + return this._revokedErrors; |
| + }, |
| + |
| + /** |
| + * @return {number} |
| + */ |
| + warnings: function() |
| + { |
| + return this._warnings; |
| + }, |
| + |
| __proto__: WebInspector.SDKModel.prototype |
| } |
| @@ -129,7 +167,7 @@ WebInspector.ConsoleModel.evaluateCommandInConsole = function(executionContext, |
| useCommandLineAPI = !!useCommandLineAPI; |
| var target = executionContext.target(); |
| - var commandMessage = new WebInspector.ConsoleMessage(target, WebInspector.ConsoleMessage.MessageSource.JS, null, text, WebInspector.ConsoleMessage.MessageType.Command); |
| + var commandMessage = new WebInspector.ConsoleMessage(target, 0, WebInspector.ConsoleMessage.MessageSource.JS, null, text, WebInspector.ConsoleMessage.MessageType.Command); |
| commandMessage.setExecutionContextId(executionContext.id); |
| target.consoleModel.addMessage(commandMessage); |
| @@ -160,6 +198,7 @@ WebInspector.ConsoleModel.evaluateCommandInConsole = function(executionContext, |
| /** |
| * @constructor |
| * @param {?WebInspector.Target} target |
| + * @param {number} sequenceNumber |
| * @param {string} source |
| * @param {?string} level |
| * @param {string} messageText |
| @@ -174,10 +213,12 @@ WebInspector.ConsoleModel.evaluateCommandInConsole = function(executionContext, |
| * @param {!RuntimeAgent.ExecutionContextId=} executionContextId |
| * @param {!ConsoleAgent.AsyncStackTrace=} asyncStackTrace |
| * @param {?string=} scriptId |
| + * @param {number=} relatedSequenceNumber |
| */ |
| -WebInspector.ConsoleMessage = function(target, source, level, messageText, type, url, line, column, requestId, parameters, stackTrace, timestamp, executionContextId, asyncStackTrace, scriptId) |
| +WebInspector.ConsoleMessage = function(target, sequenceNumber, source, level, messageText, type, url, line, column, requestId, parameters, stackTrace, timestamp, executionContextId, asyncStackTrace, scriptId, relatedSequenceNumber) |
| { |
| this._target = target; |
| + this.sequenceNumber = sequenceNumber; |
| this.source = source; |
| this.level = level; |
| this.messageText = messageText; |
| @@ -195,6 +236,7 @@ WebInspector.ConsoleMessage = function(target, source, level, messageText, type, |
| this.executionContextId = executionContextId || 0; |
| this.asyncStackTrace = asyncStackTrace; |
| this.scriptId = scriptId || null; |
| + this._relatedSequenceNumber = relatedSequenceNumber || 0; |
| this.request = requestId ? target.networkLog.requestForId(requestId) : null; |
| @@ -221,12 +263,11 @@ WebInspector.ConsoleMessage.prototype = { |
| }, |
| /** |
| - * @param {!WebInspector.ConsoleMessage} originatingMessage |
| + * @param {!WebInspector.ConsoleMessage} relatedMessage |
| */ |
| - setOriginatingMessage: function(originatingMessage) |
| + setRelatedMessage: function(relatedMessage) |
| { |
| - this._originatingConsoleMessage = originatingMessage; |
| - this.executionContextId = originatingMessage.executionContextId; |
| + this._relatedMessage = relatedMessage; |
| }, |
| /** |
| @@ -240,9 +281,9 @@ WebInspector.ConsoleMessage.prototype = { |
| /** |
| * @return {?WebInspector.ConsoleMessage} |
| */ |
| - originatingMessage: function() |
| + relatedMessage: function() |
| { |
| - return this._originatingConsoleMessage; |
| + return this._relatedMessage; |
| }, |
| /** |
| @@ -273,29 +314,6 @@ WebInspector.ConsoleMessage.prototype = { |
| }, |
| /** |
| - * @return {!WebInspector.ConsoleMessage} |
| - */ |
| - clone: function() |
| - { |
| - return new WebInspector.ConsoleMessage( |
| - this.target(), |
| - this.source, |
| - this.level, |
| - this.messageText, |
| - this.type, |
| - this.url, |
| - this.line, |
| - this.column, |
| - this.request ? this.request.requestId : undefined, |
| - this.parameters, |
| - this.stackTrace, |
| - this.timestamp, |
| - this.executionContextId, |
| - this.asyncStackTrace, |
| - this.scriptId); |
| - }, |
| - |
| - /** |
| * @param {?WebInspector.ConsoleMessage} msg |
| * @return {boolean} |
| */ |
| @@ -304,6 +322,9 @@ WebInspector.ConsoleMessage.prototype = { |
| if (!msg) |
| return false; |
| + if (this._relatedSequenceNumber || msg._relatedSequenceNumber) |
| + return false; |
| + |
| if (!this._isEqualStackTraces(this.stackTrace, msg.stackTrace)) |
| return false; |
| @@ -411,7 +432,8 @@ WebInspector.ConsoleMessage.MessageLevel = { |
| Info: "info", |
| Warning: "warning", |
| Error: "error", |
| - Debug: "debug" |
| + Debug: "debug", |
| + RevokedError: "revokedError" |
| }; |
| /** |
| @@ -443,6 +465,7 @@ WebInspector.ConsoleDispatcher.prototype = { |
| { |
| var consoleMessage = new WebInspector.ConsoleMessage( |
| this._console.target(), |
| + payload.sequenceNumber, |
| payload.source, |
| payload.level, |
| payload.text, |
| @@ -456,7 +479,8 @@ WebInspector.ConsoleDispatcher.prototype = { |
| payload.timestamp * 1000, // Convert to ms. |
| payload.executionContextId, |
| payload.asyncStackTrace, |
| - payload.scriptId); |
| + payload.scriptId, |
| + payload.relatedSequenceNumber); |
| this._console.addMessage(consoleMessage); |
| }, |