| OLD | NEW |
| 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 Loading... |
| 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_, ¶ms)); | 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_, ¶ms, 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |