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

Unified Diff: cc/trees/property_tree_builder.cc

Issue 1675963002: Move MaxScrollOffset to property_trees (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix trybot failure, remove unnecessary code 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 side-by-side diff with in-line comments
Download patch
Index: cc/trees/property_tree_builder.cc
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc
index 1d637229d0a00b57383950d6938e6478d8561a1e..5b215d71a458a6da466b21344fab03426f2c1396 100644
--- a/cc/trees/property_tree_builder.cc
+++ b/cc/trees/property_tree_builder.cc
@@ -41,6 +41,8 @@ struct DataForRecursion {
const LayerType* page_scale_layer;
const LayerType* inner_viewport_scroll_layer;
const LayerType* outer_viewport_scroll_layer;
+ const LayerType* inner_viewport_container_layer;
+ const LayerType* outer_viewport_container_layer;
const LayerType* overscroll_elasticity_layer;
gfx::Vector2dF elastic_overscroll;
float page_scale_factor;
@@ -680,8 +682,35 @@ void AddScrollNodeIfNeeded(
node.data.main_thread_scrolling_reasons = main_thread_scrolling_reasons;
node.data.contains_non_fast_scrollable_region =
contains_non_fast_scrollable_region;
- node.data.transform_id =
- data_for_children->transform_tree_parent->transform_tree_index();
+ gfx::Size clip_bounds;
+ if (layer->scroll_clip_layer()) {
+ clip_bounds = layer->scroll_clip_layer()->bounds();
+ clip_bounds.Enlarge(-layer->scroll_clip_layer()->bounds_delta().x(),
+ -layer->scroll_clip_layer()->bounds_delta().y());
+ if (layer->scroll_clip_layer()->transform_tree_index() !=
+ kInvalidPropertyTreeNodeId) {
+ node.data.envelope_page_scale_layer_with_clip_layer =
+ !data_from_ancestor.transform_tree
+ ->Node(layer->scroll_clip_layer()->transform_tree_index())
+ ->data.in_subtree_of_page_scale_layer &&
+ data_from_ancestor.in_subtree_of_page_scale_layer;
+ }
+ }
+ node.data.scroll_clip_layer_bounds = clip_bounds;
+
+ node.data.is_inner_viewport_scroll_layer =
+ layer == data_from_ancestor.inner_viewport_scroll_layer;
+ node.data.is_outer_viewport_scroll_layer =
+ layer == data_from_ancestor.outer_viewport_scroll_layer;
+ node.data.is_inner_viewport_container_layer =
+ layer == data_from_ancestor.inner_viewport_container_layer;
+ node.data.is_outer_viewport_container_layer =
+ layer == data_from_ancestor.outer_viewport_container_layer;
+
+ node.data.bounds = layer->bounds();
+ node.data.bounds.Enlarge(-layer->bounds_delta().x(),
+ -layer->bounds_delta().y());
ajuma 2016/02/09 16:27:13 Since bounds_delta is always 0 on Layer, the only
+
data_for_children->scroll_tree_parent =
data_for_children->scroll_tree->Insert(node, parent_id);
data_for_children->main_thread_scrolling_reasons =
@@ -848,6 +877,14 @@ void BuildPropertyTreesTopLevelInternal(
data_for_recursion.page_scale_layer = page_scale_layer;
data_for_recursion.inner_viewport_scroll_layer = inner_viewport_scroll_layer;
data_for_recursion.outer_viewport_scroll_layer = outer_viewport_scroll_layer;
+ data_for_recursion.inner_viewport_container_layer =
+ inner_viewport_scroll_layer
+ ? inner_viewport_scroll_layer->scroll_clip_layer()
+ : nullptr;
+ data_for_recursion.outer_viewport_container_layer =
+ outer_viewport_scroll_layer
+ ? outer_viewport_scroll_layer->scroll_clip_layer()
+ : nullptr;
data_for_recursion.overscroll_elasticity_layer = overscroll_elasticity_layer;
data_for_recursion.elastic_overscroll = elastic_overscroll;
data_for_recursion.page_scale_factor = page_scale_factor;

Powered by Google App Engine
This is Rietveld 408576698