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

Side by Side Diff: cc/trees/layer_tree_host_impl_unittest.cc

Issue 761903003: Update from https://crrev.com/306655 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_pixeltest_masks.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 "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 927 matching lines...) Expand 10 before | Expand all | Expand 10 after
938 938
939 scoped_ptr<ScrollAndScaleSet> scroll_info = 939 scoped_ptr<ScrollAndScaleSet> scroll_info =
940 host_impl_->ProcessScrollDeltas(); 940 host_impl_->ProcessScrollDeltas();
941 EXPECT_EQ(scroll_info->page_scale_delta, page_scale_delta); 941 EXPECT_EQ(scroll_info->page_scale_delta, page_scale_delta);
942 942
943 EXPECT_EQ(gfx::ScrollOffset(75.0, 75.0).ToString(), 943 EXPECT_EQ(gfx::ScrollOffset(75.0, 75.0).ToString(),
944 scroll_layer->MaxScrollOffset().ToString()); 944 scroll_layer->MaxScrollOffset().ToString());
945 } 945 }
946 946
947 // Scrolling after a pinch gesture should always be in local space. The 947 // Scrolling after a pinch gesture should always be in local space. The
948 // scroll deltas do not have the page scale factor applied. 948 // scroll deltas have the page scale factor applied.
949 { 949 {
950 host_impl_->active_tree()->SetPageScaleFactorAndLimits( 950 host_impl_->active_tree()->SetPageScaleFactorAndLimits(
951 page_scale_factor, min_page_scale, max_page_scale); 951 page_scale_factor, min_page_scale, max_page_scale);
952 host_impl_->active_tree()->SetPageScaleDelta(1.f); 952 host_impl_->active_tree()->SetPageScaleDelta(1.f);
953 scroll_layer->SetScrollDelta(gfx::Vector2d()); 953 scroll_layer->SetScrollDelta(gfx::Vector2d());
954 954
955 float page_scale_delta = 2.f; 955 float page_scale_delta = 2.f;
956 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture); 956 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture);
957 host_impl_->PinchGestureBegin(); 957 host_impl_->PinchGestureBegin();
958 host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point()); 958 host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point());
959 host_impl_->PinchGestureEnd(); 959 host_impl_->PinchGestureEnd();
960 host_impl_->ScrollEnd(); 960 host_impl_->ScrollEnd();
961 961
962 gfx::Vector2d scroll_delta(0, 10); 962 gfx::Vector2d scroll_delta(0, 10);
963 EXPECT_EQ(InputHandler::ScrollStarted, 963 EXPECT_EQ(InputHandler::ScrollStarted,
964 host_impl_->ScrollBegin(gfx::Point(5, 5), 964 host_impl_->ScrollBegin(gfx::Point(5, 5),
965 InputHandler::Wheel)); 965 InputHandler::Wheel));
966 host_impl_->ScrollBy(gfx::Point(), scroll_delta); 966 host_impl_->ScrollBy(gfx::Point(), scroll_delta);
967 host_impl_->ScrollEnd(); 967 host_impl_->ScrollEnd();
968 968
969 scoped_ptr<ScrollAndScaleSet> scroll_info = 969 scoped_ptr<ScrollAndScaleSet> scroll_info =
970 host_impl_->ProcessScrollDeltas(); 970 host_impl_->ProcessScrollDeltas();
971 ExpectContains(*scroll_info.get(), 971 ExpectContains(*scroll_info.get(), scroll_layer->id(),
972 scroll_layer->id(), 972 gfx::Vector2d(0, scroll_delta.y() / page_scale_delta));
973 scroll_delta);
974 } 973 }
975 } 974 }
976 975
977 TEST_F(LayerTreeHostImplTest, ScrollWithSwapPromises) { 976 TEST_F(LayerTreeHostImplTest, ScrollWithSwapPromises) {
978 ui::LatencyInfo latency_info; 977 ui::LatencyInfo latency_info;
979 latency_info.trace_id = 1234; 978 latency_info.trace_id = 1234;
980 scoped_ptr<SwapPromise> swap_promise( 979 scoped_ptr<SwapPromise> swap_promise(
981 new LatencyInfoSwapPromise(latency_info)); 980 new LatencyInfoSwapPromise(latency_info));
982 981
983 SetupScrollAndContentsLayers(gfx::Size(100, 100)); 982 SetupScrollAndContentsLayers(gfx::Size(100, 100));
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after
1388 RenderingStatsInstrumentation* rendering_stats_instrumentation) 1387 RenderingStatsInstrumentation* rendering_stats_instrumentation)
1389 : LayerTreeHostImpl(settings, 1388 : LayerTreeHostImpl(settings,
1390 client, 1389 client,
1391 proxy, 1390 proxy,
1392 rendering_stats_instrumentation, 1391 rendering_stats_instrumentation,
1393 manager, 1392 manager,
1394 NULL, 1393 NULL,
1395 0) {} 1394 0) {}
1396 1395
1397 BeginFrameArgs CurrentBeginFrameArgs() const override { 1396 BeginFrameArgs CurrentBeginFrameArgs() const override {
1398 return CreateBeginFrameArgsForTesting(fake_current_physical_time_); 1397 return CreateBeginFrameArgsForTesting(BEGINFRAME_FROM_HERE,
1398 fake_current_physical_time_);
1399 } 1399 }
1400 1400
1401 void SetCurrentPhysicalTimeTicksForTest(base::TimeTicks fake_now) { 1401 void SetCurrentPhysicalTimeTicksForTest(base::TimeTicks fake_now) {
1402 fake_current_physical_time_ = fake_now; 1402 fake_current_physical_time_ = fake_now;
1403 } 1403 }
1404 1404
1405 private: 1405 private:
1406 base::TimeTicks fake_current_physical_time_; 1406 base::TimeTicks fake_current_physical_time_;
1407 }; 1407 };
1408 1408
(...skipping 2180 matching lines...) Expand 10 before | Expand all | Expand 10 after
3589 gfx::Vector2d(0, scroll_delta.y() / scale)); 3589 gfx::Vector2d(0, scroll_delta.y() / scale));
3590 3590
3591 // Reset and scroll down with the wheel. 3591 // Reset and scroll down with the wheel.
3592 scroll_layer->SetScrollDelta(gfx::Vector2dF()); 3592 scroll_layer->SetScrollDelta(gfx::Vector2dF());
3593 gfx::Vector2d wheel_scroll_delta(0, 10); 3593 gfx::Vector2d wheel_scroll_delta(0, 10);
3594 EXPECT_EQ(InputHandler::ScrollStarted, 3594 EXPECT_EQ(InputHandler::ScrollStarted,
3595 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel)); 3595 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel));
3596 host_impl_->ScrollBy(gfx::Point(), wheel_scroll_delta); 3596 host_impl_->ScrollBy(gfx::Point(), wheel_scroll_delta);
3597 host_impl_->ScrollEnd(); 3597 host_impl_->ScrollEnd();
3598 3598
3599 // The scale should not have been applied to the scroll delta. 3599 // It should apply the scale factor to the scroll delta for the wheel event.
3600 scroll_info = host_impl_->ProcessScrollDeltas(); 3600 scroll_info = host_impl_->ProcessScrollDeltas();
3601 ExpectContains(*scroll_info.get(), 3601 ExpectContains(*scroll_info.get(),
3602 scroll_layer->id(), 3602 scroll_layer->id(),
3603 wheel_scroll_delta); 3603 wheel_scroll_delta);
3604 } 3604 }
3605 3605
3606 TEST_F(LayerTreeHostImplTest, ScrollViewportRounding) { 3606 TEST_F(LayerTreeHostImplTest, ScrollViewportRounding) {
3607 int width = 332; 3607 int width = 332;
3608 int height = 20; 3608 int height = 20;
3609 int scale = 3; 3609 int scale = 3;
(...skipping 4183 matching lines...) Expand 10 before | Expand all | Expand 10 after
7793 7793
7794 EXPECT_EQ(2u, raw_pending_layer->did_become_active_call_count()); 7794 EXPECT_EQ(2u, raw_pending_layer->did_become_active_call_count());
7795 EXPECT_EQ(1u, raw_mask_layer->did_become_active_call_count()); 7795 EXPECT_EQ(1u, raw_mask_layer->did_become_active_call_count());
7796 EXPECT_EQ(0u, raw_replica_mask_layer->did_become_active_call_count()); 7796 EXPECT_EQ(0u, raw_replica_mask_layer->did_become_active_call_count());
7797 pending_tree->DidBecomeActive(); 7797 pending_tree->DidBecomeActive();
7798 EXPECT_EQ(3u, raw_pending_layer->did_become_active_call_count()); 7798 EXPECT_EQ(3u, raw_pending_layer->did_become_active_call_count());
7799 EXPECT_EQ(2u, raw_mask_layer->did_become_active_call_count()); 7799 EXPECT_EQ(2u, raw_mask_layer->did_become_active_call_count());
7800 EXPECT_EQ(1u, raw_replica_mask_layer->did_become_active_call_count()); 7800 EXPECT_EQ(1u, raw_replica_mask_layer->did_become_active_call_count());
7801 } 7801 }
7802 7802
7803 TEST_F(LayerTreeHostImplTest, WheelScrollWithPageScaleFactorOnInnerLayer) {
7804 LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 100));
7805 host_impl_->SetViewportSize(gfx::Size(50, 50));
7806 DrawFrame();
7807
7808 EXPECT_EQ(scroll_layer, host_impl_->InnerViewportScrollLayer());
7809
7810 float min_page_scale = 1.f, max_page_scale = 4.f;
7811 float page_scale_factor = 1.f;
7812
7813 // The scroll deltas should have the page scale factor applied.
7814 {
7815 host_impl_->active_tree()->SetPageScaleFactorAndLimits(
7816 page_scale_factor, min_page_scale, max_page_scale);
7817 host_impl_->active_tree()->SetPageScaleDelta(1.f);
7818 scroll_layer->SetScrollDelta(gfx::Vector2d());
7819
7820 float page_scale_delta = 2.f;
7821 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture);
7822 host_impl_->PinchGestureBegin();
7823 host_impl_->PinchGestureUpdate(page_scale_delta, gfx::Point());
7824 host_impl_->PinchGestureEnd();
7825 host_impl_->ScrollEnd();
7826
7827 gfx::Vector2dF scroll_delta(0, 5);
7828 EXPECT_EQ(InputHandler::ScrollStarted,
7829 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel));
7830 EXPECT_VECTOR_EQ(gfx::Vector2dF(), scroll_layer->TotalScrollOffset());
7831
7832 host_impl_->ScrollBy(gfx::Point(), scroll_delta);
7833 host_impl_->ScrollEnd();
7834 EXPECT_VECTOR_EQ(gfx::Vector2dF(0, 2.5), scroll_layer->TotalScrollOffset());
7835 }
7836 }
7837
7803 class LayerTreeHostImplCountingLostSurfaces : public LayerTreeHostImplTest { 7838 class LayerTreeHostImplCountingLostSurfaces : public LayerTreeHostImplTest {
7804 public: 7839 public:
7805 LayerTreeHostImplCountingLostSurfaces() : num_lost_surfaces_(0) {} 7840 LayerTreeHostImplCountingLostSurfaces() : num_lost_surfaces_(0) {}
7806 void DidLoseOutputSurfaceOnImplThread() override { num_lost_surfaces_++; } 7841 void DidLoseOutputSurfaceOnImplThread() override { num_lost_surfaces_++; }
7807 7842
7808 protected: 7843 protected:
7809 int num_lost_surfaces_; 7844 int num_lost_surfaces_;
7810 }; 7845 };
7811 7846
7812 TEST_F(LayerTreeHostImplCountingLostSurfaces, TwiceLostSurface) { 7847 TEST_F(LayerTreeHostImplCountingLostSurfaces, TwiceLostSurface) {
7813 // Really we just need at least one client notification each time 7848 // Really we just need at least one client notification each time
7814 // we go from having a valid output surface to not having a valid output 7849 // we go from having a valid output surface to not having a valid output
7815 // surface. 7850 // surface.
7816 EXPECT_EQ(0, num_lost_surfaces_); 7851 EXPECT_EQ(0, num_lost_surfaces_);
7817 host_impl_->DidLoseOutputSurface(); 7852 host_impl_->DidLoseOutputSurface();
7818 EXPECT_EQ(1, num_lost_surfaces_); 7853 EXPECT_EQ(1, num_lost_surfaces_);
7819 host_impl_->DidLoseOutputSurface(); 7854 host_impl_->DidLoseOutputSurface();
7820 EXPECT_LE(1, num_lost_surfaces_); 7855 EXPECT_LE(1, num_lost_surfaces_);
7821 } 7856 }
7822 7857
7823 } // namespace 7858 } // namespace
7824 } // namespace cc 7859 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_host_pixeltest_masks.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698