New issue
Advanced search Search tips

Issue 795404 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocking:
issue 497851



Sign in to add a comment

Snap at GestureScrollEnd at cc side

Project Member Reported by sunyunjia@chromium.org, Dec 15 2017

Issue description

Most of the logic of Snap at GestureScrollEnd at main has landed. The next step is to implement it at cc. This involves moving the data structure and logic to the cc and share them back with blink, plumbing the data from blink to cc, and snapping at GestureScrollEnd on cc side.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0711bbac908b8fb65ea0fa7c30d216c3ec89249f

commit 0711bbac908b8fb65ea0fa7c30d216c3ec89249f
Author: Sandra Sun <sunyunjia@chromium.org>
Date: Wed Dec 20 05:12:29 2017

Share SnapPoints data between cc and blink

This patch does the following:
1. Moves the data structure of SnapPoints from blink to cc and shares it back with blink.
2. Use the coordinate of ScrollPosition and the type of FloatPoint to do calculations in
   SnapCoordinator instead of ScrollOffset, as gfx::ScrollOffset uses ScrollPosition.
3. Update the logic in SnapCoordinator to work with vertical-rl writing-mode.
4. Use LocalToAncestorQuad() for the snap_area to ensure transforms are properly dealt with.


Bug:  795404 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I538327e169ebee4d3e03ec2ddd0d5b282e36f5de
Reviewed-on: https://chromium-review.googlesource.com/825994
Reviewed-by: Ali Juma <ajuma@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Majid Valipour <majidvp@chromium.org>
Commit-Queue: Sandra Sun <sunyunjia@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525271}
[modify] https://crrev.com/0711bbac908b8fb65ea0fa7c30d216c3ec89249f/cc/BUILD.gn
[add] https://crrev.com/0711bbac908b8fb65ea0fa7c30d216c3ec89249f/cc/input/scroll_snap_data.cc
[add] https://crrev.com/0711bbac908b8fb65ea0fa7c30d216c3ec89249f/cc/input/scroll_snap_data.h
[modify] https://crrev.com/0711bbac908b8fb65ea0fa7c30d216c3ec89249f/third_party/WebKit/Source/core/page/scrolling/SnapCoordinator.cpp
[modify] https://crrev.com/0711bbac908b8fb65ea0fa7c30d216c3ec89249f/third_party/WebKit/Source/core/page/scrolling/SnapCoordinator.h
[modify] https://crrev.com/0711bbac908b8fb65ea0fa7c30d216c3ec89249f/third_party/WebKit/Source/core/page/scrolling/SnapCoordinatorTest.cpp
[modify] https://crrev.com/0711bbac908b8fb65ea0fa7c30d216c3ec89249f/third_party/WebKit/Source/platform/BUILD.gn
[delete] https://crrev.com/715a1c5f5b3dd2e40219c5457c15e62f4726a503/third_party/WebKit/Source/platform/scroll/ScrollSnapData.cpp
[modify] https://crrev.com/0711bbac908b8fb65ea0fa7c30d216c3ec89249f/third_party/WebKit/Source/platform/scroll/ScrollSnapData.h
[modify] https://crrev.com/0711bbac908b8fb65ea0fa7c30d216c3ec89249f/third_party/WebKit/Source/platform/scroll/ScrollTypes.h

Project Member

Comment 2 by bugdroid1@chromium.org, Jan 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/04ed45607eb59f9f6e9ac047f1ac902ff68972ca

commit 04ed45607eb59f9f6e9ac047f1ac902ff68972ca
Author: Sandra Sun <sunyunjia@chromium.org>
Date: Tue Jan 16 01:49:35 2018

Snap at GestureScrollEnd on cc.

After implementing Snap at GestureScrollEnd on main thread and Share
SnapPoints data between cc and blink, we implement Snap at
ScrollEnd on cc in this patch. This includes plumbing the data to cc,
share the logic between cc and blink, and animate the snapping at cc.

To differentiate whether we need to snap at ScrollEnd, we add a
flag to the method. In the augmented ScrollEnd, we first snap, and then
if needed, calls the original ScrollEnd with a new name - ScrollEndImpl.

Bug:  795404 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: Iba1ac0d1eeecd2f2aaef6eba2d25d055b0c6405b
Reviewed-on: https://chromium-review.googlesource.com/837423
Reviewed-by: Robert Flack <flackr@chromium.org>
Reviewed-by: Rick Byers <rbyers@chromium.org>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: Majid Valipour <majidvp@chromium.org>
Commit-Queue: Sandra Sun <sunyunjia@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529352}
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/BUILD.gn
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/blink/web_layer_impl.cc
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/blink/web_layer_impl.h
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/input/input_handler.h
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/input/scroll_snap_data.cc
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/input/scroll_snap_data.h
[add] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/input/scroll_snap_data_unittest.cc
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/layers/layer.cc
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/layers/layer.h
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/layers/layer_impl_test_properties.h
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/trees/layer_tree_host_impl.h
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/trees/layer_tree_host_impl_unittest.cc
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/trees/property_tree_builder.cc
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/trees/scroll_node.cc
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/cc/trees/scroll_node.h
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/third_party/WebKit/Source/core/page/scrolling/SnapCoordinator.cpp
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/third_party/WebKit/Source/core/page/scrolling/SnapCoordinator.h
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/third_party/WebKit/Source/core/page/scrolling/SnapCoordinatorTest.cpp
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.cpp
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/third_party/WebKit/Source/core/paint/compositing/CompositedLayerMapping.h
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/third_party/WebKit/Source/platform/graphics/GraphicsLayer.h
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/third_party/WebKit/public/platform/WebLayer.h
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/ui/events/blink/input_handler_proxy.cc
[modify] https://crrev.com/04ed45607eb59f9f6e9ac047f1ac902ff68972ca/ui/events/blink/input_handler_proxy_unittest.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Feb 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/98fc94a81bd5db1f6ab313d825da71e4f68dea11

commit 98fc94a81bd5db1f6ab313d825da71e4f68dea11
Author: Sandra Sun <sunyunjia@chromium.org>
Date: Sat Feb 03 23:14:37 2018

Support viewport's snapping on cc.

To support viewport snapping on cc, before RootLayerScrolling is
enabled, we should plumb the SnapContainerData to the composited
scroll layers in PaintLayerCompositor.

This patch also makes sure that SnapAreaCalculation is correct
regardless of whether RootLayerScrolling is enabled or not.

Bug:  795404 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I836f291e1c43d54f3d2470702934d6b63e8fc964
Reviewed-on: https://chromium-review.googlesource.com/878019
Commit-Queue: Sandra Sun <sunyunjia@chromium.org>
Reviewed-by: David Bokan <bokan@chromium.org>
Reviewed-by: Majid Valipour <majidvp@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534286}
[add] https://crrev.com/98fc94a81bd5db1f6ab313d825da71e4f68dea11/third_party/WebKit/LayoutTests/external/wpt/css/css-scroll-snap/snap-at-user-scroll-end-manual.html
[add] https://crrev.com/98fc94a81bd5db1f6ab313d825da71e4f68dea11/third_party/WebKit/LayoutTests/external/wpt_automation/css/css-scroll-snap/snap-at-user-scroll-end-manual-automation.js
[modify] https://crrev.com/98fc94a81bd5db1f6ab313d825da71e4f68dea11/third_party/WebKit/LayoutTests/resources/testharnessreport.js
[modify] https://crrev.com/98fc94a81bd5db1f6ab313d825da71e4f68dea11/third_party/WebKit/Source/core/page/scrolling/SnapCoordinator.cpp
[modify] https://crrev.com/98fc94a81bd5db1f6ab313d825da71e4f68dea11/third_party/WebKit/Source/core/page/scrolling/SnapCoordinatorTest.cpp
[modify] https://crrev.com/98fc94a81bd5db1f6ab313d825da71e4f68dea11/third_party/WebKit/Source/core/paint/compositing/PaintLayerCompositor.cpp

Status: Fixed (was: Started)
Blocking: 497851

Sign in to add a comment