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

Unified Diff: cc/trees/property_tree.h

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.h
diff --git a/cc/trees/property_tree.h b/cc/trees/property_tree.h
index e863295a359f980d6797d236d55ca50bdd0ef3be..abd0a9f1d2c83587bf126a4ab26eb7ae397db64f 100644
--- a/cc/trees/property_tree.h
+++ b/cc/trees/property_tree.h
@@ -270,8 +270,13 @@ struct CC_EXPORT ScrollNodeData {
bool scrollable;
uint32_t main_thread_scrolling_reasons;
bool contains_non_fast_scrollable_region;
-
- int transform_id;
+ gfx::Size scroll_clip_layer_bounds;
+ gfx::Size bounds;
+ bool envelope_page_scale_layer_with_clip_layer;
ajuma 2016/02/09 16:27:13 This variable could use a comment (or perhaps a cl
+ bool is_inner_viewport_scroll_layer;
+ bool is_outer_viewport_scroll_layer;
+ bool is_inner_viewport_container_layer;
+ bool is_outer_viewport_container_layer;
bool operator==(const ScrollNodeData& other) const;
@@ -281,6 +286,8 @@ struct CC_EXPORT ScrollNodeData {
typedef TreeNode<ScrollNodeData> ScrollNode;
+class PropertyTrees;
+
template <typename T>
class CC_EXPORT PropertyTree {
public:
@@ -324,11 +331,17 @@ class CC_EXPORT PropertyTree {
void ToProtobuf(proto::PropertyTree* proto) const;
void FromProtobuf(const proto::PropertyTree& proto);
+ void SetPropertyTrees(PropertyTrees* property_trees) {
+ property_trees_ = property_trees;
+ }
+ PropertyTrees* property_trees() const { return property_trees_; }
+
private:
// Copy and assign are permitted. This is how we do tree sync.
std::vector<T> nodes_;
bool needs_update_;
+ PropertyTrees* property_trees_;
};
class CC_EXPORT TransformTree final : public PropertyTree<TransformNode> {
@@ -411,15 +424,9 @@ class CC_EXPORT TransformTree final : public PropertyTree<TransformNode> {
return device_transform_scale_factor_;
}
- void SetInnerViewportBoundsDelta(gfx::Vector2dF bounds_delta);
- gfx::Vector2dF inner_viewport_bounds_delta() const {
- return inner_viewport_bounds_delta_;
- }
+ void UpdateInnerViewportContainerBoundsDelta();
- void SetOuterViewportBoundsDelta(gfx::Vector2dF bounds_delta);
- gfx::Vector2dF outer_viewport_bounds_delta() const {
- return outer_viewport_bounds_delta_;
- }
+ void UpdateOuterViewportContainerBoundsDelta();
void AddNodeAffectedByInnerViewportBoundsDelta(int node_id);
void AddNodeAffectedByOuterViewportBoundsDelta(int node_id);
@@ -481,8 +488,6 @@ class CC_EXPORT TransformTree final : public PropertyTree<TransformNode> {
float page_scale_factor_;
float device_scale_factor_;
float device_transform_scale_factor_;
- gfx::Vector2dF inner_viewport_bounds_delta_;
- gfx::Vector2dF outer_viewport_bounds_delta_;
std::vector<int> nodes_affected_by_inner_viewport_bounds_delta_;
std::vector<int> nodes_affected_by_outer_viewport_bounds_delta_;
};
@@ -518,10 +523,15 @@ class CC_EXPORT EffectTree final : public PropertyTree<EffectNode> {
class CC_EXPORT ScrollTree final : public PropertyTree<ScrollNode> {
public:
+ ScrollTree();
+ ~ScrollTree() override;
+
bool operator==(const ScrollTree& other) const;
void ToProtobuf(proto::PropertyTree* proto) const;
void FromProtobuf(const proto::PropertyTree& proto);
+
+ gfx::ScrollOffset MaxScrollOffset(int scroll_node_id) const;
};
class CC_EXPORT PropertyTrees final {
@@ -534,6 +544,13 @@ class CC_EXPORT PropertyTrees final {
void ToProtobuf(proto::PropertyTrees* proto) const;
void FromProtobuf(const proto::PropertyTrees& proto);
+ void SetupInternalPointers() {
+ transform_tree.SetPropertyTrees(this);
+ effect_tree.SetPropertyTrees(this);
+ clip_tree.SetPropertyTrees(this);
+ scroll_tree.SetPropertyTrees(this);
ajuma 2016/02/09 16:27:13 How about making the constructor and assignment op
+ }
+
TransformTree transform_tree;
EffectTree effect_tree;
ClipTree clip_tree;
@@ -541,6 +558,27 @@ class CC_EXPORT PropertyTrees final {
bool needs_rebuild;
bool non_root_surfaces_enabled;
int sequence_number;
+
+ void SetInnerViewportContainerBoundsDelta(gfx::Vector2dF bounds_delta);
+ void SetOuterViewportContainerBoundsDelta(gfx::Vector2dF bounds_delta);
+ void SetInnerViewportScrollBoundsDelta(gfx::Vector2dF bounds_delta);
+
+ gfx::Vector2dF inner_viewport_container_bounds_delta() const {
+ return inner_viewport_container_bounds_delta_;
+ }
+
+ gfx::Vector2dF outer_viewport_container_bounds_delta() const {
+ return outer_viewport_container_bounds_delta_;
+ }
+
+ gfx::Vector2dF inner_viewport_scroll_bounds_delta() const {
+ return inner_viewport_scroll_bounds_delta_;
+ }
+
+ private:
+ gfx::Vector2dF inner_viewport_container_bounds_delta_;
+ gfx::Vector2dF outer_viewport_container_bounds_delta_;
+ gfx::Vector2dF inner_viewport_scroll_bounds_delta_;
};
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698