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

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

Issue 274323004: NOT FOR LANDING - [WebView] Allow fling animation via the LayerScrollOffsetDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix test Created 5 years, 9 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 unified diff | Download patch
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 3879 matching lines...) Expand 10 before | Expand all | Expand 10 after
3890 host_impl_->active_tree()->InnerViewportScrollLayer(); 3890 host_impl_->active_tree()->InnerViewportScrollLayer();
3891 EXPECT_EQ(gfx::ScrollOffset(0, 0), 3891 EXPECT_EQ(gfx::ScrollOffset(0, 0),
3892 inner_viewport_scroll_layer->MaxScrollOffset()); 3892 inner_viewport_scroll_layer->MaxScrollOffset());
3893 } 3893 }
3894 3894
3895 class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate { 3895 class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate {
3896 public: 3896 public:
3897 TestScrollOffsetDelegate() 3897 TestScrollOffsetDelegate()
3898 : page_scale_factor_(0.f), 3898 : page_scale_factor_(0.f),
3899 min_page_scale_factor_(-1.f), 3899 min_page_scale_factor_(-1.f),
3900 max_page_scale_factor_(-1.f) {} 3900 max_page_scale_factor_(-1.f),
3901 needs_animate_(false) {}
3901 3902
3902 ~TestScrollOffsetDelegate() override {} 3903 ~TestScrollOffsetDelegate() override {}
3903 3904
3904 gfx::ScrollOffset GetTotalScrollOffset() override { 3905 gfx::ScrollOffset GetTotalScrollOffset() override {
3905 return getter_return_value_; 3906 return getter_return_value_;
3906 } 3907 }
3907 3908
3908 bool IsExternalFlingActive() const override { return false; } 3909 bool IsExternalFlingActive() const override { return false; }
3909 3910
3911 void SetNeedsAnimate(const AnimationCallback&) override {
3912 needs_animate_ = true;
3913 }
3914
3910 void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset, 3915 void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset,
3911 const gfx::ScrollOffset& max_scroll_offset, 3916 const gfx::ScrollOffset& max_scroll_offset,
3912 const gfx::SizeF& scrollable_size, 3917 const gfx::SizeF& scrollable_size,
3913 float page_scale_factor, 3918 float page_scale_factor,
3914 float min_page_scale_factor, 3919 float min_page_scale_factor,
3915 float max_page_scale_factor) override { 3920 float max_page_scale_factor) override {
3916 DCHECK(total_scroll_offset.x() <= max_scroll_offset.x()); 3921 DCHECK(total_scroll_offset.x() <= max_scroll_offset.x());
3917 DCHECK(total_scroll_offset.y() <= max_scroll_offset.y()); 3922 DCHECK(total_scroll_offset.y() <= max_scroll_offset.y());
3918 last_set_scroll_offset_ = total_scroll_offset; 3923 last_set_scroll_offset_ = total_scroll_offset;
3919 max_scroll_offset_ = max_scroll_offset; 3924 max_scroll_offset_ = max_scroll_offset;
3920 scrollable_size_ = scrollable_size; 3925 scrollable_size_ = scrollable_size;
3921 page_scale_factor_ = page_scale_factor; 3926 page_scale_factor_ = page_scale_factor;
3922 min_page_scale_factor_ = min_page_scale_factor; 3927 min_page_scale_factor_ = min_page_scale_factor;
3923 max_page_scale_factor_ = max_page_scale_factor; 3928 max_page_scale_factor_ = max_page_scale_factor;
3924 3929
3925 set_getter_return_value(last_set_scroll_offset_); 3930 set_getter_return_value(last_set_scroll_offset_);
3926 } 3931 }
3927 3932
3933 bool GetAndResetNeedsAnimate() {
3934 bool needs_animate = needs_animate_;
3935 needs_animate_ = false;
3936 return needs_animate;
3937 }
3938
3928 gfx::ScrollOffset last_set_scroll_offset() { 3939 gfx::ScrollOffset last_set_scroll_offset() {
3929 return last_set_scroll_offset_; 3940 return last_set_scroll_offset_;
3930 } 3941 }
3931 3942
3932 void set_getter_return_value(const gfx::ScrollOffset& value) { 3943 void set_getter_return_value(const gfx::ScrollOffset& value) {
3933 getter_return_value_ = value; 3944 getter_return_value_ = value;
3934 } 3945 }
3935 3946
3936 gfx::ScrollOffset max_scroll_offset() const { 3947 gfx::ScrollOffset max_scroll_offset() const {
3937 return max_scroll_offset_; 3948 return max_scroll_offset_;
(...skipping 16 matching lines...) Expand all
3954 } 3965 }
3955 3966
3956 private: 3967 private:
3957 gfx::ScrollOffset last_set_scroll_offset_; 3968 gfx::ScrollOffset last_set_scroll_offset_;
3958 gfx::ScrollOffset getter_return_value_; 3969 gfx::ScrollOffset getter_return_value_;
3959 gfx::ScrollOffset max_scroll_offset_; 3970 gfx::ScrollOffset max_scroll_offset_;
3960 gfx::SizeF scrollable_size_; 3971 gfx::SizeF scrollable_size_;
3961 float page_scale_factor_; 3972 float page_scale_factor_;
3962 float min_page_scale_factor_; 3973 float min_page_scale_factor_;
3963 float max_page_scale_factor_; 3974 float max_page_scale_factor_;
3975 bool needs_animate_;
3964 }; 3976 };
3965 3977
3978 // TODO(jdduke): Test root fling animation.
3966 TEST_F(LayerTreeHostImplTest, RootLayerScrollOffsetDelegation) { 3979 TEST_F(LayerTreeHostImplTest, RootLayerScrollOffsetDelegation) {
3967 TestScrollOffsetDelegate scroll_delegate; 3980 TestScrollOffsetDelegate scroll_delegate;
3968 host_impl_->SetViewportSize(gfx::Size(10, 20)); 3981 host_impl_->SetViewportSize(gfx::Size(10, 20));
3969 LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 100)); 3982 LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 100));
3970 LayerImpl* clip_layer = scroll_layer->parent()->parent(); 3983 LayerImpl* clip_layer = scroll_layer->parent()->parent();
3971 clip_layer->SetBounds(gfx::Size(10, 20)); 3984 clip_layer->SetBounds(gfx::Size(10, 20));
3972 3985
3973 // Setting the delegate results in the current scroll offset being set. 3986 // Setting the delegate results in the current scroll offset being set.
3974 gfx::Vector2dF initial_scroll_delta(10.f, 10.f); 3987 gfx::Vector2dF initial_scroll_delta(10.f, 10.f);
3975 scroll_layer->PushScrollOffsetFromMainThread(gfx::ScrollOffset()); 3988 scroll_layer->PushScrollOffsetFromMainThread(gfx::ScrollOffset());
(...skipping 4499 matching lines...) Expand 10 before | Expand all | Expand 10 after
8475 // surface. 8488 // surface.
8476 EXPECT_EQ(0, num_lost_surfaces_); 8489 EXPECT_EQ(0, num_lost_surfaces_);
8477 host_impl_->DidLoseOutputSurface(); 8490 host_impl_->DidLoseOutputSurface();
8478 EXPECT_EQ(1, num_lost_surfaces_); 8491 EXPECT_EQ(1, num_lost_surfaces_);
8479 host_impl_->DidLoseOutputSurface(); 8492 host_impl_->DidLoseOutputSurface();
8480 EXPECT_LE(1, num_lost_surfaces_); 8493 EXPECT_LE(1, num_lost_surfaces_);
8481 } 8494 }
8482 8495
8483 } // namespace 8496 } // namespace
8484 } // namespace cc 8497 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | content/browser/android/in_process/synchronous_compositor_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698