| Index: cc/trees/layer_tree_host.cc
|
| diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
|
| index 53bfcb8fc22d597432c2fbeefa1c6aedcc1501f8..01ca6994cae41b402ef13268305ab84a75093ad7 100644
|
| --- a/cc/trees/layer_tree_host.cc
|
| +++ b/cc/trees/layer_tree_host.cc
|
| @@ -509,6 +509,8 @@ void LayerTreeHost::SetNeedsCommit() {
|
|
|
| void LayerTreeHost::SetNeedsFullTreeSync() {
|
| needs_full_tree_sync_ = true;
|
| +
|
| + property_trees_.needs_rebuild = true;
|
| SetNeedsCommit();
|
| }
|
|
|
| @@ -626,6 +628,7 @@ void LayerTreeHost::SetViewportSize(const gfx::Size& device_viewport_size) {
|
|
|
| device_viewport_size_ = device_viewport_size;
|
|
|
| + property_trees_.needs_rebuild = true;
|
| SetNeedsCommit();
|
| }
|
|
|
| @@ -649,7 +652,10 @@ void LayerTreeHost::SetTopControlsShownRatio(float ratio) {
|
|
|
| void LayerTreeHost::ApplyPageScaleDeltaFromImplSide(float page_scale_delta) {
|
| DCHECK(CommitRequested());
|
| + if (page_scale_delta == 1.f)
|
| + return;
|
| page_scale_factor_ *= page_scale_delta;
|
| + property_trees_.needs_rebuild = true;
|
| }
|
|
|
| void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
|
| @@ -663,6 +669,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor,
|
| page_scale_factor_ = page_scale_factor;
|
| min_page_scale_factor_ = min_page_scale_factor;
|
| max_page_scale_factor_ = max_page_scale_factor;
|
| + property_trees_.needs_rebuild = true;
|
| SetNeedsCommit();
|
| }
|
|
|
| @@ -796,7 +803,6 @@ bool LayerTreeHost::UpdateLayers(Layer* root_layer,
|
| // that we won't be able to detect if a layer is part of |update_list|.
|
| // Change this if this information is required.
|
| int render_surface_layer_list_id = 0;
|
| - PropertyTrees property_trees;
|
| LayerTreeHostCommon::CalcDrawPropsMainInputs inputs(
|
| root_layer, device_viewport_size(), gfx::Transform(),
|
| device_scale_factor_, page_scale_factor_, page_scale_layer,
|
| @@ -806,7 +812,7 @@ bool LayerTreeHost::UpdateLayers(Layer* root_layer,
|
| can_render_to_separate_surface,
|
| settings_.layer_transforms_should_scale_layer_contents,
|
| settings_.verify_property_trees, &update_list,
|
| - render_surface_layer_list_id, &property_trees);
|
| + render_surface_layer_list_id, &property_trees_);
|
| LayerTreeHostCommon::CalculateDrawProperties(&inputs);
|
| }
|
|
|
| @@ -1119,6 +1125,7 @@ void LayerTreeHost::SetDeviceScaleFactor(float device_scale_factor) {
|
| return;
|
| device_scale_factor_ = device_scale_factor;
|
|
|
| + property_trees_.needs_rebuild = true;
|
| SetNeedsCommit();
|
| }
|
|
|
| @@ -1139,8 +1146,12 @@ void LayerTreeHost::AnimateLayers(base::TimeTicks monotonic_time) {
|
| if (!settings_.accelerated_animation_enabled)
|
| return;
|
|
|
| - if (animation_registrar_->AnimateLayers(monotonic_time))
|
| - animation_registrar_->UpdateAnimationState(true, NULL);
|
| + AnimationEventsVector events;
|
| + if (animation_registrar_->AnimateLayers(monotonic_time)) {
|
| + animation_registrar_->UpdateAnimationState(true, &events);
|
| + if (!events.empty())
|
| + property_trees_.needs_rebuild = true;
|
| + }
|
| }
|
|
|
| UIResourceId LayerTreeHost::CreateUIResource(UIResourceClient* client) {
|
|
|