summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authormkosiba@chromium.org <mkosiba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-09 18:08:29 +0000
committermkosiba@chromium.org <mkosiba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-09 18:08:29 +0000
commit22f200a767dd1804cfc20cc6bda867eea9448ada (patch)
treead14127e67ce5660a4e6d8ea8c9b28916606eef7 /cc
parent342caad900914bdc0025c680a5acbcb52b68216a (diff)
downloadchromium_src-22f200a767dd1804cfc20cc6bda867eea9448ada.zip
chromium_src-22f200a767dd1804cfc20cc6bda867eea9448ada.tar.gz
chromium_src-22f200a767dd1804cfc20cc6bda867eea9448ada.tar.bz2
Use total page scale in the LayerScrollOffsetDelegate.
In order for the LayerScrollOffsetDelegate to see the most up to date pageScale we need to use the total page scale rather than just the value that was last synced with the main thread. BUG=None TEST=cc_unittests R=aelias@chromium.org, joth@chromium.org, yfriedman@chromium.org Review URL: https://codereview.chromium.org/26274003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227763 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r--cc/input/layer_scroll_offset_delegate.h2
-rw-r--r--cc/layers/layer_impl_unittest.cc4
-rw-r--r--cc/trees/layer_tree_host_impl_unittest.cc5
-rw-r--r--cc/trees/layer_tree_impl.cc14
4 files changed, 18 insertions, 7 deletions
diff --git a/cc/input/layer_scroll_offset_delegate.h b/cc/input/layer_scroll_offset_delegate.h
index 805bbfb..54a11c9 100644
--- a/cc/input/layer_scroll_offset_delegate.h
+++ b/cc/input/layer_scroll_offset_delegate.h
@@ -40,7 +40,7 @@ class LayerScrollOffsetDelegate {
// This is called by the compositor to notify the delegate what is the current
// page scale factor is.
- virtual void SetPageScaleFactor(float page_scale_factor) = 0;
+ virtual void SetTotalPageScaleFactor(float page_scale_factor) = 0;
// This is called by the compositor to notify the delegate what is the layer's
// scrollable size is.
diff --git a/cc/layers/layer_impl_unittest.cc b/cc/layers/layer_impl_unittest.cc
index 3a0b1ce..83cd346 100644
--- a/cc/layers/layer_impl_unittest.cc
+++ b/cc/layers/layer_impl_unittest.cc
@@ -382,7 +382,7 @@ class ScrollDelegateIgnore : public LayerScrollOffsetDelegate {
fixed_offset_ = fixed_offset;
}
- virtual void SetPageScaleFactor(float page_scale_factor) OVERRIDE {}
+ virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {}
virtual void SetScrollableSize(gfx::SizeF scrollable_size) OVERRIDE {}
private:
@@ -434,7 +434,7 @@ class ScrollDelegateAccept : public LayerScrollOffsetDelegate {
return current_offset_;
}
virtual bool IsExternalFlingActive() const OVERRIDE { return false; }
- virtual void SetPageScaleFactor(float page_scale_factor) OVERRIDE {}
+ virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {}
virtual void SetScrollableSize(gfx::SizeF scrollable_size) OVERRIDE {}
private:
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index 23a0378..720ae91 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -2451,7 +2451,7 @@ class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate {
virtual bool IsExternalFlingActive() const OVERRIDE { return false; }
- virtual void SetPageScaleFactor(float page_scale_factor) OVERRIDE {
+ virtual void SetTotalPageScaleFactor(float page_scale_factor) OVERRIDE {
page_scale_factor_ = page_scale_factor;
}
@@ -2509,6 +2509,9 @@ TEST_F(LayerTreeHostImplTest, RootLayerScrollOffsetDelegation) {
// Updating page scale immediately updates the delegate.
host_impl_->active_tree()->SetPageScaleFactorAndLimits(2.f, 0.5f, 4.f);
EXPECT_EQ(2.f, scroll_delegate.page_scale_factor());
+ host_impl_->active_tree()->SetPageScaleDelta(1.5f);
+ EXPECT_EQ(3.f, scroll_delegate.page_scale_factor());
+ host_impl_->active_tree()->SetPageScaleDelta(1.f);
host_impl_->active_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f);
EXPECT_EQ(1.f, scroll_delegate.page_scale_factor());
diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
index 1b527cc..aa587b4 100644
--- a/cc/trees/layer_tree_impl.cc
+++ b/cc/trees/layer_tree_impl.cc
@@ -190,8 +190,10 @@ void LayerTreeImpl::SetPageScaleFactorAndLimits(float 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_);
+ if (root_layer_scroll_offset_delegate_) {
+ root_layer_scroll_offset_delegate_->SetTotalPageScaleFactor(
+ total_page_scale_factor());
+ }
}
void LayerTreeImpl::SetPageScaleDelta(float delta) {
@@ -218,6 +220,11 @@ void LayerTreeImpl::SetPageScaleDelta(float delta) {
UpdateMaxScrollOffset();
set_needs_update_draw_properties();
+
+ if (root_layer_scroll_offset_delegate_) {
+ root_layer_scroll_offset_delegate_->SetTotalPageScaleFactor(
+ total_page_scale_factor());
+ }
}
gfx::SizeF LayerTreeImpl::ScrollableViewportSize() const {
@@ -618,7 +625,8 @@ void LayerTreeImpl::SetRootLayerScrollOffsetDelegate(
if (root_layer_scroll_offset_delegate_) {
root_layer_scroll_offset_delegate_->SetScrollableSize(ScrollableSize());
- root_layer_scroll_offset_delegate_->SetPageScaleFactor(page_scale_factor_);
+ root_layer_scroll_offset_delegate_->SetTotalPageScaleFactor(
+ total_page_scale_factor());
}
}