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

Unified Diff: cc/trees/layer_tree_host_impl.h

Issue 2189583004: [not for review - epic CL] Adding Elastic+Momentum+Layered scrolling to views::ScrollView Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Combined rebase Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: cc/trees/layer_tree_host_impl.h
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h
index 0870291de8104482be4cb8a6307652b1bc1c7434..8dc5393c851ccc79644fd9398902370671eb077c 100644
--- a/cc/trees/layer_tree_host_impl.h
+++ b/cc/trees/layer_tree_host_impl.h
@@ -201,7 +201,11 @@ class CC_EXPORT LayerTreeHostImpl
bool DoTouchEventsBlockScrollAt(const gfx::Point& viewport_port) override;
std::unique_ptr<SwapPromiseMonitor> CreateLatencyInfoSwapPromiseMonitor(
ui::LatencyInfo* latency) override;
- ScrollElasticityHelper* CreateScrollElasticityHelper() override;
+ ScrollElasticityHelper* CreateRootScrollElasticityHelper() override;
+ base::WeakPtr<ScrollElasticityHelper>
+ ScrollElasticityHelperForScrollingLayer() override;
+ gfx::ScrollOffset GetScrollOffsetForLayer(int layer_id) override;
+ bool ScrollLayerTo(int layer_id, const gfx::ScrollOffset& offset) override;
// TopControlsManagerClient implementation.
float TopControlsHeight() const override;
@@ -327,6 +331,10 @@ class CC_EXPORT LayerTreeHostImpl
ScrollbarAnimationController* ScrollbarAnimationControllerForId(
int scroll_layer_id) const;
+ void RegisterScrollElasticityHelper(int scroll_layer_id);
+ void UnregisterScrollElasticityHelper(int scroll_layer_id);
+ ScrollElasticityHelper* ScrollElasticityHelperForId(int scroll_layer_id);
+
DrawMode GetDrawMode() const;
// Viewport size in draw space: this size is in physical pixels and is used
@@ -770,7 +778,7 @@ class CC_EXPORT LayerTreeHostImpl
// An object to implement the ScrollElasticityHelper interface and
// hold all state related to elasticity. May be NULL if never requested.
- std::unique_ptr<ScrollElasticityHelper> scroll_elasticity_helper_;
+ std::unique_ptr<ScrollElasticityHelper> root_scroll_elasticity_helper_;
bool tile_priorities_dirty_;
@@ -830,6 +838,10 @@ class CC_EXPORT LayerTreeHostImpl
std::unordered_map<int, std::unique_ptr<ScrollbarAnimationController>>
scrollbar_animation_controllers_;
+ // Map from scroll layer ID to elasticity helper.
+ std::unordered_map<int, std::unique_ptr<ScrollElasticityHelper>>
+ scroll_elasticity_helpers_;
+
RenderingStatsInstrumentation* rendering_stats_instrumentation_;
MicroBenchmarkControllerImpl micro_benchmark_controller_;
std::unique_ptr<SynchronousTaskGraphRunner>

Powered by Google App Engine
This is Rietveld 408576698