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