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

Side by Side Diff: cc/layers/scrollbar_layer_unittest.cc

Issue 2322943003: cc: Move UI Resource management out of LayerTreeHost. (Closed)
Patch Set: virtual dtor Created 4 years, 3 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
« no previous file with comments | « cc/layers/painted_scrollbar_layer_impl_unittest.cc ('k') | cc/layers/ui_resource_layer.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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include <unordered_map> 7 #include <unordered_map>
8 8
9 #include "base/threading/thread_task_runner_handle.h" 9 #include "base/threading/thread_task_runner_handle.h"
10 #include "cc/animation/animation_host.h" 10 #include "cc/animation/animation_host.h"
11 #include "cc/input/scrollbar_animation_controller.h" 11 #include "cc/input/scrollbar_animation_controller.h"
12 #include "cc/layers/append_quads_data.h" 12 #include "cc/layers/append_quads_data.h"
13 #include "cc/layers/painted_scrollbar_layer.h" 13 #include "cc/layers/painted_scrollbar_layer.h"
14 #include "cc/layers/painted_scrollbar_layer_impl.h" 14 #include "cc/layers/painted_scrollbar_layer_impl.h"
15 #include "cc/layers/scrollbar_layer_interface.h" 15 #include "cc/layers/scrollbar_layer_interface.h"
16 #include "cc/layers/solid_color_scrollbar_layer.h" 16 #include "cc/layers/solid_color_scrollbar_layer.h"
17 #include "cc/layers/solid_color_scrollbar_layer_impl.h" 17 #include "cc/layers/solid_color_scrollbar_layer_impl.h"
18 #include "cc/quads/solid_color_draw_quad.h" 18 #include "cc/quads/solid_color_draw_quad.h"
19 #include "cc/resources/ui_resource_manager.h"
19 #include "cc/test/fake_impl_task_runner_provider.h" 20 #include "cc/test/fake_impl_task_runner_provider.h"
20 #include "cc/test/fake_layer_tree_host.h" 21 #include "cc/test/fake_layer_tree_host.h"
21 #include "cc/test/fake_layer_tree_host_client.h" 22 #include "cc/test/fake_layer_tree_host_client.h"
22 #include "cc/test/fake_layer_tree_host_impl.h" 23 #include "cc/test/fake_layer_tree_host_impl.h"
23 #include "cc/test/fake_painted_scrollbar_layer.h" 24 #include "cc/test/fake_painted_scrollbar_layer.h"
24 #include "cc/test/fake_scrollbar.h" 25 #include "cc/test/fake_scrollbar.h"
25 #include "cc/test/geometry_test_utils.h" 26 #include "cc/test/geometry_test_utils.h"
26 #include "cc/test/layer_tree_test.h" 27 #include "cc/test/layer_tree_test.h"
27 #include "cc/test/mock_occlusion_tracker.h" 28 #include "cc/test/mock_occlusion_tracker.h"
28 #include "cc/test/stub_layer_tree_host_single_thread_client.h" 29 #include "cc/test/stub_layer_tree_host_single_thread_client.h"
29 #include "cc/test/test_context_provider.h" 30 #include "cc/test/test_context_provider.h"
30 #include "cc/test/test_task_graph_runner.h" 31 #include "cc/test/test_task_graph_runner.h"
31 #include "cc/test/test_web_graphics_context_3d.h" 32 #include "cc/test/test_web_graphics_context_3d.h"
32 #include "cc/trees/effect_node.h" 33 #include "cc/trees/effect_node.h"
33 #include "cc/trees/layer_tree_host.h" 34 #include "cc/trees/layer_tree_host.h"
34 #include "cc/trees/layer_tree_impl.h" 35 #include "cc/trees/layer_tree_impl.h"
35 #include "cc/trees/occlusion_tracker.h" 36 #include "cc/trees/occlusion_tracker.h"
36 #include "cc/trees/scroll_node.h" 37 #include "cc/trees/scroll_node.h"
37 #include "cc/trees/single_thread_proxy.h" 38 #include "cc/trees/single_thread_proxy.h"
38 #include "cc/trees/tree_synchronizer.h" 39 #include "cc/trees/tree_synchronizer.h"
39 #include "testing/gmock/include/gmock/gmock.h" 40 #include "testing/gmock/include/gmock/gmock.h"
40 #include "testing/gtest/include/gtest/gtest.h" 41 #include "testing/gtest/include/gtest/gtest.h"
41 42
42 namespace cc { 43 namespace cc {
43 namespace { 44 namespace {
44 45
45 class FakeResourceTrackingLayerTreeHost : public FakeLayerTreeHost { 46 class FakeResourceTrackingUIResourceManager : public UIResourceManager {
46 public: 47 public:
47 FakeResourceTrackingLayerTreeHost(FakeLayerTreeHostClient* client, 48 FakeResourceTrackingUIResourceManager()
48 LayerTreeHost::InitParams* params) 49 : next_id_(1),
49 : FakeLayerTreeHost(client, params, CompositorMode::SINGLE_THREADED),
50 next_id_(1),
51 total_ui_resource_created_(0), 50 total_ui_resource_created_(0),
52 total_ui_resource_deleted_(0) { 51 total_ui_resource_deleted_(0) {}
53 InitializeSingleThreaded(&single_thread_client_, 52 ~FakeResourceTrackingUIResourceManager() override = default;
54 base::ThreadTaskRunnerHandle::Get(), nullptr);
55 }
56 53
57 UIResourceId CreateUIResource(UIResourceClient* content) override { 54 UIResourceId CreateUIResource(UIResourceClient* content) override {
58 total_ui_resource_created_++; 55 total_ui_resource_created_++;
59 UIResourceId nid = next_id_++; 56 UIResourceId nid = next_id_++;
60 ui_resource_bitmap_map_.insert( 57 ui_resource_bitmap_map_.insert(
61 std::make_pair(nid, content->GetBitmap(nid, false))); 58 std::make_pair(nid, content->GetBitmap(nid, false)));
62 return nid; 59 return nid;
63 } 60 }
64 61
65 // Deletes a UI resource. May safely be called more than once. 62 // Deletes a UI resource. May safely be called more than once.
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 110
114 scrollbar_layer_id_ = -1; 111 scrollbar_layer_id_ = -1;
115 112
116 LayerTreeHost::InitParams params; 113 LayerTreeHost::InitParams params;
117 params.client = &fake_client_; 114 params.client = &fake_client_;
118 params.settings = &layer_tree_settings_; 115 params.settings = &layer_tree_settings_;
119 params.task_graph_runner = &task_graph_runner_; 116 params.task_graph_runner = &task_graph_runner_;
120 params.animation_host = 117 params.animation_host =
121 AnimationHost::CreateForTesting(ThreadInstance::MAIN); 118 AnimationHost::CreateForTesting(ThreadInstance::MAIN);
122 119
123 layer_tree_host_.reset( 120 std::unique_ptr<FakeResourceTrackingUIResourceManager>
124 new FakeResourceTrackingLayerTreeHost(&fake_client_, &params)); 121 fake_ui_resource_manager =
122 base::MakeUnique<FakeResourceTrackingUIResourceManager>();
123 fake_ui_resource_manager_ = fake_ui_resource_manager.get();
124
125 layer_tree_host_.reset(new FakeLayerTreeHost(
126 &fake_client_, &params, CompositorMode::SINGLE_THREADED));
127 layer_tree_host_->SetUIResourceManagerForTesting(
128 std::move(fake_ui_resource_manager));
129 layer_tree_host_->InitializeSingleThreaded(
130 &single_thread_client_, base::ThreadTaskRunnerHandle::Get(), nullptr);
125 layer_tree_ = layer_tree_host_->GetLayerTree(); 131 layer_tree_ = layer_tree_host_->GetLayerTree();
126 layer_tree_host_->SetVisible(true); 132 layer_tree_host_->SetVisible(true);
127 fake_client_.SetLayerTreeHost(layer_tree_host_.get()); 133 fake_client_.SetLayerTreeHost(layer_tree_host_.get());
128 } 134 }
129 135
130 LayerImpl* LayerImplForScrollAreaAndScrollbar( 136 LayerImpl* LayerImplForScrollAreaAndScrollbar(
131 FakeLayerTreeHost* host, 137 FakeLayerTreeHost* host,
132 std::unique_ptr<Scrollbar> scrollbar, 138 std::unique_ptr<Scrollbar> scrollbar,
133 bool reverse_order, 139 bool reverse_order,
134 bool use_solid_color_scrollbar, 140 bool use_solid_color_scrollbar,
(...skipping 13 matching lines...) Expand all
148 } 154 }
149 layer_tree_root->AddChild(child1); 155 layer_tree_root->AddChild(child1);
150 layer_tree_root->InsertChild(child2, reverse_order ? 0 : 1); 156 layer_tree_root->InsertChild(child2, reverse_order ? 0 : 1);
151 scrollbar_layer_id_ = reverse_order ? child1->id() : child2->id(); 157 scrollbar_layer_id_ = reverse_order ? child1->id() : child2->id();
152 host->SetRootLayer(layer_tree_root); 158 host->SetRootLayer(layer_tree_root);
153 host->BuildPropertyTreesForTesting(); 159 host->BuildPropertyTreesForTesting();
154 return host->CommitAndCreateLayerImplTree(); 160 return host->CommitAndCreateLayerImplTree();
155 } 161 }
156 162
157 protected: 163 protected:
164 FakeResourceTrackingUIResourceManager* fake_ui_resource_manager_;
158 FakeLayerTreeHostClient fake_client_; 165 FakeLayerTreeHostClient fake_client_;
166 StubLayerTreeHostSingleThreadClient single_thread_client_;
159 TestTaskGraphRunner task_graph_runner_; 167 TestTaskGraphRunner task_graph_runner_;
160 LayerTreeSettings layer_tree_settings_; 168 LayerTreeSettings layer_tree_settings_;
161 std::unique_ptr<FakeResourceTrackingLayerTreeHost> layer_tree_host_; 169 std::unique_ptr<FakeLayerTreeHost> layer_tree_host_;
162 LayerTree* layer_tree_; 170 LayerTree* layer_tree_;
163 int scrollbar_layer_id_; 171 int scrollbar_layer_id_;
164 }; 172 };
165 173
166 TEST_F(ScrollbarLayerTest, ShouldScrollNonOverlayOnMainThread) { 174 TEST_F(ScrollbarLayerTest, ShouldScrollNonOverlayOnMainThread) {
167 // Create and attach a non-overlay scrollbar. 175 // Create and attach a non-overlay scrollbar.
168 std::unique_ptr<Scrollbar> scrollbar(new FakeScrollbar); 176 std::unique_ptr<Scrollbar> scrollbar(new FakeScrollbar);
169 LayerImpl* layer_impl_tree_root = LayerImplForScrollAreaAndScrollbar( 177 LayerImpl* layer_impl_tree_root = LayerImplForScrollAreaAndScrollbar(
170 layer_tree_host_.get(), std::move(scrollbar), false, false, 0, 0); 178 layer_tree_host_.get(), std::move(scrollbar), false, false, 0, 0);
171 PaintedScrollbarLayerImpl* scrollbar_layer_impl = 179 PaintedScrollbarLayerImpl* scrollbar_layer_impl =
(...skipping 601 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 scrollbar_layer->set_visible_layer_rect(gfx::Rect(0, 0, 100, 200)); 781 scrollbar_layer->set_visible_layer_rect(gfx::Rect(0, 0, 100, 200));
774 782
775 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 783 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get());
776 EXPECT_EQ(scrollbar_layer->layer_tree_host(), layer_tree_host_.get()); 784 EXPECT_EQ(scrollbar_layer->layer_tree_host(), layer_tree_host_.get());
777 785
778 scrollbar_layer->SavePaintProperties(); 786 scrollbar_layer->SavePaintProperties();
779 for (int update_counter = 0; update_counter < num_updates; update_counter++) 787 for (int update_counter = 0; update_counter < num_updates; update_counter++)
780 scrollbar_layer->Update(); 788 scrollbar_layer->Update();
781 789
782 // A non-solid-color scrollbar should have requested two textures. 790 // A non-solid-color scrollbar should have requested two textures.
783 EXPECT_EQ(expected_resources, layer_tree_host_->UIResourceCount()); 791 EXPECT_EQ(expected_resources, fake_ui_resource_manager_->UIResourceCount());
784 EXPECT_EQ(expected_created, layer_tree_host_->TotalUIResourceCreated()); 792 EXPECT_EQ(expected_created,
785 EXPECT_EQ(expected_deleted, layer_tree_host_->TotalUIResourceDeleted()); 793 fake_ui_resource_manager_->TotalUIResourceCreated());
794 EXPECT_EQ(expected_deleted,
795 fake_ui_resource_manager_->TotalUIResourceDeleted());
786 796
787 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 797 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get());
788 } 798 }
789 }; 799 };
790 800
791 TEST_F(ScrollbarLayerTestResourceCreationAndRelease, ResourceUpload) { 801 TEST_F(ScrollbarLayerTestResourceCreationAndRelease, ResourceUpload) {
792 bool use_solid_color_scrollbars = false; 802 bool use_solid_color_scrollbars = false;
793 TestResourceUpload(0, 0, 0, 0, use_solid_color_scrollbars); 803 TestResourceUpload(0, 0, 0, 0, use_solid_color_scrollbars);
794 int num_updates[3] = {1, 5, 10}; 804 int num_updates[3] = {1, 5, 10};
795 int created = 0; 805 int created = 0;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 size_t resource_count; 844 size_t resource_count;
835 int expected_created, expected_deleted; 845 int expected_created, expected_deleted;
836 scrollbar_layer->SavePaintProperties(); 846 scrollbar_layer->SavePaintProperties();
837 847
838 resource_count = 2; 848 resource_count = 2;
839 expected_created = 2; 849 expected_created = 2;
840 expected_deleted = 0; 850 expected_deleted = 0;
841 EXPECT_TRUE(scrollbar_layer->Update()); 851 EXPECT_TRUE(scrollbar_layer->Update());
842 EXPECT_NE(0, scrollbar_layer->track_resource_id()); 852 EXPECT_NE(0, scrollbar_layer->track_resource_id());
843 EXPECT_NE(0, scrollbar_layer->thumb_resource_id()); 853 EXPECT_NE(0, scrollbar_layer->thumb_resource_id());
844 EXPECT_EQ(resource_count, layer_tree_host_->UIResourceCount()); 854 EXPECT_EQ(resource_count, fake_ui_resource_manager_->UIResourceCount());
845 EXPECT_EQ(expected_created, layer_tree_host_->TotalUIResourceCreated()); 855 EXPECT_EQ(expected_created,
846 EXPECT_EQ(expected_deleted, layer_tree_host_->TotalUIResourceDeleted()); 856 fake_ui_resource_manager_->TotalUIResourceCreated());
857 EXPECT_EQ(expected_deleted,
858 fake_ui_resource_manager_->TotalUIResourceDeleted());
847 859
848 resource_count = 0; 860 resource_count = 0;
849 expected_created = 2; 861 expected_created = 2;
850 expected_deleted = 2; 862 expected_deleted = 2;
851 scrollbar_layer->SetBounds(gfx::Size(0, 0)); 863 scrollbar_layer->SetBounds(gfx::Size(0, 0));
852 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(0, 0, 0, 0)); 864 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(0, 0, 0, 0));
853 EXPECT_TRUE(scrollbar_layer->Update()); 865 EXPECT_TRUE(scrollbar_layer->Update());
854 EXPECT_EQ(0, scrollbar_layer->track_resource_id()); 866 EXPECT_EQ(0, scrollbar_layer->track_resource_id());
855 EXPECT_EQ(0, scrollbar_layer->thumb_resource_id()); 867 EXPECT_EQ(0, scrollbar_layer->thumb_resource_id());
856 EXPECT_EQ(resource_count, layer_tree_host_->UIResourceCount()); 868 EXPECT_EQ(resource_count, fake_ui_resource_manager_->UIResourceCount());
857 EXPECT_EQ(expected_created, layer_tree_host_->TotalUIResourceCreated()); 869 EXPECT_EQ(expected_created,
858 EXPECT_EQ(expected_deleted, layer_tree_host_->TotalUIResourceDeleted()); 870 fake_ui_resource_manager_->TotalUIResourceCreated());
871 EXPECT_EQ(expected_deleted,
872 fake_ui_resource_manager_->TotalUIResourceDeleted());
859 873
860 resource_count = 0; 874 resource_count = 0;
861 expected_created = 2; 875 expected_created = 2;
862 expected_deleted = 2; 876 expected_deleted = 2;
863 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(0, 0, 0, 0)); 877 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(0, 0, 0, 0));
864 EXPECT_FALSE(scrollbar_layer->Update()); 878 EXPECT_FALSE(scrollbar_layer->Update());
865 EXPECT_EQ(0, scrollbar_layer->track_resource_id()); 879 EXPECT_EQ(0, scrollbar_layer->track_resource_id());
866 EXPECT_EQ(0, scrollbar_layer->thumb_resource_id()); 880 EXPECT_EQ(0, scrollbar_layer->thumb_resource_id());
867 EXPECT_EQ(resource_count, layer_tree_host_->UIResourceCount()); 881 EXPECT_EQ(resource_count, fake_ui_resource_manager_->UIResourceCount());
868 EXPECT_EQ(expected_created, layer_tree_host_->TotalUIResourceCreated()); 882 EXPECT_EQ(expected_created,
869 EXPECT_EQ(expected_deleted, layer_tree_host_->TotalUIResourceDeleted()); 883 fake_ui_resource_manager_->TotalUIResourceCreated());
884 EXPECT_EQ(expected_deleted,
885 fake_ui_resource_manager_->TotalUIResourceDeleted());
870 886
871 resource_count = 2; 887 resource_count = 2;
872 expected_created = 4; 888 expected_created = 4;
873 expected_deleted = 2; 889 expected_deleted = 2;
874 scrollbar_layer->SetBounds(gfx::Size(100, 15)); 890 scrollbar_layer->SetBounds(gfx::Size(100, 15));
875 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(30, 10, 50, 10)); 891 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(30, 10, 50, 10));
876 EXPECT_TRUE(scrollbar_layer->Update()); 892 EXPECT_TRUE(scrollbar_layer->Update());
877 EXPECT_NE(0, scrollbar_layer->track_resource_id()); 893 EXPECT_NE(0, scrollbar_layer->track_resource_id());
878 EXPECT_NE(0, scrollbar_layer->thumb_resource_id()); 894 EXPECT_NE(0, scrollbar_layer->thumb_resource_id());
879 EXPECT_EQ(resource_count, layer_tree_host_->UIResourceCount()); 895 EXPECT_EQ(resource_count, fake_ui_resource_manager_->UIResourceCount());
880 EXPECT_EQ(expected_created, layer_tree_host_->TotalUIResourceCreated()); 896 EXPECT_EQ(expected_created,
881 EXPECT_EQ(expected_deleted, layer_tree_host_->TotalUIResourceDeleted()); 897 fake_ui_resource_manager_->TotalUIResourceCreated());
898 EXPECT_EQ(expected_deleted,
899 fake_ui_resource_manager_->TotalUIResourceDeleted());
882 900
883 resource_count = 1; 901 resource_count = 1;
884 expected_created = 5; 902 expected_created = 5;
885 expected_deleted = 4; 903 expected_deleted = 4;
886 scrollbar_layer->fake_scrollbar()->set_has_thumb(false); 904 scrollbar_layer->fake_scrollbar()->set_has_thumb(false);
887 EXPECT_TRUE(scrollbar_layer->Update()); 905 EXPECT_TRUE(scrollbar_layer->Update());
888 EXPECT_NE(0, scrollbar_layer->track_resource_id()); 906 EXPECT_NE(0, scrollbar_layer->track_resource_id());
889 EXPECT_EQ(0, scrollbar_layer->thumb_resource_id()); 907 EXPECT_EQ(0, scrollbar_layer->thumb_resource_id());
890 EXPECT_EQ(resource_count, layer_tree_host_->UIResourceCount()); 908 EXPECT_EQ(resource_count, fake_ui_resource_manager_->UIResourceCount());
891 EXPECT_EQ(expected_created, layer_tree_host_->TotalUIResourceCreated()); 909 EXPECT_EQ(expected_created,
892 EXPECT_EQ(expected_deleted, layer_tree_host_->TotalUIResourceDeleted()); 910 fake_ui_resource_manager_->TotalUIResourceCreated());
911 EXPECT_EQ(expected_deleted,
912 fake_ui_resource_manager_->TotalUIResourceDeleted());
893 913
894 resource_count = 0; 914 resource_count = 0;
895 expected_created = 5; 915 expected_created = 5;
896 expected_deleted = 5; 916 expected_deleted = 5;
897 scrollbar_layer->SetBounds(gfx::Size(0, 0)); 917 scrollbar_layer->SetBounds(gfx::Size(0, 0));
898 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(0, 0, 0, 0)); 918 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(0, 0, 0, 0));
899 EXPECT_TRUE(scrollbar_layer->Update()); 919 EXPECT_TRUE(scrollbar_layer->Update());
900 EXPECT_EQ(0, scrollbar_layer->track_resource_id()); 920 EXPECT_EQ(0, scrollbar_layer->track_resource_id());
901 EXPECT_EQ(0, scrollbar_layer->thumb_resource_id()); 921 EXPECT_EQ(0, scrollbar_layer->thumb_resource_id());
902 EXPECT_EQ(resource_count, layer_tree_host_->UIResourceCount()); 922 EXPECT_EQ(resource_count, fake_ui_resource_manager_->UIResourceCount());
903 EXPECT_EQ(expected_created, layer_tree_host_->TotalUIResourceCreated()); 923 EXPECT_EQ(expected_created,
904 EXPECT_EQ(expected_deleted, layer_tree_host_->TotalUIResourceDeleted()); 924 fake_ui_resource_manager_->TotalUIResourceCreated());
925 EXPECT_EQ(expected_deleted,
926 fake_ui_resource_manager_->TotalUIResourceDeleted());
905 927
906 resource_count = 2; 928 resource_count = 2;
907 expected_created = 7; 929 expected_created = 7;
908 expected_deleted = 5; 930 expected_deleted = 5;
909 scrollbar_layer->SetBounds(gfx::Size(100, 15)); 931 scrollbar_layer->SetBounds(gfx::Size(100, 15));
910 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(30, 10, 50, 10)); 932 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(30, 10, 50, 10));
911 scrollbar_layer->fake_scrollbar()->set_has_thumb(true); 933 scrollbar_layer->fake_scrollbar()->set_has_thumb(true);
912 EXPECT_TRUE(scrollbar_layer->Update()); 934 EXPECT_TRUE(scrollbar_layer->Update());
913 EXPECT_NE(0, scrollbar_layer->track_resource_id()); 935 EXPECT_NE(0, scrollbar_layer->track_resource_id());
914 EXPECT_NE(0, scrollbar_layer->thumb_resource_id()); 936 EXPECT_NE(0, scrollbar_layer->thumb_resource_id());
915 937
916 resource_count = 2; 938 resource_count = 2;
917 expected_created = 9; 939 expected_created = 9;
918 expected_deleted = 7; 940 expected_deleted = 7;
919 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(0, 0, 0, 0)); 941 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(0, 0, 0, 0));
920 EXPECT_TRUE(scrollbar_layer->Update()); 942 EXPECT_TRUE(scrollbar_layer->Update());
921 EXPECT_NE(0, scrollbar_layer->track_resource_id()); 943 EXPECT_NE(0, scrollbar_layer->track_resource_id());
922 EXPECT_NE(0, scrollbar_layer->thumb_resource_id()); 944 EXPECT_NE(0, scrollbar_layer->thumb_resource_id());
923 EXPECT_EQ(resource_count, layer_tree_host_->UIResourceCount()); 945 EXPECT_EQ(resource_count, fake_ui_resource_manager_->UIResourceCount());
924 EXPECT_EQ(expected_created, layer_tree_host_->TotalUIResourceCreated()); 946 EXPECT_EQ(expected_created,
925 EXPECT_EQ(expected_deleted, layer_tree_host_->TotalUIResourceDeleted()); 947 fake_ui_resource_manager_->TotalUIResourceCreated());
948 EXPECT_EQ(expected_deleted,
949 fake_ui_resource_manager_->TotalUIResourceDeleted());
926 950
927 resource_count = 1; 951 resource_count = 1;
928 expected_created = 10; 952 expected_created = 10;
929 expected_deleted = 9; 953 expected_deleted = 9;
930 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(30, 10, 50, 10)); 954 scrollbar_layer->fake_scrollbar()->set_track_rect(gfx::Rect(30, 10, 50, 10));
931 scrollbar_layer->fake_scrollbar()->set_has_thumb(false); 955 scrollbar_layer->fake_scrollbar()->set_has_thumb(false);
932 scrollbar_layer->SetBounds(gfx::Size(90, 15)); 956 scrollbar_layer->SetBounds(gfx::Size(90, 15));
933 EXPECT_TRUE(scrollbar_layer->Update()); 957 EXPECT_TRUE(scrollbar_layer->Update());
934 EXPECT_EQ(resource_count, layer_tree_host_->UIResourceCount()); 958 EXPECT_EQ(resource_count, fake_ui_resource_manager_->UIResourceCount());
935 EXPECT_EQ(expected_created, layer_tree_host_->TotalUIResourceCreated()); 959 EXPECT_EQ(expected_created,
936 EXPECT_EQ(expected_deleted, layer_tree_host_->TotalUIResourceDeleted()); 960 fake_ui_resource_manager_->TotalUIResourceCreated());
937 EXPECT_EQ( 961 EXPECT_EQ(expected_deleted,
938 gfx::Size(90, 15), 962 fake_ui_resource_manager_->TotalUIResourceDeleted());
939 layer_tree_host_->ui_resource_size(scrollbar_layer->track_resource_id())); 963 EXPECT_EQ(gfx::Size(90, 15), fake_ui_resource_manager_->ui_resource_size(
964 scrollbar_layer->track_resource_id()));
940 965
941 scrollbar_layer->ResetNeedsDisplayForTesting(); 966 scrollbar_layer->ResetNeedsDisplayForTesting();
942 EXPECT_FALSE(scrollbar_layer->Update()); 967 EXPECT_FALSE(scrollbar_layer->Update());
943 EXPECT_NE(0, scrollbar_layer->track_resource_id()); 968 EXPECT_NE(0, scrollbar_layer->track_resource_id());
944 EXPECT_EQ(0, scrollbar_layer->thumb_resource_id()); 969 EXPECT_EQ(0, scrollbar_layer->thumb_resource_id());
945 EXPECT_EQ(resource_count, layer_tree_host_->UIResourceCount()); 970 EXPECT_EQ(resource_count, fake_ui_resource_manager_->UIResourceCount());
946 EXPECT_EQ(expected_created, layer_tree_host_->TotalUIResourceCreated()); 971 EXPECT_EQ(expected_created,
947 EXPECT_EQ(expected_deleted, layer_tree_host_->TotalUIResourceDeleted()); 972 fake_ui_resource_manager_->TotalUIResourceCreated());
973 EXPECT_EQ(expected_deleted,
974 fake_ui_resource_manager_->TotalUIResourceDeleted());
948 975
949 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get()); 976 testing::Mock::VerifyAndClearExpectations(layer_tree_host_.get());
950 } 977 }
951 978
952 class ScaledScrollbarLayerTestResourceCreation : public ScrollbarLayerTest { 979 class ScaledScrollbarLayerTestResourceCreation : public ScrollbarLayerTest {
953 public: 980 public:
954 void TestResourceUpload(const float test_scale) { 981 void TestResourceUpload(const float test_scale) {
955 gfx::Point scrollbar_location(0, 185); 982 gfx::Point scrollbar_location(0, 185);
956 scoped_refptr<Layer> layer_tree_root = Layer::Create(); 983 scoped_refptr<Layer> layer_tree_root = Layer::Create();
957 scoped_refptr<Layer> content_layer = Layer::Create(); 984 scoped_refptr<Layer> content_layer = Layer::Create();
(...skipping 16 matching lines...) Expand all
974 EXPECT_EQ(scrollbar_layer->layer_tree_host(), layer_tree_host_.get()); 1001 EXPECT_EQ(scrollbar_layer->layer_tree_host(), layer_tree_host_.get());
975 1002
976 layer_tree_->SetDeviceScaleFactor(test_scale); 1003 layer_tree_->SetDeviceScaleFactor(test_scale);
977 1004
978 scrollbar_layer->SavePaintProperties(); 1005 scrollbar_layer->SavePaintProperties();
979 scrollbar_layer->Update(); 1006 scrollbar_layer->Update();
980 1007
981 // Verify that we have not generated any content uploads that are larger 1008 // Verify that we have not generated any content uploads that are larger
982 // than their destination textures. 1009 // than their destination textures.
983 1010
984 gfx::Size track_size = layer_tree_host_->ui_resource_size( 1011 gfx::Size track_size = fake_ui_resource_manager_->ui_resource_size(
985 scrollbar_layer->track_resource_id()); 1012 scrollbar_layer->track_resource_id());
986 gfx::Size thumb_size = layer_tree_host_->ui_resource_size( 1013 gfx::Size thumb_size = fake_ui_resource_manager_->ui_resource_size(
987 scrollbar_layer->thumb_resource_id()); 1014 scrollbar_layer->thumb_resource_id());
988 1015
989 EXPECT_LE(track_size.width(), 1016 EXPECT_LE(track_size.width(),
990 scrollbar_layer->internal_content_bounds().width()); 1017 scrollbar_layer->internal_content_bounds().width());
991 EXPECT_LE(track_size.height(), 1018 EXPECT_LE(track_size.height(),
992 scrollbar_layer->internal_content_bounds().height()); 1019 scrollbar_layer->internal_content_bounds().height());
993 EXPECT_LE(thumb_size.width(), 1020 EXPECT_LE(thumb_size.width(),
994 scrollbar_layer->internal_content_bounds().width()); 1021 scrollbar_layer->internal_content_bounds().width());
995 EXPECT_LE(thumb_size.height(), 1022 EXPECT_LE(thumb_size.height(),
996 scrollbar_layer->internal_content_bounds().height()); 1023 scrollbar_layer->internal_content_bounds().height());
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1037 scrollbar_layer->fake_scrollbar()->set_track_rect(scrollbar_rect); 1064 scrollbar_layer->fake_scrollbar()->set_track_rect(scrollbar_rect);
1038 scrollbar_layer->set_visible_layer_rect(scrollbar_rect); 1065 scrollbar_layer->set_visible_layer_rect(scrollbar_rect);
1039 1066
1040 layer_tree_->SetDeviceScaleFactor(test_scale); 1067 layer_tree_->SetDeviceScaleFactor(test_scale);
1041 1068
1042 gfx::Rect screen_space_clip_rect; 1069 gfx::Rect screen_space_clip_rect;
1043 scrollbar_layer->SavePaintProperties(); 1070 scrollbar_layer->SavePaintProperties();
1044 1071
1045 scrollbar_layer->Update(); 1072 scrollbar_layer->Update();
1046 1073
1047 UIResourceBitmap* bitmap = layer_tree_host_->ui_resource_bitmap( 1074 UIResourceBitmap* bitmap = fake_ui_resource_manager_->ui_resource_bitmap(
1048 scrollbar_layer->track_resource_id()); 1075 scrollbar_layer->track_resource_id());
1049 1076
1050 DCHECK(bitmap); 1077 DCHECK(bitmap);
1051 1078
1052 AutoLockUIResourceBitmap locked_bitmap(*bitmap); 1079 AutoLockUIResourceBitmap locked_bitmap(*bitmap);
1053 1080
1054 const SkColor* pixels = 1081 const SkColor* pixels =
1055 reinterpret_cast<const SkColor*>(locked_bitmap.GetPixels()); 1082 reinterpret_cast<const SkColor*>(locked_bitmap.GetPixels());
1056 SkColor color = argb_to_skia( 1083 SkColor color = argb_to_skia(
1057 scrollbar_layer->fake_scrollbar()->paint_fill_color()); 1084 scrollbar_layer->fake_scrollbar()->paint_fill_color());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1089 TestScale(gfx::Rect(1240, 0, 15, 1333), 2.7754839f); 1116 TestScale(gfx::Rect(1240, 0, 15, 1333), 2.7754839f);
1090 TestScale(gfx::Rect(1240, 0, 15, 677), 2.46677136f); 1117 TestScale(gfx::Rect(1240, 0, 15, 677), 2.46677136f);
1091 1118
1092 // Horizontal Scrollbars. 1119 // Horizontal Scrollbars.
1093 TestScale(gfx::Rect(0, 1240, 1333, 15), 2.7754839f); 1120 TestScale(gfx::Rect(0, 1240, 1333, 15), 2.7754839f);
1094 TestScale(gfx::Rect(0, 1240, 677, 15), 2.46677136f); 1121 TestScale(gfx::Rect(0, 1240, 677, 15), 2.46677136f);
1095 } 1122 }
1096 1123
1097 } // namespace 1124 } // namespace
1098 } // namespace cc 1125 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/painted_scrollbar_layer_impl_unittest.cc ('k') | cc/layers/ui_resource_layer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698