summaryrefslogtreecommitdiffstats
path: root/cc/layers/layer.cc
diff options
context:
space:
mode:
authorsunxd <sunxd@chromium.org>2016-01-27 16:12:33 -0800
committerCommit bot <commit-bot@chromium.org>2016-01-28 00:14:45 +0000
commitea1df789e1afcf57a69769b4c4a1d9ef09d112ed (patch)
treed0faa83c94803701baacd06af91947d733d4be90 /cc/layers/layer.cc
parentf999944b9fe2e1e55f125095663d145b4008b8b1 (diff)
downloadchromium_src-ea1df789e1afcf57a69769b4c4a1d9ef09d112ed.zip
chromium_src-ea1df789e1afcf57a69769b4c4a1d9ef09d112ed.tar.gz
chromium_src-ea1df789e1afcf57a69769b4c4a1d9ef09d112ed.tar.bz2
Add ScrollTree builder and unit test
Remove ScrollBlocksOn from ScrollTree: It will be moved from the code base soon, will work to integrate the "passive event handler" if that depends on layer tree hierarchy. BUG=568830 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1626513003 Cr-Commit-Position: refs/heads/master@{#371914}
Diffstat (limited to 'cc/layers/layer.cc')
-rw-r--r--cc/layers/layer.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc
index b3dca99..e0ab0d8 100644
--- a/cc/layers/layer.cc
+++ b/cc/layers/layer.cc
@@ -64,6 +64,7 @@ Layer::Layer(const LayerSettings& settings)
transform_tree_index_(-1),
effect_tree_index_(-1),
clip_tree_index_(-1),
+ scroll_tree_index_(-1),
property_tree_sequence_number_(-1),
element_id_(0),
mutable_properties_(MutableProperty::kNone),
@@ -1088,6 +1089,23 @@ int Layer::effect_tree_index() const {
return effect_tree_index_;
}
+void Layer::SetScrollTreeIndex(int index) {
+ DCHECK(IsPropertyChangeAllowed());
+ if (scroll_tree_index_ == index)
+ return;
+ scroll_tree_index_ = index;
+ SetNeedsPushProperties();
+}
+
+int Layer::scroll_tree_index() const {
+ if (!layer_tree_host_ ||
+ layer_tree_host_->property_trees()->sequence_number !=
+ property_tree_sequence_number_) {
+ return -1;
+ }
+ return scroll_tree_index_;
+}
+
void Layer::InvalidatePropertyTreesIndices() {
int invalid_property_tree_index = -1;
SetTransformTreeIndex(invalid_property_tree_index);
@@ -1201,6 +1219,7 @@ void Layer::PushPropertiesTo(LayerImpl* layer) {
layer->SetTransformTreeIndex(transform_tree_index());
layer->SetEffectTreeIndex(effect_tree_index());
layer->SetClipTreeIndex(clip_tree_index());
+ layer->SetScrollTreeIndex(scroll_tree_index());
layer->set_offset_to_transform_parent(offset_to_transform_parent_);
layer->SetDoubleSided(double_sided_);
layer->SetDrawsContent(DrawsContent());
@@ -1471,6 +1490,7 @@ void Layer::LayerSpecificPropertiesToProto(proto::LayerProperties* proto) {
base->set_transform_free_index(transform_tree_index_);
base->set_effect_tree_index(effect_tree_index_);
base->set_clip_tree_index(clip_tree_index_);
+ base->set_scroll_tree_index(scroll_tree_index_);
Vector2dFToProto(offset_to_transform_parent_,
base->mutable_offset_to_transform_parent());
base->set_double_sided(double_sided_);
@@ -1561,6 +1581,7 @@ void Layer::FromLayerSpecificPropertiesProto(
transform_tree_index_ = base.transform_free_index();
effect_tree_index_ = base.effect_tree_index();
clip_tree_index_ = base.clip_tree_index();
+ scroll_tree_index_ = base.scroll_tree_index();
offset_to_transform_parent_ =
ProtoToVector2dF(base.offset_to_transform_parent());
double_sided_ = base.double_sided();