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

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

Issue 2118993002: Detemplatize cc property nodes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 5 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/render_surface_impl.cc ('k') | cc/layers/viewport.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/test/fake_impl_task_runner_provider.h" 19 #include "cc/test/fake_impl_task_runner_provider.h"
20 #include "cc/test/fake_layer_tree_host.h" 20 #include "cc/test/fake_layer_tree_host.h"
21 #include "cc/test/fake_layer_tree_host_client.h" 21 #include "cc/test/fake_layer_tree_host_client.h"
22 #include "cc/test/fake_layer_tree_host_impl.h" 22 #include "cc/test/fake_layer_tree_host_impl.h"
23 #include "cc/test/fake_painted_scrollbar_layer.h" 23 #include "cc/test/fake_painted_scrollbar_layer.h"
24 #include "cc/test/fake_scrollbar.h" 24 #include "cc/test/fake_scrollbar.h"
25 #include "cc/test/geometry_test_utils.h" 25 #include "cc/test/geometry_test_utils.h"
26 #include "cc/test/layer_tree_test.h" 26 #include "cc/test/layer_tree_test.h"
27 #include "cc/test/mock_occlusion_tracker.h" 27 #include "cc/test/mock_occlusion_tracker.h"
28 #include "cc/test/test_task_graph_runner.h" 28 #include "cc/test/test_task_graph_runner.h"
29 #include "cc/test/test_web_graphics_context_3d.h" 29 #include "cc/test/test_web_graphics_context_3d.h"
30 #include "cc/trees/effect_node.h"
30 #include "cc/trees/layer_tree_host.h" 31 #include "cc/trees/layer_tree_host.h"
31 #include "cc/trees/layer_tree_impl.h" 32 #include "cc/trees/layer_tree_impl.h"
32 #include "cc/trees/occlusion_tracker.h" 33 #include "cc/trees/occlusion_tracker.h"
34 #include "cc/trees/scroll_node.h"
33 #include "cc/trees/single_thread_proxy.h" 35 #include "cc/trees/single_thread_proxy.h"
34 #include "cc/trees/tree_synchronizer.h" 36 #include "cc/trees/tree_synchronizer.h"
35 #include "testing/gmock/include/gmock/gmock.h" 37 #include "testing/gmock/include/gmock/gmock.h"
36 #include "testing/gtest/include/gtest/gtest.h" 38 #include "testing/gtest/include/gtest/gtest.h"
37 39
38 namespace cc { 40 namespace cc {
39 namespace { 41 namespace {
40 42
41 class FakeResourceTrackingLayerTreeHost : public FakeLayerTreeHost { 43 class FakeResourceTrackingLayerTreeHost : public FakeLayerTreeHost {
42 public: 44 public:
(...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 layer_tree_host_->property_trees()->needs_rebuild = true; 538 layer_tree_host_->property_trees()->needs_rebuild = true;
537 layer_tree_host_->BuildPropertyTreesForTesting(); 539 layer_tree_host_->BuildPropertyTreesForTesting();
538 EXPECT_EQ(layer_tree_host_->property_trees() 540 EXPECT_EQ(layer_tree_host_->property_trees()
539 ->always_use_active_tree_opacity_effect_ids.size(), 541 ->always_use_active_tree_opacity_effect_ids.size(),
540 1u); 542 1u);
541 543
542 // A solid color scrollbar layer's opacity is initialized to 0 on main thread 544 // A solid color scrollbar layer's opacity is initialized to 0 on main thread
543 layer_tree_host_->UpdateLayers(); 545 layer_tree_host_->UpdateLayers();
544 EffectNode* node = layer_tree_host_->property_trees()->effect_tree.Node( 546 EffectNode* node = layer_tree_host_->property_trees()->effect_tree.Node(
545 scrollbar_layer->effect_tree_index()); 547 scrollbar_layer->effect_tree_index());
546 EXPECT_EQ(node->data.opacity, 0.f); 548 EXPECT_EQ(node->opacity, 0.f);
547 549
548 // This tests that the initial opacity(0) of the scrollbar gets pushed onto 550 // This tests that the initial opacity(0) of the scrollbar gets pushed onto
549 // the pending tree and then onto the active tree. 551 // the pending tree and then onto the active tree.
550 LayerTreeHostImpl* host_impl = layer_tree_host_->host_impl(); 552 LayerTreeHostImpl* host_impl = layer_tree_host_->host_impl();
551 host_impl->CreatePendingTree(); 553 host_impl->CreatePendingTree();
552 LayerImpl* layer_impl_tree_root = 554 LayerImpl* layer_impl_tree_root =
553 layer_tree_host_->CommitAndCreatePendingTree(); 555 layer_tree_host_->CommitAndCreatePendingTree();
554 LayerTreeImpl* layer_tree_impl = layer_impl_tree_root->layer_tree_impl(); 556 LayerTreeImpl* layer_tree_impl = layer_impl_tree_root->layer_tree_impl();
555 EXPECT_TRUE(layer_tree_impl->IsPendingTree()); 557 EXPECT_TRUE(layer_tree_impl->IsPendingTree());
556 node = layer_tree_impl->property_trees()->effect_tree.Node( 558 node = layer_tree_impl->property_trees()->effect_tree.Node(
557 scrollbar_layer->effect_tree_index()); 559 scrollbar_layer->effect_tree_index());
558 EXPECT_EQ(node->data.opacity, 0.f); 560 EXPECT_EQ(node->opacity, 0.f);
559 host_impl->ActivateSyncTree(); 561 host_impl->ActivateSyncTree();
560 layer_tree_impl = host_impl->active_tree(); 562 layer_tree_impl = host_impl->active_tree();
561 node = layer_tree_impl->property_trees()->effect_tree.Node( 563 node = layer_tree_impl->property_trees()->effect_tree.Node(
562 scrollbar_layer->effect_tree_index()); 564 scrollbar_layer->effect_tree_index());
563 EXPECT_EQ(node->data.opacity, 0.f); 565 EXPECT_EQ(node->opacity, 0.f);
564 566
565 // This tests that activation does not change the opacity of scrollbar layer. 567 // This tests that activation does not change the opacity of scrollbar layer.
566 LayerImpl* scrollbar_layer_impl = 568 LayerImpl* scrollbar_layer_impl =
567 layer_tree_impl->LayerById(scrollbar_layer->id()); 569 layer_tree_impl->LayerById(scrollbar_layer->id());
568 scrollbar_layer_impl->OnOpacityAnimated(0.25f); 570 scrollbar_layer_impl->OnOpacityAnimated(0.25f);
569 host_impl->CreatePendingTree(); 571 host_impl->CreatePendingTree();
570 layer_impl_tree_root = layer_tree_host_->CommitAndCreatePendingTree(); 572 layer_impl_tree_root = layer_tree_host_->CommitAndCreatePendingTree();
571 layer_tree_impl = layer_impl_tree_root->layer_tree_impl(); 573 layer_tree_impl = layer_impl_tree_root->layer_tree_impl();
572 EXPECT_TRUE(layer_tree_impl->IsPendingTree()); 574 EXPECT_TRUE(layer_tree_impl->IsPendingTree());
573 node = layer_tree_impl->property_trees()->effect_tree.Node( 575 node = layer_tree_impl->property_trees()->effect_tree.Node(
574 scrollbar_layer->effect_tree_index()); 576 scrollbar_layer->effect_tree_index());
575 EXPECT_EQ(node->data.opacity, 0.f); 577 EXPECT_EQ(node->opacity, 0.f);
576 host_impl->ActivateSyncTree(); 578 host_impl->ActivateSyncTree();
577 layer_tree_impl = host_impl->active_tree(); 579 layer_tree_impl = host_impl->active_tree();
578 node = layer_tree_impl->property_trees()->effect_tree.Node( 580 node = layer_tree_impl->property_trees()->effect_tree.Node(
579 scrollbar_layer->effect_tree_index()); 581 scrollbar_layer->effect_tree_index());
580 EXPECT_EQ(node->data.opacity, 0.25f); 582 EXPECT_EQ(node->opacity, 0.25f);
581 } 583 }
582 584
583 TEST_F(ScrollbarLayerTest, ScrollbarLayerPushProperties) { 585 TEST_F(ScrollbarLayerTest, ScrollbarLayerPushProperties) {
584 // Pushing changed bounds of scroll layer can lead to calling 586 // Pushing changed bounds of scroll layer can lead to calling
585 // OnOpacityAnimated on scrollbar layer which means OnOpacityAnimated should 587 // OnOpacityAnimated on scrollbar layer which means OnOpacityAnimated should
586 // be independent of scrollbar layer's properties as scrollbar layer can push 588 // be independent of scrollbar layer's properties as scrollbar layer can push
587 // its properties after scroll layer. 589 // its properties after scroll layer.
588 const int kThumbThickness = 3; 590 const int kThumbThickness = 3;
589 const int kTrackStart = 0; 591 const int kTrackStart = 0;
590 std::unique_ptr<Scrollbar> scrollbar(new FakeScrollbar(false, true, true)); 592 std::unique_ptr<Scrollbar> scrollbar(new FakeScrollbar(false, true, true));
(...skipping 23 matching lines...) Expand all
614 616
615 scroll_layer->SetBounds(gfx::Size(20, 20)); 617 scroll_layer->SetBounds(gfx::Size(20, 20));
616 scroll_layer->SetForceRenderSurfaceForTesting(true); 618 scroll_layer->SetForceRenderSurfaceForTesting(true);
617 layer_tree_host_->UpdateLayers(); 619 layer_tree_host_->UpdateLayers();
618 host_impl->CreatePendingTree(); 620 host_impl->CreatePendingTree();
619 layer_tree_host_->CommitAndCreatePendingTree(); 621 layer_tree_host_->CommitAndCreatePendingTree();
620 host_impl->ActivateSyncTree(); 622 host_impl->ActivateSyncTree();
621 EffectNode* node = 623 EffectNode* node =
622 host_impl->active_tree()->property_trees()->effect_tree.Node( 624 host_impl->active_tree()->property_trees()->effect_tree.Node(
623 scrollbar_layer->effect_tree_index()); 625 scrollbar_layer->effect_tree_index());
624 EXPECT_EQ(node->data.opacity, 1.f); 626 EXPECT_EQ(node->opacity, 1.f);
625 } 627 }
626 628
627 class ScrollbarLayerSolidColorThumbTest : public testing::Test { 629 class ScrollbarLayerSolidColorThumbTest : public testing::Test {
628 public: 630 public:
629 ScrollbarLayerSolidColorThumbTest() { 631 ScrollbarLayerSolidColorThumbTest() {
630 LayerTreeSettings layer_tree_settings; 632 LayerTreeSettings layer_tree_settings;
631 host_impl_.reset(new FakeLayerTreeHostImpl( 633 host_impl_.reset(new FakeLayerTreeHostImpl(
632 layer_tree_settings, &task_runner_provider_, &shared_bitmap_manager_, 634 layer_tree_settings, &task_runner_provider_, &shared_bitmap_manager_,
633 &task_graph_runner_)); 635 &task_graph_runner_));
634 636
(...skipping 511 matching lines...) Expand 10 before | Expand all | Expand 10 after
1146 TestScale(gfx::Rect(1240, 0, 15, 1333), 2.7754839f); 1148 TestScale(gfx::Rect(1240, 0, 15, 1333), 2.7754839f);
1147 TestScale(gfx::Rect(1240, 0, 15, 677), 2.46677136f); 1149 TestScale(gfx::Rect(1240, 0, 15, 677), 2.46677136f);
1148 1150
1149 // Horizontal Scrollbars. 1151 // Horizontal Scrollbars.
1150 TestScale(gfx::Rect(0, 1240, 1333, 15), 2.7754839f); 1152 TestScale(gfx::Rect(0, 1240, 1333, 15), 2.7754839f);
1151 TestScale(gfx::Rect(0, 1240, 677, 15), 2.46677136f); 1153 TestScale(gfx::Rect(0, 1240, 677, 15), 2.46677136f);
1152 } 1154 }
1153 1155
1154 } // namespace 1156 } // namespace
1155 } // namespace cc 1157 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/render_surface_impl.cc ('k') | cc/layers/viewport.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698