| Index: cc/trees/layer_tree_impl.cc
|
| diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
|
| index a4d5cab9f94bf866f23e8d35e6fcfa9b107eb0ee..f76d959a43660f908e1fc3cae8447a84741a725b 100644
|
| --- a/cc/trees/layer_tree_impl.cc
|
| +++ b/cc/trees/layer_tree_impl.cc
|
| @@ -32,19 +32,19 @@ namespace cc {
|
| // This class exists to split the LayerScrollOffsetDelegate between the
|
| // InnerViewportScrollLayer and the OuterViewportScrollLayer in a manner
|
| // that never requires the embedder or LayerImpl to know about.
|
| -class LayerScrollOffsetDelegateProxy : public LayerScrollOffsetDelegate {
|
| +class LayerScrollOffsetDelegateProxy : public LayerImpl::ScrollOffsetDelegate {
|
| public:
|
| LayerScrollOffsetDelegateProxy(LayerImpl* layer,
|
| LayerScrollOffsetDelegate* delegate,
|
| LayerTreeImpl* layer_tree)
|
| : layer_(layer), delegate_(delegate), layer_tree_impl_(layer_tree) {}
|
| + virtual ~LayerScrollOffsetDelegateProxy() {}
|
|
|
| gfx::Vector2dF last_set_scroll_offset() const {
|
| return last_set_scroll_offset_;
|
| }
|
|
|
| // LayerScrollOffsetDelegate implementation.
|
| -
|
| virtual void SetTotalScrollOffset(const gfx::Vector2dF& new_offset) OVERRIDE {
|
| last_set_scroll_offset_ = new_offset;
|
| layer_tree_impl_->UpdateScrollOffsetDelegate();
|
| @@ -58,20 +58,6 @@ class LayerScrollOffsetDelegateProxy : public LayerScrollOffsetDelegate {
|
| return delegate_->IsExternalFlingActive();
|
| }
|
|
|
| - // Functions below this point are never called by LayerImpl on its
|
| - // LayerScrollOffsetDelegate, and so are not implemented.
|
| - virtual void SetMaxScrollOffset(const gfx::Vector2dF&) OVERRIDE {
|
| - NOTIMPLEMENTED();
|
| - }
|
| -
|
| - virtual void SetTotalPageScaleFactorAndLimits(float, float, float) OVERRIDE {
|
| - NOTIMPLEMENTED();
|
| - }
|
| -
|
| - virtual void SetScrollableSize(const gfx::SizeF& scrollable_size) OVERRIDE {
|
| - NOTIMPLEMENTED();
|
| - }
|
| -
|
| private:
|
| LayerImpl* layer_;
|
| LayerScrollOffsetDelegate* delegate_;
|
| @@ -320,7 +306,10 @@ void LayerTreeImpl::SetPageScaleFactorAndLimits(float page_scale_factor,
|
| page_scale_factor_ = page_scale_factor;
|
|
|
| if (root_layer_scroll_offset_delegate_) {
|
| - root_layer_scroll_offset_delegate_->SetTotalPageScaleFactorAndLimits(
|
| + root_layer_scroll_offset_delegate_->UpdateRootLayerState(
|
| + TotalScrollOffset(),
|
| + TotalMaxScrollOffset(),
|
| + ScrollableSize(),
|
| total_page_scale_factor(),
|
| this->min_page_scale_factor(),
|
| this->max_page_scale_factor());
|
| @@ -354,7 +343,10 @@ void LayerTreeImpl::SetPageScaleDelta(float delta) {
|
| set_needs_update_draw_properties();
|
|
|
| if (root_layer_scroll_offset_delegate_) {
|
| - root_layer_scroll_offset_delegate_->SetTotalPageScaleFactorAndLimits(
|
| + root_layer_scroll_offset_delegate_->UpdateRootLayerState(
|
| + TotalScrollOffset(),
|
| + TotalMaxScrollOffset(),
|
| + ScrollableSize(),
|
| total_page_scale_factor(),
|
| min_page_scale_factor(),
|
| max_page_scale_factor());
|
| @@ -818,12 +810,10 @@ void LayerTreeImpl::SetRootLayerScrollOffsetDelegate(
|
| root_layer_scroll_offset_delegate_ = root_layer_scroll_offset_delegate;
|
|
|
| if (root_layer_scroll_offset_delegate_) {
|
| - root_layer_scroll_offset_delegate_->SetTotalScrollOffset(
|
| - TotalScrollOffset());
|
| - root_layer_scroll_offset_delegate_->SetMaxScrollOffset(
|
| - TotalMaxScrollOffset());
|
| - root_layer_scroll_offset_delegate_->SetScrollableSize(ScrollableSize());
|
| - root_layer_scroll_offset_delegate_->SetTotalPageScaleFactorAndLimits(
|
| + root_layer_scroll_offset_delegate_->UpdateRootLayerState(
|
| + TotalScrollOffset(),
|
| + TotalMaxScrollOffset(),
|
| + ScrollableSize(),
|
| total_page_scale_factor(),
|
| min_page_scale_factor(),
|
| max_page_scale_factor());
|
| @@ -858,9 +848,13 @@ void LayerTreeImpl::UpdateScrollOffsetDelegate() {
|
| if (OuterViewportScrollLayer())
|
| offset += outer_viewport_scroll_delegate_proxy_->last_set_scroll_offset();
|
|
|
| - root_layer_scroll_offset_delegate_->SetTotalScrollOffset(offset);
|
| - root_layer_scroll_offset_delegate_->SetMaxScrollOffset(
|
| - TotalMaxScrollOffset());
|
| + root_layer_scroll_offset_delegate_->UpdateRootLayerState(
|
| + offset,
|
| + TotalMaxScrollOffset(),
|
| + ScrollableSize(),
|
| + total_page_scale_factor(),
|
| + min_page_scale_factor(),
|
| + max_page_scale_factor());
|
| }
|
|
|
| gfx::Vector2dF LayerTreeImpl::GetDelegatedScrollOffset(LayerImpl* layer) {
|
|
|