Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Unified Diff: third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js

Issue 2930403002: DevTools: hide empty console groups
Patch Set: rebase Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/inspector/console/console-filter-test-expected.txt ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js
diff --git a/third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js b/third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js
index d3f748ec103ce6972a9fa5ddd72b30a913bfba86..0748307a52dbb29c39ef47f57d8d10b3f621d3ea 100644
--- a/third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js
+++ b/third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js
@@ -465,43 +465,83 @@ Console.ConsoleView = class extends UI.VBox {
* @param {!Console.ConsoleViewMessage} viewMessage
*/
_appendMessageToEnd(viewMessage) {
- var ignoreTextFilter = this._currentGroup.showAllChildren();
- if (!this._filter.shouldBeVisible(viewMessage, ignoreTextFilter)) {
+ var lastGroup = this._currentGroup;
+ this._currentGroup = this._nextGroup(viewMessage);
+ if (viewMessage.consoleMessage().type === ConsoleModel.ConsoleMessage.MessageType.EndGroup)
+ return;
+ if (!this._filter.shouldBeVisible(viewMessage, this._currentGroup.showAllChildren())) {
this._hiddenByFilterCount++;
return;
}
- if (this._tryToCollapseMessages(viewMessage, this._visibleViewMessages.peekLast()))
- return;
+ // Add ancestor titles before checking for repeats, since it affects the last visible message.
+ this._appendParentGroupTitleMessages(lastGroup);
var lastMessage = this._visibleViewMessages.peekLast();
- if (viewMessage.consoleMessage().type === ConsoleModel.ConsoleMessage.MessageType.EndGroup) {
- if (lastMessage && !this._currentGroup.messagesHidden())
- lastMessage.incrementCloseGroupDecorationCount();
- this._currentGroup = this._currentGroup.parentGroup() || this._currentGroup;
+ if (this._tryToCollapseMessages(viewMessage, lastMessage))
return;
- }
+
if (!this._currentGroup.messagesHidden()) {
var originatingMessage = viewMessage.consoleMessage().originatingMessage();
if (lastMessage && originatingMessage && lastMessage.consoleMessage() === originatingMessage)
lastMessage.toMessageElement().classList.add('console-adjacent-user-command-result');
-
this._visibleViewMessages.push(viewMessage);
this._searchMessage(this._visibleViewMessages.length - 1);
+
+ if (viewMessage.consoleMessage().isGroupStartMessage())
+ this._currentGroup.setTitleVisible();
}
+ this._messageAppendedForTests();
+ }
+ /**
+ * @param {!Console.ConsoleViewMessage} viewMessage
+ * @return {!Console.ConsoleGroup}
+ */
+ _nextGroup(viewMessage) {
+ var lastMessage = this._visibleViewMessages.peekLast();
+ if (viewMessage.consoleMessage().type === ConsoleModel.ConsoleMessage.MessageType.EndGroup) {
+ if (lastMessage && !this._currentGroup.messagesHidden())
+ lastMessage.incrementCloseGroupDecorationCount();
+ return this._currentGroup.parentGroup() || this._currentGroup;
+ }
if (viewMessage.consoleMessage().isGroupStartMessage()) {
- var showAllChildren = ignoreTextFilter || this._filter.matchesTextOrRegex(viewMessage);
- this._currentGroup = new Console.ConsoleGroup(this._currentGroup, viewMessage, showAllChildren);
+ var showAllChildren = this._currentGroup.showAllChildren() || this._filter.matchesTextOrRegex(viewMessage);
+ return new Console.ConsoleGroup(this._currentGroup, viewMessage, showAllChildren);
}
-
- this._messageAppendedForTests();
+ return this._currentGroup;
}
_messageAppendedForTests() {
// This method is sniffed in tests.
}
+ /**
+ * @param {!Console.ConsoleGroup} parent
+ */
+ _appendParentGroupTitleMessages(parent) {
+ var ancestors = [];
+ var ancestor = parent;
+ while (ancestor && ancestor.titleMessage()) {
+ // Do not include items under a collapsed group.
+ if (ancestor.messagesHidden())
+ ancestors = [];
+ if (ancestor.isTitleVisible())
+ break;
+ ancestors.push(ancestor);
+ ancestor = ancestor.parentGroup();
+ }
+
+ // Append ancestors from highest to lowest.
+ for (var i = ancestors.length - 1; i >= 0; i--) {
+ ancestor = ancestors[i];
+ ancestor.setTitleVisible();
+ this._visibleViewMessages.push(ancestor.titleMessage());
+ this._searchMessage(this._visibleViewMessages.length - 1);
+ this._hiddenByFilterCount--;
+ }
+ }
+
/**
* @param {!ConsoleModel.ConsoleMessage} message
* @return {!Console.ConsoleViewMessage}
@@ -1157,9 +1197,6 @@ Console.ConsoleViewFilter = class {
viewMessage.consoleMessage().source === ConsoleModel.ConsoleMessage.MessageSource.Network)
return false;
- if (viewMessage.consoleMessage().isGroupMessage())
- return true;
-
if (message.type === ConsoleModel.ConsoleMessage.MessageType.Result ||
message.type === ConsoleModel.ConsoleMessage.MessageType.Command)
return true;
@@ -1298,6 +1335,8 @@ Console.ConsoleGroup = class {
this._messagesHidden =
groupMessage && groupMessage.collapsed() || this._parentGroup && this._parentGroup.messagesHidden();
this._showAllChildren = showAllChildren;
+ this._titleMessage = groupMessage;
+ this._isTitleVisible = !groupMessage;
}
/**
@@ -1307,6 +1346,24 @@ Console.ConsoleGroup = class {
return new Console.ConsoleGroup(null, null, false);
}
+ /**
+ * @return {?Console.ConsoleViewMessage}
+ */
+ titleMessage() {
+ return this._titleMessage;
+ }
+
+ /**
+ * @return {boolean}
+ */
+ isTitleVisible() {
+ return this._isTitleVisible;
+ }
+
+ setTitleVisible() {
+ this._isTitleVisible = true;
+ }
+
/**
* @return {boolean}
*/
« no previous file with comments | « third_party/WebKit/LayoutTests/inspector/console/console-filter-test-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698