Title: [253404] trunk/Source/WebInspectorUI
Revision
253404
Author
drou...@apple.com
Date
2019-12-11 16:39:08 -0800 (Wed, 11 Dec 2019)

Log Message

Web Inspector: REGRESSION(r253173): Console: evaluating a command should automatically scroll to it's result
https://bugs.webkit.org/show_bug.cgi?id=205105

Reviewed by Brian Burg.

* UserInterface/Views/LogContentView.js:
(WI.LogContentView):
(WI.LogContentView.prototype.get scrollableElements):
(WI.LogContentView.prototype._updateMessagesSelection):
(WI.LogContentView.prototype._highlightSearchMatchAtIndex):
(WI.LogContentView.prototype.layout): Deleted.
(WI.LogContentView.prototype._ensureMessageIsVisible): Deleted.
(WI.LogContentView.prototype._positionForMessage): Deleted.
Now that this uses `display: flex;`, the actual scrollable element is the `messagesElement`,
so use that instead when manually setting the `scrollTop`. Use `scrollIntoViewIfNeeded` when
revealing search results instead of any custom scroll offset calculations.

* UserInterface/Views/LogContentView.css:
(.content-view.log > .hidden-messages-banner):
Drive-by: ensure that the hidden messages banner doesn't shrink.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (253403 => 253404)


--- trunk/Source/WebInspectorUI/ChangeLog	2019-12-12 00:25:06 UTC (rev 253403)
+++ trunk/Source/WebInspectorUI/ChangeLog	2019-12-12 00:39:08 UTC (rev 253404)
@@ -1,5 +1,28 @@
 2019-12-11  Devin Rousso  <drou...@apple.com>
 
+        Web Inspector: REGRESSION(r253173): Console: evaluating a command should automatically scroll to it's result
+        https://bugs.webkit.org/show_bug.cgi?id=205105
+
+        Reviewed by Brian Burg.
+
+        * UserInterface/Views/LogContentView.js:
+        (WI.LogContentView):
+        (WI.LogContentView.prototype.get scrollableElements):
+        (WI.LogContentView.prototype._updateMessagesSelection):
+        (WI.LogContentView.prototype._highlightSearchMatchAtIndex):
+        (WI.LogContentView.prototype.layout): Deleted.
+        (WI.LogContentView.prototype._ensureMessageIsVisible): Deleted.
+        (WI.LogContentView.prototype._positionForMessage): Deleted.
+        Now that this uses `display: flex;`, the actual scrollable element is the `messagesElement`,
+        so use that instead when manually setting the `scrollTop`. Use `scrollIntoViewIfNeeded` when
+        revealing search results instead of any custom scroll offset calculations.
+
+        * UserInterface/Views/LogContentView.css:
+        (.content-view.log > .hidden-messages-banner):
+        Drive-by: ensure that the hidden messages banner doesn't shrink.
+
+2019-12-11  Devin Rousso  <drou...@apple.com>
+
         Web Inspector: simplify the text of the script blackboxing context menu item
         https://bugs.webkit.org/show_bug.cgi?id=205099
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.css (253403 => 253404)


--- trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.css	2019-12-12 00:25:06 UTC (rev 253403)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.css	2019-12-12 00:39:08 UTC (rev 253404)
@@ -30,6 +30,7 @@
 
 .content-view.log > .hidden-messages-banner {
     display: flex;
+    flex-shrink: 0;
     justify-content: center;
     align-items: center;
     position: relative;
@@ -36,14 +37,11 @@
     height: var(--navigation-bar-height);
     padding: 0 4px;
     color: var(--yellow-highlight-text-color);
-    background-color: var(--yellow-highlight-background-color);
-    border-bottom: 1px solid var(--border-color);
-}
-
-.content-view.log > .hidden-messages-banner {
     white-space: nowrap;
     text-overflow: ellipsis;
     overflow: hidden;
+    background-color: var(--yellow-highlight-background-color);
+    border-bottom: 1px solid var(--border-color);
 }
 
 .content-view.log > .hidden-messages-banner > button {

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js (253403 => 253404)


--- trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js	2019-12-12 00:25:06 UTC (rev 253403)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/LogContentView.js	2019-12-12 00:39:08 UTC (rev 253404)
@@ -57,7 +57,7 @@
         this._keyboardShortcutCommandA = new WI.KeyboardShortcut(WI.KeyboardShortcut.Modifier.CommandOrControl, "A");
         this._keyboardShortcutEsc = new WI.KeyboardShortcut(null, WI.KeyboardShortcut.Key.Escape);
 
-        this._logViewController = new WI._javascript_LogViewController(this.messagesElement, this.element, this.prompt, this, "console-prompt-history");
+        this._logViewController = new WI._javascript_LogViewController(this.messagesElement, this.messagesElement, this.prompt, this, "console-prompt-history");
         this._lastMessageView = null;
 
         const fixed = true;
@@ -172,7 +172,7 @@
 
     get scrollableElements()
     {
-        return [this.element];
+        return [this.messagesElement];
     }
 
     get shouldKeepElementsScrolledToBottom()
@@ -354,13 +354,6 @@
             this.prompt.focus();
     }
 
-    // Protected
-
-    layout()
-    {
-        this._scrollElementHeight = this.messagesElement.getBoundingClientRect().height;
-    }
-
     // Private
 
     _formatMessagesAsData(onlySelected)
@@ -717,39 +710,13 @@
         if (!rangeSelection)
             this._referenceMessageForRangeSelection = message;
 
-        if (shouldScrollIntoView && !alreadySelectedMessage)
-            this._ensureMessageIsVisible(this._selectedMessages.lastValue);
-    }
-
-    _ensureMessageIsVisible(message)
-    {
-        if (!message)
-            return;
-
-        var y = this._positionForMessage(message).y;
-        if (y < 0) {
-            this.element.scrollTop += y;
-            return;
+        if (shouldScrollIntoView && !alreadySelectedMessage) {
+            let lastMessage = this._selectedMessages.lastValue;
+            if (lastMessage)
+                lastMessage.scrollIntoViewIfNeeded();
         }
-
-        var nextMessage = this._nextMessage(message);
-        if (nextMessage) {
-            y = this._positionForMessage(nextMessage).y;
-            if (y > this._scrollElementHeight)
-                this.element.scrollTop += y - this._scrollElementHeight;
-        } else {
-            y += message.getBoundingClientRect().height;
-            if (y > this._scrollElementHeight)
-                this.element.scrollTop += y - this._scrollElementHeight;
-        }
     }
 
-    _positionForMessage(message)
-    {
-        var pagePoint = window.webkitConvertPointFromNodeToPage(message, new WebKitPoint(0, 0));
-        return window.webkitConvertPointFromPageToNode(this.element, pagePoint);
-    }
-
     _isMessageVisible(message)
     {
         var node = message;
@@ -1204,7 +1171,7 @@
         this._selectedSearchMatch = this._searchMatches[index];
         this._selectedSearchMatch.highlight.classList.add(WI.LogContentView.SelectedStyleClassName);
 
-        this._ensureMessageIsVisible(this._selectedSearchMatch.message);
+        this._selectedSearchMatch.message.scrollIntoViewIfNeeded(false);
     }
 
     _provisionalLoadStarted()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to