Title: [272290] branches/safari-611-branch
Revision
272290
Author
[email protected]
Date
2021-02-02 17:42:02 -0800 (Tue, 02 Feb 2021)

Log Message

Cherry-pick r271730. rdar://problem/73890237

    Scroll-chaining not triggering before complete end of overscroll
    https://bugs.webkit.org/show_bug.cgi?id=219960
    <rdar://problem/72595521>

    Reviewed by Tim Horton.

    Source/WebCore:

    Scroll latching for momentum scrolls was too sticky; it would keep latching to the same
    scroller within a 100ms of the last event that was handled, which was exacerbated by the
    fact that ScrollController can go into "ignoreMomentumScrolls" mode which results in
    no visible scrolling but continued consumption of momentum wheel events.

    Fix by releasing the latch as soon as we see the end of a momentum scroll,
    so that we always re-evaluate latching at the start of the next gesture.

    Tested by fast/scrolling/latching/nested-cross-axis-latch-expiration.html

    * page/scrolling/ScrollingTreeLatchingController.cpp:
    (WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):

    LayoutTests:

    Adjusted test for new behavior. No longer need WK1 result.

    * fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt:
    * fast/scrolling/latching/nested-cross-axis-latch-expiration.html:
    * platform/mac-wk1/fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt: Removed.

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271730 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Removed Paths

Diff

Modified: branches/safari-611-branch/LayoutTests/ChangeLog (272289 => 272290)


--- branches/safari-611-branch/LayoutTests/ChangeLog	2021-02-03 01:41:58 UTC (rev 272289)
+++ branches/safari-611-branch/LayoutTests/ChangeLog	2021-02-03 01:42:02 UTC (rev 272290)
@@ -1,5 +1,54 @@
 2021-02-02  Alan Coon  <[email protected]>
 
+        Cherry-pick r271730. rdar://problem/73890237
+
+    Scroll-chaining not triggering before complete end of overscroll
+    https://bugs.webkit.org/show_bug.cgi?id=219960
+    <rdar://problem/72595521>
+    
+    Reviewed by Tim Horton.
+    
+    Source/WebCore:
+    
+    Scroll latching for momentum scrolls was too sticky; it would keep latching to the same
+    scroller within a 100ms of the last event that was handled, which was exacerbated by the
+    fact that ScrollController can go into "ignoreMomentumScrolls" mode which results in
+    no visible scrolling but continued consumption of momentum wheel events.
+    
+    Fix by releasing the latch as soon as we see the end of a momentum scroll,
+    so that we always re-evaluate latching at the start of the next gesture.
+    
+    Tested by fast/scrolling/latching/nested-cross-axis-latch-expiration.html
+    
+    * page/scrolling/ScrollingTreeLatchingController.cpp:
+    (WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):
+    
+    LayoutTests:
+    
+    Adjusted test for new behavior. No longer need WK1 result.
+    
+    * fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt:
+    * fast/scrolling/latching/nested-cross-axis-latch-expiration.html:
+    * platform/mac-wk1/fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt: Removed.
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271730 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-01-21  Simon Fraser  <[email protected]>
+
+            Scroll-chaining not triggering before complete end of overscroll
+            https://bugs.webkit.org/show_bug.cgi?id=219960
+            <rdar://problem/72595521>
+
+            Reviewed by Tim Horton.
+
+            Adjusted test for new behavior. No longer need WK1 result.
+
+            * fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt:
+            * fast/scrolling/latching/nested-cross-axis-latch-expiration.html:
+            * platform/mac-wk1/fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt: Removed.
+
+2021-02-02  Alan Coon  <[email protected]>
+
         Cherry-pick r271701. rdar://problem/73889964
 
     Source/WebCore:

Modified: branches/safari-611-branch/LayoutTests/fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt (272289 => 272290)


--- branches/safari-611-branch/LayoutTests/fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt	2021-02-03 01:41:58 UTC (rev 272289)
+++ branches/safari-611-branch/LayoutTests/fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt	2021-02-03 01:42:02 UTC (rev 272290)
@@ -1,5 +1,5 @@
 PASS innerOverflowScrollEventCount > 0 is true
-PASS outerOverflowScrollEventCount is 0
+PASS outerOverflowScrollEventCount > 0 is true
 PASS windowScrollEventCount is 0
 PASS successfullyParsed is true
 

Modified: branches/safari-611-branch/LayoutTests/fast/scrolling/latching/nested-cross-axis-latch-expiration.html (272289 => 272290)


--- branches/safari-611-branch/LayoutTests/fast/scrolling/latching/nested-cross-axis-latch-expiration.html	2021-02-03 01:41:58 UTC (rev 272289)
+++ branches/safari-611-branch/LayoutTests/fast/scrolling/latching/nested-cross-axis-latch-expiration.html	2021-02-03 01:42:02 UTC (rev 272290)
@@ -107,7 +107,7 @@
         function checkForScroll()
         {
             shouldBeTrue('innerOverflowScrollEventCount > 0');
-            shouldBe('outerOverflowScrollEventCount', '0');
+            shouldBeTrue('outerOverflowScrollEventCount > 0');
             shouldBe('windowScrollEventCount', '0');
             finishJSTest();
         }

Deleted: branches/safari-611-branch/LayoutTests/platform/mac-wk1/fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt (272289 => 272290)


--- branches/safari-611-branch/LayoutTests/platform/mac-wk1/fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt	2021-02-03 01:41:58 UTC (rev 272289)
+++ branches/safari-611-branch/LayoutTests/platform/mac-wk1/fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt	2021-02-03 01:42:02 UTC (rev 272290)
@@ -1,7 +0,0 @@
-PASS innerOverflowScrollEventCount > 0 is true
-FAIL outerOverflowScrollEventCount should be 0. Was 11.
-PASS windowScrollEventCount is 0
-PASS successfullyParsed is true
-
-TEST COMPLETE
-

Modified: branches/safari-611-branch/Source/WebCore/ChangeLog (272289 => 272290)


--- branches/safari-611-branch/Source/WebCore/ChangeLog	2021-02-03 01:41:58 UTC (rev 272289)
+++ branches/safari-611-branch/Source/WebCore/ChangeLog	2021-02-03 01:42:02 UTC (rev 272290)
@@ -1,5 +1,61 @@
 2021-02-02  Alan Coon  <[email protected]>
 
+        Cherry-pick r271730. rdar://problem/73890237
+
+    Scroll-chaining not triggering before complete end of overscroll
+    https://bugs.webkit.org/show_bug.cgi?id=219960
+    <rdar://problem/72595521>
+    
+    Reviewed by Tim Horton.
+    
+    Source/WebCore:
+    
+    Scroll latching for momentum scrolls was too sticky; it would keep latching to the same
+    scroller within a 100ms of the last event that was handled, which was exacerbated by the
+    fact that ScrollController can go into "ignoreMomentumScrolls" mode which results in
+    no visible scrolling but continued consumption of momentum wheel events.
+    
+    Fix by releasing the latch as soon as we see the end of a momentum scroll,
+    so that we always re-evaluate latching at the start of the next gesture.
+    
+    Tested by fast/scrolling/latching/nested-cross-axis-latch-expiration.html
+    
+    * page/scrolling/ScrollingTreeLatchingController.cpp:
+    (WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):
+    
+    LayoutTests:
+    
+    Adjusted test for new behavior. No longer need WK1 result.
+    
+    * fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt:
+    * fast/scrolling/latching/nested-cross-axis-latch-expiration.html:
+    * platform/mac-wk1/fast/scrolling/latching/nested-cross-axis-latch-expiration-expected.txt: Removed.
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271730 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-01-21  Simon Fraser  <[email protected]>
+
+            Scroll-chaining not triggering before complete end of overscroll
+            https://bugs.webkit.org/show_bug.cgi?id=219960
+            <rdar://problem/72595521>
+
+            Reviewed by Tim Horton.
+
+            Scroll latching for momentum scrolls was too sticky; it would keep latching to the same
+            scroller within a 100ms of the last event that was handled, which was exacerbated by the
+            fact that ScrollController can go into "ignoreMomentumScrolls" mode which results in
+            no visible scrolling but continued consumption of momentum wheel events.
+
+            Fix by releasing the latch as soon as we see the end of a momentum scroll,
+            so that we always re-evaluate latching at the start of the next gesture.
+
+            Tested by fast/scrolling/latching/nested-cross-axis-latch-expiration.html
+
+            * page/scrolling/ScrollingTreeLatchingController.cpp:
+            (WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):
+
+2021-02-02  Alan Coon  <[email protected]>
+
         Cherry-pick r271701. rdar://problem/73889964
 
     Source/WebCore:

Modified: branches/safari-611-branch/Source/WebCore/page/scrolling/ScrollingTreeLatchingController.cpp (272289 => 272290)


--- branches/safari-611-branch/Source/WebCore/page/scrolling/ScrollingTreeLatchingController.cpp	2021-02-03 01:41:58 UTC (rev 272289)
+++ branches/safari-611-branch/Source/WebCore/page/scrolling/ScrollingTreeLatchingController.cpp	2021-02-03 01:42:02 UTC (rev 272290)
@@ -95,7 +95,10 @@
     LockHolder locker(m_latchedNodeMutex);
 
     if (wheelEvent.useLatchedEventElement() && m_latchedNodeAndSteps && m_latchedNodeAndSteps->scrollingNodeID == scrollingNodeID) {
-        m_lastLatchedNodeInterationTime = MonotonicTime::now();
+        if (wheelEvent.isEndOfMomentumScroll())
+            m_lastLatchedNodeInterationTime = { };
+        else
+            m_lastLatchedNodeInterationTime = MonotonicTime::now();
         return;
     }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to