| Index: cc/layers/layer.cc
|
| diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc
|
| index d96b381e02e54fe65aec55039539c7c0a3ac9a18..1efeb5b9b18446cee9d411e5acc3555549329191 100644
|
| --- a/cc/layers/layer.cc
|
| +++ b/cc/layers/layer.cc
|
| @@ -65,7 +65,9 @@ Layer::Inputs::Inputs(int layer_id)
|
| clip_parent(nullptr),
|
| has_will_change_transform_hint(false),
|
| hide_layer_and_subtree(false),
|
| - client(nullptr) {}
|
| + client(nullptr),
|
| + scroll_boundary_behavior(
|
| + ScrollBoundaryBehavior::kScrollBoundaryBehaviorTypeAuto) {}
|
|
|
| Layer::Inputs::~Inputs() {}
|
|
|
| @@ -306,6 +308,25 @@ void Layer::SetBounds(const gfx::Size& size) {
|
| SetNeedsCommit();
|
| }
|
|
|
| +void Layer::SetScrollBoundaryBehavior(const ScrollBoundaryBehavior& behavior) {
|
| + DCHECK(IsPropertyChangeAllowed());
|
| + if (scroll_boundary_behavior() == behavior)
|
| + return;
|
| + inputs_.scroll_boundary_behavior = behavior;
|
| + if (!layer_tree_host_)
|
| + return;
|
| +
|
| + if (scrollable()) {
|
| + auto& scroll_tree = layer_tree_host_->property_trees()->scroll_tree;
|
| + if (auto* scroll_node = scroll_tree.Node(scroll_tree_index_))
|
| + scroll_node->scroll_boundary_behavior = behavior;
|
| + else
|
| + SetPropertyTreesNeedRebuild();
|
| + }
|
| +
|
| + SetNeedsCommit();
|
| +}
|
| +
|
| Layer* Layer::RootLayer() {
|
| Layer* layer = this;
|
| while (layer->parent())
|
|
|