| Index: cc/layers/layer_impl.cc
|
| diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
|
| index 019f62048dd03b09c5ce7272c743e6b8ab2aa359..fa3e7dcabb8b63c009b5701c3ab31b35a000a855 100644
|
| --- a/cc/layers/layer_impl.cc
|
| +++ b/cc/layers/layer_impl.cc
|
| @@ -83,7 +83,8 @@ LayerImpl::LayerImpl(LayerTreeImpl* tree_impl, int id)
|
| mutable_properties_(MutableProperty::kNone),
|
| debug_info_(nullptr),
|
| scrolls_drawn_descendant_(false),
|
| - layer_or_descendant_has_touch_handler_(false) {
|
| + layer_or_descendant_has_touch_handler_(false),
|
| + has_will_change_transform_hint_(false) {
|
| DCHECK_GT(layer_id_, 0);
|
|
|
| DCHECK(layer_tree_impl_);
|
| @@ -146,6 +147,13 @@ void LayerImpl::ClearLinksToOtherLayers() {
|
| replica_layer_ = nullptr;
|
| }
|
|
|
| +void LayerImpl::SetHasWillChangeTransformHint(bool has_will_change) {
|
| + if (has_will_change_transform_hint_ == has_will_change)
|
| + return;
|
| + has_will_change_transform_hint_ = has_will_change;
|
| + SetNeedsPushProperties();
|
| +}
|
| +
|
| void LayerImpl::SetDebugInfo(
|
| std::unique_ptr<base::trace_event::ConvertableToTraceFormat> debug_info) {
|
| owned_debug_info_ = std::move(debug_info);
|
| @@ -493,6 +501,8 @@ void LayerImpl::PushPropertiesTo(LayerImpl* layer) {
|
| if (owned_debug_info_)
|
| layer->SetDebugInfo(std::move(owned_debug_info_));
|
|
|
| + layer->SetHasWillChangeTransformHint(has_will_change_transform_hint());
|
| +
|
| // Reset any state that should be cleared for the next update.
|
| layer_property_changed_ = false;
|
| update_rect_ = gfx::Rect();
|
| @@ -1271,6 +1281,9 @@ void LayerImpl::AsValueInto(base::trace_event::TracedValue* state) const {
|
| state->SetBoolean("has_animation_bounds",
|
| layer_tree_impl_->HasAnimationThatInflatesBounds(this));
|
|
|
| + state->SetBoolean("has_will_change_transform_hint",
|
| + has_will_change_transform_hint());
|
| +
|
| gfx::BoxF box;
|
| if (LayerUtils::GetAnimationBounds(*this, &box))
|
| MathUtil::AddToTracedValue("animation_bounds", box, state);
|
|
|