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

Unified Diff: cc/trees/property_tree.cc

Issue 1689293002: cc: Move TryScroll from LayerImpl to LayerTreeHostImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge with master branch 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.cc
diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc
index ac8b60bb2b9184761af6a0461fbb4afffb5b3256..58d36f362b713baba8aa2751c419b1ba3c61392a 100644
--- a/cc/trees/property_tree.cc
+++ b/cc/trees/property_tree.cc
@@ -479,7 +479,8 @@ ScrollNodeData::ScrollNodeData()
contains_non_fast_scrollable_region(false),
max_scroll_offset_affected_by_page_scale(false),
is_inner_viewport_scroll_layer(false),
- is_outer_viewport_scroll_layer(false) {}
+ is_outer_viewport_scroll_layer(false),
+ transform_id(0) {}
bool ScrollNodeData::operator==(const ScrollNodeData& other) const {
return scrollable == other.scrollable &&
@@ -492,7 +493,9 @@ bool ScrollNodeData::operator==(const ScrollNodeData& other) const {
other.max_scroll_offset_affected_by_page_scale &&
is_inner_viewport_scroll_layer ==
other.is_inner_viewport_scroll_layer &&
- is_outer_viewport_scroll_layer == other.is_outer_viewport_scroll_layer;
+ is_outer_viewport_scroll_layer ==
+ other.is_outer_viewport_scroll_layer &&
+ transform_id == other.transform_id;
}
void ScrollNodeData::ToProtobuf(proto::TreeNode* proto) const {
@@ -509,6 +512,7 @@ void ScrollNodeData::ToProtobuf(proto::TreeNode* proto) const {
max_scroll_offset_affected_by_page_scale);
data->set_is_inner_viewport_scroll_layer(is_inner_viewport_scroll_layer);
data->set_is_outer_viewport_scroll_layer(is_outer_viewport_scroll_layer);
+ data->set_transform_id(transform_id);
}
void ScrollNodeData::FromProtobuf(const proto::TreeNode& proto) {
@@ -525,6 +529,7 @@ void ScrollNodeData::FromProtobuf(const proto::TreeNode& proto) {
data.max_scroll_offset_affected_by_page_scale();
is_inner_viewport_scroll_layer = data.is_inner_viewport_scroll_layer();
is_outer_viewport_scroll_layer = data.is_outer_viewport_scroll_layer();
+ transform_id = data.transform_id();
}
void TransformTree::clear() {
@@ -1278,6 +1283,16 @@ gfx::ScrollOffset ScrollTree::MaxScrollOffset(int scroll_node_id) const {
return max_offset;
}
+gfx::Transform ScrollTree::ScreenSpaceTransform(int scroll_node_id) const {
jaydasika 2016/02/11 23:38:56 Question : Is Scroll Node creation reasons a subse
sunxd 2016/02/12 15:33:30 So we are only interested with ScreenSpaceTransfor
ajuma 2016/02/12 17:03:01 For TryScroll we might be ok, but I'm not sure if
+ const ScrollNode* scroll_node = Node(scroll_node_id);
+ const TransformNode* transform_node =
+ property_trees()->transform_tree.Node(scroll_node->data.transform_id);
+ gfx::Transform screen_space_transform = transform_node->data.to_screen;
+ if (transform_node->data.flattens_inherited_transform)
+ screen_space_transform.FlattenTo2d();
ajuma 2016/02/12 17:03:01 I believe this already happens when to_screen is c
+ return screen_space_transform;
+}
+
PropertyTrees::PropertyTrees()
: needs_rebuild(true), non_root_surfaces_enabled(true), sequence_number(0) {
transform_tree.SetPropertyTrees(this);

Powered by Google App Engine
This is Rietveld 408576698