summaryrefslogtreecommitdiffstats
path: root/cc/trees/layer_tree_host_common.cc
diff options
context:
space:
mode:
authorajuma <ajuma@chromium.org>2015-12-04 13:49:01 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-04 21:49:56 +0000
commit1401782ba756dd2e7e3158b3a8ddf283ea61b735 (patch)
tree644825b42b6b2b1eb24ed251e5d4f56b372e9a67 /cc/trees/layer_tree_host_common.cc
parent7eeb8cbd133d60e5fca6602529d77e3f54f87db5 (diff)
downloadchromium_src-1401782ba756dd2e7e3158b3a8ddf283ea61b735.zip
chromium_src-1401782ba756dd2e7e3158b3a8ddf283ea61b735.tar.gz
chromium_src-1401782ba756dd2e7e3158b3a8ddf283ea61b735.tar.bz2
cc: Make property trees support elastic overscroll
This makes property trees aware of the elastic overscroll value, which is used for the overscroll rubberbanding effect on Mac. BUG=559550 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1494723002 Cr-Commit-Position: refs/heads/master@{#363302}
Diffstat (limited to 'cc/trees/layer_tree_host_common.cc')
-rw-r--r--cc/trees/layer_tree_host_common.cc19
1 files changed, 14 insertions, 5 deletions
diff --git a/cc/trees/layer_tree_host_common.cc b/cc/trees/layer_tree_host_common.cc
index 172b01e..9ab91f0 100644
--- a/cc/trees/layer_tree_host_common.cc
+++ b/cc/trees/layer_tree_host_common.cc
@@ -2766,7 +2766,9 @@ void CalculateDrawPropertiesAndVerify(
BuildPropertyTreesAndComputeVisibleRects(
inputs->root_layer, inputs->page_scale_layer,
inputs->inner_viewport_scroll_layer,
- inputs->outer_viewport_scroll_layer, inputs->page_scale_factor,
+ inputs->outer_viewport_scroll_layer,
+ inputs->elastic_overscroll_application_layer,
+ inputs->elastic_overscroll, inputs->page_scale_factor,
inputs->device_scale_factor,
gfx::Rect(inputs->device_viewport_size), inputs->device_transform,
inputs->can_render_to_separate_surface, inputs->property_trees,
@@ -2791,14 +2793,18 @@ void CalculateDrawPropertiesAndVerify(
TRACE_EVENT0(
TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"),
"LayerTreeHostCommon::ComputeJustVisibleRectsWithPropertyTrees");
- // Since page scale is a SyncedProperty, changes to page scale on the
- // active tree immediately affect the pending tree, so instead of
- // trying to update property trees whenever page scale changes, we
- // update their page scale before using them.
+ // Since page scale and elastic overscroll are SyncedProperties, changes
+ // on the active tree immediately affect the pending tree, so instead of
+ // trying to update property trees whenever these values change, we
+ // update property trees before using them.
UpdatePageScaleFactorInPropertyTrees(
inputs->property_trees, inputs->page_scale_layer,
inputs->page_scale_factor, inputs->device_scale_factor,
inputs->device_transform);
+ UpdateElasticOverscrollInPropertyTrees(
+ inputs->property_trees,
+ inputs->elastic_overscroll_application_layer,
+ inputs->elastic_overscroll);
// Similarly, the device viewport and device transform are shared
// by both trees.
inputs->property_trees->clip_tree.SetViewportClip(
@@ -2866,9 +2872,12 @@ void LayerTreeHostCommon::CalculateDrawProperties(
gfx::Transform(), false);
PropertyTrees* property_trees =
inputs->root_layer->layer_tree_host()->property_trees();
+ Layer* overscroll_elasticity_layer = nullptr;
+ gfx::Vector2dF elastic_overscroll;
BuildPropertyTreesAndComputeVisibleRects(
inputs->root_layer, inputs->page_scale_layer,
inputs->inner_viewport_scroll_layer, inputs->outer_viewport_scroll_layer,
+ overscroll_elasticity_layer, elastic_overscroll,
inputs->page_scale_factor, inputs->device_scale_factor,
gfx::Rect(inputs->device_viewport_size), inputs->device_transform,
can_render_to_separate_surface, property_trees, &update_layer_list);