Index: cc/trees/layer_tree_impl.cc |
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
index 280bdad8ee10a15d77fc965e2167ce1b42f7f235..c388e334552a760a49dd6e13a1e8c87ec46c1dc0 100644 |
--- a/cc/trees/layer_tree_impl.cc |
+++ b/cc/trees/layer_tree_impl.cc |
@@ -189,6 +189,9 @@ void LayerTreeImpl::SetPageScaleFactorAndLimits(float page_scale_factor, |
min_page_scale_factor_ = min_page_scale_factor; |
max_page_scale_factor_ = max_page_scale_factor; |
page_scale_factor_ = page_scale_factor; |
+ |
+ if (root_layer_scroll_offset_delegate_) |
+ root_layer_scroll_offset_delegate_->SetPageScaleFactor(page_scale_factor_); |
} |
void LayerTreeImpl::SetPageScaleDelta(float delta) { |
@@ -600,11 +603,20 @@ scoped_ptr<base::Value> LayerTreeImpl::AsValue() const { |
void LayerTreeImpl::SetRootLayerScrollOffsetDelegate( |
LayerScrollOffsetDelegate* root_layer_scroll_offset_delegate) { |
+ if (root_layer_scroll_offset_delegate_ == root_layer_scroll_offset_delegate) |
+ return; |
+ |
root_layer_scroll_offset_delegate_ = root_layer_scroll_offset_delegate; |
+ |
if (root_scroll_layer_) { |
root_scroll_layer_->SetScrollOffsetDelegate( |
root_layer_scroll_offset_delegate_); |
} |
+ |
+ if (root_layer_scroll_offset_delegate_) { |
+ root_layer_scroll_offset_delegate_->SetScrollableSize(ScrollableSize()); |
+ root_layer_scroll_offset_delegate_->SetPageScaleFactor(page_scale_factor_); |
+ } |
} |
void LayerTreeImpl::UpdateRootScrollLayerSizeDelta() { |