Index: cc/trees/layer_tree_impl.cc |
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
index 5114fdcecca669bac2dd4d3f5395f9520d2eb1a9..25d3731c5172966d077f9b3475c454088ae6eaa7 100644 |
--- a/cc/trees/layer_tree_impl.cc |
+++ b/cc/trees/layer_tree_impl.cc |
@@ -25,6 +25,7 @@ |
#include "cc/layers/layer_iterator.h" |
#include "cc/layers/render_surface_impl.h" |
#include "cc/layers/scrollbar_layer_impl_base.h" |
+#include "cc/layers/viewport.h" |
#include "cc/resources/ui_resource_request.h" |
#include "cc/trees/layer_tree_host_common.h" |
#include "cc/trees/layer_tree_host_impl.h" |
@@ -105,6 +106,7 @@ LayerTreeImpl::LayerTreeImpl( |
top_controls_shrink_blink_size_(false), |
top_controls_height_(0), |
top_controls_shown_ratio_(top_controls_shown_ratio) { |
+ viewport_ = Viewport::Create(layer_tree_host_impl); |
} |
LayerTreeImpl::~LayerTreeImpl() { |
@@ -148,6 +150,8 @@ void LayerTreeImpl::SetRootLayer(scoped_ptr<LayerImpl> layer) { |
inner_viewport_scroll_layer_ = NULL; |
outer_viewport_scroll_layer_ = NULL; |
page_scale_layer_ = NULL; |
+ viewport_->SetViewportLayers(inner_viewport_scroll_layer_, |
+ outer_viewport_scroll_layer_); |
layer_tree_host_impl_->OnCanDrawStateChangedForTree(); |
} |
@@ -198,6 +202,8 @@ scoped_ptr<LayerImpl> LayerTreeImpl::DetachLayerTree() { |
outer_viewport_scroll_layer_ = NULL; |
page_scale_layer_ = NULL; |
currently_scrolling_layer_ = NULL; |
+ viewport_->SetViewportLayers(inner_viewport_scroll_layer_, |
+ outer_viewport_scroll_layer_); |
render_surface_layer_list_.clear(); |
set_needs_update_draw_properties(); |
@@ -513,6 +519,8 @@ void LayerTreeImpl::SetViewportLayersFromIds( |
LayerById(outer_viewport_scroll_layer_id); |
DCHECK(outer_viewport_scroll_layer_ || |
outer_viewport_scroll_layer_id == Layer::INVALID_ID); |
+ viewport_->SetViewportLayers(inner_viewport_scroll_layer_, |
+ outer_viewport_scroll_layer_); |
HideInnerViewportScrollbarsIfNearMinimumScale(); |
@@ -535,6 +543,8 @@ void LayerTreeImpl::ClearViewportLayers() { |
page_scale_layer_ = NULL; |
inner_viewport_scroll_layer_ = NULL; |
outer_viewport_scroll_layer_ = NULL; |
+ viewport_->SetViewportLayers(inner_viewport_scroll_layer_, |
+ outer_viewport_scroll_layer_); |
} |
bool LayerTreeImpl::UpdateDrawProperties(bool update_lcd_text) { |