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

Side by Side Diff: cc/layer_tree_host_unittest.cc

Issue 11366089: cc: Remove all remaining use of WebCore Rect/Point/Size types from the compositor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove gyp entries for stubs Created 8 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/layer_tree_host_impl_unittest.cc ('k') | cc/layer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 6
7 #include "cc/layer_tree_host.h" 7 #include "cc/layer_tree_host.h"
8 8
9 #include "base/synchronization/lock.h" 9 #include "base/synchronization/lock.h"
10 #include "cc/content_layer.h" 10 #include "cc/content_layer.h"
11 #include "cc/content_layer_client.h" 11 #include "cc/content_layer_client.h"
12 #include "cc/graphics_context.h" 12 #include "cc/graphics_context.h"
13 #include "cc/layer_tree_host_impl.h" 13 #include "cc/layer_tree_host_impl.h"
14 #include "cc/settings.h" 14 #include "cc/settings.h"
15 #include "cc/single_thread_proxy.h" 15 #include "cc/single_thread_proxy.h"
16 #include "cc/test/fake_web_compositor_output_surface.h" 16 #include "cc/test/fake_web_compositor_output_surface.h"
17 #include "cc/test/geometry_test_utils.h" 17 #include "cc/test/geometry_test_utils.h"
18 #include "cc/test/layer_tree_test_common.h" 18 #include "cc/test/layer_tree_test_common.h"
19 #include "cc/test/occlusion_tracker_test_common.h" 19 #include "cc/test/occlusion_tracker_test_common.h"
20 #include "cc/resource_update_queue.h" 20 #include "cc/resource_update_queue.h"
21 #include "cc/timing_function.h" 21 #include "cc/timing_function.h"
22 #include "testing/gmock/include/gmock/gmock.h" 22 #include "testing/gmock/include/gmock/gmock.h"
23 #include "third_party/khronos/GLES2/gl2.h" 23 #include "third_party/khronos/GLES2/gl2.h"
24 #include "third_party/khronos/GLES2/gl2ext.h" 24 #include "third_party/khronos/GLES2/gl2ext.h"
25 #include "ui/gfx/point_conversions.h" 25 #include "ui/gfx/point_conversions.h"
26 #include "ui/gfx/size_conversions.h" 26 #include "ui/gfx/size_conversions.h"
27 #include "ui/gfx/vector2d_conversions.h"
27 #include <public/WebLayerScrollClient.h> 28 #include <public/WebLayerScrollClient.h>
28 #include <public/WebSize.h> 29 #include <public/WebSize.h>
29 30
30 using namespace cc; 31 using namespace cc;
31 using namespace WebKit; 32 using namespace WebKit;
32 using namespace WebKitTests; 33 using namespace WebKitTests;
33 34
34 namespace { 35 namespace {
35 36
36 class LayerTreeHostTest : public ThreadedTest { }; 37 class LayerTreeHostTest : public ThreadedTest { };
(...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 } 828 }
828 829
829 private: 830 private:
830 }; 831 };
831 832
832 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestAnimationFinishedEvents) 833 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestAnimationFinishedEvents)
833 834
834 class LayerTreeHostTestScrollSimple : public LayerTreeHostTest { 835 class LayerTreeHostTestScrollSimple : public LayerTreeHostTest {
835 public: 836 public:
836 LayerTreeHostTestScrollSimple() 837 LayerTreeHostTestScrollSimple()
837 : m_initialScroll(IntPoint(10, 20)) 838 : m_initialScroll(10, 20)
838 , m_secondScroll(IntPoint(40, 5)) 839 , m_secondScroll(40, 5)
839 , m_scrollAmount(2, -1) 840 , m_scrollAmount(2, -1)
840 , m_scrolls(0) 841 , m_scrolls(0)
841 { 842 {
842 } 843 }
843 844
844 virtual void beginTest() OVERRIDE 845 virtual void beginTest() OVERRIDE
845 { 846 {
846 m_layerTreeHost->rootLayer()->setScrollable(true); 847 m_layerTreeHost->rootLayer()->setScrollable(true);
847 m_layerTreeHost->rootLayer()->setScrollPosition(m_initialScroll); 848 m_layerTreeHost->rootLayer()->setScrollOffset(m_initialScroll);
848 postSetNeedsCommitToMainThread(); 849 postSetNeedsCommitToMainThread();
849 } 850 }
850 851
851 virtual void layout() OVERRIDE 852 virtual void layout() OVERRIDE
852 { 853 {
853 Layer* root = m_layerTreeHost->rootLayer(); 854 Layer* root = m_layerTreeHost->rootLayer();
854 if (!m_layerTreeHost->commitNumber()) 855 if (!m_layerTreeHost->commitNumber())
855 EXPECT_EQ(root->scrollPosition(), m_initialScroll); 856 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll);
856 else { 857 else {
857 EXPECT_EQ(root->scrollPosition(), m_initialScroll + m_scrollAmount); 858 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll + m_scrollAmo unt);
858 859
859 // Pretend like Javascript updated the scroll position itself. 860 // Pretend like Javascript updated the scroll position itself.
860 root->setScrollPosition(m_secondScroll); 861 root->setScrollOffset(m_secondScroll);
861 } 862 }
862 } 863 }
863 864
864 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 865 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
865 { 866 {
866 LayerImpl* root = impl->rootLayer(); 867 LayerImpl* root = impl->rootLayer();
867 EXPECT_EQ(root->scrollDelta(), IntSize()); 868 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
868 869
869 root->setScrollable(true); 870 root->setScrollable(true);
870 root->setMaxScrollPosition(IntSize(100, 100)); 871 root->setMaxScrollOffset(gfx::Vector2d(100, 100));
871 root->scrollBy(m_scrollAmount); 872 root->scrollBy(m_scrollAmount);
872 873
873 if (!impl->sourceFrameNumber()) { 874 if (!impl->sourceFrameNumber()) {
874 EXPECT_EQ(root->scrollPosition(), m_initialScroll); 875 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll);
875 EXPECT_EQ(root->scrollDelta(), m_scrollAmount); 876 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount);
876 postSetNeedsCommitToMainThread(); 877 postSetNeedsCommitToMainThread();
877 } else if (impl->sourceFrameNumber() == 1) { 878 } else if (impl->sourceFrameNumber() == 1) {
878 EXPECT_EQ(root->scrollPosition(), m_secondScroll); 879 EXPECT_VECTOR_EQ(root->scrollOffset(), m_secondScroll);
879 EXPECT_EQ(root->scrollDelta(), m_scrollAmount); 880 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount);
880 endTest(); 881 endTest();
881 } 882 }
882 } 883 }
883 884
884 virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale) OV ERRIDE 885 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE
885 { 886 {
886 IntPoint position = m_layerTreeHost->rootLayer()->scrollPosition(); 887 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset();
887 m_layerTreeHost->rootLayer()->setScrollPosition(position + scrollDelta); 888 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scrollDelta);
888 m_scrolls++; 889 m_scrolls++;
889 } 890 }
890 891
891 virtual void afterTest() OVERRIDE 892 virtual void afterTest() OVERRIDE
892 { 893 {
893 EXPECT_EQ(1, m_scrolls); 894 EXPECT_EQ(1, m_scrolls);
894 } 895 }
895 private: 896 private:
896 IntPoint m_initialScroll; 897 gfx::Vector2d m_initialScroll;
897 IntPoint m_secondScroll; 898 gfx::Vector2d m_secondScroll;
898 IntSize m_scrollAmount; 899 gfx::Vector2d m_scrollAmount;
899 int m_scrolls; 900 int m_scrolls;
900 }; 901 };
901 902
902 TEST_F(LayerTreeHostTestScrollSimple, runMultiThread) 903 TEST_F(LayerTreeHostTestScrollSimple, runMultiThread)
903 { 904 {
904 runTest(true); 905 runTest(true);
905 } 906 }
906 907
907 class LayerTreeHostTestScrollMultipleRedraw : public LayerTreeHostTest { 908 class LayerTreeHostTestScrollMultipleRedraw : public LayerTreeHostTest {
908 public: 909 public:
909 LayerTreeHostTestScrollMultipleRedraw() 910 LayerTreeHostTestScrollMultipleRedraw()
910 : m_initialScroll(IntPoint(40, 10)) 911 : m_initialScroll(40, 10)
911 , m_scrollAmount(-3, 17) 912 , m_scrollAmount(-3, 17)
912 , m_scrolls(0) 913 , m_scrolls(0)
913 { 914 {
914 } 915 }
915 916
916 virtual void beginTest() OVERRIDE 917 virtual void beginTest() OVERRIDE
917 { 918 {
918 m_layerTreeHost->rootLayer()->setScrollable(true); 919 m_layerTreeHost->rootLayer()->setScrollable(true);
919 m_layerTreeHost->rootLayer()->setScrollPosition(m_initialScroll); 920 m_layerTreeHost->rootLayer()->setScrollOffset(m_initialScroll);
920 postSetNeedsCommitToMainThread(); 921 postSetNeedsCommitToMainThread();
921 } 922 }
922 923
923 virtual void beginCommitOnThread(LayerTreeHostImpl* impl) OVERRIDE 924 virtual void beginCommitOnThread(LayerTreeHostImpl* impl) OVERRIDE
924 { 925 {
925 Layer* root = m_layerTreeHost->rootLayer(); 926 Layer* root = m_layerTreeHost->rootLayer();
926 if (!m_layerTreeHost->commitNumber()) 927 if (!m_layerTreeHost->commitNumber())
927 EXPECT_EQ(root->scrollPosition(), m_initialScroll); 928 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll);
928 else if (m_layerTreeHost->commitNumber() == 1) 929 else if (m_layerTreeHost->commitNumber() == 1)
929 EXPECT_EQ(root->scrollPosition(), m_initialScroll + m_scrollAmount + m_scrollAmount); 930 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll + m_scrollAmo unt + m_scrollAmount);
930 else if (m_layerTreeHost->commitNumber() == 2) 931 else if (m_layerTreeHost->commitNumber() == 2)
931 EXPECT_EQ(root->scrollPosition(), m_initialScroll + m_scrollAmount + m_scrollAmount); 932 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll + m_scrollAmo unt + m_scrollAmount);
932 } 933 }
933 934
934 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 935 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
935 { 936 {
936 LayerImpl* root = impl->rootLayer(); 937 LayerImpl* root = impl->rootLayer();
937 root->setScrollable(true); 938 root->setScrollable(true);
938 root->setMaxScrollPosition(IntSize(100, 100)); 939 root->setMaxScrollOffset(gfx::Vector2d(100, 100));
939 940
940 if (!impl->sourceFrameNumber() && impl->sourceAnimationFrameNumber() == 1) { 941 if (!impl->sourceFrameNumber() && impl->sourceAnimationFrameNumber() == 1) {
941 // First draw after first commit. 942 // First draw after first commit.
942 EXPECT_EQ(root->scrollDelta(), IntSize()); 943 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
943 root->scrollBy(m_scrollAmount); 944 root->scrollBy(m_scrollAmount);
944 EXPECT_EQ(root->scrollDelta(), m_scrollAmount); 945 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount);
945 946
946 EXPECT_EQ(root->scrollPosition(), m_initialScroll); 947 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll);
947 postSetNeedsRedrawToMainThread(); 948 postSetNeedsRedrawToMainThread();
948 } else if (!impl->sourceFrameNumber() && impl->sourceAnimationFrameNumbe r() == 2) { 949 } else if (!impl->sourceFrameNumber() && impl->sourceAnimationFrameNumbe r() == 2) {
949 // Second draw after first commit. 950 // Second draw after first commit.
950 EXPECT_EQ(root->scrollDelta(), m_scrollAmount); 951 EXPECT_EQ(root->scrollDelta(), m_scrollAmount);
951 root->scrollBy(m_scrollAmount); 952 root->scrollBy(m_scrollAmount);
952 EXPECT_EQ(root->scrollDelta(), m_scrollAmount + m_scrollAmount); 953 EXPECT_VECTOR_EQ(root->scrollDelta(), m_scrollAmount + m_scrollAmoun t);
953 954
954 EXPECT_EQ(root->scrollPosition(), m_initialScroll); 955 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll);
955 postSetNeedsCommitToMainThread(); 956 postSetNeedsCommitToMainThread();
956 } else if (impl->sourceFrameNumber() == 1) { 957 } else if (impl->sourceFrameNumber() == 1) {
957 // Third or later draw after second commit. 958 // Third or later draw after second commit.
958 EXPECT_GE(impl->sourceAnimationFrameNumber(), 3); 959 EXPECT_GE(impl->sourceAnimationFrameNumber(), 3);
959 EXPECT_EQ(root->scrollDelta(), IntSize()); 960 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
960 EXPECT_EQ(root->scrollPosition(), m_initialScroll + m_scrollAmount + m_scrollAmount); 961 EXPECT_VECTOR_EQ(root->scrollOffset(), m_initialScroll + m_scrollAmo unt + m_scrollAmount);
961 endTest(); 962 endTest();
962 } 963 }
963 } 964 }
964 965
965 virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale) OV ERRIDE 966 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE
966 { 967 {
967 IntPoint position = m_layerTreeHost->rootLayer()->scrollPosition(); 968 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset();
968 m_layerTreeHost->rootLayer()->setScrollPosition(position + scrollDelta); 969 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scrollDelta);
969 m_scrolls++; 970 m_scrolls++;
970 } 971 }
971 972
972 virtual void afterTest() OVERRIDE 973 virtual void afterTest() OVERRIDE
973 { 974 {
974 EXPECT_EQ(1, m_scrolls); 975 EXPECT_EQ(1, m_scrolls);
975 } 976 }
976 private: 977 private:
977 IntPoint m_initialScroll; 978 gfx::Vector2d m_initialScroll;
978 IntSize m_scrollAmount; 979 gfx::Vector2d m_scrollAmount;
979 int m_scrolls; 980 int m_scrolls;
980 }; 981 };
981 982
982 TEST_F(LayerTreeHostTestScrollMultipleRedraw, runMultiThread) 983 TEST_F(LayerTreeHostTestScrollMultipleRedraw, runMultiThread)
983 { 984 {
984 runTest(true); 985 runTest(true);
985 } 986 }
986 987
987 // This test verifies that properties on the layer tree host are commited to the impl side. 988 // This test verifies that properties on the layer tree host are commited to the impl side.
988 class LayerTreeHostTestCommit : public LayerTreeHostTest { 989 class LayerTreeHostTestCommit : public LayerTreeHostTest {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 public: 1023 public:
1023 1024
1024 LayerTreeHostTestStartPageScaleAnimation() 1025 LayerTreeHostTestStartPageScaleAnimation()
1025 : m_animationRequested(false) 1026 : m_animationRequested(false)
1026 { 1027 {
1027 } 1028 }
1028 1029
1029 virtual void beginTest() OVERRIDE 1030 virtual void beginTest() OVERRIDE
1030 { 1031 {
1031 m_layerTreeHost->rootLayer()->setScrollable(true); 1032 m_layerTreeHost->rootLayer()->setScrollable(true);
1032 m_layerTreeHost->rootLayer()->setScrollPosition(IntPoint()); 1033 m_layerTreeHost->rootLayer()->setScrollOffset(gfx::Vector2d());
1033 postSetNeedsCommitToMainThread(); 1034 postSetNeedsCommitToMainThread();
1034 postSetNeedsRedrawToMainThread(); 1035 postSetNeedsRedrawToMainThread();
1035 } 1036 }
1036 1037
1037 void requestStartPageScaleAnimation() 1038 void requestStartPageScaleAnimation()
1038 { 1039 {
1039 layerTreeHost()->startPageScaleAnimation(IntSize(), false, 1.25, base::T imeDelta()); 1040 layerTreeHost()->startPageScaleAnimation(gfx::Vector2d(), false, 1.25, b ase::TimeDelta());
1040 } 1041 }
1041 1042
1042 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 1043 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
1043 { 1044 {
1044 impl->rootLayer()->setScrollable(true); 1045 impl->rootLayer()->setScrollable(true);
1045 impl->rootLayer()->setScrollPosition(IntPoint()); 1046 impl->rootLayer()->setScrollOffset(gfx::Vector2d());
1046 impl->setPageScaleFactorAndLimits(impl->pageScaleFactor(), 0.5, 2); 1047 impl->setPageScaleFactorAndLimits(impl->pageScaleFactor(), 0.5, 2);
1047 1048
1048 // We request animation only once. 1049 // We request animation only once.
1049 if (!m_animationRequested) { 1050 if (!m_animationRequested) {
1050 m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&LayerTreeHostTest StartPageScaleAnimation::requestStartPageScaleAnimation, base::Unretained(this)) ); 1051 m_mainThreadProxy->postTask(FROM_HERE, base::Bind(&LayerTreeHostTest StartPageScaleAnimation::requestStartPageScaleAnimation, base::Unretained(this)) );
1051 m_animationRequested = true; 1052 m_animationRequested = true;
1052 } 1053 }
1053 } 1054 }
1054 1055
1055 virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale) OV ERRIDE 1056 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE
1056 { 1057 {
1057 IntPoint position = m_layerTreeHost->rootLayer()->scrollPosition(); 1058 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset();
1058 m_layerTreeHost->rootLayer()->setScrollPosition(position + scrollDelta); 1059 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scrollDelta);
1059 m_layerTreeHost->setPageScaleFactorAndLimits(scale, 0.5, 2); 1060 m_layerTreeHost->setPageScaleFactorAndLimits(scale, 0.5, 2);
1060 } 1061 }
1061 1062
1062 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE 1063 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE
1063 { 1064 {
1064 impl->processScrollDeltas(); 1065 impl->processScrollDeltas();
1065 // We get one commit before the first draw, and the animation doesn't ha ppen until the second draw. 1066 // We get one commit before the first draw, and the animation doesn't ha ppen until the second draw.
1066 if (impl->sourceFrameNumber() == 1) { 1067 if (impl->sourceFrameNumber() == 1) {
1067 EXPECT_EQ(1.25, impl->pageScaleFactor()); 1068 EXPECT_EQ(1.25, impl->pageScaleFactor());
1068 endTest(); 1069 endTest();
(...skipping 1014 matching lines...) Expand 10 before | Expand all | Expand 10 after
2083 2084
2084 virtual void beginTest() OVERRIDE 2085 virtual void beginTest() OVERRIDE
2085 { 2086 {
2086 m_layerTreeHost->rootLayer()->setScrollable(true); 2087 m_layerTreeHost->rootLayer()->setScrollable(true);
2087 postSetNeedsCommitToMainThread(); 2088 postSetNeedsCommitToMainThread();
2088 } 2089 }
2089 2090
2090 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE 2091 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE
2091 { 2092 {
2092 LayerImpl* root = impl->rootLayer(); 2093 LayerImpl* root = impl->rootLayer();
2093 root->setMaxScrollPosition(IntSize(100, 100)); 2094 root->setMaxScrollOffset(gfx::Vector2d(100, 100));
2094 2095
2095 // Check that a fractional scroll delta is correctly accumulated over mu ltiple commits. 2096 // Check that a fractional scroll delta is correctly accumulated over mu ltiple commits.
2096 if (!impl->sourceFrameNumber()) { 2097 if (!impl->sourceFrameNumber()) {
2097 EXPECT_EQ(root->scrollPosition(), IntPoint(0, 0)); 2098 EXPECT_VECTOR_EQ(root->scrollOffset(), gfx::Vector2d(0, 0));
2098 EXPECT_EQ(root->scrollDelta(), FloatSize(0, 0)); 2099 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d(0, 0));
2099 postSetNeedsCommitToMainThread(); 2100 postSetNeedsCommitToMainThread();
2100 } else if (impl->sourceFrameNumber() == 1) { 2101 } else if (impl->sourceFrameNumber() == 1) {
2101 EXPECT_EQ(root->scrollPosition(), flooredIntPoint(m_scrollAmount)); 2102 EXPECT_VECTOR_EQ(root->scrollOffset(), gfx::ToFlooredVector2d(m_scro llAmount));
2102 EXPECT_EQ(root->scrollDelta(), FloatSize(fmod(m_scrollAmount.width() , 1), 0)); 2103 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2dF(fmod(m_scrollAm ount.x(), 1), 0));
2103 postSetNeedsCommitToMainThread(); 2104 postSetNeedsCommitToMainThread();
2104 } else if (impl->sourceFrameNumber() == 2) { 2105 } else if (impl->sourceFrameNumber() == 2) {
2105 EXPECT_EQ(root->scrollPosition(), flooredIntPoint(m_scrollAmount + m _scrollAmount)); 2106 EXPECT_VECTOR_EQ(root->scrollOffset(), gfx::ToFlooredVector2d(m_scro llAmount + m_scrollAmount));
2106 EXPECT_EQ(root->scrollDelta(), FloatSize(fmod(2 * m_scrollAmount.wid th(), 1), 0)); 2107 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2dF(fmod(2 * m_scro llAmount.x(), 1), 0));
2107 endTest(); 2108 endTest();
2108 } 2109 }
2109 root->scrollBy(m_scrollAmount); 2110 root->scrollBy(m_scrollAmount);
2110 } 2111 }
2111 2112
2112 virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale) OV ERRIDE 2113 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE
2113 { 2114 {
2114 IntPoint position = m_layerTreeHost->rootLayer()->scrollPosition(); 2115 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset();
2115 m_layerTreeHost->rootLayer()->setScrollPosition(position + scrollDelta); 2116 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scrollDelta);
2116 } 2117 }
2117 2118
2118 virtual void afterTest() OVERRIDE 2119 virtual void afterTest() OVERRIDE
2119 { 2120 {
2120 } 2121 }
2121 private: 2122 private:
2122 FloatSize m_scrollAmount; 2123 gfx::Vector2dF m_scrollAmount;
2123 }; 2124 };
2124 2125
2125 TEST_F(LayerTreeHostTestFractionalScroll, runMultiThread) 2126 TEST_F(LayerTreeHostTestFractionalScroll, runMultiThread)
2126 { 2127 {
2127 runTest(true); 2128 runTest(true);
2128 } 2129 }
2129 2130
2130 class LayerTreeHostTestFinishAllRendering : public LayerTreeHostTest { 2131 class LayerTreeHostTestFinishAllRendering : public LayerTreeHostTest {
2131 public: 2132 public:
2132 LayerTreeHostTestFinishAllRendering() 2133 LayerTreeHostTestFinishAllRendering()
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
2216 private: 2217 private:
2217 bool m_addedAnimation; 2218 bool m_addedAnimation;
2218 }; 2219 };
2219 2220
2220 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestLayerAddedWithAnimation) 2221 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestLayerAddedWithAnimation)
2221 2222
2222 class LayerTreeHostTestScrollChildLayer : public LayerTreeHostTest, public WebLa yerScrollClient { 2223 class LayerTreeHostTestScrollChildLayer : public LayerTreeHostTest, public WebLa yerScrollClient {
2223 public: 2224 public:
2224 LayerTreeHostTestScrollChildLayer(float deviceScaleFactor) 2225 LayerTreeHostTestScrollChildLayer(float deviceScaleFactor)
2225 : m_deviceScaleFactor(deviceScaleFactor) 2226 : m_deviceScaleFactor(deviceScaleFactor)
2226 , m_initialScroll(IntPoint(10, 20)) 2227 , m_initialScroll(10, 20)
2227 , m_secondScroll(IntPoint(40, 5)) 2228 , m_secondScroll(40, 5)
2228 , m_scrollAmount(2, -1) 2229 , m_scrollAmount(2, -1)
2229 , m_rootScrolls(0) 2230 , m_rootScrolls(0)
2230 { 2231 {
2231 } 2232 }
2232 2233
2233 virtual void beginTest() OVERRIDE 2234 virtual void beginTest() OVERRIDE
2234 { 2235 {
2235 gfx::Size viewportSize(10, 10); 2236 gfx::Size viewportSize(10, 10);
2236 gfx::Size deviceViewportSize = gfx::ToCeiledSize(viewportSize.Scale(m_de viceScaleFactor)); 2237 gfx::Size deviceViewportSize = gfx::ToCeiledSize(viewportSize.Scale(m_de viceScaleFactor));
2237 m_layerTreeHost->setViewportSize(viewportSize, deviceViewportSize); 2238 m_layerTreeHost->setViewportSize(viewportSize, deviceViewportSize);
2238 2239
2239 m_layerTreeHost->setDeviceScaleFactor(m_deviceScaleFactor); 2240 m_layerTreeHost->setDeviceScaleFactor(m_deviceScaleFactor);
2240 2241
2241 m_rootScrollLayer = ContentLayer::create(&m_mockDelegate); 2242 m_rootScrollLayer = ContentLayer::create(&m_mockDelegate);
2242 m_rootScrollLayer->setBounds(gfx::Size(110, 110)); 2243 m_rootScrollLayer->setBounds(gfx::Size(110, 110));
2243 2244
2244 m_rootScrollLayer->setPosition(gfx::PointF(0, 0)); 2245 m_rootScrollLayer->setPosition(gfx::PointF(0, 0));
2245 m_rootScrollLayer->setAnchorPoint(gfx::PointF(0, 0)); 2246 m_rootScrollLayer->setAnchorPoint(gfx::PointF(0, 0));
2246 2247
2247 m_rootScrollLayer->setIsDrawable(true); 2248 m_rootScrollLayer->setIsDrawable(true);
2248 m_rootScrollLayer->setScrollable(true); 2249 m_rootScrollLayer->setScrollable(true);
2249 m_rootScrollLayer->setMaxScrollPosition(IntSize(100, 100)); 2250 m_rootScrollLayer->setMaxScrollOffset(gfx::Vector2d(100, 100));
2250 m_layerTreeHost->rootLayer()->addChild(m_rootScrollLayer); 2251 m_layerTreeHost->rootLayer()->addChild(m_rootScrollLayer);
2251 2252
2252 m_childLayer = ContentLayer::create(&m_mockDelegate); 2253 m_childLayer = ContentLayer::create(&m_mockDelegate);
2253 m_childLayer->setLayerScrollClient(this); 2254 m_childLayer->setLayerScrollClient(this);
2254 m_childLayer->setBounds(gfx::Size(110, 110)); 2255 m_childLayer->setBounds(gfx::Size(110, 110));
2255 2256
2256 // The scrolls will happen at 5, 5. If they are treated like device pixe ls, then 2257 // The scrolls will happen at 5, 5. If they are treated like device pixe ls, then
2257 // they will be at 2.5, 2.5 in logical pixels, and will miss this layer. 2258 // they will be at 2.5, 2.5 in logical pixels, and will miss this layer.
2258 m_childLayer->setPosition(gfx::PointF(5, 5)); 2259 m_childLayer->setPosition(gfx::PointF(5, 5));
2259 m_childLayer->setAnchorPoint(gfx::PointF(0, 0)); 2260 m_childLayer->setAnchorPoint(gfx::PointF(0, 0));
2260 2261
2261 m_childLayer->setIsDrawable(true); 2262 m_childLayer->setIsDrawable(true);
2262 m_childLayer->setScrollable(true); 2263 m_childLayer->setScrollable(true);
2263 m_childLayer->setMaxScrollPosition(IntSize(100, 100)); 2264 m_childLayer->setMaxScrollOffset(gfx::Vector2d(100, 100));
2264 m_rootScrollLayer->addChild(m_childLayer); 2265 m_rootScrollLayer->addChild(m_childLayer);
2265 2266
2266 m_childLayer->setScrollPosition(m_initialScroll); 2267 m_childLayer->setScrollOffset(m_initialScroll);
2267 2268
2268 postSetNeedsCommitToMainThread(); 2269 postSetNeedsCommitToMainThread();
2269 } 2270 }
2270 2271
2271 virtual void didScroll() OVERRIDE 2272 virtual void didScroll() OVERRIDE
2272 { 2273 {
2273 m_finalScrollPosition = m_childLayer->scrollPosition(); 2274 m_finalScrollOffset = m_childLayer->scrollOffset();
2274 } 2275 }
2275 2276
2276 virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale) OV ERRIDE 2277 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE
2277 { 2278 {
2278 IntPoint position = m_rootScrollLayer->scrollPosition(); 2279 gfx::Vector2d offset = m_rootScrollLayer->scrollOffset();
2279 m_rootScrollLayer->setScrollPosition(position + scrollDelta); 2280 m_rootScrollLayer->setScrollOffset(offset + scrollDelta);
2280 m_rootScrolls++; 2281 m_rootScrolls++;
2281 } 2282 }
2282 2283
2283 virtual void layout() OVERRIDE 2284 virtual void layout() OVERRIDE
2284 { 2285 {
2285 EXPECT_EQ(IntPoint(), m_rootScrollLayer->scrollPosition()); 2286 EXPECT_VECTOR_EQ(gfx::Vector2d(), m_rootScrollLayer->scrollOffset());
2286 2287
2287 switch (m_layerTreeHost->commitNumber()) { 2288 switch (m_layerTreeHost->commitNumber()) {
2288 case 0: 2289 case 0:
2289 EXPECT_POINT_EQ(m_initialScroll, m_childLayer->scrollPosition()); 2290 EXPECT_VECTOR_EQ(m_initialScroll, m_childLayer->scrollOffset());
2290 break; 2291 break;
2291 case 1: 2292 case 1:
2292 EXPECT_POINT_EQ(m_initialScroll + m_scrollAmount, m_childLayer->scro llPosition()); 2293 EXPECT_VECTOR_EQ(m_initialScroll + m_scrollAmount, m_childLayer->scr ollOffset());
2293 2294
2294 // Pretend like Javascript updated the scroll position itself. 2295 // Pretend like Javascript updated the scroll position itself.
2295 m_childLayer->setScrollPosition(m_secondScroll); 2296 m_childLayer->setScrollOffset(m_secondScroll);
2296 break; 2297 break;
2297 case 2: 2298 case 2:
2298 EXPECT_POINT_EQ(m_secondScroll + m_scrollAmount, m_childLayer->scrol lPosition()); 2299 EXPECT_VECTOR_EQ(m_secondScroll + m_scrollAmount, m_childLayer->scro llOffset());
2299 break; 2300 break;
2300 } 2301 }
2301 } 2302 }
2302 2303
2303 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE 2304 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE
2304 { 2305 {
2305 LayerImpl* root = impl->rootLayer(); 2306 LayerImpl* root = impl->rootLayer();
2306 LayerImpl* rootScrollLayer = root->children()[0]; 2307 LayerImpl* rootScrollLayer = root->children()[0];
2307 LayerImpl* childLayer = rootScrollLayer->children()[0]; 2308 LayerImpl* childLayer = rootScrollLayer->children()[0];
2308 2309
2309 EXPECT_SIZE_EQ(root->scrollDelta(), IntSize()); 2310 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
2310 EXPECT_SIZE_EQ(rootScrollLayer->scrollDelta(), IntSize()); 2311 EXPECT_VECTOR_EQ(rootScrollLayer->scrollDelta(), gfx::Vector2d());
2311 EXPECT_EQ(rootScrollLayer->bounds().width() * m_deviceScaleFactor, rootS crollLayer->contentBounds().width()); 2312 EXPECT_EQ(rootScrollLayer->bounds().width() * m_deviceScaleFactor, rootS crollLayer->contentBounds().width());
2312 EXPECT_EQ(rootScrollLayer->bounds().height() * m_deviceScaleFactor, root ScrollLayer->contentBounds().height()); 2313 EXPECT_EQ(rootScrollLayer->bounds().height() * m_deviceScaleFactor, root ScrollLayer->contentBounds().height());
2313 EXPECT_EQ(childLayer->bounds().width() * m_deviceScaleFactor, childLayer ->contentBounds().width()); 2314 EXPECT_EQ(childLayer->bounds().width() * m_deviceScaleFactor, childLayer ->contentBounds().width());
2314 EXPECT_EQ(childLayer->bounds().height() * m_deviceScaleFactor, childLaye r->contentBounds().height()); 2315 EXPECT_EQ(childLayer->bounds().height() * m_deviceScaleFactor, childLaye r->contentBounds().height());
2315 2316
2316 switch (impl->sourceFrameNumber()) { 2317 switch (impl->sourceFrameNumber()) {
2317 case 0: 2318 case 0:
2318 // Gesture scroll on impl thread. 2319 // Gesture scroll on impl thread.
2319 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Ge sture), InputHandlerClient::ScrollStarted); 2320 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Ge sture), InputHandlerClient::ScrollStarted);
2320 impl->scrollBy(gfx::Point(), m_scrollAmount); 2321 impl->scrollBy(gfx::Point(), m_scrollAmount);
2321 impl->scrollEnd(); 2322 impl->scrollEnd();
2322 2323
2323 EXPECT_POINT_EQ(m_initialScroll, childLayer->scrollPosition()); 2324 EXPECT_VECTOR_EQ(m_initialScroll, childLayer->scrollOffset());
2324 EXPECT_SIZE_EQ(m_scrollAmount, childLayer->scrollDelta()); 2325 EXPECT_VECTOR_EQ(m_scrollAmount, childLayer->scrollDelta());
2325 break; 2326 break;
2326 case 1: 2327 case 1:
2327 // Wheel scroll on impl thread. 2328 // Wheel scroll on impl thread.
2328 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Wh eel), InputHandlerClient::ScrollStarted); 2329 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Wh eel), InputHandlerClient::ScrollStarted);
2329 impl->scrollBy(gfx::Point(), m_scrollAmount); 2330 impl->scrollBy(gfx::Point(), m_scrollAmount);
2330 impl->scrollEnd(); 2331 impl->scrollEnd();
2331 2332
2332 EXPECT_POINT_EQ(m_secondScroll, childLayer->scrollPosition()); 2333 EXPECT_VECTOR_EQ(m_secondScroll, childLayer->scrollOffset());
2333 EXPECT_SIZE_EQ(m_scrollAmount, childLayer->scrollDelta()); 2334 EXPECT_VECTOR_EQ(m_scrollAmount, childLayer->scrollDelta());
2334 break; 2335 break;
2335 case 2: 2336 case 2:
2336 EXPECT_POINT_EQ(m_secondScroll + m_scrollAmount, childLayer->scrollP osition()); 2337 EXPECT_VECTOR_EQ(m_secondScroll + m_scrollAmount, childLayer->scroll Offset());
2337 EXPECT_SIZE_EQ(IntSize(0, 0), childLayer->scrollDelta()); 2338 EXPECT_VECTOR_EQ(gfx::Vector2d(0, 0), childLayer->scrollDelta());
2338 2339
2339 endTest(); 2340 endTest();
2340 } 2341 }
2341 } 2342 }
2342 2343
2343 virtual void afterTest() OVERRIDE 2344 virtual void afterTest() OVERRIDE
2344 { 2345 {
2345 EXPECT_EQ(0, m_rootScrolls); 2346 EXPECT_EQ(0, m_rootScrolls);
2346 EXPECT_POINT_EQ(m_secondScroll + m_scrollAmount, m_finalScrollPosition); 2347 EXPECT_VECTOR_EQ(m_secondScroll + m_scrollAmount, m_finalScrollOffset);
2347 } 2348 }
2348 2349
2349 private: 2350 private:
2350 float m_deviceScaleFactor; 2351 float m_deviceScaleFactor;
2351 IntPoint m_initialScroll; 2352 gfx::Vector2d m_initialScroll;
2352 IntPoint m_secondScroll; 2353 gfx::Vector2d m_secondScroll;
2353 IntSize m_scrollAmount; 2354 gfx::Vector2d m_scrollAmount;
2354 int m_rootScrolls; 2355 int m_rootScrolls;
2355 IntPoint m_finalScrollPosition; 2356 gfx::Vector2d m_finalScrollOffset;
2356 2357
2357 MockContentLayerClient m_mockDelegate; 2358 MockContentLayerClient m_mockDelegate;
2358 scoped_refptr<Layer> m_rootScrollLayer; 2359 scoped_refptr<Layer> m_rootScrollLayer;
2359 scoped_refptr<Layer> m_childLayer; 2360 scoped_refptr<Layer> m_childLayer;
2360 }; 2361 };
2361 2362
2362 class LayerTreeHostTestScrollChildLayerNormalDpi : public LayerTreeHostTestScrol lChildLayer { 2363 class LayerTreeHostTestScrollChildLayerNormalDpi : public LayerTreeHostTestScrol lChildLayer {
2363 public: 2364 public:
2364 LayerTreeHostTestScrollChildLayerNormalDpi() : LayerTreeHostTestScrollChildL ayer(1) { } 2365 LayerTreeHostTestScrollChildLayerNormalDpi() : LayerTreeHostTestScrollChildL ayer(1) { }
2365 }; 2366 };
(...skipping 10 matching lines...) Expand all
2376 2377
2377 TEST_F(LayerTreeHostTestScrollChildLayerHighDpi, runMultiThread) 2378 TEST_F(LayerTreeHostTestScrollChildLayerHighDpi, runMultiThread)
2378 { 2379 {
2379 runTest(true); 2380 runTest(true);
2380 } 2381 }
2381 2382
2382 class LayerTreeHostTestScrollRootScrollLayer : public LayerTreeHostTest { 2383 class LayerTreeHostTestScrollRootScrollLayer : public LayerTreeHostTest {
2383 public: 2384 public:
2384 LayerTreeHostTestScrollRootScrollLayer(float deviceScaleFactor) 2385 LayerTreeHostTestScrollRootScrollLayer(float deviceScaleFactor)
2385 : m_deviceScaleFactor(deviceScaleFactor) 2386 : m_deviceScaleFactor(deviceScaleFactor)
2386 , m_initialScroll(IntPoint(10, 20)) 2387 , m_initialScroll(10, 20)
2387 , m_secondScroll(IntPoint(40, 5)) 2388 , m_secondScroll(40, 5)
2388 , m_scrollAmount(2, -1) 2389 , m_scrollAmount(2, -1)
2389 , m_rootScrolls(0) 2390 , m_rootScrolls(0)
2390 { 2391 {
2391 } 2392 }
2392 2393
2393 virtual void beginTest() OVERRIDE 2394 virtual void beginTest() OVERRIDE
2394 { 2395 {
2395 gfx::Size viewportSize(10, 10); 2396 gfx::Size viewportSize(10, 10);
2396 gfx::Size deviceViewportSize = gfx::ToCeiledSize(viewportSize.Scale(m_de viceScaleFactor)); 2397 gfx::Size deviceViewportSize = gfx::ToCeiledSize(viewportSize.Scale(m_de viceScaleFactor));
2397 m_layerTreeHost->setViewportSize(viewportSize, deviceViewportSize); 2398 m_layerTreeHost->setViewportSize(viewportSize, deviceViewportSize);
2398 2399
2399 m_layerTreeHost->setDeviceScaleFactor(m_deviceScaleFactor); 2400 m_layerTreeHost->setDeviceScaleFactor(m_deviceScaleFactor);
2400 2401
2401 m_rootScrollLayer = ContentLayer::create(&m_mockDelegate); 2402 m_rootScrollLayer = ContentLayer::create(&m_mockDelegate);
2402 m_rootScrollLayer->setBounds(IntSize(110, 110)); 2403 m_rootScrollLayer->setBounds(gfx::Size(110, 110));
2403 2404
2404 m_rootScrollLayer->setPosition(gfx::PointF(0, 0)); 2405 m_rootScrollLayer->setPosition(gfx::PointF(0, 0));
2405 m_rootScrollLayer->setAnchorPoint(gfx::PointF(0, 0)); 2406 m_rootScrollLayer->setAnchorPoint(gfx::PointF(0, 0));
2406 2407
2407 m_rootScrollLayer->setIsDrawable(true); 2408 m_rootScrollLayer->setIsDrawable(true);
2408 m_rootScrollLayer->setScrollable(true); 2409 m_rootScrollLayer->setScrollable(true);
2409 m_rootScrollLayer->setMaxScrollPosition(IntSize(100, 100)); 2410 m_rootScrollLayer->setMaxScrollOffset(gfx::Vector2d(100, 100));
2410 m_layerTreeHost->rootLayer()->addChild(m_rootScrollLayer); 2411 m_layerTreeHost->rootLayer()->addChild(m_rootScrollLayer);
2411 2412
2412 m_rootScrollLayer->setScrollPosition(m_initialScroll); 2413 m_rootScrollLayer->setScrollOffset(m_initialScroll);
2413 2414
2414 postSetNeedsCommitToMainThread(); 2415 postSetNeedsCommitToMainThread();
2415 } 2416 }
2416 2417
2417 virtual void applyScrollAndScale(const IntSize& scrollDelta, float scale) OV ERRIDE 2418 virtual void applyScrollAndScale(gfx::Vector2d scrollDelta, float scale) OVE RRIDE
2418 { 2419 {
2419 IntPoint position = m_rootScrollLayer->scrollPosition(); 2420 gfx::Vector2d offset = m_rootScrollLayer->scrollOffset();
2420 m_rootScrollLayer->setScrollPosition(position + scrollDelta); 2421 m_rootScrollLayer->setScrollOffset(offset + scrollDelta);
2421 m_rootScrolls++; 2422 m_rootScrolls++;
2422 } 2423 }
2423 2424
2424 virtual void layout() OVERRIDE 2425 virtual void layout() OVERRIDE
2425 { 2426 {
2426 switch (m_layerTreeHost->commitNumber()) { 2427 switch (m_layerTreeHost->commitNumber()) {
2427 case 0: 2428 case 0:
2428 EXPECT_POINT_EQ(m_initialScroll, m_rootScrollLayer->scrollPosition() ); 2429 EXPECT_VECTOR_EQ(m_initialScroll, m_rootScrollLayer->scrollOffset()) ;
2429 break; 2430 break;
2430 case 1: 2431 case 1:
2431 EXPECT_POINT_EQ(m_initialScroll + m_scrollAmount, m_rootScrollLayer- >scrollPosition()); 2432 EXPECT_VECTOR_EQ(m_initialScroll + m_scrollAmount, m_rootScrollLayer ->scrollOffset());
2432 2433
2433 // Pretend like Javascript updated the scroll position itself. 2434 // Pretend like Javascript updated the scroll position itself.
2434 m_rootScrollLayer->setScrollPosition(m_secondScroll); 2435 m_rootScrollLayer->setScrollOffset(m_secondScroll);
2435 break; 2436 break;
2436 case 2: 2437 case 2:
2437 EXPECT_POINT_EQ(m_secondScroll + m_scrollAmount, m_rootScrollLayer-> scrollPosition()); 2438 EXPECT_VECTOR_EQ(m_secondScroll + m_scrollAmount, m_rootScrollLayer- >scrollOffset());
2438 break; 2439 break;
2439 } 2440 }
2440 } 2441 }
2441 2442
2442 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE 2443 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE
2443 { 2444 {
2444 LayerImpl* root = impl->rootLayer(); 2445 LayerImpl* root = impl->rootLayer();
2445 LayerImpl* rootScrollLayer = root->children()[0]; 2446 LayerImpl* rootScrollLayer = root->children()[0];
2446 2447
2447 EXPECT_SIZE_EQ(root->scrollDelta(), IntSize()); 2448 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d());
2448 EXPECT_EQ(rootScrollLayer->bounds().width() * m_deviceScaleFactor, rootS crollLayer->contentBounds().width()); 2449 EXPECT_EQ(rootScrollLayer->bounds().width() * m_deviceScaleFactor, rootS crollLayer->contentBounds().width());
2449 EXPECT_EQ(rootScrollLayer->bounds().height() * m_deviceScaleFactor, root ScrollLayer->contentBounds().height()); 2450 EXPECT_EQ(rootScrollLayer->bounds().height() * m_deviceScaleFactor, root ScrollLayer->contentBounds().height());
2450 2451
2451 switch (impl->sourceFrameNumber()) { 2452 switch (impl->sourceFrameNumber()) {
2452 case 0: 2453 case 0:
2453 // Gesture scroll on impl thread. 2454 // Gesture scroll on impl thread.
2454 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Ge sture), InputHandlerClient::ScrollStarted); 2455 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Ge sture), InputHandlerClient::ScrollStarted);
2455 impl->scrollBy(gfx::Point(), m_scrollAmount); 2456 impl->scrollBy(gfx::Point(), m_scrollAmount);
2456 impl->scrollEnd(); 2457 impl->scrollEnd();
2457 2458
2458 EXPECT_POINT_EQ(m_initialScroll, rootScrollLayer->scrollPosition()); 2459 EXPECT_VECTOR_EQ(m_initialScroll, rootScrollLayer->scrollOffset());
2459 EXPECT_SIZE_EQ(m_scrollAmount, rootScrollLayer->scrollDelta()); 2460 EXPECT_VECTOR_EQ(m_scrollAmount, rootScrollLayer->scrollDelta());
2460 break; 2461 break;
2461 case 1: 2462 case 1:
2462 // Wheel scroll on impl thread. 2463 // Wheel scroll on impl thread.
2463 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Wh eel), InputHandlerClient::ScrollStarted); 2464 EXPECT_EQ(impl->scrollBegin(gfx::Point(5, 5), InputHandlerClient::Wh eel), InputHandlerClient::ScrollStarted);
2464 impl->scrollBy(gfx::Point(), m_scrollAmount); 2465 impl->scrollBy(gfx::Point(), m_scrollAmount);
2465 impl->scrollEnd(); 2466 impl->scrollEnd();
2466 2467
2467 EXPECT_POINT_EQ(m_secondScroll, rootScrollLayer->scrollPosition()); 2468 EXPECT_VECTOR_EQ(m_secondScroll, rootScrollLayer->scrollOffset());
2468 EXPECT_SIZE_EQ(m_scrollAmount, rootScrollLayer->scrollDelta()); 2469 EXPECT_VECTOR_EQ(m_scrollAmount, rootScrollLayer->scrollDelta());
2469 break; 2470 break;
2470 case 2: 2471 case 2:
2471 EXPECT_POINT_EQ(m_secondScroll + m_scrollAmount, rootScrollLayer->sc rollPosition()); 2472 EXPECT_VECTOR_EQ(m_secondScroll + m_scrollAmount, rootScrollLayer->s crollOffset());
2472 EXPECT_SIZE_EQ(IntSize(0, 0), rootScrollLayer->scrollDelta()); 2473 EXPECT_VECTOR_EQ(gfx::Vector2d(0, 0), rootScrollLayer->scrollDelta() );
2473 2474
2474 endTest(); 2475 endTest();
2475 } 2476 }
2476 } 2477 }
2477 2478
2478 virtual void afterTest() OVERRIDE 2479 virtual void afterTest() OVERRIDE
2479 { 2480 {
2480 EXPECT_EQ(2, m_rootScrolls); 2481 EXPECT_EQ(2, m_rootScrolls);
2481 } 2482 }
2482 2483
2483 private: 2484 private:
2484 float m_deviceScaleFactor; 2485 float m_deviceScaleFactor;
2485 IntPoint m_initialScroll; 2486 gfx::Vector2d m_initialScroll;
2486 IntPoint m_secondScroll; 2487 gfx::Vector2d m_secondScroll;
2487 IntSize m_scrollAmount; 2488 gfx::Vector2d m_scrollAmount;
2488 int m_rootScrolls; 2489 int m_rootScrolls;
2489 2490
2490 MockContentLayerClient m_mockDelegate; 2491 MockContentLayerClient m_mockDelegate;
2491 scoped_refptr<Layer> m_rootScrollLayer; 2492 scoped_refptr<Layer> m_rootScrollLayer;
2492 }; 2493 };
2493 2494
2494 class LayerTreeHostTestScrollRootScrollLayerNormalDpi : public LayerTreeHostTest ScrollRootScrollLayer { 2495 class LayerTreeHostTestScrollRootScrollLayerNormalDpi : public LayerTreeHostTest ScrollRootScrollLayer {
2495 public: 2496 public:
2496 LayerTreeHostTestScrollRootScrollLayerNormalDpi() : LayerTreeHostTestScrollR ootScrollLayer(1) { } 2497 LayerTreeHostTestScrollRootScrollLayerNormalDpi() : LayerTreeHostTestScrollR ootScrollLayer(1) { }
2497 }; 2498 };
(...skipping 766 matching lines...) Expand 10 before | Expand all | Expand 10 after
3264 int m_numCommitsDeferred; 3265 int m_numCommitsDeferred;
3265 int m_numCompleteCommits; 3266 int m_numCompleteCommits;
3266 }; 3267 };
3267 3268
3268 TEST_F(LayerTreeHostTestDeferCommits, runMultiThread) 3269 TEST_F(LayerTreeHostTestDeferCommits, runMultiThread)
3269 { 3270 {
3270 runTest(true); 3271 runTest(true);
3271 } 3272 }
3272 3273
3273 } // namespace 3274 } // namespace
OLDNEW
« no previous file with comments | « cc/layer_tree_host_impl_unittest.cc ('k') | cc/layer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698