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

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

Issue 2880023002: cc::SurfaceDependencyTracker should not crash when a Display goes away (Closed)
Patch Set: Fix LayerTreeHostImpl unit tests Created 3 years, 6 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 <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cmath> 10 #include <cmath>
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 did_request_next_frame_(false), 121 did_request_next_frame_(false),
122 did_request_prepare_tiles_(false), 122 did_request_prepare_tiles_(false),
123 did_complete_page_scale_animation_(false), 123 did_complete_page_scale_animation_(false),
124 reduce_memory_result_(true), 124 reduce_memory_result_(true),
125 did_request_impl_side_invalidation_(false) { 125 did_request_impl_side_invalidation_(false) {
126 media::InitializeMediaLibrary(); 126 media::InitializeMediaLibrary();
127 } 127 }
128 128
129 LayerTreeSettings DefaultSettings() { 129 LayerTreeSettings DefaultSettings() {
130 LayerTreeSettings settings; 130 LayerTreeSettings settings;
131 settings.enable_surface_synchronization = true;
131 settings.minimum_occlusion_tracking_size = gfx::Size(); 132 settings.minimum_occlusion_tracking_size = gfx::Size();
132 settings.renderer_settings.texture_id_allocation_chunk_size = 1; 133 settings.renderer_settings.texture_id_allocation_chunk_size = 1;
133 settings.renderer_settings.buffer_to_texture_target_map = 134 settings.renderer_settings.buffer_to_texture_target_map =
134 DefaultBufferToTextureTargetMapForTesting(); 135 DefaultBufferToTextureTargetMapForTesting();
135 return settings; 136 return settings;
136 } 137 }
137 138
138 void SetUp() override { 139 void SetUp() override {
139 CreateHostImpl(DefaultSettings(), CreateCompositorFrameSink()); 140 CreateHostImpl(DefaultSettings(), CreateCompositorFrameSink());
140 } 141 }
(...skipping 3305 matching lines...) Expand 10 before | Expand all | Expand 10 after
3446 } 3447 }
3447 3448
3448 TEST_F(LayerTreeHostImplTest, MouseMoveAtWithDeviceScaleOf1) { 3449 TEST_F(LayerTreeHostImplTest, MouseMoveAtWithDeviceScaleOf1) {
3449 SetupMouseMoveAtWithDeviceScale(1.f); 3450 SetupMouseMoveAtWithDeviceScale(1.f);
3450 } 3451 }
3451 3452
3452 TEST_F(LayerTreeHostImplTest, MouseMoveAtWithDeviceScaleOf2) { 3453 TEST_F(LayerTreeHostImplTest, MouseMoveAtWithDeviceScaleOf2) {
3453 SetupMouseMoveAtWithDeviceScale(2.f); 3454 SetupMouseMoveAtWithDeviceScale(2.f);
3454 } 3455 }
3455 3456
3456 // This test verifies that only SurfaceLayers in the viewport are included 3457 // This test verifies that only SurfaceLayers in the viewport and have fallbacks
3457 // in CompositorFrameMetadata's |activation_dependencies|. 3458 // that are different are included in CompositorFrameMetadata's
3458 TEST_F(LayerTreeHostImplTest, EmbeddedSurfacesInMetadata) { 3459 // |activation_dependencies|.
3460 TEST_F(LayerTreeHostImplTest, ActivationDependenciesInMetadata) {
3459 SetupScrollAndContentsLayers(gfx::Size(100, 100)); 3461 SetupScrollAndContentsLayers(gfx::Size(100, 100));
3460 host_impl_->SetViewportSize(gfx::Size(50, 50)); 3462 host_impl_->SetViewportSize(gfx::Size(50, 50));
3461 LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); 3463 LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing();
3462 3464
3463 std::vector<SurfaceId> children = {MakeSurfaceId(FrameSinkId(1, 1), 1), 3465 std::vector<SurfaceId> primary_surfaces = {
3464 MakeSurfaceId(FrameSinkId(2, 2), 2), 3466 MakeSurfaceId(FrameSinkId(1, 1), 1), MakeSurfaceId(FrameSinkId(2, 2), 2),
3465 MakeSurfaceId(FrameSinkId(3, 3), 3)}; 3467 MakeSurfaceId(FrameSinkId(3, 3), 3)};
3466 for (size_t i = 0; i < children.size(); ++i) { 3468
3469 std::vector<SurfaceId> fallback_surfaces = {
3470 MakeSurfaceId(FrameSinkId(4, 4), 1), MakeSurfaceId(FrameSinkId(4, 4), 2),
3471 MakeSurfaceId(FrameSinkId(4, 4), 3)};
3472
3473 for (size_t i = 0; i < primary_surfaces.size(); ++i) {
3467 std::unique_ptr<SurfaceLayerImpl> child = 3474 std::unique_ptr<SurfaceLayerImpl> child =
3468 SurfaceLayerImpl::Create(host_impl_->active_tree(), i + 6); 3475 SurfaceLayerImpl::Create(host_impl_->active_tree(), i + 6);
3469 child->SetPosition(gfx::PointF(25.f * i, 0.f)); 3476 child->SetPosition(gfx::PointF(25.f * i, 0.f));
3470 child->SetBounds(gfx::Size(1, 1)); 3477 child->SetBounds(gfx::Size(1, 1));
3471 child->SetDrawsContent(true); 3478 child->SetDrawsContent(true);
3472 child->SetPrimarySurfaceInfo( 3479 child->SetPrimarySurfaceInfo(
3473 SurfaceInfo(children[i], 1.f /* device_scale_factor */, 3480 SurfaceInfo(primary_surfaces[i], 1.f /* device_scale_factor */,
3481 gfx::Size(10, 10) /* size_in_pixels */));
3482 child->SetFallbackSurfaceInfo(
3483 SurfaceInfo(fallback_surfaces[i], 1.f /* device_scale_factor */,
3474 gfx::Size(10, 10) /* size_in_pixels */)); 3484 gfx::Size(10, 10) /* size_in_pixels */));
3475 root->test_properties()->AddChild(std::move(child)); 3485 root->test_properties()->AddChild(std::move(child));
3476 } 3486 }
3477 3487
3478 host_impl_->active_tree()->BuildPropertyTreesForTesting(); 3488 host_impl_->active_tree()->BuildPropertyTreesForTesting();
3479 DrawFrame(); 3489 DrawFrame();
3480 3490
3481 FakeCompositorFrameSink* fake_compositor_frame_sink = 3491 FakeCompositorFrameSink* fake_compositor_frame_sink =
3482 static_cast<FakeCompositorFrameSink*>( 3492 static_cast<FakeCompositorFrameSink*>(
3483 host_impl_->compositor_frame_sink()); 3493 host_impl_->compositor_frame_sink());
3484 const CompositorFrameMetadata& metadata = 3494 const CompositorFrameMetadata& metadata =
3485 fake_compositor_frame_sink->last_sent_frame()->metadata; 3495 fake_compositor_frame_sink->last_sent_frame()->metadata;
3486 EXPECT_THAT(metadata.activation_dependencies, 3496 EXPECT_THAT(
3487 testing::UnorderedElementsAre(children[0], children[1])); 3497 metadata.activation_dependencies,
3498 testing::UnorderedElementsAre(primary_surfaces[0], primary_surfaces[1]));
3488 EXPECT_THAT( 3499 EXPECT_THAT(
3489 metadata.referenced_surfaces, 3500 metadata.referenced_surfaces,
3490 testing::UnorderedElementsAre(children[0], children[1], children[2])); 3501 testing::UnorderedElementsAre(fallback_surfaces[0], fallback_surfaces[1],
3502 fallback_surfaces[2]));
3491 } 3503 }
3492 3504
3493 TEST_F(LayerTreeHostImplTest, CompositorFrameMetadata) { 3505 TEST_F(LayerTreeHostImplTest, CompositorFrameMetadata) {
3494 SetupScrollAndContentsLayers(gfx::Size(100, 100)); 3506 SetupScrollAndContentsLayers(gfx::Size(100, 100));
3495 host_impl_->SetViewportSize(gfx::Size(50, 50)); 3507 host_impl_->SetViewportSize(gfx::Size(50, 50));
3496 host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f); 3508 host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f);
3497 DrawFrame(); 3509 DrawFrame();
3498 { 3510 {
3499 CompositorFrameMetadata metadata = 3511 CompositorFrameMetadata metadata =
3500 host_impl_->MakeCompositorFrameMetadata(); 3512 host_impl_->MakeCompositorFrameMetadata();
(...skipping 8890 matching lines...) Expand 10 before | Expand all | Expand 10 after
12391 12403
12392 TEST_F(LayerTreeHostImplTest, RasterColorSpace) { 12404 TEST_F(LayerTreeHostImplTest, RasterColorSpace) {
12393 LayerTreeSettings settings = DefaultSettings(); 12405 LayerTreeSettings settings = DefaultSettings();
12394 settings.enable_color_correct_rasterization = true; 12406 settings.enable_color_correct_rasterization = true;
12395 CreateHostImpl(settings, CreateCompositorFrameSink()); 12407 CreateHostImpl(settings, CreateCompositorFrameSink());
12396 EXPECT_EQ(host_impl_->GetRasterColorSpace(), gfx::ColorSpace::CreateSRGB()); 12408 EXPECT_EQ(host_impl_->GetRasterColorSpace(), gfx::ColorSpace::CreateSRGB());
12397 } 12409 }
12398 12410
12399 } // namespace 12411 } // namespace
12400 } // namespace cc 12412 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/begin_frame_source_test.cc ('k') | components/viz/frame_sinks/mojo_frame_sink_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698