Index: Source/devtools/front_end/ConsoleView.js |
diff --git a/Source/devtools/front_end/ConsoleView.js b/Source/devtools/front_end/ConsoleView.js |
index d5ed5d54183ce01d8e3720e2c9a3cfb47325b824..e723a6738972a7967d871c9b181b5768d7ef3063 100644 |
--- a/Source/devtools/front_end/ConsoleView.js |
+++ b/Source/devtools/front_end/ConsoleView.js |
@@ -103,6 +103,7 @@ WebInspector.ConsoleView = function(hideContextSelector) |
this._messageToViewMessage = new Map(); |
/** @type {!Array.<!WebInspector.ConsoleMessage>} */ |
this._consoleMessages = []; |
+ this._previous_message = null; |
pfeldman
2014/03/25 13:09:32
You want this._previousMessage
sergeyv
2014/03/25 13:42:56
Done.
|
this.prompt = new WebInspector.TextPromptWithHistory(this._completionsForTextPrompt.bind(this)); |
this.prompt.setSuggestBoxEnabled("generic-suggest"); |
@@ -143,7 +144,6 @@ WebInspector.ConsoleView.prototype = { |
{ |
target.consoleModel.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded, this._onConsoleMessageAdded.bind(this, target), this); |
target.consoleModel.addEventListener(WebInspector.ConsoleModel.Events.ConsoleCleared, this._consoleCleared, this); |
- target.consoleModel.addEventListener(WebInspector.ConsoleModel.Events.RepeatCountUpdated, this._repeatCountUpdated, this); |
target.consoleModel.addEventListener(WebInspector.ConsoleModel.Events.CommandEvaluated, this._commandEvaluated, this); |
target.consoleModel.messages.forEach(this._consoleMessageAdded.bind(this, target)); |
@@ -416,13 +416,20 @@ WebInspector.ConsoleView.prototype = { |
*/ |
_consoleMessageAdded: function(target, message) |
{ |
- this._consoleMessages.push(message); |
- var viewMessage = this._createViewMessage(target, message); |
if (this._urlToMessageCount[message.url]) |
this._urlToMessageCount[message.url]++; |
else |
this._urlToMessageCount[message.url] = 1; |
+ if (this._previous_message && !message.isGroupMessage() && message.isEqual(this._previous_message)) { |
+ this._messageToViewMessage.get(this._previous_message).incrementRepeatCount(); |
+ return; |
+ } |
+ |
+ this._consoleMessages.push(message); |
+ this._previous_message = message; |
+ var viewMessage = this._createViewMessage(target, message); |
+ |
if (this._filter.shouldBeVisible(viewMessage)) |
this._showConsoleMessage(viewMessage); |
else |
@@ -500,6 +507,7 @@ WebInspector.ConsoleView.prototype = { |
this._visibleViewMessages = []; |
this._searchResults = []; |
+ this._previous_message = null; |
this._messageToViewMessage.clear(); |
this._consoleMessages = []; |
@@ -512,15 +520,6 @@ WebInspector.ConsoleView.prototype = { |
this._linkifier.reset(); |
}, |
- /** |
- * @param {!WebInspector.Event} event |
- */ |
- _repeatCountUpdated: function(event) |
- { |
- var message = /** @type {!WebInspector.ConsoleMessage} */ (event.data); |
- this._messageToViewMessage.get(message).updateRepeatCount(); |
- }, |
- |
_handleContextMenuEvent: function(event) |
{ |
if (event.target.enclosingNodeOrSelfWithNodeName("a")) |
@@ -1075,7 +1074,8 @@ WebInspector.ConsoleCommandResult = function(result, wasThrown, originatingComma |
{ |
this.originatingCommand = originatingCommand; |
var level = wasThrown ? WebInspector.ConsoleMessage.MessageLevel.Error : WebInspector.ConsoleMessage.MessageLevel.Log; |
- var message = new WebInspector.ConsoleMessage(WebInspector.ConsoleMessage.MessageSource.JS, level, "", WebInspector.ConsoleMessage.MessageType.Result, url, lineNumber, columnNumber, undefined, undefined, [result]); |
+ |
+ var message = new WebInspector.ConsoleMessage(WebInspector.ConsoleMessage.MessageSource.JS, level, "", WebInspector.ConsoleMessage.MessageType.Result, url, lineNumber, columnNumber, undefined, [result]); |
WebInspector.ConsoleViewMessage.call(this, result.target(), message, linkifier); |
} |