Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1967)

Unified Diff: cc/layer_tree_host_impl_unittest.cc

Issue 12093015: Move page scale ownership to LayerTreeImpl. (Closed) Base URL: http://git.chromium.org/chromium/src.git@coordchange3
Patch Set: Rebase to 179503 Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layer_tree_host_impl.cc ('k') | cc/layer_tree_host_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layer_tree_host_impl_unittest.cc
diff --git a/cc/layer_tree_host_impl_unittest.cc b/cc/layer_tree_host_impl_unittest.cc
index 7eb981385a278f1561938345f4810cc9affb9c42..dd907d67bd8de2f52b47407f527578c9e3a751c9 100644
--- a/cc/layer_tree_host_impl_unittest.cc
+++ b/cc/layer_tree_host_impl_unittest.cc
@@ -572,10 +572,31 @@ TEST_P(LayerTreeHostImplTest, implPinchZoom)
const float minPageScale = 1, maxPageScale = 4;
const gfx::Transform identityScaleTransform;
+ // The impl-based pinch zoom should adjust the max scroll position.
+ {
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
+ m_hostImpl->activeTree()->SetPageScaleDelta(1);
+ scrollLayer->setImplTransform(identityScaleTransform);
+ scrollLayer->setScrollDelta(gfx::Vector2d());
+
+ float pageScaleDelta = 2;
+ m_hostImpl->pinchGestureBegin();
+ m_hostImpl->pinchGestureUpdate(pageScaleDelta, gfx::Point(50, 50));
+ m_hostImpl->pinchGestureEnd();
+ EXPECT_TRUE(m_didRequestRedraw);
+ EXPECT_TRUE(m_didRequestCommit);
+
+ scoped_ptr<ScrollAndScaleSet> scrollInfo = m_hostImpl->processScrollDeltas();
+ EXPECT_EQ(scrollInfo->pageScaleDelta, pageScaleDelta);
+
+ EXPECT_EQ(gfx::Vector2d(75, 75), m_hostImpl->rootLayer()->maxScrollOffset());
+ }
+
// Scrolling after a pinch gesture should always be in local space. The scroll deltas do not
// have the page scale factor applied.
{
- m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
+ m_hostImpl->activeTree()->SetPageScaleDelta(1);
scrollLayer->setImplTransform(identityScaleTransform);
scrollLayer->setScrollDelta(gfx::Vector2d());
@@ -596,6 +617,10 @@ TEST_P(LayerTreeHostImplTest, implPinchZoom)
TEST_P(LayerTreeHostImplTest, pinchGesture)
{
+ // This test is specific to the page-scale based pinch zoom.
+ if (!m_hostImpl->settings().pageScalePinchZoomEnabled)
+ return;
+
setupScrollAndContentsLayers(gfx::Size(100, 100));
m_hostImpl->setViewportSize(gfx::Size(50, 50), gfx::Size(50, 50));
initializeRendererAndDrawFrame();
@@ -609,7 +634,7 @@ TEST_P(LayerTreeHostImplTest, pinchGesture)
// Basic pinch zoom in gesture
{
- m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
scrollLayer->setImplTransform(identityScaleTransform);
scrollLayer->setScrollDelta(gfx::Vector2d());
@@ -626,7 +651,7 @@ TEST_P(LayerTreeHostImplTest, pinchGesture)
// Zoom-in clamping
{
- m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
scrollLayer->setImplTransform(identityScaleTransform);
scrollLayer->setScrollDelta(gfx::Vector2d());
float pageScaleDelta = 10;
@@ -641,7 +666,7 @@ TEST_P(LayerTreeHostImplTest, pinchGesture)
// Zoom-out clamping
{
- m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
scrollLayer->setImplTransform(identityScaleTransform);
scrollLayer->setScrollDelta(gfx::Vector2d());
scrollLayer->setScrollOffset(gfx::Vector2d(50, 50));
@@ -664,7 +689,7 @@ TEST_P(LayerTreeHostImplTest, pinchGesture)
// Two-finger panning should not happen based on pinch events only
{
- m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
scrollLayer->setImplTransform(identityScaleTransform);
scrollLayer->setScrollDelta(gfx::Vector2d());
scrollLayer->setScrollOffset(gfx::Vector2d(20, 20));
@@ -682,7 +707,7 @@ TEST_P(LayerTreeHostImplTest, pinchGesture)
// Two-finger panning should work with interleaved scroll events
{
- m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
scrollLayer->setImplTransform(identityScaleTransform);
scrollLayer->setScrollDelta(gfx::Vector2d());
scrollLayer->setScrollOffset(gfx::Vector2d(20, 20));
@@ -721,7 +746,7 @@ TEST_P(LayerTreeHostImplTest, pageScaleAnimation)
// Non-anchor zoom-in
{
- m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
scrollLayer->setImplTransform(identityScaleTransform);
scrollLayer->setScrollOffset(gfx::Vector2d(50, 50));
@@ -738,7 +763,7 @@ TEST_P(LayerTreeHostImplTest, pageScaleAnimation)
// Anchor zoom-out
{
- m_hostImpl->setPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1, minPageScale, maxPageScale);
scrollLayer->setImplTransform(identityScaleTransform);
scrollLayer->setScrollOffset(gfx::Vector2d(50, 50));
@@ -756,9 +781,13 @@ TEST_P(LayerTreeHostImplTest, pageScaleAnimation)
TEST_P(LayerTreeHostImplTest, compositorFrameMetadata)
{
+ // This test is specific to the page-scale based pinch zoom.
+ if (!m_hostImpl->settings().pageScalePinchZoomEnabled)
+ return;
+
setupScrollAndContentsLayers(gfx::Size(100, 100));
m_hostImpl->setViewportSize(gfx::Size(50, 50), gfx::Size(50, 50));
- m_hostImpl->setPageScaleFactorAndLimits(1.0f, 0.5f, 4.0f);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1.0f, 0.5f, 4.0f);
initializeRendererAndDrawFrame();
{
@@ -802,7 +831,8 @@ TEST_P(LayerTreeHostImplTest, compositorFrameMetadata)
// Likewise if set from the main thread.
m_hostImpl->processScrollDeltas();
- m_hostImpl->setPageScaleFactorAndLimits(4.0f, 0.5f, 4.0f);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(4.0f, 0.5f, 4.0f);
+ m_hostImpl->activeTree()->SetPageScaleDelta(1.0f);
{
CompositorFrameMetadata metadata = m_hostImpl->makeCompositorFrameMetadata();
EXPECT_EQ(gfx::Vector2dF(0.0f, 10.0f), metadata.root_scroll_offset);
@@ -1160,6 +1190,10 @@ TEST_P(LayerTreeHostImplTest, scrollBlockedByContentLayer)
TEST_P(LayerTreeHostImplTest, scrollRootAndChangePageScaleOnMainThread)
{
+ // This test is specific to the page-scale based pinch zoom.
+ if (!m_hostImpl->settings().pageScalePinchZoomEnabled)
+ return;
+
gfx::Size surfaceSize(10, 10);
float pageScale = 2;
scoped_ptr<LayerImpl> root = createScrollableLayer(1, surfaceSize);
@@ -1176,7 +1210,7 @@ TEST_P(LayerTreeHostImplTest, scrollRootAndChangePageScaleOnMainThread)
m_hostImpl->scrollEnd();
// Set new page scale from main thread.
- m_hostImpl->setPageScaleFactorAndLimits(pageScale, pageScale, pageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(pageScale, pageScale, pageScale);
if (!m_hostImpl->settings().pageScalePinchZoomEnabled) {
// The scale should apply to the scroll delta.
@@ -1219,7 +1253,7 @@ TEST_P(LayerTreeHostImplTest, scrollRootAndChangePageScaleOnImplThread)
m_hostImpl->activeTree()->SetRootLayer(root.Pass());
m_hostImpl->activeTree()->DidBecomeActive();
m_hostImpl->setViewportSize(surfaceSize, surfaceSize);
- m_hostImpl->setPageScaleFactorAndLimits(1, 1, pageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(1, 1, pageScale);
initializeRendererAndDrawFrame();
gfx::Vector2d scrollDelta(0, 10);
@@ -1295,6 +1329,10 @@ TEST_P(LayerTreeHostImplTest, pageScaleDeltaAppliedToRootScrollLayerOnly)
TEST_P(LayerTreeHostImplTest, scrollChildAndChangePageScaleOnMainThread)
{
+ // This test is specific to the page-scale based pinch zoom.
+ if (!m_hostImpl->settings().pageScalePinchZoomEnabled)
+ return;
+
gfx::Size surfaceSize(10, 10);
scoped_ptr<LayerImpl> root = LayerImpl::create(m_hostImpl->activeTree(), 1);
root->setBounds(surfaceSize);
@@ -1318,7 +1356,7 @@ TEST_P(LayerTreeHostImplTest, scrollChildAndChangePageScaleOnMainThread)
m_hostImpl->scrollEnd();
float pageScale = 2;
- m_hostImpl->setPageScaleFactorAndLimits(pageScale, 1, pageScale);
+ m_hostImpl->activeTree()->SetPageScaleFactorAndLimits(pageScale, 1, pageScale);
drawOneFrame();
« no previous file with comments | « cc/layer_tree_host_impl.cc ('k') | cc/layer_tree_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698