Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 1646663002: Refactor Scroll Customization to share cc::ScrollStateData with blink. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix linking. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/input/scroll_state_unittest.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 2616 matching lines...) Expand 10 before | Expand all | Expand 10 after
2627 if (ScrollAnimationUpdateTarget(layer_impl, delta)) { 2627 if (ScrollAnimationUpdateTarget(layer_impl, delta)) {
2628 scroll_status.thread = SCROLL_ON_IMPL_THREAD; 2628 scroll_status.thread = SCROLL_ON_IMPL_THREAD;
2629 } else { 2629 } else {
2630 scroll_status.thread = SCROLL_IGNORED; 2630 scroll_status.thread = SCROLL_IGNORED;
2631 scroll_status.main_thread_scrolling_reasons = 2631 scroll_status.main_thread_scrolling_reasons =
2632 MainThreadScrollingReason::kNotScrollable; 2632 MainThreadScrollingReason::kNotScrollable;
2633 } 2633 }
2634 return scroll_status; 2634 return scroll_status;
2635 } 2635 }
2636 2636
2637 ScrollState scroll_state(0, 0, viewport_point.x(), viewport_point.y(), 0, 0, 2637 ScrollStateData scroll_state_data;
2638 false, true, false); 2638 scroll_state_data.start_position_x = viewport_point.x();
2639 scroll_state_data.start_position_y = viewport_point.y();
2640 scroll_state_data.is_in_inertial_phase = true;
2641 ScrollState scroll_state(scroll_state_data);
2642
2639 // ScrollAnimated is used for animated wheel scrolls. We find the first layer 2643 // ScrollAnimated is used for animated wheel scrolls. We find the first layer
2640 // that can scroll and set up an animation of its scroll offset. Note that 2644 // that can scroll and set up an animation of its scroll offset. Note that
2641 // this does not currently go through the scroll customization and viewport 2645 // this does not currently go through the scroll customization and viewport
2642 // machinery that ScrollBy uses for non-animated wheel scrolls. 2646 // machinery that ScrollBy uses for non-animated wheel scrolls.
2643 scroll_status = ScrollBegin(&scroll_state, ANIMATED_WHEEL); 2647 scroll_status = ScrollBegin(&scroll_state, ANIMATED_WHEEL);
2644 if (scroll_status.thread == SCROLL_ON_IMPL_THREAD) { 2648 if (scroll_status.thread == SCROLL_ON_IMPL_THREAD) {
2645 gfx::Vector2dF pending_delta = scroll_delta; 2649 gfx::Vector2dF pending_delta = scroll_delta;
2646 LayerImpl* layer_impl = CurrentlyScrollingLayer(); 2650 LayerImpl* layer_impl = CurrentlyScrollingLayer();
2647 if (layer_impl) { 2651 if (layer_impl) {
2648 ScrollTree& scroll_tree = active_tree_->property_trees()->scroll_tree; 2652 ScrollTree& scroll_tree = active_tree_->property_trees()->scroll_tree;
(...skipping 1198 matching lines...) Expand 10 before | Expand all | Expand 10 after
3847 TreeLayerTransformIsPotentiallyAnimatingChanged(layer_id, active_tree(), 3851 TreeLayerTransformIsPotentiallyAnimatingChanged(layer_id, active_tree(),
3848 is_animating); 3852 is_animating);
3849 } else { 3853 } else {
3850 TreeLayerTransformIsPotentiallyAnimatingChanged(layer_id, pending_tree(), 3854 TreeLayerTransformIsPotentiallyAnimatingChanged(layer_id, pending_tree(),
3851 is_animating); 3855 is_animating);
3852 } 3856 }
3853 } 3857 }
3854 3858
3855 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() { 3859 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() {
3856 // TODO(majidvp): We should pass in the original starting scroll position here 3860 // TODO(majidvp): We should pass in the original starting scroll position here
3857 ScrollState scroll_state(0, 0, 0, 0, 0, 0, false, false, false); 3861 ScrollStateData scroll_state_data;
3862 ScrollState scroll_state(scroll_state_data);
3858 ScrollEnd(&scroll_state); 3863 ScrollEnd(&scroll_state);
3859 } 3864 }
3860 3865
3861 gfx::ScrollOffset LayerTreeHostImpl::GetScrollOffsetForAnimation( 3866 gfx::ScrollOffset LayerTreeHostImpl::GetScrollOffsetForAnimation(
3862 int layer_id) const { 3867 int layer_id) const {
3863 if (active_tree()) { 3868 if (active_tree()) {
3864 LayerAnimationValueProvider* layer = active_tree()->LayerById(layer_id); 3869 LayerAnimationValueProvider* layer = active_tree()->LayerById(layer_id);
3865 if (layer) 3870 if (layer)
3866 return layer->ScrollOffsetForAnimation(); 3871 return layer->ScrollOffsetForAnimation();
3867 } 3872 }
3868 3873
3869 return gfx::ScrollOffset(); 3874 return gfx::ScrollOffset();
3870 } 3875 }
3871 3876
3872 bool LayerTreeHostImpl::SupportsImplScrolling() const { 3877 bool LayerTreeHostImpl::SupportsImplScrolling() const {
3873 // Supported in threaded mode. 3878 // Supported in threaded mode.
3874 return task_runner_provider_->HasImplThread(); 3879 return task_runner_provider_->HasImplThread();
3875 } 3880 }
3876 3881
3877 bool LayerTreeHostImpl::CommitToActiveTree() const { 3882 bool LayerTreeHostImpl::CommitToActiveTree() const {
3878 // In single threaded mode we skip the pending tree and commit directly to the 3883 // In single threaded mode we skip the pending tree and commit directly to the
3879 // active tree. 3884 // active tree.
3880 return !task_runner_provider_->HasImplThread(); 3885 return !task_runner_provider_->HasImplThread();
3881 } 3886 }
3882 3887
3883 } // namespace cc 3888 } // namespace cc
OLDNEW
« no previous file with comments | « cc/input/scroll_state_unittest.cc ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698