Title: [180941] trunk/Source/WebInspectorUI
Revision
180941
Author
nvasil...@apple.com
Date
2015-03-03 10:10:56 -0800 (Tue, 03 Mar 2015)

Log Message

Web Inspector: Refactoring: separate ConsoleSession from ConsoleGroup
https://bugs.webkit.org/show_bug.cgi?id=142141

ConsoleSession doesn't have a title and it's not collapsible either.
Simplify ConsoleSession by removing excessive markup.

Reviewed by Timothy Hatcher.

* UserInterface/Controllers/_javascript_LogViewController.js:
(WebInspector._javascript_LogViewController):
(WebInspector._javascript_LogViewController.prototype.startNewSession):
(WebInspector._javascript_LogViewController.prototype._appendConsoleMessage):
(WebInspector._javascript_LogViewController.prototype.get topConsoleGroup): Deleted.
* UserInterface/Main.html:
* UserInterface/Views/ConsoleGroup.js:
(WebInspector.ConsoleGroup):
(WebInspector.ConsoleGroup.prototype.render):
(WebInspector.ConsoleGroup.prototype.addMessage):
(WebInspector.ConsoleGroup.prototype.append):
(WebInspector.ConsoleGroup.prototype.hasMessages): Deleted.
* UserInterface/Views/ConsoleSession.js: Added.
(WebInspector.ConsoleSession):
(WebInspector.ConsoleSession.prototype.addMessage):
(WebInspector.ConsoleSession.prototype.append):
(WebInspector.ConsoleSession.prototype.hasMessages):
* UserInterface/Views/LogContentView.css:
(.console-session + .console-session):
(.console-group.new-session .console-group-messages .console-item:first-child): Deleted.
(.console-group.new-session): Deleted.

Modified Paths

Added Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (180940 => 180941)


--- trunk/Source/WebInspectorUI/ChangeLog	2015-03-03 18:05:59 UTC (rev 180940)
+++ trunk/Source/WebInspectorUI/ChangeLog	2015-03-03 18:10:56 UTC (rev 180941)
@@ -1,3 +1,35 @@
+2015-03-03  Nikita Vasilyev  <nvasil...@apple.com>
+
+        Web Inspector: Refactoring: separate ConsoleSession from ConsoleGroup
+        https://bugs.webkit.org/show_bug.cgi?id=142141
+
+        ConsoleSession doesn't have a title and it's not collapsible either.
+        Simplify ConsoleSession by removing excessive markup.
+
+        Reviewed by Timothy Hatcher.
+
+        * UserInterface/Controllers/_javascript_LogViewController.js:
+        (WebInspector._javascript_LogViewController):
+        (WebInspector._javascript_LogViewController.prototype.startNewSession):
+        (WebInspector._javascript_LogViewController.prototype._appendConsoleMessage):
+        (WebInspector._javascript_LogViewController.prototype.get topConsoleGroup): Deleted.
+        * UserInterface/Main.html:
+        * UserInterface/Views/ConsoleGroup.js:
+        (WebInspector.ConsoleGroup):
+        (WebInspector.ConsoleGroup.prototype.render):
+        (WebInspector.ConsoleGroup.prototype.addMessage):
+        (WebInspector.ConsoleGroup.prototype.append):
+        (WebInspector.ConsoleGroup.prototype.hasMessages): Deleted.
+        * UserInterface/Views/ConsoleSession.js: Added.
+        (WebInspector.ConsoleSession):
+        (WebInspector.ConsoleSession.prototype.addMessage):
+        (WebInspector.ConsoleSession.prototype.append):
+        (WebInspector.ConsoleSession.prototype.hasMessages):
+        * UserInterface/Views/LogContentView.css:
+        (.console-session + .console-session):
+        (.console-group.new-session .console-group-messages .console-item:first-child): Deleted.
+        (.console-group.new-session): Deleted.
+
 2015-03-03  Brian J. Burg  <b...@cs.washington.edu>
 
         Web Inspector: popover should use requestAnimationFrame to drive move/resize animations

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_LogViewController.js (180940 => 180941)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_LogViewController.js	2015-03-03 18:05:59 UTC (rev 180940)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_LogViewController.js	2015-03-03 18:10:56 UTC (rev 180941)
@@ -45,7 +45,7 @@
     this._previousMessage = null;
     this._repeatCountWasInterrupted = false;
 
-    this._topConsoleGroups = [];
+    this._sessions = [];
 
     this.messagesClearKeyboardShortcut = new WebInspector.KeyboardShortcut(WebInspector.KeyboardShortcut.Modifier.CommandOrControl, "K", this._handleClearShortcut.bind(this));
     this.messagesAlternateClearKeyboardShortcut = new WebInspector.KeyboardShortcut(WebInspector.KeyboardShortcut.Modifier.Control, "L", this._handleClearShortcut.bind(this), this._element);
@@ -74,11 +74,6 @@
         return this._prompt;
     },
 
-    get topConsoleGroup()
-    {
-        return this._topConsoleGroup;
-    },
-
     get currentConsoleGroup()
     {
         return this._currentConsoleGroup;
@@ -98,36 +93,34 @@
 
     startNewSession: function(clearPreviousSessions)
     {
-        if (this._topConsoleGroups.length && clearPreviousSessions) {
-            for (var i = 0; i < this._topConsoleGroups.length; ++i)
-                this._element.removeChild(this._topConsoleGroups[i].element);
+        if (this._sessions.length && clearPreviousSessions) {
+            for (var i = 0; i < this._sessions.length; ++i)
+                this._element.removeChild(this._sessions[i].element);
 
-            this._topConsoleGroups = [];
-            this._topConsoleGroup = null;
+            this._sessions = [];
             this._currentConsoleGroup = null;
         }
 
-        // Reuse the top group if it has no messages.
-        if (this._topConsoleGroup && !this._topConsoleGroup.hasMessages()) {
+        var lastSession = this._sessions.lastValue;
+        // Reuse the last session if it has no messages.
+        if (lastSession && !lastSession.hasMessages()) {
             // Make sure the session is visible.
-            this._topConsoleGroup.element.scrollIntoView();
+            lastSession.element.scrollIntoView();
             return;
         }
 
-        var hasPreviousSession = !!this._topConsoleGroup;
-        var consoleGroup = new WebInspector.ConsoleGroup(null, hasPreviousSession);
+        var consoleSession = new WebInspector.ConsoleSession();
 
         this._previousMessage = null;
         this._repeatCountWasInterrupted = false;
 
-        this._topConsoleGroups.push(consoleGroup);
-        this._topConsoleGroup = consoleGroup;
-        this._currentConsoleGroup = consoleGroup;
+        this._sessions.push(consoleSession);
+        this._currentConsoleGroup = consoleSession;
 
-        this._element.appendChild(consoleGroup.element);
+        this._element.appendChild(consoleSession.element);
 
         // Make sure the new session is visible.
-        consoleGroup.element.scrollIntoView();
+        consoleSession.element.scrollIntoView();
     },
 
     appendImmediateExecutionWithResult: function(text, result)
@@ -290,11 +283,11 @@
         } else {
             if (msg.type === WebInspector.ConsoleMessage.MessageType.StartGroup || msg.type === WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed) {
                 var group = new WebInspector.ConsoleGroup(this._currentConsoleGroup);
-                this._currentConsoleGroup.messagesElement.appendChild(group.element);
+                var groupElement = group.render(msg);
+                this._currentConsoleGroup.append(groupElement);
                 this._currentConsoleGroup = group;
-            }
-
-            this._currentConsoleGroup.addMessage(msg);
+            } else
+                this._currentConsoleGroup.addMessage(msg);
         }
 
         if (msg.type === WebInspector.ConsoleMessage.MessageType.Result || wasScrolledToBottom)

Modified: trunk/Source/WebInspectorUI/UserInterface/Main.html (180940 => 180941)


--- trunk/Source/WebInspectorUI/UserInterface/Main.html	2015-03-03 18:05:59 UTC (rev 180940)
+++ trunk/Source/WebInspectorUI/UserInterface/Main.html	2015-03-03 18:10:56 UTC (rev 180941)
@@ -348,6 +348,7 @@
     <script src=""
     <script src=""
     <script src=""
+    <script src=""
     <script src=""
     <script src=""
     <script src=""

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ConsoleGroup.js (180940 => 180941)


--- trunk/Source/WebInspectorUI/UserInterface/Views/ConsoleGroup.js	2015-03-03 18:05:59 UTC (rev 180940)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ConsoleGroup.js	2015-03-03 18:10:56 UTC (rev 180941)
@@ -27,24 +27,11 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-WebInspector.ConsoleGroup = function(parentGroup, isNewSession)
+WebInspector.ConsoleGroup = function(parentGroup)
 {
     WebInspector.Object.call(this);
 
     this.parentGroup = parentGroup;
-
-    var element = document.createElement("div");
-    element.className = "console-group";
-    element.group = this;
-    this.element = element;
-
-    if (isNewSession)
-        element.classList.add("new-session");
-
-    var messagesElement = document.createElement("div");
-    messagesElement.className = "console-group-messages";
-    element.appendChild(messagesElement);
-    this.messagesElement = messagesElement;
 };
 
 WebInspector.ConsoleGroup.prototype = {
@@ -52,29 +39,42 @@
 
     // Public
 
-    addMessage: function(msg)
+    render: function(message)
     {
-        var element = document.createElement("div");
-        element.className = WebInspector.LogContentView.ItemWrapperStyleClassName;
+        var groupElement = document.createElement("div");
+        groupElement.className = "console-group";
+        groupElement.group = this;
+        this.element = groupElement;
 
-        msg.decorateMessageElement(element);
+        var titleElement = message.toMessageElement();
+        titleElement.classList.add(WebInspector.LogContentView.ItemWrapperStyleClassName);
+        titleElement.addEventListener("click", this._titleClicked.bind(this));
+        titleElement.addEventListener("mousedown", this._titleMouseDown.bind(this));
+        if (groupElement && message.type === WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed)
+            groupElement.classList.add("collapsed");
 
-        if (msg.type === WebInspector.ConsoleMessage.MessageType.StartGroup || msg.type === WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed) {
-            this.messagesElement.parentNode.insertBefore(element, this.messagesElement);
-            element.addEventListener("click", this._titleClicked.bind(this));
-            element.addEventListener("mousedown", this._titleMouseDown.bind(this));
-            var groupElement = element.enclosingNodeOrSelfWithClass("console-group");
-            if (groupElement && msg.type === WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed)
-                groupElement.classList.add("collapsed");
-        } else
-            this.messagesElement.appendChild(element);
+        groupElement.appendChild(titleElement);
+
+        var messagesElement = document.createElement("div");
+        this._messagesElement = messagesElement;
+        messagesElement.className = "console-group-messages";
+        groupElement.appendChild(messagesElement);
+
+        return groupElement;
     },
 
-    hasMessages: function()
+    addMessage: function(message)
     {
-        return !!this.messagesElement.childNodes.length;
+        var element = message.toMessageElement();
+        element.classList.add(WebInspector.LogContentView.ItemWrapperStyleClassName);
+        this.append(element);
     },
 
+    append: function(messageElement)
+    {
+        this._messagesElement.appendChild(messageElement);
+    },
+
     // Private
 
     _titleMouseDown: function(event)

Added: trunk/Source/WebInspectorUI/UserInterface/Views/ConsoleSession.js (0 => 180941)


--- trunk/Source/WebInspectorUI/UserInterface/Views/ConsoleSession.js	                        (rev 0)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ConsoleSession.js	2015-03-03 18:10:56 UTC (rev 180941)
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2015 Apple Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
+ *     its contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+WebInspector.ConsoleSession = function()
+{
+    WebInspector.Object.call(this);
+
+    var element = document.createElement("div");
+    element.className = "console-session";
+    this.element = element;
+    this._messagesElement = element;
+};
+
+WebInspector.ConsoleSession.prototype = {
+    constructor: WebInspector.ConsoleSession,
+
+    addMessage: function(message)
+    {
+        var messageElement = message.toMessageElement();
+        messageElement.classList.add(WebInspector.LogContentView.ItemWrapperStyleClassName);
+        this._messagesElement.appendChild(messageElement);
+    },
+
+    append: function(messageElement)
+    {
+        this._messagesElement.appendChild(messageElement);
+    },
+
+    hasMessages: function()
+    {
+        return !!this._messagesElement.childNodes.length;
+    }
+};
+
+WebInspector.ConsoleSession.prototype.__proto__ = WebInspector.Object.prototype;

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.css (180940 => 180941)


--- trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.css	2015-03-03 18:05:59 UTC (rev 180940)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.css	2015-03-03 18:10:56 UTC (rev 180941)
@@ -54,10 +54,6 @@
     border-top: 1px solid rgb(240, 240, 240);
 }
 
-.console-group.new-session .console-group-messages .console-item:first-child {
-    border-top: none;
-}
-
 .console-item.selected::after {
     position: absolute;
     display: block;
@@ -171,7 +167,7 @@
     position: relative;
 }
 
-.console-group.new-session {
+.console-session + .console-session {
     border-top: 3px dashed rgb(240, 240, 240);
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to