diff options
author | mkosiba@chromium.org <mkosiba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-15 16:32:00 +0000 |
---|---|---|
committer | mkosiba@chromium.org <mkosiba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-15 16:32:00 +0000 |
commit | ec2322e54319668369e5ae705db37e15391446a6 (patch) | |
tree | 19511d4375690ab6a2ae73e96ab0362316ed0ab9 /content/browser/android | |
parent | 575761f0a78a59a61ddff5d4d2d0688facbf1492 (diff) | |
download | chromium_src-ec2322e54319668369e5ae705db37e15391446a6.zip chromium_src-ec2322e54319668369e5ae705db37e15391446a6.tar.gz chromium_src-ec2322e54319668369e5ae705db37e15391446a6.tar.bz2 |
Make LayerScrollOffsetDelegate updates consistent.
Looks like the inner+outer viewport changes had made the scroll
size/range depend on the pageScale.
BUG=340646
Review URL: https://codereview.chromium.org/256303006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270686 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/android')
-rw-r--r-- | content/browser/android/in_process/synchronous_compositor_impl.cc | 38 | ||||
-rw-r--r-- | content/browser/android/in_process/synchronous_compositor_impl.h | 14 |
2 files changed, 19 insertions, 33 deletions
diff --git a/content/browser/android/in_process/synchronous_compositor_impl.cc b/content/browser/android/in_process/synchronous_compositor_impl.cc index d424adc..347c3631 100644 --- a/content/browser/android/in_process/synchronous_compositor_impl.cc +++ b/content/browser/android/in_process/synchronous_compositor_impl.cc @@ -220,20 +220,6 @@ void SynchronousCompositorImpl::DidActivatePendingTree() { compositor_client_->DidUpdateContent(); } -void SynchronousCompositorImpl::SetMaxScrollOffset( - const gfx::Vector2dF& max_scroll_offset) { - DCHECK(CalledOnValidThread()); - if (compositor_client_) - compositor_client_->SetMaxRootLayerScrollOffset(max_scroll_offset); -} - -void SynchronousCompositorImpl::SetTotalScrollOffset( - const gfx::Vector2dF& new_value) { - DCHECK(CalledOnValidThread()); - if (compositor_client_) - compositor_client_->SetTotalRootLayerScrollOffset(new_value); -} - gfx::Vector2dF SynchronousCompositorImpl::GetTotalScrollOffset() { DCHECK(CalledOnValidThread()); if (compositor_client_) @@ -248,21 +234,23 @@ bool SynchronousCompositorImpl::IsExternalFlingActive() const { return false; } -void SynchronousCompositorImpl::SetTotalPageScaleFactorAndLimits( +void SynchronousCompositorImpl::UpdateRootLayerState( + const gfx::Vector2dF& total_scroll_offset, + const gfx::Vector2dF& max_scroll_offset, + const gfx::SizeF& scrollable_size, float page_scale_factor, float min_page_scale_factor, float max_page_scale_factor) { DCHECK(CalledOnValidThread()); - if (compositor_client_) - compositor_client_->SetRootLayerPageScaleFactorAndLimits( - page_scale_factor, min_page_scale_factor, max_page_scale_factor); -} - -void SynchronousCompositorImpl::SetScrollableSize( - const gfx::SizeF& scrollable_size) { - DCHECK(CalledOnValidThread()); - if (compositor_client_) - compositor_client_->SetRootLayerScrollableSize(scrollable_size); + if (!compositor_client_) + return; + + compositor_client_->UpdateRootLayerState(total_scroll_offset, + max_scroll_offset, + scrollable_size, + page_scale_factor, + min_page_scale_factor, + max_page_scale_factor); } // Not using base::NonThreadSafe as we want to enforce a more exacting threading diff --git a/content/browser/android/in_process/synchronous_compositor_impl.h b/content/browser/android/in_process/synchronous_compositor_impl.h index 885db21..df6f3d2 100644 --- a/content/browser/android/in_process/synchronous_compositor_impl.h +++ b/content/browser/android/in_process/synchronous_compositor_impl.h @@ -73,16 +73,14 @@ class SynchronousCompositorImpl virtual void DidActivatePendingTree() OVERRIDE; // LayerScrollOffsetDelegate - virtual void SetMaxScrollOffset( - const gfx::Vector2dF& max_scroll_offset) OVERRIDE; - virtual void SetTotalScrollOffset(const gfx::Vector2dF& new_value) OVERRIDE; virtual gfx::Vector2dF GetTotalScrollOffset() OVERRIDE; + virtual void UpdateRootLayerState(const gfx::Vector2dF& total_scroll_offset, + const gfx::Vector2dF& max_scroll_offset, + const gfx::SizeF& scrollable_size, + float page_scale_factor, + float min_page_scale_factor, + float max_page_scale_factor) OVERRIDE; virtual bool IsExternalFlingActive() const OVERRIDE; - virtual void SetTotalPageScaleFactorAndLimits( - float page_scale_factor, - float min_page_scale_factor, - float max_page_scale_factor) OVERRIDE; - virtual void SetScrollableSize(const gfx::SizeF& scrollable_size) OVERRIDE; void SetInputHandler(cc::InputHandler* input_handler); void DidOverscroll(const DidOverscrollParams& params); |