Modified: trunk/Source/WebInspectorUI/ChangeLog (186282 => 186283)
--- trunk/Source/WebInspectorUI/ChangeLog 2015-07-04 21:44:46 UTC (rev 186282)
+++ trunk/Source/WebInspectorUI/ChangeLog 2015-07-04 21:46:29 UTC (rev 186283)
@@ -1,5 +1,35 @@
2015-07-04 Devin Rousso <drou...@apple.com>
+ Web Inspector: Console should indicate if you have unseen messages in console due to filters
+ https://bugs.webkit.org/show_bug.cgi?id=143166
+
+ Reviewed by Timothy Hatcher.
+
+ * UserInterface/Controllers/_javascript_LogViewController.js:
+ (WebInspector._javascript_LogViewController.prototype.updatePreviousMessageRepeatCount): Now returns true/false depending on if
+ the message count was actually updated.
+ * UserInterface/Views/LogContentView.css:
+ (.log-scope-bar > li.unread): Applies the unread-border-pulse keyframe animation.
+ (.log-scope-bar > li.unread.errors): The pulsing border is colored red.
+ (.log-scope-bar > li.unread.warnings): The pulsing border is colored yellow(ish).
+ (.log-scope-bar > li.unread.logs): The pulsing border is colored grey.
+ (@keyframes unread-border-pulse): Changes the color of the border from transparent to whatever is specificed.
+ * UserInterface/Views/LogContentView.js:
+ (WebInspector.LogContentView):
+ (WebInspector.LogContentView.prototype._determineMessageLevel):
+ (WebInspector.LogContentView.prototype._pulseScopeBarItemBorder): Adds the class "unread" to the scope bar item whose panel
+ the newest message belongs to, but only if that panel or the All panel is not visible.
+ (WebInspector.LogContentView.prototype._messageAdded):
+ (WebInspector.LogContentView.prototype._previousMessageRepeatCountUpdated):
+ (WebInspector.LogContentView.prototype._scopeBarSelectionDidChange): Clears the "unread" class on the selected scope bar item.
+ (WebInspector.LogContentView.prototype._filterMessageElements):
+ * UserInterface/Views/ScopeBar.js:
+ (WebInspector.ScopeBar.prototype.get items): Returns a list of all the items in the scope bar.
+ * UserInterface/Views/ScopeBarItem.js:
+ (WebInspector.ScopeBarItem): Added another parameter to allow for a custom class name.
+
+2015-07-04 Devin Rousso <drou...@apple.com>
+
Web Inspector: Pseudo Styles Ordering and Media Queries
https://bugs.webkit.org/show_bug.cgi?id=145979
Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_LogViewController.js (186282 => 186283)
--- trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_LogViewController.js 2015-07-04 21:44:46 UTC (rev 186282)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_LogViewController.js 2015-07-04 21:46:29 UTC (rev 186283)
@@ -147,14 +147,14 @@
{
console.assert(this._previousMessageView);
if (!this._previousMessageView)
- return;
+ return false;
var previousIgnoredCount = this._previousMessageView[WebInspector._javascript_LogViewController.IgnoredRepeatCount] || 0;
var previousVisibleCount = this._previousMessageView.repeatCount;
if (!this._repeatCountWasInterrupted) {
this._previousMessageView.repeatCount = count - previousIgnoredCount;
- return;
+ return true;
}
var consoleMessage = this._previousMessageView.message;
@@ -162,6 +162,8 @@
duplicatedConsoleMessageView[WebInspector._javascript_LogViewController.IgnoredRepeatCount] = previousIgnoredCount + previousVisibleCount;
duplicatedConsoleMessageView.repeatCount = 1;
this._appendConsoleMessageView(duplicatedConsoleMessageView);
+
+ return true;
}
isScrolledToBottom()
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.css (186282 => 186283)
--- trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.css 2015-07-04 21:44:46 UTC (rev 186282)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.css 2015-07-04 21:46:29 UTC (rev 186283)
@@ -23,6 +23,26 @@
* THE POSSIBILITY OF SUCH DAMAGE.
*/
+.log-scope-bar > li.unread {
+ animation: unread-border-pulse 1.5s infinite alternate;
+}
+
+.log-scope-bar > li.unread.errors {
+ border-color: red;
+}
+
+.log-scope-bar > li.unread.warnings {
+ border-color: gold;
+}
+
+.log-scope-bar > li.unread.logs {
+ border-color: grey;
+}
+
+@keyframes unread-border-pulse {
+ from { border-color: transparent; }
+}
+
.content-view.log {
overflow-y: overlay;
overflow-x: hidden;
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js (186282 => 186283)
--- trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js 2015-07-04 21:44:46 UTC (rev 186282)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js 2015-07-04 21:46:29 UTC (rev 186283)
@@ -54,15 +54,16 @@
this._keyboardShortcutEsc = new WebInspector.KeyboardShortcut(null, WebInspector.KeyboardShortcut.Key.Escape);
this._logViewController = new WebInspector._javascript_LogViewController(this.messagesElement, this.element, this.prompt, this, "console-prompt-history");
+ this._lastMessageView = null;
this._searchBar = new WebInspector.SearchBar("log-search-bar", WebInspector.UIString("Filter Console Log"), this);
this._searchBar.addEventListener(WebInspector.SearchBar.Event.TextChanged, this._searchTextDidChange, this);
var scopeBarItems = [
new WebInspector.ScopeBarItem(WebInspector.LogContentView.Scopes.All, WebInspector.UIString("All"), true),
- new WebInspector.ScopeBarItem(WebInspector.LogContentView.Scopes.Errors, WebInspector.UIString("Errors")),
- new WebInspector.ScopeBarItem(WebInspector.LogContentView.Scopes.Warnings, WebInspector.UIString("Warnings")),
- new WebInspector.ScopeBarItem(WebInspector.LogContentView.Scopes.Logs, WebInspector.UIString("Logs"))
+ new WebInspector.ScopeBarItem(WebInspector.LogContentView.Scopes.Errors, WebInspector.UIString("Errors"), false, "errors"),
+ new WebInspector.ScopeBarItem(WebInspector.LogContentView.Scopes.Warnings, WebInspector.UIString("Warnings"), false, "warnings"),
+ new WebInspector.ScopeBarItem(WebInspector.LogContentView.Scopes.Logs, WebInspector.UIString("Logs"), false, "logs")
];
this._scopeBar = new WebInspector.ScopeBar("log-scope-bar", scopeBarItems, scopeBarItems[0]);
@@ -320,19 +321,56 @@
this._clearProvisionalState();
},
+ _scopeFromMessageLevel: function(level)
+ {
+ var messageLevel;
+
+ switch(level) {
+ case WebInspector.ConsoleMessage.MessageLevel.Warning:
+ messageLevel = WebInspector.LogContentView.Scopes.Warnings;
+ break;
+ case WebInspector.ConsoleMessage.MessageLevel.Error:
+ messageLevel = WebInspector.LogContentView.Scopes.Errors;
+ break;
+ case WebInspector.ConsoleMessage.MessageLevel.Log:
+ case WebInspector.ConsoleMessage.MessageLevel.Info:
+ case WebInspector.ConsoleMessage.MessageLevel.Debug:
+ messageLevel = WebInspector.LogContentView.Scopes.Logs;
+ break;
+ }
+
+ return messageLevel;
+ },
+
+ _pulseScopeBarItemBorder: function(level)
+ {
+ var messageLevel = this._scopeFromMessageLevel(level);
+
+ if (!messageLevel)
+ return;
+
+ var item = this._scopeBar.item(messageLevel);
+
+ if (item && !item.selected && !this._scopeBar.item(WebInspector.LogContentView.Scopes.All).selected)
+ item.element.classList.add("unread");
+ },
+
_messageAdded: function(event)
{
if (this._startedProvisionalLoad)
this._provisionalMessages.push(event.data.message);
- var messageView = this._logViewController.appendConsoleMessage(event.data.message);
- if (messageView.message.type !== WebInspector.ConsoleMessage.MessageType.EndGroup)
- this._filterMessageElements([messageView.element]);
+ this._lastMessageView = this._logViewController.appendConsoleMessage(event.data.message);
+ if (this._lastMessageView.message.type !== WebInspector.ConsoleMessage.MessageType.EndGroup) {
+ this._pulseScopeBarItemBorder(this._lastMessageView.message.level);
+ this._filterMessageElements([this._lastMessageView.element]);
+ }
},
_previousMessageRepeatCountUpdated: function(event)
- {
- this._logViewController.updatePreviousMessageRepeatCount(event.data.count);
+ {
+ if (this._logViewController.updatePreviousMessageRepeatCount(event.data.count) && this._lastMessageView)
+ this._pulseScopeBarItemBorder(this._lastMessageView.message.level);
},
_handleContextMenuEvent: function(event)
@@ -653,32 +691,28 @@
_scopeBarSelectionDidChange: function(event)
{
+ var item = this._scopeBar.selectedItems[0];
+
+ if (item.id === WebInspector.LogContentView.Scopes.All) {
+ for (var item of this._scopeBar.items)
+ item.element.classList.remove("unread");
+ } else
+ item.element.classList.remove("unread");
+
this._filterMessageElements(this._allMessageElements());
},
_filterMessageElements: function(messageElements)
{
var showsAll = this._scopeBar.item(WebInspector.LogContentView.Scopes.All).selected;
- var showsErrors = this._scopeBar.item(WebInspector.LogContentView.Scopes.Errors).selected;
- var showsWarnings = this._scopeBar.item(WebInspector.LogContentView.Scopes.Warnings).selected;
- var showsLogs = this._scopeBar.item(WebInspector.LogContentView.Scopes.Logs).selected;
messageElements.forEach(function(messageElement) {
var visible = showsAll || messageElement.__commandView instanceof WebInspector.ConsoleCommandView || messageElement.__message instanceof WebInspector.ConsoleCommandResultMessage;
if (!visible) {
- switch(messageElement.__message.level) {
- case WebInspector.ConsoleMessage.MessageLevel.Warning:
- visible = showsWarnings;
- break;
- case WebInspector.ConsoleMessage.MessageLevel.Error:
- visible = showsErrors;
- break;
- case WebInspector.ConsoleMessage.MessageLevel.Log:
- case WebInspector.ConsoleMessage.MessageLevel.Info:
- case WebInspector.ConsoleMessage.MessageLevel.Debug:
- visible = showsLogs;
- break;
- }
+ var messageLevel = this._scopeFromMessageLevel(messageElement.__message.level);
+
+ if (messageLevel)
+ visible = this._scopeBar.item(messageLevel).selected;
}
var classList = messageElement.classList;
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBar.js (186282 => 186283)
--- trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBar.js 2015-07-04 21:44:46 UTC (rev 186282)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBar.js 2015-07-04 21:46:29 UTC (rev 186283)
@@ -45,6 +45,11 @@
return this._defaultItem;
}
+ get items()
+ {
+ return this._items;
+ }
+
item(id)
{
return this._itemsById.get(id);
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBarItem.js (186282 => 186283)
--- trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBarItem.js 2015-07-04 21:44:46 UTC (rev 186282)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ScopeBarItem.js 2015-07-04 21:46:29 UTC (rev 186283)
@@ -25,12 +25,13 @@
WebInspector.ScopeBarItem = class ScopeBarItem extends WebInspector.Object
{
- constructor(id, label, exclusive)
+ constructor(id, label, exclusive, className)
{
super();
this._element = document.createElement("li");
this._element.classList.toggle("exclusive", exclusive);
+ this._element.classList.add(className);
this._element.textContent = label;
this._element.addEventListener("click", this._clicked.bind(this));