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

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

Issue 1063853005: Unify Android Webview and Chrome's fling (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@master
Patch Set: comments Created 5 years, 7 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 3858 matching lines...) Expand 10 before | Expand all | Expand 10 after
3869 host_impl_->active_tree()->InnerViewportScrollLayer(); 3869 host_impl_->active_tree()->InnerViewportScrollLayer();
3870 EXPECT_EQ(gfx::ScrollOffset(0, 0), 3870 EXPECT_EQ(gfx::ScrollOffset(0, 0),
3871 inner_viewport_scroll_layer->MaxScrollOffset()); 3871 inner_viewport_scroll_layer->MaxScrollOffset());
3872 } 3872 }
3873 3873
3874 class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate { 3874 class TestScrollOffsetDelegate : public LayerScrollOffsetDelegate {
3875 public: 3875 public:
3876 TestScrollOffsetDelegate() 3876 TestScrollOffsetDelegate()
3877 : page_scale_factor_(0.f), 3877 : page_scale_factor_(0.f),
3878 min_page_scale_factor_(-1.f), 3878 min_page_scale_factor_(-1.f),
3879 max_page_scale_factor_(-1.f) {} 3879 max_page_scale_factor_(-1.f),
3880 needs_animate_(false) {}
3880 3881
3881 ~TestScrollOffsetDelegate() override {} 3882 ~TestScrollOffsetDelegate() override {}
3882 3883
3883 gfx::ScrollOffset GetTotalScrollOffset() override { 3884 gfx::ScrollOffset GetTotalScrollOffset() override {
3884 return getter_return_value_; 3885 return getter_return_value_;
3885 } 3886 }
3886 3887
3887 bool IsExternalFlingActive() const override { return false; } 3888 bool IsExternalScrollActive() const override { return false; }
3889
3890 void SetNeedsAnimate(const AnimationCallback&) override {
3891 needs_animate_ = true;
3892 }
3888 3893
3889 void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset, 3894 void UpdateRootLayerState(const gfx::ScrollOffset& total_scroll_offset,
3890 const gfx::ScrollOffset& max_scroll_offset, 3895 const gfx::ScrollOffset& max_scroll_offset,
3891 const gfx::SizeF& scrollable_size, 3896 const gfx::SizeF& scrollable_size,
3892 float page_scale_factor, 3897 float page_scale_factor,
3893 float min_page_scale_factor, 3898 float min_page_scale_factor,
3894 float max_page_scale_factor) override { 3899 float max_page_scale_factor) override {
3895 DCHECK(total_scroll_offset.x() <= max_scroll_offset.x()); 3900 DCHECK(total_scroll_offset.x() <= max_scroll_offset.x());
3896 DCHECK(total_scroll_offset.y() <= max_scroll_offset.y()); 3901 DCHECK(total_scroll_offset.y() <= max_scroll_offset.y());
3897 last_set_scroll_offset_ = total_scroll_offset; 3902 last_set_scroll_offset_ = total_scroll_offset;
3898 max_scroll_offset_ = max_scroll_offset; 3903 max_scroll_offset_ = max_scroll_offset;
3899 scrollable_size_ = scrollable_size; 3904 scrollable_size_ = scrollable_size;
3900 page_scale_factor_ = page_scale_factor; 3905 page_scale_factor_ = page_scale_factor;
3901 min_page_scale_factor_ = min_page_scale_factor; 3906 min_page_scale_factor_ = min_page_scale_factor;
3902 max_page_scale_factor_ = max_page_scale_factor; 3907 max_page_scale_factor_ = max_page_scale_factor;
3903 3908
3904 set_getter_return_value(last_set_scroll_offset_); 3909 set_getter_return_value(last_set_scroll_offset_);
3905 } 3910 }
3906 3911
3912 bool GetAndResetNeedsAnimate() {
3913 bool needs_animate = needs_animate_;
3914 needs_animate_ = false;
3915 return needs_animate;
3916 }
3917
3907 gfx::ScrollOffset last_set_scroll_offset() { 3918 gfx::ScrollOffset last_set_scroll_offset() {
3908 return last_set_scroll_offset_; 3919 return last_set_scroll_offset_;
3909 } 3920 }
3910 3921
3911 void set_getter_return_value(const gfx::ScrollOffset& value) { 3922 void set_getter_return_value(const gfx::ScrollOffset& value) {
3912 getter_return_value_ = value; 3923 getter_return_value_ = value;
3913 } 3924 }
3914 3925
3915 gfx::ScrollOffset max_scroll_offset() const { 3926 gfx::ScrollOffset max_scroll_offset() const {
3916 return max_scroll_offset_; 3927 return max_scroll_offset_;
(...skipping 16 matching lines...) Expand all
3933 } 3944 }
3934 3945
3935 private: 3946 private:
3936 gfx::ScrollOffset last_set_scroll_offset_; 3947 gfx::ScrollOffset last_set_scroll_offset_;
3937 gfx::ScrollOffset getter_return_value_; 3948 gfx::ScrollOffset getter_return_value_;
3938 gfx::ScrollOffset max_scroll_offset_; 3949 gfx::ScrollOffset max_scroll_offset_;
3939 gfx::SizeF scrollable_size_; 3950 gfx::SizeF scrollable_size_;
3940 float page_scale_factor_; 3951 float page_scale_factor_;
3941 float min_page_scale_factor_; 3952 float min_page_scale_factor_;
3942 float max_page_scale_factor_; 3953 float max_page_scale_factor_;
3954 bool needs_animate_;
3943 }; 3955 };
3944 3956
3957 // TODO(jdduke): Test root fling animation.
3945 TEST_F(LayerTreeHostImplTest, RootLayerScrollOffsetDelegation) { 3958 TEST_F(LayerTreeHostImplTest, RootLayerScrollOffsetDelegation) {
3946 TestScrollOffsetDelegate scroll_delegate; 3959 TestScrollOffsetDelegate scroll_delegate;
3947 host_impl_->SetViewportSize(gfx::Size(10, 20)); 3960 host_impl_->SetViewportSize(gfx::Size(10, 20));
3948 LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 100)); 3961 LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 100));
3949 LayerImpl* clip_layer = scroll_layer->parent()->parent(); 3962 LayerImpl* clip_layer = scroll_layer->parent()->parent();
3950 clip_layer->SetBounds(gfx::Size(10, 20)); 3963 clip_layer->SetBounds(gfx::Size(10, 20));
3951 3964
3952 // Setting the delegate results in the current scroll offset being set. 3965 // Setting the delegate results in the current scroll offset being set.
3953 gfx::Vector2dF initial_scroll_delta(10.f, 10.f); 3966 gfx::Vector2dF initial_scroll_delta(10.f, 10.f);
3954 scroll_layer->PushScrollOffsetFromMainThread(gfx::ScrollOffset()); 3967 scroll_layer->PushScrollOffsetFromMainThread(gfx::ScrollOffset());
(...skipping 3926 matching lines...) Expand 10 before | Expand all | Expand 10 after
7881 EXPECT_FALSE(frame.render_passes_by_id[RenderPassId(2, 0)]); 7894 EXPECT_FALSE(frame.render_passes_by_id[RenderPassId(2, 0)]);
7882 EXPECT_FALSE(frame.render_passes_by_id[RenderPassId(3, 0)]); 7895 EXPECT_FALSE(frame.render_passes_by_id[RenderPassId(3, 0)]);
7883 EXPECT_EQ(1u, frame.render_passes.size()); 7896 EXPECT_EQ(1u, frame.render_passes.size());
7884 EXPECT_EQ(RenderPassId(1, 0), frame.render_passes[0]->id); 7897 EXPECT_EQ(RenderPassId(1, 0), frame.render_passes[0]->id);
7885 // The RenderPassDrawQuad should be removed from pass1. 7898 // The RenderPassDrawQuad should be removed from pass1.
7886 EXPECT_EQ(0u, pass1->quad_list.size()); 7899 EXPECT_EQ(0u, pass1->quad_list.size());
7887 } 7900 }
7888 7901
7889 } // namespace 7902 } // namespace
7890 } // namespace cc 7903 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698