| 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())
|
| + 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);
|
| },
|
|
|
|
|