Index: cc/trees/layer_tree_host_impl_unittest.cc |
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc |
index 36c0a57a8cd5d8e8010c3040e918eafe2ecd233c..a6e3bd35d5be9d402da899784e24f2957d514671 100644 |
--- a/cc/trees/layer_tree_host_impl_unittest.cc |
+++ b/cc/trees/layer_tree_host_impl_unittest.cc |
@@ -167,7 +167,7 @@ class LayerTreeHostImplTest : public testing::Test, |
void OnDrawForOutputSurface(bool resourceless_software_draw) override { |
std::unique_ptr<LayerTreeHostImpl::FrameData> frame( |
new LayerTreeHostImpl::FrameData); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(frame.get())); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(frame.get())); |
last_on_draw_render_passes_.clear(); |
RenderPass::CopyAll(frame->render_passes, &last_on_draw_render_passes_); |
if (!skip_draw_layers_in_on_draw_) |
@@ -339,6 +339,7 @@ class LayerTreeHostImplTest : public testing::Test, |
root->test_properties()->AddChild(std::move(inner_clip)); |
layer_tree_impl->SetRootLayerForTesting(std::move(root)); |
+ layer_tree_impl->BuildLayerListAndPropertyTreesForTesting(); |
layer_tree_impl->SetViewportLayersFromIds( |
Layer::INVALID_ID, kPageScaleLayerId, kInnerViewportScrollLayerId, |
kOuterViewportScrollLayerId); |
@@ -350,8 +351,6 @@ class LayerTreeHostImplTest : public testing::Test, |
LayerImpl* SetupScrollAndContentsLayers(const gfx::Size& content_size) { |
LayerImpl* scroll_layer = CreateScrollAndContentsLayers( |
host_impl_->active_tree(), content_size); |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
host_impl_->active_tree()->DidBecomeActive(); |
return scroll_layer; |
} |
@@ -439,26 +438,11 @@ class LayerTreeHostImplTest : public testing::Test, |
void DrawFrame() { |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
} |
- void SetNeedsRebuildPropertyTrees() { |
- host_impl_->active_tree()->property_trees()->needs_rebuild = true; |
- } |
- |
- void RebuildPropertyTrees() { |
- host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- } |
- |
- DrawResult PrepareToDrawFrame(LayerTreeHostImpl::FrameData* frame) { |
- // We need to build property trees here before drawing the frame as they are |
- // not built on the impl thread. |
- RebuildPropertyTrees(); |
- return host_impl_->PrepareToDraw(frame); |
- } |
- |
void pinch_zoom_pan_viewport_forces_commit_redraw(float device_scale_factor); |
void pinch_zoom_pan_viewport_test(float device_scale_factor); |
void pinch_zoom_pan_viewport_and_scroll_test(float device_scale_factor); |
@@ -476,7 +460,7 @@ class LayerTreeHostImplTest : public testing::Test, |
void DrawOneFrame() { |
LayerTreeHostImpl::FrameData frame_data; |
- PrepareToDrawFrame(&frame_data); |
+ host_impl_->PrepareToDraw(&frame_data); |
host_impl_->DidDrawAllLayers(frame_data); |
} |
@@ -574,6 +558,8 @@ TEST_F(LayerTreeHostImplTest, ResourcelessDrawWithEmptyViewport) { |
FakeOutputSurface::CreateSoftware( |
base::WrapUnique(new SoftwareOutputDevice()))); |
SetupScrollAndContentsLayers(gfx::Size(100, 100)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
EXPECT_TRUE(host_impl_->CanDraw()); |
host_impl_->SetViewportSize(gfx::Size()); |
EXPECT_FALSE(host_impl_->CanDraw()); |
@@ -617,8 +603,9 @@ TEST_F(LayerTreeHostImplTest, ScrollDeltaTreeButNoChanges) { |
->test_properties() |
->AddChild(LayerImpl::Create(host_impl_->active_tree(), 6)); |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
+ host_impl_->active_tree()->BuildLayerListForTesting(); |
} |
- LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); |
+ LayerImpl* root = *host_impl_->active_tree()->begin(); |
ExpectClearedScrollDeltasRecursive(root); |
@@ -636,32 +623,25 @@ TEST_F(LayerTreeHostImplTest, ScrollDeltaTreeButNoChanges) { |
TEST_F(LayerTreeHostImplTest, ScrollDeltaRepeatedScrolls) { |
gfx::ScrollOffset scroll_offset(20, 30); |
gfx::Vector2d scroll_delta(11, -15); |
- { |
- std::unique_ptr<LayerImpl> root_clip = |
- LayerImpl::Create(host_impl_->active_tree(), 2); |
- std::unique_ptr<LayerImpl> root = |
- LayerImpl::Create(host_impl_->active_tree(), 1); |
- root_clip->SetBounds(gfx::Size(10, 10)); |
- LayerImpl* root_layer = root.get(); |
- root_clip->test_properties()->AddChild(std::move(root)); |
- root_layer->SetBounds(gfx::Size(110, 110)); |
- root_layer->SetScrollClipLayer(root_clip->id()); |
- root_layer->layer_tree_impl() |
- ->property_trees() |
- ->scroll_tree.UpdateScrollOffsetBaseForTesting(root_layer->id(), |
- scroll_offset); |
- host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_clip)); |
- host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- root_layer->ScrollBy(scroll_delta); |
- } |
- LayerImpl* root = host_impl_->active_tree() |
- ->root_layer_for_testing() |
- ->test_properties() |
- ->children[0]; |
+ auto root_clip_owned = LayerImpl::Create(host_impl_->active_tree(), 2); |
+ auto* root_clip = root_clip_owned.get(); |
+ auto root_owned = LayerImpl::Create(host_impl_->active_tree(), 1); |
+ auto* root = root_owned.get(); |
+ |
+ root_clip->SetBounds(gfx::Size(10, 10)); |
+ root_clip->test_properties()->AddChild(std::move(root_owned)); |
+ root->SetBounds(gfx::Size(110, 110)); |
+ root->SetScrollClipLayer(root_clip->id()); |
+ root->layer_tree_impl() |
+ ->property_trees() |
+ ->scroll_tree.UpdateScrollOffsetBaseForTesting(root->id(), scroll_offset); |
+ host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_clip_owned)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
std::unique_ptr<ScrollAndScaleSet> scroll_info; |
+ root->ScrollBy(scroll_delta); |
scroll_info = host_impl_->ProcessScrollDeltas(); |
ASSERT_EQ(scroll_info->scrolls.size(), 1u); |
EXPECT_TRUE(ScrollInfoContains(*scroll_info, root->id(), scroll_delta)); |
@@ -681,6 +661,8 @@ TEST_F(LayerTreeHostImplTest, ScrollDeltaRepeatedScrolls) { |
TEST_F(LayerTreeHostImplTest, ScrollRootCallsCommitAndRedraw) { |
SetupScrollAndContentsLayers(gfx::Size(100, 100)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(gfx::Size(50, 50)); |
DrawFrame(); |
@@ -704,6 +686,8 @@ TEST_F(LayerTreeHostImplTest, ScrollRootCallsCommitAndRedraw) { |
TEST_F(LayerTreeHostImplTest, ScrollActiveOnlyAfterScrollMovement) { |
SetupScrollAndContentsLayers(gfx::Size(100, 100)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(gfx::Size(50, 50)); |
DrawFrame(); |
@@ -812,8 +796,7 @@ TEST_F(LayerTreeHostImplTest, ScrollBlocksOnTouchEventHandlers) { |
child_layer->SetPosition(gfx::PointF(0, 20)); |
child_layer->SetBounds(gfx::Size(50, 50)); |
scroll->test_properties()->AddChild(std::move(child_layer)); |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
} |
// Touch handler regions determine whether touch events block scroll. |
@@ -893,7 +876,7 @@ TEST_F(LayerTreeHostImplTest, NoFlingWhenScrollingOnMain) { |
root->set_main_thread_scrolling_reasons( |
MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
// Start scrolling a layer |
@@ -917,7 +900,7 @@ TEST_F(LayerTreeHostImplTest, ShouldScrollOnMainThread) { |
root->set_main_thread_scrolling_reasons( |
MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
InputHandler::ScrollStatus status = host_impl_->ScrollBegin( |
@@ -979,8 +962,7 @@ TEST_F(LayerTreeHostImplTest, ScrollWithOverlappingNonScrollableLayer) { |
root->test_properties()->AddChild(std::move(clip)); |
layer_tree_impl->SetRootLayerForTesting(std::move(root)); |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
+ layer_tree_impl->BuildLayerListAndPropertyTreesForTesting(); |
layer_tree_impl->DidBecomeActive(); |
// The point hits squash1 layer and also scroll layer, because scroll layer is |
@@ -1012,7 +994,7 @@ TEST_F(LayerTreeHostImplTest, NonFastScrollableRegionBasic) { |
LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); |
root->SetNonFastScrollableRegion(gfx::Rect(0, 0, 50, 50)); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
// All scroll types inside the non-fast scrollable region should fail. |
@@ -1065,12 +1047,12 @@ TEST_F(LayerTreeHostImplTest, NonFastScrollableRegionWithOffset) { |
SetupScrollAndContentsLayers(gfx::Size(200, 200)); |
host_impl_->SetViewportSize(gfx::Size(100, 100)); |
- LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); |
+ LayerImpl* root = *host_impl_->active_tree()->begin(); |
root->SetNonFastScrollableRegion(gfx::Rect(0, 0, 50, 50)); |
root->SetPosition(gfx::PointF(-25.f, 0.f)); |
root->SetDrawsContent(true); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
// This point would fall into the non-fast scrollable region except that we've |
@@ -1210,7 +1192,7 @@ TEST_F(LayerTreeHostImplTest, ScrollVerticallyByPageReturnsCorrectValue) { |
// Trying to scroll if not user_scrollable_vertical will fail. |
host_impl_->InnerViewportScrollLayer()->set_user_scrollable_vertical(false); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
EXPECT_FALSE(host_impl_->ScrollVerticallyByPage( |
gfx::Point(), SCROLL_FORWARD)); |
@@ -1218,7 +1200,7 @@ TEST_F(LayerTreeHostImplTest, ScrollVerticallyByPageReturnsCorrectValue) { |
gfx::Point(), SCROLL_BACKWARD)); |
host_impl_->InnerViewportScrollLayer()->set_user_scrollable_vertical(true); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
EXPECT_TRUE(host_impl_->ScrollVerticallyByPage( |
gfx::Point(), SCROLL_FORWARD)); |
@@ -1244,7 +1226,7 @@ TEST_F(LayerTreeHostImplTest, ScrollWithUserUnscrollableLayers) { |
gfx::ScrollOffset()); |
overflow->SetPosition(gfx::PointF()); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
gfx::Point scroll_position(10, 10); |
@@ -1262,7 +1244,7 @@ TEST_F(LayerTreeHostImplTest, ScrollWithUserUnscrollableLayers) { |
EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 10), overflow->CurrentScrollOffset()); |
overflow->set_user_scrollable_horizontal(false); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, |
@@ -1278,7 +1260,7 @@ TEST_F(LayerTreeHostImplTest, ScrollWithUserUnscrollableLayers) { |
EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), overflow->CurrentScrollOffset()); |
overflow->set_user_scrollable_vertical(false); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, |
@@ -1300,15 +1282,14 @@ TEST_F(LayerTreeHostImplTest, AnimationSchedulingPendingTree) { |
host_impl_->SetViewportSize(gfx::Size(50, 50)); |
host_impl_->CreatePendingTree(); |
- host_impl_->pending_tree()->SetRootLayerForTesting( |
- LayerImpl::Create(host_impl_->pending_tree(), 1)); |
- LayerImpl* root = host_impl_->pending_tree()->root_layer_for_testing(); |
+ auto root_owned = LayerImpl::Create(host_impl_->pending_tree(), 1); |
+ auto* root = root_owned.get(); |
+ host_impl_->pending_tree()->SetRootLayerForTesting(std::move(root_owned)); |
root->SetBounds(gfx::Size(50, 50)); |
root->test_properties()->force_render_surface = true; |
root->test_properties()->AddChild( |
LayerImpl::Create(host_impl_->pending_tree(), 2)); |
- host_impl_->pending_tree()->BuildLayerListForTesting(); |
LayerImpl* child = root->test_properties()->children[0]; |
child->SetBounds(gfx::Size(10, 10)); |
child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); |
@@ -1358,7 +1339,7 @@ TEST_F(LayerTreeHostImplTest, AnimationSchedulingActiveTree) { |
host_impl_->active_tree()->SetRootLayerForTesting( |
LayerImpl::Create(host_impl_->active_tree(), 1)); |
- LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); |
+ LayerImpl* root = *host_impl_->active_tree()->begin(); |
root->SetBounds(gfx::Size(50, 50)); |
root->test_properties()->force_render_surface = true; |
@@ -1423,15 +1404,15 @@ TEST_F(LayerTreeHostImplTest, AnimationSchedulingCommitToActiveTree) { |
host_impl_->SetViewportSize(gfx::Size(50, 50)); |
- host_impl_->active_tree()->SetRootLayerForTesting( |
- LayerImpl::Create(host_impl_->active_tree(), 1)); |
- LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); |
+ auto root_owned = LayerImpl::Create(host_impl_->active_tree(), 1); |
+ auto* root = root_owned.get(); |
+ host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_owned)); |
root->SetBounds(gfx::Size(50, 50)); |
root->SetHasRenderSurface(true); |
- root->test_properties()->AddChild( |
- LayerImpl::Create(host_impl_->active_tree(), 2)); |
- LayerImpl* child = root->test_properties()->children[0]; |
+ auto child_owned = LayerImpl::Create(host_impl_->active_tree(), 2); |
+ auto* child = child_owned.get(); |
+ root->test_properties()->AddChild(std::move(child_owned)); |
child->SetBounds(gfx::Size(10, 10)); |
child->draw_properties().visible_layer_rect = gfx::Rect(10, 10); |
child->SetDrawsContent(true); |
@@ -1469,7 +1450,7 @@ TEST_F(LayerTreeHostImplTest, AnimationSchedulingOnLayerDestruction) { |
host_impl_->active_tree()->SetRootLayerForTesting( |
LayerImpl::Create(host_impl_->active_tree(), 1)); |
- LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); |
+ LayerImpl* root = *host_impl_->active_tree()->begin(); |
root->SetBounds(gfx::Size(50, 50)); |
root->test_properties()->AddChild( |
@@ -1544,7 +1525,7 @@ TEST_F(LayerTreeHostImplTest, AnimationMarksLayerNotReady) { |
host_impl_->active_tree()->SetRootLayerForTesting( |
LayerImpl::Create(host_impl_->active_tree(), 1)); |
- LayerImpl* root = host_impl_->active_tree()->root_layer_for_testing(); |
+ LayerImpl* root = *host_impl_->active_tree()->begin(); |
root->SetBounds(gfx::Size(50, 50)); |
root->SetHasRenderSurface(true); |
@@ -1577,7 +1558,6 @@ TEST_F(LayerTreeHostImplTest, AnimationMarksLayerNotReady) { |
EXPECT_FALSE(child->was_ever_ready_since_last_transform_animation()); |
- host_impl_->active_tree()->property_trees()->needs_rebuild = true; |
host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
host_impl_->ResetRequiresHighResToDraw(); |
@@ -1628,6 +1608,8 @@ TEST_F(LayerTreeHostImplTest, AnimationMarksLayerNotReady) { |
TEST_F(LayerTreeHostImplTest, ImplPinchZoom) { |
LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 100)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(gfx::Size(50, 50)); |
DrawFrame(); |
@@ -1712,12 +1694,12 @@ TEST_F(LayerTreeHostImplTest, ViewportScrollOrder) { |
outer_scroll_layer->SetDrawsContent(true); |
LayerImpl* inner_scroll_layer = host_impl_->InnerViewportScrollLayer(); |
inner_scroll_layer->SetDrawsContent(true); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
EXPECT_VECTOR_EQ( |
gfx::Vector2dF(500, 500), |
outer_scroll_layer->MaxScrollOffset()); |
- RebuildPropertyTrees(); |
host_impl_->ScrollBegin(BeginState(gfx::Point(250, 250)).get(), |
InputHandler::TOUCHSCREEN); |
host_impl_->PinchGestureBegin(); |
@@ -1778,6 +1760,7 @@ TEST_F(LayerTreeHostImplTest, ScrollViewportWithFractionalAmounts) { |
outer_scroll_layer->SetDrawsContent(true); |
LayerImpl* inner_scroll_layer = host_impl_->InnerViewportScrollLayer(); |
inner_scroll_layer->SetDrawsContent(true); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
// Sanity checks. |
EXPECT_VECTOR_EQ( |
@@ -1786,8 +1769,6 @@ TEST_F(LayerTreeHostImplTest, ScrollViewportWithFractionalAmounts) { |
EXPECT_VECTOR_EQ(gfx::Vector2dF(), outer_scroll_layer->CurrentScrollOffset()); |
EXPECT_VECTOR_EQ(gfx::Vector2dF(), inner_scroll_layer->CurrentScrollOffset()); |
- RebuildPropertyTrees(); |
- |
// Scroll only the layout viewport. |
host_impl_->ScrollBegin(BeginState(gfx::Point(250, 250)).get(), |
InputHandler::TOUCHSCREEN); |
@@ -1834,12 +1815,12 @@ TEST_F(LayerTreeHostImplTest, ScrollDuringPinchGesture) { |
outer_scroll_layer->SetDrawsContent(true); |
LayerImpl* inner_scroll_layer = host_impl_->InnerViewportScrollLayer(); |
inner_scroll_layer->SetDrawsContent(true); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
EXPECT_VECTOR_EQ( |
gfx::Vector2dF(500, 500), |
outer_scroll_layer->MaxScrollOffset()); |
- RebuildPropertyTrees(); |
host_impl_->ScrollBegin(BeginState(gfx::Point(250, 250)).get(), |
InputHandler::TOUCHSCREEN); |
host_impl_->PinchGestureBegin(); |
@@ -1898,7 +1879,6 @@ TEST_F(LayerTreeHostImplTest, PinchZoomSnapsToScreenEdge) { |
// Pinch in within the margins. The scroll should stay exactly locked to the |
// bottom and right. |
- RebuildPropertyTrees(); |
host_impl_->ScrollBegin(BeginState(anchor).get(), InputHandler::TOUCHSCREEN); |
host_impl_->PinchGestureBegin(); |
host_impl_->PinchGestureUpdate(2, anchor); |
@@ -1976,7 +1956,6 @@ TEST_F(LayerTreeHostImplTest, ImplPinchZoomWheelBubbleBetweenViewports) { |
// Zoom into the page by a 2X factor |
float min_page_scale = 1.f, max_page_scale = 4.f; |
float page_scale_factor = 2.f; |
- RebuildPropertyTrees(); |
host_impl_->active_tree()->PushPageScaleFromMainThread( |
page_scale_factor, min_page_scale, max_page_scale); |
host_impl_->active_tree()->SetPageScaleOnActiveTree(page_scale_factor); |
@@ -2090,7 +2069,7 @@ TEST_F(LayerTreeHostImplTest, ScrollDoesntBubble) { |
scroll_children->insert(child_clip); |
parent->test_properties()->scroll_children.reset(scroll_children.release()); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
{ |
@@ -2508,7 +2487,6 @@ TEST_F(LayerTreeHostImplTest, PageScaleAnimationTransferedOnSyncTreeActivate) { |
gfx::Size(100, 100)); |
host_impl_->pending_tree()->BuildLayerListAndPropertyTreesForTesting(); |
host_impl_->ActivateSyncTree(); |
- host_impl_->active_tree()->SetRootLayerFromLayerListForTesting(); |
DrawFrame(); |
LayerImpl* scroll_layer = host_impl_->InnerViewportScrollLayer(); |
@@ -2673,7 +2651,7 @@ TEST_F(LayerTreeHostImplTest, MaxScrollOffsetAffectedByBoundsDelta) { |
SetupScrollAndContentsLayers(gfx::Size(100, 100)); |
host_impl_->SetViewportSize(gfx::Size(50, 50)); |
host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
LayerImpl* inner_scroll = host_impl_->InnerViewportScrollLayer(); |
@@ -2689,7 +2667,7 @@ TEST_F(LayerTreeHostImplTest, MaxScrollOffsetAffectedByBoundsDelta) { |
inner_container->SetBoundsDelta(gfx::Vector2dF()); |
inner_scroll->SetBoundsDelta(gfx::Vector2dF()); |
inner_scroll->SetBounds(gfx::Size()); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
inner_scroll->SetBoundsDelta(gfx::Vector2dF(60.f, 60.f)); |
@@ -2759,7 +2737,7 @@ class LayerTreeHostImplTestScrollbarAnimation : public LayerTreeHostImplTest { |
root->test_properties()->AddChild(std::move(scrollbar)); |
host_impl_->active_tree()->DidBecomeActive(); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
DrawFrame(); |
} |
@@ -2966,7 +2944,6 @@ class LayerTreeHostImplTestScrollbarOpacity : public LayerTreeHostImplTest { |
container = host_impl_->pending_tree()->InnerViewportContainerLayer(); |
container->test_properties()->force_render_surface = true; |
container->SetBounds(gfx::Size(10, 10)); |
- host_impl_->pending_tree()->property_trees()->needs_rebuild = true; |
host_impl_->pending_tree()->BuildLayerListAndPropertyTreesForTesting(); |
LayerImpl* pending_scrollbar_layer = |
@@ -3185,6 +3162,7 @@ void LayerTreeHostImplTest::SetupMouseMoveAtWithDeviceScale( |
->InnerViewportContainerLayer() |
->test_properties() |
->AddChild(std::move(scrollbar)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
host_impl_->active_tree()->DidBecomeActive(); |
DrawFrame(); |
@@ -3417,18 +3395,19 @@ TEST_F(LayerTreeHostImplTest, WillDrawReturningFalseDoesNotCall) { |
// will be masked out by the root layer's bounds. |
host_impl_->active_tree()->SetRootLayerForTesting( |
DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); |
- DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( |
- host_impl_->active_tree()->root_layer_for_testing()); |
+ DidDrawCheckLayer* root = |
+ static_cast<DidDrawCheckLayer*>(*host_impl_->active_tree()->begin()); |
root->test_properties()->AddChild( |
DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); |
root->test_properties()->force_render_surface = true; |
DidDrawCheckLayer* layer = |
static_cast<DidDrawCheckLayer*>(root->test_properties()->children[0]); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
{ |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
@@ -3445,7 +3424,7 @@ TEST_F(LayerTreeHostImplTest, WillDrawReturningFalseDoesNotCall) { |
layer->set_will_draw_returns_false(); |
layer->ClearDidDrawCheck(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
@@ -3460,8 +3439,8 @@ TEST_F(LayerTreeHostImplTest, DidDrawNotCalledOnHiddenLayer) { |
// will be masked out by the root layer's bounds. |
host_impl_->active_tree()->SetRootLayerForTesting( |
DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); |
- DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( |
- host_impl_->active_tree()->root_layer_for_testing()); |
+ DidDrawCheckLayer* root = |
+ static_cast<DidDrawCheckLayer*>(*host_impl_->active_tree()->begin()); |
root->SetMasksToBounds(true); |
root->test_properties()->force_render_surface = true; |
root->test_properties()->AddChild( |
@@ -3477,8 +3456,8 @@ TEST_F(LayerTreeHostImplTest, DidDrawNotCalledOnHiddenLayer) { |
EXPECT_FALSE(layer->will_draw_called()); |
EXPECT_FALSE(layer->did_draw_called()); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
@@ -3494,8 +3473,8 @@ TEST_F(LayerTreeHostImplTest, DidDrawNotCalledOnHiddenLayer) { |
EXPECT_FALSE(layer->will_draw_called()); |
EXPECT_FALSE(layer->did_draw_called()); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
@@ -3511,8 +3490,8 @@ TEST_F(LayerTreeHostImplTest, WillDrawNotCalledOnOccludedLayer) { |
host_impl_->active_tree()->SetRootLayerForTesting( |
DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); |
- DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( |
- host_impl_->active_tree()->root_layer_for_testing()); |
+ DidDrawCheckLayer* root = |
+ static_cast<DidDrawCheckLayer*>(*host_impl_->active_tree()->begin()); |
root->test_properties()->AddChild( |
DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); |
@@ -3528,6 +3507,7 @@ TEST_F(LayerTreeHostImplTest, WillDrawNotCalledOnOccludedLayer) { |
// occlude. |
top_layer->SetBounds(big_size); |
top_layer->SetContentsOpaque(true); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
LayerTreeHostImpl::FrameData frame; |
@@ -3536,7 +3516,7 @@ TEST_F(LayerTreeHostImplTest, WillDrawNotCalledOnOccludedLayer) { |
EXPECT_FALSE(top_layer->will_draw_called()); |
EXPECT_FALSE(top_layer->did_draw_called()); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
@@ -3549,8 +3529,8 @@ TEST_F(LayerTreeHostImplTest, WillDrawNotCalledOnOccludedLayer) { |
TEST_F(LayerTreeHostImplTest, DidDrawCalledOnAllLayers) { |
host_impl_->active_tree()->SetRootLayerForTesting( |
DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); |
- DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( |
- host_impl_->active_tree()->root_layer_for_testing()); |
+ DidDrawCheckLayer* root = |
+ static_cast<DidDrawCheckLayer*>(*host_impl_->active_tree()->begin()); |
root->test_properties()->AddChild( |
DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); |
@@ -3565,6 +3545,7 @@ TEST_F(LayerTreeHostImplTest, DidDrawCalledOnAllLayers) { |
layer1->test_properties()->force_render_surface = true; |
layer1->test_properties()->should_flatten_transform = true; |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
EXPECT_FALSE(root->did_draw_called()); |
EXPECT_FALSE(layer1->did_draw_called()); |
@@ -3572,8 +3553,8 @@ TEST_F(LayerTreeHostImplTest, DidDrawCalledOnAllLayers) { |
LayerTreeHostImpl::FrameData frame; |
FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( |
- host_impl_->active_tree()->root_layer_for_testing()); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ *host_impl_->active_tree()->begin()); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
@@ -3721,13 +3702,13 @@ TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsAndFails) { |
host_impl_->active_tree()->SetRootLayerForTesting( |
DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); |
- DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( |
- host_impl_->active_tree()->root_layer_for_testing()); |
+ DidDrawCheckLayer* root = |
+ static_cast<DidDrawCheckLayer*>(*host_impl_->active_tree()->begin()); |
root->test_properties()->force_render_surface = true; |
LayerTreeHostImpl::FrameData frame; |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
host_impl_->SwapBuffers(frame); |
@@ -3775,13 +3756,13 @@ TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsAndFails) { |
root->test_properties()->children.back()); |
if (testcase.layer_after.has_copy_request) |
after->AddCopyRequest(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
if (testcase.high_res_required) |
host_impl_->SetRequiresHighResToDraw(); |
LayerTreeHostImpl::FrameData frame; |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(testcase.expected_result, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(testcase.expected_result, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
host_impl_->SwapBuffers(frame); |
@@ -3823,8 +3804,8 @@ TEST_F(LayerTreeHostImplTest, |
DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( |
host_impl_->active_tree()->root_layer_for_testing()); |
root->test_properties()->force_render_surface = true; |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
host_impl_->OnDraw(external_transform, external_viewport, external_clip, |
resourceless_software_draw); |
@@ -3869,11 +3850,11 @@ TEST_F(LayerTreeHostImplTest, |
root->test_properties()->children.back()); |
if (testcase.layer_after.has_copy_request) |
after->AddCopyRequest(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
if (testcase.high_res_required) |
host_impl_->SetRequiresHighResToDraw(); |
- SetNeedsRebuildPropertyTrees(); |
host_impl_->OnDraw(external_transform, external_viewport, external_clip, |
resourceless_software_draw); |
} |
@@ -3885,7 +3866,8 @@ TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) { |
root->SetScrollClipLayer(Layer::INVALID_ID); |
root->test_properties()->force_render_surface = true; |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
DrawFrame(); |
// Scroll event is ignored because layer is not scrollable. |
@@ -4038,8 +4020,8 @@ TEST_F(LayerTreeHostImplTopControlsTest, |
LayerImpl* content = |
active_tree->OuterViewportScrollLayer()->test_properties()->children[0]; |
content->SetBounds(gfx::Size(50, 50)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
LayerImpl* inner_container = active_tree->InnerViewportContainerLayer(); |
@@ -4343,7 +4325,6 @@ TEST_F(LayerTreeHostImplTopControlsTest, TopControlsScrollableSublayer) { |
// Scroll 25px to hide top controls |
gfx::Vector2dF scroll_delta(0.f, 25.f); |
- host_impl_->active_tree()->property_trees()->needs_rebuild = true; |
host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, |
host_impl_ |
@@ -4836,8 +4817,9 @@ TEST_F(LayerTreeHostImplTest, ScrollNonCompositedRoot) { |
scroll_clip_layer->test_properties()->force_render_surface = true; |
host_impl_->active_tree()->SetRootLayerForTesting( |
std::move(scroll_clip_layer)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(surface_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, |
@@ -4860,8 +4842,9 @@ TEST_F(LayerTreeHostImplTest, ScrollChildCallsCommitAndRedraw) { |
CreateScrollableLayer(2, contents_size, root.get())); |
root->test_properties()->force_render_surface = true; |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(surface_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, |
@@ -4882,8 +4865,9 @@ TEST_F(LayerTreeHostImplTest, ScrollMissesChild) { |
CreateScrollableLayer(2, surface_size, root.get())); |
root->test_properties()->force_render_surface = true; |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(surface_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
// Scroll event is ignored because the input coordinate is outside the layer |
@@ -4905,7 +4889,6 @@ TEST_F(LayerTreeHostImplTest, ScrollMissesBackfacingChild) { |
root->test_properties()->force_render_surface = true; |
std::unique_ptr<LayerImpl> child = |
CreateScrollableLayer(2, surface_size, root.get()); |
- host_impl_->SetViewportSize(surface_size); |
gfx::Transform matrix; |
matrix.RotateAboutXAxis(180.0); |
@@ -4914,7 +4897,9 @@ TEST_F(LayerTreeHostImplTest, ScrollMissesBackfacingChild) { |
root->test_properties()->AddChild(std::move(child)); |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
+ host_impl_->SetViewportSize(surface_size); |
DrawFrame(); |
// Scroll event is ignored because the scrollable layer is not facing the |
@@ -4948,8 +4933,9 @@ TEST_F(LayerTreeHostImplTest, ScrollBlockedByContentLayer) { |
clip_layer->test_properties()->force_render_surface = true; |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(clip_layer)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(surface_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
// Scrolling fails because the content layer is asking to be scrolled on the |
@@ -5023,6 +5009,8 @@ TEST_F(LayerTreeHostImplTest, ScrollRootAndChangePageScaleOnImplThread) { |
host_impl_->active_tree()->OuterViewportScrollLayer()->SetBounds( |
gfx::Size(40, 40)); |
host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 1.f, 2.f); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ |
DrawFrame(); |
LayerImpl* root_scroll = |
@@ -5048,6 +5036,7 @@ TEST_F(LayerTreeHostImplTest, ScrollRootAndChangePageScaleOnImplThread) { |
host_impl_->PinchGestureUpdate(page_scale, gfx::Point()); |
host_impl_->PinchGestureEnd(); |
host_impl_->ScrollEnd(EndState().get()); |
+ |
DrawOneFrame(); |
// The scroll delta is not scaled because the main thread did not scale. |
@@ -5090,10 +5079,9 @@ TEST_F(LayerTreeHostImplTest, PageScaleDeltaAppliedToRootScrollLayerOnly) { |
child->test_properties()->AddChild(std::move(scrollable_child_clip)); |
LayerImpl* grand_child = child->test_properties()->children[0]; |
grand_child->SetDrawsContent(true); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
// Set new page scale on impl thread by pinching. |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
host_impl_->ScrollBegin(BeginState(gfx::Point()).get(), |
InputHandler::TOUCHSCREEN); |
host_impl_->PinchGestureBegin(); |
@@ -5105,7 +5093,7 @@ TEST_F(LayerTreeHostImplTest, PageScaleDeltaAppliedToRootScrollLayerOnly) { |
// Make sure all the layers are drawn with the page scale delta applied, i.e., |
// the page scale delta on the root layer is applied hierarchically. |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
@@ -5129,6 +5117,7 @@ TEST_F(LayerTreeHostImplTest, ScrollChildAndChangePageScaleOnMainThread) { |
// Make the outer scroll layer scrollable. |
outer_scroll->SetBounds(gfx::Size(50, 50)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
DrawFrame(); |
@@ -5145,6 +5134,7 @@ TEST_F(LayerTreeHostImplTest, ScrollChildAndChangePageScaleOnMainThread) { |
float page_scale = 2.f; |
host_impl_->active_tree()->PushPageScaleFromMainThread(page_scale, 1.f, |
page_scale); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
DrawOneFrame(); |
@@ -5181,8 +5171,9 @@ TEST_F(LayerTreeHostImplTest, ScrollChildBeyondLimit) { |
LayerImpl* child_layer = child.get(); |
root->test_properties()->AddChild(std::move(child)); |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
host_impl_->active_tree()->DidBecomeActive(); |
- host_impl_->SetViewportSize(surface_size); |
+ |
grand_child_layer->layer_tree_impl() |
->property_trees() |
->scroll_tree.UpdateScrollOffsetBaseForTesting(grand_child_layer->id(), |
@@ -5192,7 +5183,7 @@ TEST_F(LayerTreeHostImplTest, ScrollChildBeyondLimit) { |
->scroll_tree.UpdateScrollOffsetBaseForTesting(child_layer->id(), |
gfx::ScrollOffset(3, 0)); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->SetViewportSize(surface_size); |
DrawFrame(); |
{ |
gfx::Vector2d scroll_delta(-8, -7); |
@@ -5249,6 +5240,7 @@ TEST_F(LayerTreeHostImplTest, ScrollWithoutBubbling) { |
EXPECT_EQ(viewport_size, root_clip->bounds()); |
root_ptr->test_properties()->AddChild(std::move(root_clip)); |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_ptr)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 1, 3, |
Layer::INVALID_ID); |
host_impl_->active_tree()->DidBecomeActive(); |
@@ -5263,7 +5255,6 @@ TEST_F(LayerTreeHostImplTest, ScrollWithoutBubbling) { |
->scroll_tree.UpdateScrollOffsetBaseForTesting(child_layer->id(), |
gfx::ScrollOffset(0, 3)); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
{ |
gfx::Vector2d scroll_delta(0, -10); |
@@ -5380,12 +5371,13 @@ TEST_F(LayerTreeHostImplTest, ScrollEventBubbling) { |
root_clip->test_properties()->AddChild(std::move(root_scroll)); |
root_ptr->test_properties()->AddChild(std::move(root_clip)); |
- host_impl_->SetViewportSize(surface_size); |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_ptr)); |
host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 4, 2, |
Layer::INVALID_ID); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
host_impl_->active_tree()->DidBecomeActive(); |
- SetNeedsRebuildPropertyTrees(); |
+ |
+ host_impl_->SetViewportSize(surface_size); |
DrawFrame(); |
{ |
gfx::Vector2d scroll_delta(0, 4); |
@@ -5421,13 +5413,15 @@ TEST_F(LayerTreeHostImplTest, ScrollBeforeRedraw) { |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_ptr)); |
host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 1, 3, |
Layer::INVALID_ID); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
host_impl_->active_tree()->DidBecomeActive(); |
+ |
host_impl_->SetViewportSize(surface_size); |
// Draw one frame and then immediately rebuild the layer tree to mimic a tree |
// synchronization. |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
+ |
host_impl_->active_tree()->DetachLayers(); |
std::unique_ptr<LayerImpl> root_ptr2 = |
LayerImpl::Create(host_impl_->active_tree(), 4); |
@@ -5441,13 +5435,12 @@ TEST_F(LayerTreeHostImplTest, ScrollBeforeRedraw) { |
root_clip2->test_properties()->force_render_surface = true; |
root_ptr2->test_properties()->AddChild(std::move(root_clip2)); |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_ptr2)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 4, 6, |
Layer::INVALID_ID); |
host_impl_->active_tree()->DidBecomeActive(); |
// Scrolling should still work even though we did not draw yet. |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, |
host_impl_->ScrollBegin(BeginState(gfx::Point(5, 5)).get(), |
InputHandler::WHEEL) |
@@ -5463,10 +5456,10 @@ TEST_F(LayerTreeHostImplTest, ScrollAxisAlignedRotatedLayer) { |
rotate_transform.Rotate(-90.0); |
host_impl_->active_tree()->root_layer_for_testing()->SetTransform( |
rotate_transform); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
gfx::Size surface_size(50, 50); |
host_impl_->SetViewportSize(surface_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
// Scroll to the right in screen coordinates with a gesture. |
@@ -5529,10 +5522,10 @@ TEST_F(LayerTreeHostImplTest, ScrollNonAxisAlignedRotatedLayer) { |
LayerImpl* child_ptr = child.get(); |
clip_layer->test_properties()->AddChild(std::move(child)); |
scroll_layer->test_properties()->AddChild(std::move(clip_layer)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
gfx::Size surface_size(50, 50); |
host_impl_->SetViewportSize(surface_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
{ |
// Scroll down in screen coordinates with a gesture. |
@@ -5614,6 +5607,7 @@ TEST_F(LayerTreeHostImplTest, ScrollPerspectiveTransformedLayer) { |
clip_layer->bounds().width(), clip_layer->bounds().height(), 0.f); |
clip_layer->test_properties()->AddChild(std::move(child)); |
scroll_layer->test_properties()->AddChild(std::move(clip_layer)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
gfx::Size surface_size(50, 50); |
host_impl_->SetViewportSize(surface_size); |
@@ -5638,7 +5632,6 @@ TEST_F(LayerTreeHostImplTest, ScrollPerspectiveTransformedLayer) { |
gfx::Point viewport_point(1, 1); |
- SetNeedsRebuildPropertyTrees(); |
// Scroll in screen coordinates with a gesture. Each scroll starts |
// where the previous scroll ended, but the scroll position is reset |
// for each scroll. |
@@ -5674,10 +5667,10 @@ TEST_F(LayerTreeHostImplTest, ScrollScaledLayer) { |
gfx::Transform scale_transform; |
scale_transform.Scale(scale, scale); |
scroll_layer->test_properties()->parent->SetTransform(scale_transform); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
gfx::Size surface_size(50, 50); |
host_impl_->SetViewportSize(surface_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
// Scroll down in screen coordinates with a gesture. |
@@ -5720,8 +5713,8 @@ TEST_F(LayerTreeHostImplTest, ScrollViewportRounding) { |
SetupScrollAndContentsLayers(gfx::Size(width, height)); |
host_impl_->active_tree()->InnerViewportContainerLayer()->SetBounds( |
gfx::Size(width * scale - 1, height * scale)); |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ |
host_impl_->active_tree()->SetDeviceScaleFactor(scale); |
host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f); |
@@ -5800,9 +5793,8 @@ TEST_F(LayerTreeHostImplTest, RootLayerScrollOffsetDelegation) { |
LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 100)); |
LayerImpl* clip_layer = |
scroll_layer->test_properties()->parent->test_properties()->parent; |
- SetNeedsRebuildPropertyTrees(); |
clip_layer->SetBounds(gfx::Size(10, 20)); |
- RebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
host_impl_->BindToClient(&scroll_watcher); |
@@ -5923,10 +5915,11 @@ TEST_F(LayerTreeHostImplTest, |
// Set external scroll delta on delegate and notify LayerTreeHost. |
gfx::ScrollOffset scroll_offset(10.f, 10.f); |
host_impl_->SetSynchronousInputHandlerRootScrollOffset(scroll_offset); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
// Check scroll delta reflected in layer. |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
EXPECT_FALSE(frame.has_no_damage); |
@@ -5936,6 +5929,8 @@ TEST_F(LayerTreeHostImplTest, |
TEST_F(LayerTreeHostImplTest, OverscrollRoot) { |
InputHandlerScrollResult scroll_result; |
SetupScrollAndContentsLayers(gfx::Size(100, 100)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(gfx::Size(50, 50)); |
host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f); |
DrawFrame(); |
@@ -6084,6 +6079,10 @@ TEST_F(LayerTreeHostImplTest, OverscrollChildWithoutBubbling) { |
LayerImpl* child_layer = child.get(); |
root->test_properties()->AddChild(std::move(child)); |
root_clip->test_properties()->AddChild(std::move(root)); |
+ host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_clip)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ host_impl_->active_tree()->DidBecomeActive(); |
+ |
child_layer->layer_tree_impl() |
->property_trees() |
->scroll_tree.UpdateScrollOffsetBaseForTesting(child_layer->id(), |
@@ -6092,10 +6091,8 @@ TEST_F(LayerTreeHostImplTest, OverscrollChildWithoutBubbling) { |
->property_trees() |
->scroll_tree.UpdateScrollOffsetBaseForTesting(grand_child_layer->id(), |
gfx::ScrollOffset(0, 2)); |
- host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_clip)); |
- host_impl_->active_tree()->DidBecomeActive(); |
+ |
host_impl_->SetViewportSize(surface_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
{ |
gfx::Vector2d scroll_delta(0, -10); |
@@ -6151,6 +6148,8 @@ TEST_F(LayerTreeHostImplTest, OverscrollChildEventBubbling) { |
// be reflected only when it has bubbled up to the root scrolling layer. |
InputHandlerScrollResult scroll_result; |
SetupScrollAndContentsLayers(gfx::Size(20, 20)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
DrawFrame(); |
{ |
gfx::Vector2d scroll_delta(0, 8); |
@@ -6185,9 +6184,10 @@ TEST_F(LayerTreeHostImplTest, OverscrollAlways) { |
LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(50, 50)); |
LayerImpl* clip_layer = |
scroll_layer->test_properties()->parent->test_properties()->parent; |
+ |
clip_layer->SetBounds(gfx::Size(50, 50)); |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(gfx::Size(50, 50)); |
host_impl_->active_tree()->PushPageScaleFromMainThread(1.f, 0.5f, 4.f); |
DrawFrame(); |
@@ -6208,6 +6208,7 @@ TEST_F(LayerTreeHostImplTest, OverscrollAlways) { |
TEST_F(LayerTreeHostImplTest, NoOverscrollWhenNotAtEdge) { |
InputHandlerScrollResult scroll_result; |
SetupScrollAndContentsLayers(gfx::Size(200, 200)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
DrawFrame(); |
{ |
@@ -6375,8 +6376,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer1->SetContentsOpaque(true); |
layer1->SetExpectation(false, false); |
layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
host_impl_->DidDrawAllLayers(frame); |
@@ -6385,8 +6386,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer1->SetContentsOpaque(false); |
layer1->SetExpectation(true, false); |
layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
host_impl_->DidDrawAllLayers(frame); |
@@ -6397,8 +6398,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer1->NoteLayerPropertyChanged(); |
layer1->SetExpectation(true, false); |
layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
host_impl_->DidDrawAllLayers(frame); |
@@ -6409,8 +6410,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer1->NoteLayerPropertyChanged(); |
layer1->SetExpectation(true, false); |
layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
host_impl_->DidDrawAllLayers(frame); |
@@ -6432,8 +6433,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer2->NoteLayerPropertyChanged(); |
layer2->SetExpectation(false, false); |
layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
EXPECT_TRUE(layer2->quads_appended()); |
@@ -6446,8 +6447,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
layer2->SetExpectation(false, false); |
layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
EXPECT_TRUE(layer2->quads_appended()); |
@@ -6461,8 +6462,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
layer2->SetExpectation(false, false); |
layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
EXPECT_TRUE(layer2->quads_appended()); |
@@ -6483,8 +6484,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( |
host_impl_->active_tree()->root_layer_for_testing()); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
EXPECT_TRUE(layer2->quads_appended()); |
@@ -6503,8 +6504,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer2->NoteLayerPropertyChanged(); |
layer2->SetExpectation(true, false); |
layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
EXPECT_TRUE(layer2->quads_appended()); |
@@ -6521,8 +6522,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer2->NoteLayerPropertyChanged(); |
layer2->SetExpectation(true, false); |
layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
EXPECT_TRUE(layer2->quads_appended()); |
@@ -6540,8 +6541,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer2->NoteLayerPropertyChanged(); |
layer2->SetExpectation(false, false); |
layer2->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
EXPECT_TRUE(layer2->quads_appended()); |
@@ -6554,8 +6555,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
layer1->SetExpectation(true, false); |
layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
host_impl_->DidDrawAllLayers(frame); |
@@ -6567,8 +6568,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
layer1->SetExpectation(true, false); |
layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
host_impl_->DidDrawAllLayers(frame); |
@@ -6580,8 +6581,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
layer1->SetExpectation(true, false); |
layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
host_impl_->DidDrawAllLayers(frame); |
@@ -6594,8 +6595,8 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { |
layer1->SetOpaqueContentRect(gfx::Rect(5, 5, 2, 5)); |
layer1->SetExpectation(false, false); |
layer1->SetUpdateRect(gfx::Rect(layer1->bounds())); |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(layer1->quads_appended()); |
host_impl_->DidDrawAllLayers(frame); |
@@ -6644,10 +6645,10 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
child_->SetBounds(layer_rect.size()); |
child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
LayerTreeHostImpl::FrameData frame; |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
ASSERT_EQ(1u, frame.render_passes.size()); |
EXPECT_EQ(0u, CountGutterQuads(frame.render_passes[0]->quad_list)); |
@@ -6665,6 +6666,7 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
child_->SetBounds(layer_rect.size()); |
child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
} |
void VerifyEmptyLayerRenderPasses(const RenderPassList& render_passes) { |
@@ -6680,8 +6682,7 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
void TestEmptyLayer() { |
SetUpEmptylayer(); |
LayerTreeHostImpl::FrameData frame; |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
VerifyEmptyLayerRenderPasses(frame.render_passes); |
host_impl_->DidDrawAllLayers(frame); |
} |
@@ -6691,7 +6692,6 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
gfx::Transform identity; |
gfx::Rect viewport(viewport_size_); |
bool resourceless_software_draw = true; |
- SetNeedsRebuildPropertyTrees(); |
host_impl_->OnDraw(identity, viewport, viewport, |
resourceless_software_draw); |
VerifyEmptyLayerRenderPasses(last_on_draw_render_passes_); |
@@ -6704,6 +6704,7 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
child_->SetBounds(layer_rect.size()); |
child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
} |
void VerifyLayerInMiddleOfViewport(const RenderPassList& render_passes) { |
@@ -6719,8 +6720,7 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
void TestLayerInMiddleOfViewport() { |
SetUpLayerInMiddleOfViewport(); |
LayerTreeHostImpl::FrameData frame; |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
VerifyLayerInMiddleOfViewport(frame.render_passes); |
host_impl_->DidDrawAllLayers(frame); |
} |
@@ -6730,7 +6730,6 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
gfx::Transform identity; |
gfx::Rect viewport(viewport_size_); |
bool resourceless_software_draw = true; |
- SetNeedsRebuildPropertyTrees(); |
host_impl_->OnDraw(identity, viewport, viewport, |
resourceless_software_draw); |
VerifyLayerInMiddleOfViewport(last_on_draw_render_passes_); |
@@ -6744,6 +6743,7 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
child_->SetBounds(layer_rect.size()); |
child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
} |
void VerifyLayerIsLargerThanViewport(const RenderPassList& render_passes) { |
@@ -6757,8 +6757,7 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
void TestLayerIsLargerThanViewport() { |
SetUpLayerIsLargerThanViewport(); |
LayerTreeHostImpl::FrameData frame; |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
VerifyLayerIsLargerThanViewport(frame.render_passes); |
host_impl_->DidDrawAllLayers(frame); |
} |
@@ -6768,7 +6767,6 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest { |
gfx::Transform identity; |
gfx::Rect viewport(viewport_size_); |
bool resourceless_software_draw = true; |
- SetNeedsRebuildPropertyTrees(); |
host_impl_->OnDraw(identity, viewport, viewport, |
resourceless_software_draw); |
VerifyLayerIsLargerThanViewport(last_on_draw_render_passes_); |
@@ -6931,13 +6929,15 @@ TEST_F(LayerTreeHostImplTest, ReshapeNotCalledUntilDraw) { |
root->SetDrawsContent(true); |
root->test_properties()->force_render_surface = true; |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
EXPECT_FALSE(provider->TestContext3d()->reshape_called()); |
provider->TestContext3d()->clear_reshape_called(); |
LayerTreeHostImpl::FrameData frame; |
host_impl_->SetViewportSize(gfx::Size(10, 10)); |
host_impl_->active_tree()->SetDeviceScaleFactor(1.f); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(provider->TestContext3d()->reshape_called()); |
EXPECT_EQ(provider->TestContext3d()->width(), 10); |
@@ -6947,7 +6947,7 @@ TEST_F(LayerTreeHostImplTest, ReshapeNotCalledUntilDraw) { |
provider->TestContext3d()->clear_reshape_called(); |
host_impl_->SetViewportSize(gfx::Size(20, 30)); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(provider->TestContext3d()->reshape_called()); |
EXPECT_EQ(provider->TestContext3d()->width(), 20); |
@@ -6957,7 +6957,7 @@ TEST_F(LayerTreeHostImplTest, ReshapeNotCalledUntilDraw) { |
provider->TestContext3d()->clear_reshape_called(); |
host_impl_->active_tree()->SetDeviceScaleFactor(2.f); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
EXPECT_TRUE(provider->TestContext3d()->reshape_called()); |
EXPECT_EQ(provider->TestContext3d()->width(), 20); |
@@ -7034,7 +7034,6 @@ TEST_F(LayerTreeHostImplTest, PartialSwapReceivesDamageRect) { |
->test_properties() |
->children[0] |
->NoteLayerPropertyChanged(); |
- layer_tree_host_impl->active_tree()->property_trees()->needs_rebuild = true; |
layer_tree_host_impl->active_tree() |
->BuildLayerListAndPropertyTreesForTesting(); |
EXPECT_EQ(DRAW_SUCCESS, layer_tree_host_impl->PrepareToDraw(&frame)); |
@@ -7077,10 +7076,11 @@ TEST_F(LayerTreeHostImplTest, RootLayerDoesntCreateExtraSurface) { |
root->test_properties()->AddChild(std::move(child)); |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
EXPECT_EQ(1u, frame.render_surface_layer_list->size()); |
EXPECT_EQ(1u, frame.render_passes.size()); |
host_impl_->DidDrawAllLayers(frame); |
@@ -7210,14 +7210,14 @@ TEST_F(LayerTreeHostImplTest, NoPartialSwap) { |
CreateHostImpl(settings, |
FakeOutputSurface::Create3d(std::move(mock_context_owned))); |
SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
// Without partial swap, and no clipping, no scissor is set. |
harness.MustDrawSolidQuad(); |
harness.MustSetNoScissor(); |
{ |
LayerTreeHostImpl::FrameData frame; |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
} |
@@ -7225,16 +7225,15 @@ TEST_F(LayerTreeHostImplTest, NoPartialSwap) { |
// Without partial swap, but a layer does clip its subtree, one scissor is |
// set. |
- host_impl_->active_tree()->root_layer_for_testing()->SetMasksToBounds(true); |
- host_impl_->active_tree() |
- ->root_layer_for_testing() |
- ->NoteLayerPropertyChanged(); |
+ auto* root = host_impl_->active_tree()->root_layer_for_testing(); |
+ root->SetMasksToBounds(true); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ root->NoteLayerPropertyChanged(); |
harness.MustDrawSolidQuad(); |
harness.MustSetScissor(0, 0, 10, 10); |
{ |
LayerTreeHostImpl::FrameData frame; |
- SetNeedsRebuildPropertyTrees(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
} |
@@ -7251,28 +7250,30 @@ TEST_F(LayerTreeHostImplTest, PartialSwap) { |
CreateHostImpl(settings, |
FakeOutputSurface::Create3d(std::move(context_owned))); |
SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
// The first frame is not a partially-swapped one. No scissor should be set. |
harness.MustSetNoScissor(); |
harness.MustDrawSolidQuad(); |
{ |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
} |
Mock::VerifyAndClearExpectations(&mock_context); |
// Damage a portion of the frame. |
- host_impl_->active_tree()->root_layer_for_testing()->SetUpdateRect( |
- gfx::Rect(0, 0, 2, 3)); |
+ auto* root = host_impl_->active_tree()->root_layer_for_testing(); |
+ root->SetUpdateRect(gfx::Rect(0, 0, 2, 3)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
// The second frame will be partially-swapped (the y coordinates are flipped). |
harness.MustSetScissor(0, 7, 2, 3); |
harness.MustDrawSolidQuad(); |
{ |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
} |
@@ -7439,11 +7440,12 @@ TEST_F(LayerTreeHostImplTest, LayersFreeTextures) { |
root_layer->test_properties()->AddChild(std::move(video_layer)); |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_layer)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
EXPECT_EQ(0u, context3d->NumTextures()); |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
host_impl_->SwapBuffers(frame); |
@@ -7476,6 +7478,8 @@ TEST_F(LayerTreeHostImplTest, HasTransparentBackground) { |
CreateHostImpl(settings, |
FakeOutputSurface::Create3d(std::move(mock_context_owned))); |
SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->active_tree()->set_background_color(SK_ColorWHITE); |
// Verify one quad is drawn when transparent background set is not set. |
@@ -7485,7 +7489,7 @@ TEST_F(LayerTreeHostImplTest, HasTransparentBackground) { |
EXPECT_CALL(*mock_context, drawElements(_, _, _, _)) |
.Times(1); |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
Mock::VerifyAndClearExpectations(&mock_context); |
@@ -7493,7 +7497,7 @@ TEST_F(LayerTreeHostImplTest, HasTransparentBackground) { |
// Verify no quads are drawn when transparent background is set. |
host_impl_->active_tree()->set_has_transparent_background(true); |
host_impl_->SetFullRootLayerDamage(); |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
Mock::VerifyAndClearExpectations(&mock_context); |
@@ -7510,7 +7514,7 @@ class LayerTreeHostImplTestWithDelegatingRenderer |
bool expect_to_draw = !expected_damage.IsEmpty(); |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
if (!expect_to_draw) { |
// With no damage, we don't draw, and no quads are created. |
@@ -7563,6 +7567,7 @@ TEST_F(LayerTreeHostImplTestWithDelegatingRenderer, FrameIncludesDamageRect) { |
root->test_properties()->AddChild(std::move(child)); |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
// Draw a frame. In the first frame, the entire viewport should be damaged. |
gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); |
@@ -7642,14 +7647,13 @@ TEST_F(LayerTreeHostImplTest, FarAwayQuadsDontNeedAA) { |
host_impl_->pending_tree()->BuildLayerListAndPropertyTreesForTesting(); |
host_impl_->ActivateSyncTree(); |
- host_impl_->active_tree()->SetRootLayerFromLayerListForTesting(); |
bool update_lcd_text = false; |
host_impl_->active_tree()->UpdateDrawProperties(update_lcd_text); |
ASSERT_EQ(1u, host_impl_->active_tree()->RenderSurfaceLayerList().size()); |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
ASSERT_EQ(1u, frame.render_passes.size()); |
ASSERT_LE(1u, frame.render_passes[0]->quad_list.size()); |
@@ -7670,7 +7674,6 @@ TEST_F(LayerTreeHostImplTest, FarAwayQuadsDontNeedAA) { |
host_impl_->DidDrawAllLayers(frame); |
} |
- |
class CompositorFrameMetadataTest : public LayerTreeHostImplTest { |
public: |
CompositorFrameMetadataTest() |
@@ -7685,9 +7688,10 @@ class CompositorFrameMetadataTest : public LayerTreeHostImplTest { |
TEST_F(CompositorFrameMetadataTest, CompositorFrameAckCountsAsSwapComplete) { |
SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
{ |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
} |
@@ -7772,6 +7776,7 @@ TEST_F(LayerTreeHostImplTest, |
video_layer->SetDrawsContent(true); |
root_layer->test_properties()->AddChild(std::move(video_layer)); |
SetupRootLayerImpl(std::move(root_layer)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
host_impl_->OnDraw(external_transform, external_viewport, external_clip, |
resourceless_software_draw); |
@@ -7955,9 +7960,10 @@ TEST_F(LayerTreeHostImplTest, ShutdownReleasesContext) { |
root->test_properties()->copy_requests.push_back( |
CopyOutputRequest::CreateRequest( |
base::Bind(&ShutdownReleasesContext_Callback))); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
@@ -8000,8 +8006,8 @@ TEST_F(LayerTreeHostImplTest, TouchFlingShouldNotBubble) { |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_ptr)); |
host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 4, 1, |
Layer::INVALID_ID); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
host_impl_->active_tree()->DidBecomeActive(); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
{ |
EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, |
@@ -8035,30 +8041,36 @@ TEST_F(LayerTreeHostImplTest, TouchFlingShouldContinueScrollingCurrentLayer) { |
std::unique_ptr<LayerImpl> root = |
LayerImpl::Create(host_impl_->active_tree(), 1); |
root->test_properties()->force_render_surface = true; |
- std::unique_ptr<LayerImpl> root_scrolling = |
+ |
+ std::unique_ptr<LayerImpl> root_scrolling_owned = |
CreateScrollableLayer(2, surface_size, root.get()); |
+ auto* root_scrolling = root_scrolling_owned.get(); |
+ root->test_properties()->AddChild(std::move(root_scrolling_owned)); |
- std::unique_ptr<LayerImpl> grand_child = |
+ std::unique_ptr<LayerImpl> child_owned = |
+ CreateScrollableLayer(3, surface_size, root.get()); |
+ auto* child = child_owned.get(); |
+ root_scrolling->test_properties()->AddChild(std::move(child_owned)); |
+ |
+ std::unique_ptr<LayerImpl> grand_child_owned = |
CreateScrollableLayer(4, surface_size, root.get()); |
- grand_child->layer_tree_impl() |
- ->property_trees() |
- ->scroll_tree.UpdateScrollOffsetBaseForTesting(grand_child->id(), |
- gfx::ScrollOffset(0, 2)); |
+ auto* grand_child = grand_child_owned.get(); |
+ child->test_properties()->AddChild(std::move(grand_child_owned)); |
+ |
+ host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ host_impl_->active_tree()->DidBecomeActive(); |
- std::unique_ptr<LayerImpl> child = |
- CreateScrollableLayer(3, surface_size, root.get()); |
child->layer_tree_impl() |
->property_trees() |
->scroll_tree.UpdateScrollOffsetBaseForTesting(child->id(), |
gfx::ScrollOffset(0, 4)); |
- child->test_properties()->AddChild(std::move(grand_child)); |
+ grand_child->layer_tree_impl() |
+ ->property_trees() |
+ ->scroll_tree.UpdateScrollOffsetBaseForTesting(grand_child->id(), |
+ gfx::ScrollOffset(0, 2)); |
- root_scrolling->test_properties()->AddChild(std::move(child)); |
- root->test_properties()->AddChild(std::move(root_scrolling)); |
- host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
- host_impl_->active_tree()->DidBecomeActive(); |
host_impl_->SetViewportSize(surface_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
{ |
std::unique_ptr<ScrollAndScaleSet> scroll_info; |
@@ -8137,10 +8149,11 @@ TEST_F(LayerTreeHostImplTest, WheelFlingShouldntBubble) { |
root_scroll->test_properties()->AddChild(std::move(child)); |
root_clip->test_properties()->AddChild(std::move(root_scroll)); |
- host_impl_->SetViewportSize(surface_size); |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root_clip)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
host_impl_->active_tree()->DidBecomeActive(); |
- SetNeedsRebuildPropertyTrees(); |
+ |
+ host_impl_->SetViewportSize(surface_size); |
DrawFrame(); |
{ |
EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, |
@@ -8190,8 +8203,8 @@ TEST_F(LayerTreeHostImplTest, ScrollUnknownNotOnAncestorChain) { |
// The parent of the occluder is *above* the scroller. |
page_scale_layer->test_properties()->AddChild(std::move(occluder_layer)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
InputHandler::ScrollStatus status = host_impl_->ScrollBegin( |
@@ -8233,8 +8246,8 @@ TEST_F(LayerTreeHostImplTest, ScrollUnknownScrollAncestorMismatch) { |
child_scroll->test_properties()->AddChild(std::move(occluder_layer)); |
child_scroll_clip->test_properties()->AddChild(std::move(child_scroll)); |
scroll_layer->test_properties()->AddChild(std::move(child_scroll_clip)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
InputHandler::ScrollStatus status = host_impl_->ScrollBegin( |
@@ -8260,8 +8273,8 @@ TEST_F(LayerTreeHostImplTest, NotScrollInvisibleScroller) { |
child_scroll->SetDrawsContent(false); |
scroll_layer->test_properties()->AddChild(std::move(child_scroll)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
// We should not have scrolled |child_scroll| even though we technically "hit" |
@@ -8304,8 +8317,8 @@ TEST_F(LayerTreeHostImplTest, ScrollInvisibleScrollerWithVisibleDescendent) { |
invisible_scroll_layer->test_properties()->AddChild(std::move(child_layer)); |
root_scroll_layer->test_properties()->AddChild( |
std::move(invisible_scroll_layer)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
// We should have scrolled |invisible_scroll_layer| as it was hit and it has |
@@ -8361,8 +8374,8 @@ TEST_F(LayerTreeHostImplTest, ScrollInvisibleScrollerWithVisibleScrollChild) { |
container->test_properties()->AddChild(std::move(scroll_child)); |
scroll_layer->test_properties()->AddChild(std::move(container)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
// We should have scrolled |child_scroll| even though it is invisible. |
@@ -8387,6 +8400,7 @@ TEST_F(LayerTreeHostImplTest, LatencyInfoPassedToCompositorFrameMetadata) { |
root->test_properties()->force_render_surface = true; |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
FakeOutputSurface* fake_output_surface = |
static_cast<FakeOutputSurface*>(host_impl_->output_surface()); |
@@ -8397,11 +8411,10 @@ TEST_F(LayerTreeHostImplTest, LatencyInfoPassedToCompositorFrameMetadata) { |
std::unique_ptr<SwapPromise> swap_promise( |
new LatencyInfoSwapPromise(latency_info)); |
host_impl_->active_tree()->QueuePinnedSwapPromise(std::move(swap_promise)); |
- host_impl_->SetNeedsRedraw(); |
gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
EXPECT_TRUE(host_impl_->SwapBuffers(frame)); |
@@ -8423,6 +8436,7 @@ TEST_F(LayerTreeHostImplTest, SelectionBoundsPassedToCompositorFrameMetadata) { |
root->test_properties()->force_render_surface = true; |
host_impl_->active_tree()->SetRootLayerForTesting(std::move(root)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
// Ensure the default frame selection bounds are empty. |
FakeOutputSurface* fake_output_surface = |
@@ -8444,7 +8458,7 @@ TEST_F(LayerTreeHostImplTest, SelectionBoundsPassedToCompositorFrameMetadata) { |
gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); |
LayerTreeHostImpl::FrameData frame; |
- EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
+ EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
host_impl_->DrawLayers(&frame); |
host_impl_->DidDrawAllLayers(frame); |
EXPECT_TRUE(host_impl_->SwapBuffers(frame)); |
@@ -8649,6 +8663,8 @@ TEST_F(LayerTreeHostImplWithTopControlsTest, TopControlsAnimationScheduling) { |
TEST_F(LayerTreeHostImplWithTopControlsTest, ScrollHandledByTopControls) { |
InputHandlerScrollResult result; |
LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 200)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(gfx::Size(100, 100)); |
host_impl_->top_controls_manager()->UpdateTopControlsState( |
BOTH, SHOWN, false); |
@@ -8759,6 +8775,8 @@ TEST_F(LayerTreeHostImplWithTopControlsTest, WheelUnhandledByTopControls) { |
TEST_F(LayerTreeHostImplWithTopControlsTest, TopControlsAnimationAtOrigin) { |
LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 200)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(gfx::Size(100, 200)); |
host_impl_->top_controls_manager()->UpdateTopControlsState( |
BOTH, SHOWN, false); |
@@ -8835,6 +8853,8 @@ TEST_F(LayerTreeHostImplWithTopControlsTest, TopControlsAnimationAtOrigin) { |
TEST_F(LayerTreeHostImplWithTopControlsTest, TopControlsAnimationAfterScroll) { |
LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 200)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(gfx::Size(100, 100)); |
host_impl_->top_controls_manager()->UpdateTopControlsState( |
BOTH, SHOWN, false); |
@@ -8909,6 +8929,8 @@ TEST_F(LayerTreeHostImplWithTopControlsTest, TopControlsAnimationAfterScroll) { |
TEST_F(LayerTreeHostImplWithTopControlsTest, |
TopControlsAnimationAfterMainThreadFlingStopped) { |
LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 200)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(gfx::Size(100, 100)); |
host_impl_->top_controls_manager()->UpdateTopControlsState(BOTH, SHOWN, |
false); |
@@ -8982,8 +9004,9 @@ TEST_F(LayerTreeHostImplWithTopControlsTest, |
TopControlsScrollDeltaInOverScroll) { |
// Verifies that the overscroll delta should not have accumulated in |
// the top controls if we do a hide and show without releasing finger. |
- |
LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 200)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
+ |
host_impl_->SetViewportSize(gfx::Size(100, 100)); |
host_impl_->top_controls_manager()->UpdateTopControlsState(BOTH, SHOWN, |
false); |
@@ -9120,6 +9143,7 @@ class LayerTreeHostImplVirtualViewportTest : public LayerTreeHostImplTest { |
Layer::INVALID_ID, kPageScaleLayerId, kInnerViewportScrollLayerId, |
kOuterViewportScrollLayerId); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
host_impl_->active_tree()->DidBecomeActive(); |
} |
}; |
@@ -9133,7 +9157,7 @@ TEST_F(LayerTreeHostImplVirtualViewportTest, ScrollBothInnerAndOuterLayer) { |
LayerImpl* outer_scroll = host_impl_->OuterViewportScrollLayer(); |
LayerImpl* inner_scroll = host_impl_->InnerViewportScrollLayer(); |
- SetNeedsRebuildPropertyTrees(); |
+ |
DrawFrame(); |
{ |
gfx::ScrollOffset inner_expected; |
@@ -9165,7 +9189,7 @@ TEST_F(LayerTreeHostImplVirtualViewportTest, FlingScrollBubblesToInner) { |
LayerImpl* outer_scroll = host_impl_->OuterViewportScrollLayer(); |
LayerImpl* inner_scroll = host_impl_->InnerViewportScrollLayer(); |
- SetNeedsRebuildPropertyTrees(); |
+ |
DrawFrame(); |
{ |
gfx::Vector2dF inner_expected; |
@@ -9234,7 +9258,7 @@ TEST_F(LayerTreeHostImplVirtualViewportTest, |
LayerImpl* outer_scroll = host_impl_->OuterViewportScrollLayer(); |
LayerImpl* inner_scroll = host_impl_->InnerViewportScrollLayer(); |
- SetNeedsRebuildPropertyTrees(); |
+ |
DrawFrame(); |
{ |
gfx::Vector2dF inner_expected; |
@@ -9298,8 +9322,8 @@ TEST_F(LayerTreeHostImplVirtualViewportTest, |
LayerImpl* child_scroll = child.get(); |
outer_scroll->test_properties()->children[0]->test_properties()->AddChild( |
std::move(child)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
{ |
std::unique_ptr<ScrollAndScaleSet> scroll_info; |
@@ -9367,8 +9391,8 @@ TEST_F(LayerTreeHostImplVirtualViewportTest, |
LayerImpl* child_scroll = child.get(); |
outer_scroll->test_properties()->children[0]->test_properties()->AddChild( |
std::move(child)); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
EXPECT_EQ(InputHandler::SCROLL_ON_IMPL_THREAD, |
@@ -9398,7 +9422,8 @@ TEST_F(LayerTreeHostImplVirtualViewportTest, |
LayerImpl* inner_scroll = host_impl_->InnerViewportScrollLayer(); |
inner_scroll->set_user_scrollable_horizontal(false); |
inner_scroll->set_user_scrollable_vertical(false); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ |
DrawFrame(); |
// Ensure inner viewport doesn't react to scrolls (test it's unscrollable). |
@@ -9466,6 +9491,7 @@ TEST_F(LayerTreeHostImplTest, ExternalTransformReflectedInNextDraw) { |
TEST_F(LayerTreeHostImplTest, ExternalTransformSetNeedsRedraw) { |
SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
const gfx::Size viewport_size(100, 100); |
host_impl_->SetViewportSize(viewport_size); |
@@ -9497,6 +9523,7 @@ TEST_F(LayerTreeHostImplTest, ExternalTransformSetNeedsRedraw) { |
TEST_F(LayerTreeHostImplTest, OnDrawConstraintSetNeedsRedraw) { |
SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
const gfx::Size viewport_size(100, 100); |
host_impl_->SetViewportSize(viewport_size); |
@@ -9538,6 +9565,7 @@ class ResourcelessSoftwareLayerTreeHostImplTest : public LayerTreeHostImplTest { |
TEST_F(ResourcelessSoftwareLayerTreeHostImplTest, |
ResourcelessSoftwareSetNeedsRedraw) { |
SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); |
+ host_impl_->active_tree()->BuildPropertyTreesForTesting(); |
const gfx::Size viewport_size(100, 100); |
host_impl_->SetViewportSize(viewport_size); |
@@ -9583,7 +9611,6 @@ TEST_F(ResourcelessSoftwareLayerTreeHostImplTest, |
host_impl_->pending_tree()->BuildLayerListAndPropertyTreesForTesting(); |
host_impl_->ActivateSyncTree(); |
- host_impl_->active_tree()->SetRootLayerFromLayerListForTesting(); |
const gfx::Transform draw_transform; |
const gfx::Rect draw_viewport(viewport_size); |
@@ -9648,8 +9675,6 @@ TEST_F(LayerTreeHostImplTest, ExternalViewportAffectsVisibleRects) { |
->OuterViewportScrollLayer() |
->test_properties() |
->children[0]; |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
bool update_lcd_text = false; |
@@ -9684,8 +9709,6 @@ TEST_F(LayerTreeHostImplTest, ExternalTransformAffectsVisibleRects) { |
->OuterViewportScrollLayer() |
->test_properties() |
->children[0]; |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
bool update_lcd_text = false; |
@@ -9734,9 +9757,8 @@ TEST_F(LayerTreeHostImplTest, ExternalTransformAffectsSublayerScaleFactor) { |
gfx::Transform perspective_transform; |
perspective_transform.ApplyPerspectiveDepth(2); |
test_layer->SetTransform(perspective_transform); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
bool update_lcd_text = false; |
host_impl_->SetViewportSize(gfx::Size(50, 50)); |
@@ -9779,7 +9801,6 @@ TEST_F(LayerTreeHostImplTest, ScrollAnimated) { |
const gfx::Size viewport_size(50, 100); |
CreateBasicVirtualViewportLayers(viewport_size, content_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
base::TimeTicks start_time = |
@@ -9973,7 +9994,6 @@ TEST_F(LayerTreeHostImplTimelinesTest, ScrollAnimated) { |
const gfx::Size viewport_size(500, 500); |
CreateBasicVirtualViewportLayers(viewport_size, content_size); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
base::TimeTicks start_time = |
@@ -10046,7 +10066,6 @@ TEST_F(LayerTreeHostImplTimelinesTest, ImplPinchZoomScrollAnimated) { |
// Zoom into the page by a 2X factor |
float min_page_scale = 1.f, max_page_scale = 4.f; |
float page_scale_factor = 2.f; |
- RebuildPropertyTrees(); |
host_impl_->active_tree()->PushPageScaleFromMainThread( |
page_scale_factor, min_page_scale, max_page_scale); |
host_impl_->active_tree()->SetPageScaleOnActiveTree(page_scale_factor); |
@@ -10137,7 +10156,6 @@ TEST_F(LayerTreeHostImplTimelinesTest, ImplPinchZoomScrollAnimatedUpdate) { |
// Zoom into the page by a 2X factor |
float min_page_scale = 1.f, max_page_scale = 4.f; |
float page_scale_factor = 2.f; |
- RebuildPropertyTrees(); |
host_impl_->active_tree()->PushPageScaleFromMainThread( |
page_scale_factor, min_page_scale, max_page_scale); |
host_impl_->active_tree()->SetPageScaleOnActiveTree(page_scale_factor); |
@@ -10190,8 +10208,8 @@ TEST_F(LayerTreeHostImplTimelinesTest, ScrollAnimatedNotUserScrollable) { |
host_impl_->OuterViewportScrollLayer()->set_user_scrollable_vertical(true); |
host_impl_->OuterViewportScrollLayer()->set_user_scrollable_horizontal(false); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
- SetNeedsRebuildPropertyTrees(); |
DrawFrame(); |
base::TimeTicks start_time = |
@@ -10261,7 +10279,7 @@ TEST_F(LayerTreeHostImplTimelinesTest, ScrollAnimatedChangingBounds) { |
LayerImpl* content_layer = |
CreateBasicVirtualViewportLayers(viewport_size, old_content_size); |
- SetNeedsRebuildPropertyTrees(); |
+ |
DrawFrame(); |
base::TimeTicks start_time = |
@@ -10280,7 +10298,8 @@ TEST_F(LayerTreeHostImplTimelinesTest, ScrollAnimatedChangingBounds) { |
content_layer->SetBounds(new_content_size); |
scrolling_layer->SetBounds(new_content_size); |
- SetNeedsRebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ |
DrawFrame(); |
begin_frame_args.frame_time = |
@@ -10374,7 +10393,6 @@ TEST_F(LayerTreeHostImplTest, DidBecomeActive) { |
ASSERT_EQ(raw_replica_mask_layer, raw_pending_layer->test_properties() |
->replica_layer->test_properties() |
->mask_layer); |
- pending_tree->property_trees()->needs_rebuild = true; |
pending_tree->BuildLayerListAndPropertyTreesForTesting(); |
EXPECT_EQ(2u, raw_pending_layer->did_become_active_call_count()); |
@@ -10829,16 +10847,19 @@ TEST_F(LayerTreeHostImplTest, SubLayerScaleForNodeInSubtreeOfPageScaleLayer) { |
host_impl_->active_tree()->LayerById(100); |
in_subtree_of_page_scale_layer->test_properties()->force_render_surface = |
true; |
- SetNeedsRebuildPropertyTrees(); |
- RebuildPropertyTrees(); |
+ host_impl_->active_tree()->BuildLayerListAndPropertyTreesForTesting(); |
+ |
DrawFrame(); |
+ |
TransformNode* node = |
host_impl_->active_tree()->property_trees()->transform_tree.Node( |
in_subtree_of_page_scale_layer->transform_tree_index()); |
EXPECT_EQ(node->data.sublayer_scale, gfx::Vector2dF(1.f, 1.f)); |
host_impl_->active_tree()->SetPageScaleOnActiveTree(2.f); |
+ |
DrawFrame(); |
+ |
in_subtree_of_page_scale_layer = host_impl_->active_tree()->LayerById(100); |
node = host_impl_->active_tree()->property_trees()->transform_tree.Node( |
in_subtree_of_page_scale_layer->transform_tree_index()); |
@@ -10896,7 +10917,6 @@ TEST_F(LayerTreeHostImplTest, JitterTest) { |
pending_tree->property_trees() |
->scroll_tree.GetScrollOffsetBaseForTesting( |
last_scrolled_layer->id()); |
- pending_tree->property_trees()->needs_rebuild = true; |
pending_tree->BuildLayerListAndPropertyTreesForTesting(); |
pending_tree->property_trees() |
->scroll_tree.UpdateScrollOffsetBaseForTesting( |