| 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 95d9dd6b2be572208c3ce5281f6e36732aff382f..6c46d8f4dba6ea77e7e0ced01c11c8496eae2ffd 100644
|
| --- a/cc/trees/layer_tree_host_impl_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_impl_unittest.cc
|
| @@ -48,6 +48,7 @@
|
| #include "cc/test/fake_proxy.h"
|
| #include "cc/test/geometry_test_utils.h"
|
| #include "cc/test/layer_test_common.h"
|
| +#include "cc/test/layer_tree_test.h"
|
| #include "cc/test/render_pass_test_common.h"
|
| #include "cc/test/test_gpu_memory_buffer_manager.h"
|
| #include "cc/test/test_shared_bitmap_manager.h"
|
| @@ -175,6 +176,7 @@ class LayerTreeHostImplTest : public testing::Test,
|
| root->SetContentBounds(gfx::Size(10, 10));
|
| root->SetDrawsContent(true);
|
| root->draw_properties().visible_content_rect = gfx::Rect(0, 0, 10, 10);
|
| + root->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
| }
|
|
|
| @@ -221,6 +223,7 @@ class LayerTreeHostImplTest : public testing::Test,
|
| root->SetBounds(content_size);
|
| root->SetContentBounds(content_size);
|
| root->SetPosition(gfx::PointF());
|
| + root->SetHasRenderSurface(true);
|
|
|
| scoped_ptr<LayerImpl> scroll =
|
| LayerImpl::Create(layer_tree_impl, kInnerViewportScrollLayerId);
|
| @@ -562,20 +565,6 @@ TEST_F(LayerTreeHostImplTest, ReplaceTreeWhileScrolling) {
|
| ExpectContains(*scroll_info, scroll_layer->id(), scroll_delta);
|
| }
|
|
|
| -TEST_F(LayerTreeHostImplTest, ClearRootRenderSurfaceAndScroll) {
|
| - SetupScrollAndContentsLayers(gfx::Size(100, 100));
|
| - host_impl_->SetViewportSize(gfx::Size(50, 50));
|
| - DrawFrame();
|
| -
|
| - // We should be able to scroll even if the root layer loses its render surface
|
| - // after the most recent render.
|
| - host_impl_->active_tree()->root_layer()->ClearRenderSurface();
|
| - host_impl_->active_tree()->set_needs_update_draw_properties();
|
| -
|
| - EXPECT_EQ(InputHandler::ScrollStarted,
|
| - host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel));
|
| -}
|
| -
|
| TEST_F(LayerTreeHostImplTest, WheelEventHandlers) {
|
| SetupScrollAndContentsLayers(gfx::Size(100, 100));
|
| host_impl_->SetViewportSize(gfx::Size(50, 50));
|
| @@ -891,20 +880,6 @@ TEST_F(LayerTreeHostImplTest, ScrollWithUserUnscrollableLayers) {
|
| EXPECT_VECTOR_EQ(gfx::Vector2dF(10, 20), overflow->TotalScrollOffset());
|
| }
|
|
|
| -TEST_F(LayerTreeHostImplTest,
|
| - ClearRootRenderSurfaceAndHitTestTouchHandlerRegion) {
|
| - SetupScrollAndContentsLayers(gfx::Size(100, 100));
|
| - host_impl_->SetViewportSize(gfx::Size(50, 50));
|
| - DrawFrame();
|
| -
|
| - // We should be able to hit test for touch event handlers even if the root
|
| - // layer loses its render surface after the most recent render.
|
| - host_impl_->active_tree()->root_layer()->ClearRenderSurface();
|
| - host_impl_->active_tree()->set_needs_update_draw_properties();
|
| -
|
| - EXPECT_EQ(host_impl_->HaveTouchEventHandlersAt(gfx::Point()), false);
|
| -}
|
| -
|
| TEST_F(LayerTreeHostImplTest, ImplPinchZoom) {
|
| LayerImpl* scroll_layer = SetupScrollAndContentsLayers(gfx::Size(100, 100));
|
| host_impl_->SetViewportSize(gfx::Size(50, 50));
|
| @@ -1433,6 +1408,7 @@ class LayerTreeHostImplOverridePhysicalTime : public LayerTreeHostImpl {
|
| \
|
| scroll->AddChild(contents.Pass()); \
|
| root->AddChild(scroll.Pass()); \
|
| + root->SetHasRenderSurface(true); \
|
| scrollbar->SetScrollLayerAndClipLayerByIds(2, 1); \
|
| root->AddChild(scrollbar.Pass()); \
|
| \
|
| @@ -1577,6 +1553,7 @@ void LayerTreeHostImplTest::SetupMouseMoveAtWithDeviceScale(
|
| scoped_ptr<LayerImpl> root =
|
| LayerImpl::Create(host_impl_->active_tree(), 1);
|
| root->SetBounds(viewport_size);
|
| + root->SetHasRenderSurface(true);
|
|
|
| scoped_ptr<LayerImpl> scroll =
|
| LayerImpl::Create(host_impl_->active_tree(), 2);
|
| @@ -1782,6 +1759,7 @@ TEST_F(LayerTreeHostImplTest, WillDrawReturningFalseDoesNotCall) {
|
| host_impl_->active_tree()->root_layer());
|
|
|
| root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2));
|
| + root->SetHasRenderSurface(true);
|
| DidDrawCheckLayer* layer =
|
| static_cast<DidDrawCheckLayer*>(root->children()[0]);
|
|
|
| @@ -1822,7 +1800,7 @@ TEST_F(LayerTreeHostImplTest, DidDrawNotCalledOnHiddenLayer) {
|
| DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>(
|
| host_impl_->active_tree()->root_layer());
|
| root->SetMasksToBounds(true);
|
| -
|
| + root->SetHasRenderSurface(true);
|
| root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2));
|
| DidDrawCheckLayer* layer =
|
| static_cast<DidDrawCheckLayer*>(root->children()[0]);
|
| @@ -1875,6 +1853,7 @@ TEST_F(LayerTreeHostImplTest, WillDrawNotCalledOnOccludedLayer) {
|
| static_cast<DidDrawCheckLayer*>(root->children()[0]);
|
|
|
| root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3));
|
| + root->SetHasRenderSurface(true);
|
| DidDrawCheckLayer* top_layer =
|
| static_cast<DidDrawCheckLayer*>(root->children()[1]);
|
| // This layer covers the occluded_layer above. Make this layer large so it can
|
| @@ -1907,6 +1886,7 @@ TEST_F(LayerTreeHostImplTest, DidDrawCalledOnAllLayers) {
|
| static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
|
|
|
| root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2));
|
| + root->SetHasRenderSurface(true);
|
| DidDrawCheckLayer* layer1 =
|
| static_cast<DidDrawCheckLayer*>(root->children()[0]);
|
|
|
| @@ -1914,7 +1894,7 @@ TEST_F(LayerTreeHostImplTest, DidDrawCalledOnAllLayers) {
|
| DidDrawCheckLayer* layer2 =
|
| static_cast<DidDrawCheckLayer*>(layer1->children()[0]);
|
|
|
| - layer1->SetOpacity(0.3f);
|
| + layer1->SetHasRenderSurface(true);
|
| layer1->SetShouldFlattenTransform(true);
|
|
|
| EXPECT_FALSE(root->did_draw_called());
|
| @@ -1986,7 +1966,7 @@ TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsOnDefault) {
|
| DidDrawCheckLayer::Create(host_impl_->active_tree(), 1));
|
| DidDrawCheckLayer* root =
|
| static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
|
| -
|
| + root->SetHasRenderSurface(true);
|
| bool tile_missing = false;
|
| bool had_incomplete_tile = false;
|
| bool is_animating = false;
|
| @@ -2010,6 +1990,7 @@ TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsWithAnimatedLayer) {
|
| DidDrawCheckLayer::Create(host_impl_->active_tree(), 1));
|
| DidDrawCheckLayer* root =
|
| static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
|
| + root->SetHasRenderSurface(true);
|
| bool tile_missing = false;
|
| bool had_incomplete_tile = false;
|
| bool is_animating = true;
|
| @@ -2033,6 +2014,7 @@ TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsWithMissingTiles) {
|
| DidDrawCheckLayer::Create(host_impl_->active_tree(), 3));
|
| DidDrawCheckLayer* root =
|
| static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
|
| + root->SetHasRenderSurface(true);
|
|
|
| LayerTreeHostImpl::FrameData frame;
|
| EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
|
| @@ -2061,6 +2043,7 @@ TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsWithIncompleteTile) {
|
| DidDrawCheckLayer::Create(host_impl_->active_tree(), 3));
|
| DidDrawCheckLayer* root =
|
| static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
|
| + root->SetHasRenderSurface(true);
|
|
|
| LayerTreeHostImpl::FrameData frame;
|
| EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
|
| @@ -2090,6 +2073,7 @@ TEST_F(LayerTreeHostImplTest,
|
| DidDrawCheckLayer::Create(host_impl_->active_tree(), 5));
|
| DidDrawCheckLayer* root =
|
| static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
|
| + root->SetHasRenderSurface(true);
|
|
|
| LayerTreeHostImpl::FrameData frame;
|
| EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
|
| @@ -2120,6 +2104,7 @@ TEST_F(LayerTreeHostImplTest,
|
| DidDrawCheckLayer::Create(host_impl_->active_tree(), 5));
|
| DidDrawCheckLayer* root =
|
| static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
|
| + root->SetHasRenderSurface(true);
|
|
|
| LayerTreeHostImpl::FrameData frame;
|
| EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
|
| @@ -2148,6 +2133,7 @@ TEST_F(LayerTreeHostImplTest, PrepareToDrawSucceedsWhenHighResRequired) {
|
| DidDrawCheckLayer::Create(host_impl_->active_tree(), 7));
|
| DidDrawCheckLayer* root =
|
| static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
|
| + root->SetHasRenderSurface(true);
|
|
|
| LayerTreeHostImpl::FrameData frame;
|
| EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
|
| @@ -2178,6 +2164,7 @@ TEST_F(LayerTreeHostImplTest,
|
| DidDrawCheckLayer::Create(host_impl_->active_tree(), 7));
|
| DidDrawCheckLayer* root =
|
| static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
|
| + root->SetHasRenderSurface(true);
|
|
|
| LayerTreeHostImpl::FrameData frame;
|
| EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
|
| @@ -2209,6 +2196,7 @@ TEST_F(LayerTreeHostImplTest,
|
| DidDrawCheckLayer::Create(host_impl_->active_tree(), 7));
|
| DidDrawCheckLayer* root =
|
| static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer());
|
| + root->SetHasRenderSurface(true);
|
|
|
| LayerTreeHostImpl::FrameData frame;
|
| EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
|
| @@ -2237,6 +2225,7 @@ TEST_F(LayerTreeHostImplTest,
|
| TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) {
|
| scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1);
|
| root->SetScrollClipLayer(Layer::INVALID_ID);
|
| + root->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
| DrawFrame();
|
|
|
| @@ -2291,7 +2280,9 @@ class LayerTreeHostImplTopControlsTest : public LayerTreeHostImplTest {
|
| root->SetIsContainerForFixedPositionLayers(true);
|
| int inner_viewport_scroll_layer_id = root->id();
|
| int page_scale_layer_id = root_clip->id();
|
| + root_clip->SetHasRenderSurface(true);
|
| root_clip->AddChild(root.Pass());
|
| + root_clip->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(root_clip.Pass());
|
| host_impl_->active_tree()->SetViewportLayersFromIds(
|
| Layer::INVALID_ID, page_scale_layer_id, inner_viewport_scroll_layer_id,
|
| @@ -2356,7 +2347,7 @@ class LayerTreeHostImplTopControlsTest : public LayerTreeHostImplTest {
|
| root->SetPosition(gfx::PointF());
|
| root->SetDrawsContent(false);
|
| root->SetIsContainerForFixedPositionLayers(true);
|
| -
|
| + root_clip->SetHasRenderSurface(true);
|
| outer_clip->SetBounds(outer_viewport_size);
|
| outer_scroll->SetScrollClipLayer(outer_clip->id());
|
| outer_scroll->SetBounds(scroll_layer_size);
|
| @@ -2929,6 +2920,7 @@ TEST_F(LayerTreeHostImplTest, ScrollNonCompositedRoot) {
|
| scroll_layer->AddChild(content_layer.Pass());
|
| scroll_clip_layer->AddChild(scroll_layer.Pass());
|
|
|
| + scroll_clip_layer->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(scroll_clip_layer.Pass());
|
| host_impl_->SetViewportSize(surface_size);
|
| DrawFrame();
|
| @@ -2949,6 +2941,7 @@ TEST_F(LayerTreeHostImplTest, ScrollChildCallsCommitAndRedraw) {
|
| root->SetBounds(surface_size);
|
| root->SetContentBounds(contents_size);
|
| root->AddChild(CreateScrollableLayer(2, contents_size, root.get()));
|
| + root->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
| host_impl_->SetViewportSize(surface_size);
|
| DrawFrame();
|
| @@ -2966,6 +2959,7 @@ TEST_F(LayerTreeHostImplTest, ScrollMissesChild) {
|
| gfx::Size surface_size(10, 10);
|
| scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1);
|
| root->AddChild(CreateScrollableLayer(2, surface_size, root.get()));
|
| + root->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
| host_impl_->SetViewportSize(surface_size);
|
| DrawFrame();
|
| @@ -2982,6 +2976,7 @@ TEST_F(LayerTreeHostImplTest, ScrollMissesChild) {
|
| TEST_F(LayerTreeHostImplTest, ScrollMissesBackfacingChild) {
|
| gfx::Size surface_size(10, 10);
|
| scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1);
|
| + root->SetHasRenderSurface(true);
|
| scoped_ptr<LayerImpl> child =
|
| CreateScrollableLayer(2, surface_size, root.get());
|
| host_impl_->SetViewportSize(surface_size);
|
| @@ -3019,6 +3014,7 @@ TEST_F(LayerTreeHostImplTest, ScrollBlockedByContentLayer) {
|
| CreateScrollableLayer(2, surface_size, clip_layer.get());
|
| scroll_layer->AddChild(content_layer.Pass());
|
| clip_layer->AddChild(scroll_layer.Pass());
|
| + clip_layer->SetHasRenderSurface(true);
|
|
|
| host_impl_->active_tree()->SetRootLayer(clip_layer.Pass());
|
| host_impl_->SetViewportSize(surface_size);
|
| @@ -3044,6 +3040,7 @@ TEST_F(LayerTreeHostImplTest, ScrollRootAndChangePageScaleOnMainThread) {
|
| root_scrolling->SetIsContainerForFixedPositionLayers(true);
|
| root_clip->AddChild(root_scrolling.Pass());
|
| root->AddChild(root_clip.Pass());
|
| + root->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
| // The behaviour in this test assumes the page scale is applied at a layer
|
| // above the clip layer.
|
| @@ -3094,6 +3091,7 @@ TEST_F(LayerTreeHostImplTest, ScrollRootAndChangePageScaleOnImplThread) {
|
| root_scrolling->SetIsContainerForFixedPositionLayers(true);
|
| root_clip->AddChild(root_scrolling.Pass());
|
| root->AddChild(root_clip.Pass());
|
| + root->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
| // The behaviour in this test assumes the page scale is applied at a layer
|
| // above the clip layer.
|
| @@ -3199,6 +3197,7 @@ TEST_F(LayerTreeHostImplTest, ScrollChildAndChangePageScaleOnMainThread) {
|
| gfx::Size surface_size(30, 30);
|
| scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1);
|
| root->SetBounds(gfx::Size(5, 5));
|
| + root->SetHasRenderSurface(true);
|
| scoped_ptr<LayerImpl> root_scrolling =
|
| LayerImpl::Create(host_impl_->active_tree(), 2);
|
| root_scrolling->SetBounds(surface_size);
|
| @@ -3254,7 +3253,7 @@ TEST_F(LayerTreeHostImplTest, ScrollChildBeyondLimit) {
|
| gfx::Size content_size(20, 20);
|
| scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1);
|
| root->SetBounds(surface_size);
|
| -
|
| + root->SetHasRenderSurface(true);
|
| scoped_ptr<LayerImpl> grand_child =
|
| CreateScrollableLayer(3, content_size, root.get());
|
|
|
| @@ -3299,6 +3298,7 @@ TEST_F(LayerTreeHostImplTest, ScrollWithoutBubbling) {
|
| gfx::Size surface_size(20, 20);
|
| gfx::Size viewport_size(10, 10);
|
| scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1);
|
| + root->SetHasRenderSurface(true);
|
| scoped_ptr<LayerImpl> root_scrolling =
|
| CreateScrollableLayer(2, surface_size, root.get());
|
| root_scrolling->SetIsContainerForFixedPositionLayers(true);
|
| @@ -3408,6 +3408,7 @@ TEST_F(LayerTreeHostImplTest, ScrollEventBubbling) {
|
| gfx::Size content_size(20, 20);
|
| scoped_ptr<LayerImpl> root_clip =
|
| LayerImpl::Create(host_impl_->active_tree(), 3);
|
| + root_clip->SetHasRenderSurface(true);
|
| scoped_ptr<LayerImpl> root =
|
| CreateScrollableLayer(1, content_size, root_clip.get());
|
| // Make 'root' the clip layer for child: since they have the same sizes the
|
| @@ -3451,6 +3452,7 @@ TEST_F(LayerTreeHostImplTest, ScrollBeforeRedraw) {
|
| scoped_ptr<LayerImpl> root_scroll =
|
| CreateScrollableLayer(2, surface_size, root_clip.get());
|
| root_scroll->SetIsContainerForFixedPositionLayers(true);
|
| + root_clip->SetHasRenderSurface(true);
|
| root_clip->AddChild(root_scroll.Pass());
|
| host_impl_->active_tree()->SetRootLayer(root_clip.Pass());
|
| host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 1, 2,
|
| @@ -3468,6 +3470,7 @@ TEST_F(LayerTreeHostImplTest, ScrollBeforeRedraw) {
|
| CreateScrollableLayer(4, surface_size, root_clip2.get());
|
| root_scroll2->SetIsContainerForFixedPositionLayers(true);
|
| root_clip2->AddChild(root_scroll2.Pass());
|
| + root_clip2->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(root_clip2.Pass());
|
| host_impl_->active_tree()->SetViewportLayersFromIds(Layer::INVALID_ID, 3, 4,
|
| Layer::INVALID_ID);
|
| @@ -3982,6 +3985,8 @@ TEST_F(LayerTreeHostImplTest, OverscrollChildWithoutBubbling) {
|
| gfx::Size surface_size(10, 10);
|
| scoped_ptr<LayerImpl> root_clip =
|
| LayerImpl::Create(host_impl_->active_tree(), 4);
|
| + root_clip->SetHasRenderSurface(true);
|
| +
|
| scoped_ptr<LayerImpl> root =
|
| CreateScrollableLayer(1, surface_size, root_clip.get());
|
|
|
| @@ -4046,6 +4051,8 @@ TEST_F(LayerTreeHostImplTest, OverscrollChildEventBubbling) {
|
| gfx::Size content_size(20, 20);
|
| scoped_ptr<LayerImpl> root_clip =
|
| LayerImpl::Create(host_impl_->active_tree(), 3);
|
| + root_clip->SetHasRenderSurface(true);
|
| +
|
| scoped_ptr<LayerImpl> root =
|
| CreateScrollableLayer(1, content_size, root_clip.get());
|
| root->SetIsContainerForFixedPositionLayers(true);
|
| @@ -4102,6 +4109,8 @@ TEST_F(LayerTreeHostImplTest, NoOverscrollOnFractionalDeviceScale) {
|
| float device_scale_factor = 1.5f;
|
| scoped_ptr<LayerImpl> root_clip =
|
| LayerImpl::Create(host_impl_->active_tree(), 3);
|
| + root_clip->SetHasRenderSurface(true);
|
| +
|
| scoped_ptr<LayerImpl> root =
|
| CreateScrollableLayer(1, content_size, root_clip.get());
|
| root->SetIsContainerForFixedPositionLayers(true);
|
| @@ -4141,6 +4150,8 @@ TEST_F(LayerTreeHostImplTest, NoOverscrollWhenNotAtEdge) {
|
| gfx::Size content_size(200, 200);
|
| scoped_ptr<LayerImpl> root_clip =
|
| LayerImpl::Create(host_impl_->active_tree(), 3);
|
| + root_clip->SetHasRenderSurface(true);
|
| +
|
| scoped_ptr<LayerImpl> root =
|
| CreateScrollableLayer(1, content_size, root_clip.get());
|
| root->SetIsContainerForFixedPositionLayers(true);
|
| @@ -4287,6 +4298,7 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) {
|
| root->SetBounds(gfx::Size(10, 10));
|
| root->SetContentBounds(root->bounds());
|
| root->SetDrawsContent(false);
|
| + root->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
| }
|
| LayerImpl* root = host_impl_->active_tree()->root_layer();
|
| @@ -4396,6 +4408,7 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) {
|
| // carries the inherited opacity).
|
| layer1->SetContentsOpaque(true);
|
| layer1->SetOpacity(0.5f);
|
| + layer1->SetHasRenderSurface(true);
|
| layer1->SetExpectation(false, true);
|
| layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds()));
|
| layer2->SetExpectation(false, false);
|
| @@ -4407,6 +4420,7 @@ TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) {
|
| EXPECT_TRUE(layer1->quads_appended());
|
| EXPECT_TRUE(layer2->quads_appended());
|
| host_impl_->DidDrawAllLayers(frame);
|
| + layer1->SetHasRenderSurface(false);
|
|
|
| // Draw again, but with child non-opaque, to make sure
|
| // layer1 not culled.
|
| @@ -4523,6 +4537,7 @@ class LayerTreeHostImplViewportCoveredTest : public LayerTreeHostImplTest {
|
| host_impl_->active_tree()->set_background_color(SK_ColorGRAY);
|
| host_impl_->active_tree()->SetRootLayer(
|
| LayerImpl::Create(host_impl_->active_tree(), 1));
|
| + host_impl_->active_tree()->root_layer()->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->root_layer()->AddChild(
|
| BlendStateCheckLayer::Create(host_impl_->active_tree(),
|
| 2,
|
| @@ -4813,6 +4828,7 @@ TEST_F(LayerTreeHostImplTest, ReshapeNotCalledUntilDraw) {
|
| root->SetBounds(gfx::Size(10, 10));
|
| root->SetContentBounds(gfx::Size(10, 10));
|
| root->SetDrawsContent(true);
|
| + root->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
| EXPECT_FALSE(provider->TestContext3d()->reshape_called());
|
| provider->TestContext3d()->clear_reshape_called();
|
| @@ -4881,6 +4897,7 @@ TEST_F(LayerTreeHostImplTest, PartialSwapReceivesDamageRect) {
|
|
|
| scoped_ptr<LayerImpl> root =
|
| FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1);
|
| + root->SetHasRenderSurface(true);
|
| scoped_ptr<LayerImpl> child =
|
| FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 2);
|
| child->SetPosition(gfx::PointF(12.f, 13.f));
|
| @@ -4947,7 +4964,7 @@ TEST_F(LayerTreeHostImplTest, RootLayerDoesntCreateExtraSurface) {
|
| root->SetBounds(gfx::Size(10, 10));
|
| root->SetContentBounds(gfx::Size(10, 10));
|
| root->SetDrawsContent(true);
|
| - root->SetForceRenderSurface(true);
|
| + root->SetHasRenderSurface(true);
|
| root->AddChild(child.Pass());
|
|
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
| @@ -5196,7 +5213,7 @@ static scoped_ptr<LayerTreeHostImpl> SetupLayersForOpacity(
|
| gfx::Rect child_rect(10, 10, 50, 50);
|
| gfx::Rect grand_child_rect(5, 5, 150, 150);
|
|
|
| - root->CreateRenderSurface();
|
| + root->SetHasRenderSurface(true);
|
| root->SetPosition(root_rect.origin());
|
| root->SetBounds(root_rect.size());
|
| root->SetContentBounds(root->bounds());
|
| @@ -5210,7 +5227,7 @@ static scoped_ptr<LayerTreeHostImpl> SetupLayersForOpacity(
|
| child->SetContentBounds(child->bounds());
|
| child->draw_properties().visible_content_rect = child_rect;
|
| child->SetDrawsContent(false);
|
| - child->SetForceRenderSurface(true);
|
| + child->SetHasRenderSurface(true);
|
|
|
| grand_child->SetPosition(grand_child_rect.origin());
|
| grand_child->SetBounds(grand_child_rect.size());
|
| @@ -5290,6 +5307,7 @@ TEST_F(LayerTreeHostImplTest, LayersFreeTextures) {
|
| scoped_ptr<LayerImpl> root_layer =
|
| LayerImpl::Create(host_impl_->active_tree(), 1);
|
| root_layer->SetBounds(gfx::Size(10, 10));
|
| + root_layer->SetHasRenderSurface(true);
|
|
|
| scoped_ptr<IOSurfaceLayerImpl> io_surface_layer =
|
| IOSurfaceLayerImpl::Create(host_impl_->active_tree(), 5);
|
| @@ -5452,6 +5470,7 @@ TEST_F(LayerTreeHostImplTestWithDelegatingRenderer, FrameIncludesDamageRect) {
|
| root->SetBounds(gfx::Size(10, 10));
|
| root->SetContentBounds(gfx::Size(10, 10));
|
| root->SetDrawsContent(true);
|
| + root->SetHasRenderSurface(true);
|
|
|
| // Child layer is in the bottom right corner.
|
| scoped_ptr<SolidColorLayerImpl> child =
|
| @@ -5518,6 +5537,7 @@ TEST_F(LayerTreeHostImplTest, MaskLayerWithScaling) {
|
| scoped_ptr<LayerImpl> scoped_root =
|
| LayerImpl::Create(host_impl_->active_tree(), 1);
|
| LayerImpl* root = scoped_root.get();
|
| + root->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(scoped_root.Pass());
|
|
|
| scoped_ptr<LayerImpl> scoped_scaling_layer =
|
| @@ -5533,6 +5553,7 @@ TEST_F(LayerTreeHostImplTest, MaskLayerWithScaling) {
|
| scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer =
|
| FakeMaskLayerImpl::Create(host_impl_->active_tree(), 4);
|
| FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get();
|
| + content_layer->SetHasRenderSurface(true);
|
| content_layer->SetMaskLayer(scoped_mask_layer.Pass());
|
|
|
| gfx::Size root_size(100, 100);
|
| @@ -5658,6 +5679,8 @@ TEST_F(LayerTreeHostImplTest, MaskLayerWithDifferentBounds) {
|
| scoped_ptr<LayerImpl> scoped_root =
|
| LayerImpl::Create(host_impl_->active_tree(), 1);
|
| LayerImpl* root = scoped_root.get();
|
| + root->SetHasRenderSurface(true);
|
| +
|
| host_impl_->active_tree()->SetRootLayer(scoped_root.Pass());
|
|
|
| scoped_ptr<LayerImpl> scoped_content_layer =
|
| @@ -5669,6 +5692,7 @@ TEST_F(LayerTreeHostImplTest, MaskLayerWithDifferentBounds) {
|
| FakeMaskLayerImpl::Create(host_impl_->active_tree(), 4);
|
| FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get();
|
| content_layer->SetMaskLayer(scoped_mask_layer.Pass());
|
| + content_layer->SetHasRenderSurface(true);
|
|
|
| gfx::Size root_size(100, 100);
|
| root->SetBounds(root_size);
|
| @@ -5812,6 +5836,8 @@ TEST_F(LayerTreeHostImplTest, ReflectionMaskLayerWithDifferentBounds) {
|
| scoped_ptr<LayerImpl> scoped_root =
|
| LayerImpl::Create(host_impl_->active_tree(), 1);
|
| LayerImpl* root = scoped_root.get();
|
| + root->SetHasRenderSurface(true);
|
| +
|
| host_impl_->active_tree()->SetRootLayer(scoped_root.Pass());
|
|
|
| scoped_ptr<LayerImpl> scoped_content_layer =
|
| @@ -5823,11 +5849,13 @@ TEST_F(LayerTreeHostImplTest, ReflectionMaskLayerWithDifferentBounds) {
|
| LayerImpl::Create(host_impl_->active_tree(), 2);
|
| LayerImpl* replica_layer = scoped_replica_layer.get();
|
| content_layer->SetReplicaLayer(scoped_replica_layer.Pass());
|
| + content_layer->SetHasRenderSurface(true);
|
|
|
| scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer =
|
| FakeMaskLayerImpl::Create(host_impl_->active_tree(), 4);
|
| FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get();
|
| replica_layer->SetMaskLayer(scoped_mask_layer.Pass());
|
| + replica_layer->SetHasRenderSurface(true);
|
|
|
| gfx::Size root_size(100, 100);
|
| root->SetBounds(root_size);
|
| @@ -5967,6 +5995,7 @@ TEST_F(LayerTreeHostImplTest, ReflectionMaskLayerForSurfaceWithUnclippedChild) {
|
| scoped_ptr<LayerImpl> scoped_root =
|
| LayerImpl::Create(host_impl_->active_tree(), 1);
|
| LayerImpl* root = scoped_root.get();
|
| + root->SetHasRenderSurface(true);
|
| host_impl_->active_tree()->SetRootLayer(scoped_root.Pass());
|
|
|
| scoped_ptr<LayerImpl> scoped_content_layer =
|
| @@ -5983,11 +6012,13 @@ TEST_F(LayerTreeHostImplTest, ReflectionMaskLayerForSurfaceWithUnclippedChild) {
|
| LayerImpl::Create(host_impl_->active_tree(), 4);
|
| LayerImpl* replica_layer = scoped_replica_layer.get();
|
| content_layer->SetReplicaLayer(scoped_replica_layer.Pass());
|
| + content_layer->SetHasRenderSurface(true);
|
|
|
| scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer =
|
| FakeMaskLayerImpl::Create(host_impl_->active_tree(), 5);
|
| FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get();
|
| replica_layer->SetMaskLayer(scoped_mask_layer.Pass());
|
| + replica_layer->SetHasRenderSurface(true);
|
|
|
| gfx::Size root_size(100, 100);
|
| root->SetBounds(root_size);
|
| @@ -6091,6 +6122,8 @@ TEST_F(LayerTreeHostImplTest, MaskLayerForSurfaceWithClippedLayer) {
|
| scoped_ptr<LayerImpl> scoped_root =
|
| LayerImpl::Create(host_impl_->active_tree(), 1);
|
| LayerImpl* root = scoped_root.get();
|
| + root->SetHasRenderSurface(true);
|
| +
|
| host_impl_->active_tree()->SetRootLayer(scoped_root.Pass());
|
|
|
| scoped_ptr<LayerImpl> scoped_clipping_layer =
|
| @@ -6112,6 +6145,7 @@ TEST_F(LayerTreeHostImplTest, MaskLayerForSurfaceWithClippedLayer) {
|
| FakeMaskLayerImpl::Create(host_impl_->active_tree(), 6);
|
| FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get();
|
| content_layer->SetMaskLayer(scoped_mask_layer.Pass());
|
| + content_layer->SetHasRenderSurface(true);
|
|
|
| gfx::Size root_size(100, 100);
|
| root->SetBounds(root_size);
|
| @@ -6197,6 +6231,7 @@ TEST_F(LayerTreeHostImplTest, FarAwayQuadsDontNeedAA) {
|
| scoped_ptr<LayerImpl> scoped_root =
|
| LayerImpl::Create(host_impl_->pending_tree(), 1);
|
| LayerImpl* root = scoped_root.get();
|
| + root->SetHasRenderSurface(true);
|
|
|
| host_impl_->pending_tree()->SetRootLayer(scoped_root.Pass());
|
|
|
| @@ -6688,6 +6723,8 @@ TEST_F(LayerTreeHostImplTest, TouchFlingShouldNotBubble) {
|
| gfx::Size content_size(20, 20);
|
| scoped_ptr<LayerImpl> root_clip =
|
| LayerImpl::Create(host_impl_->active_tree(), 3);
|
| + root_clip->SetHasRenderSurface(true);
|
| +
|
| scoped_ptr<LayerImpl> root =
|
| CreateScrollableLayer(1, content_size, root_clip.get());
|
| root->SetIsContainerForFixedPositionLayers(true);
|
| @@ -6732,6 +6769,7 @@ TEST_F(LayerTreeHostImplTest, TouchFlingShouldLockToFirstScrolledLayer) {
|
| // the scroll doesn't bubble up to the parent layer.
|
| gfx::Size surface_size(10, 10);
|
| scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1);
|
| + root->SetHasRenderSurface(true);
|
| scoped_ptr<LayerImpl> root_scrolling =
|
| CreateScrollableLayer(2, surface_size, root.get());
|
|
|
| @@ -6802,6 +6840,7 @@ TEST_F(LayerTreeHostImplTest, WheelFlingShouldBubble) {
|
| gfx::Size content_size(20, 20);
|
| scoped_ptr<LayerImpl> root_clip =
|
| LayerImpl::Create(host_impl_->active_tree(), 3);
|
| + root_clip->SetHasRenderSurface(true);
|
| scoped_ptr<LayerImpl> root_scroll =
|
| CreateScrollableLayer(1, content_size, root_clip.get());
|
| int root_scroll_id = root_scroll->id();
|
| @@ -7005,6 +7044,7 @@ TEST_F(LayerTreeHostImplTest, LatencyInfoPassedToCompositorFrameMetadata) {
|
| root->SetBounds(gfx::Size(10, 10));
|
| root->SetContentBounds(gfx::Size(10, 10));
|
| root->SetDrawsContent(true);
|
| + root->SetHasRenderSurface(true);
|
|
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
|
|
| @@ -7045,6 +7085,7 @@ TEST_F(LayerTreeHostImplTest, SelectionBoundsPassedToCompositorFrameMetadata) {
|
| root->SetBounds(gfx::Size(10, 10));
|
| root->SetContentBounds(gfx::Size(10, 10));
|
| root->SetDrawsContent(true);
|
| + root->SetHasRenderSurface(true);
|
|
|
| host_impl_->active_tree()->SetRootLayer(root.Pass());
|
|
|
| @@ -7570,6 +7611,7 @@ class LayerTreeHostImplVirtualViewportTest : public LayerTreeHostImplTest {
|
| page_scale->AddChild(inner_scroll.Pass());
|
| inner_clip->AddChild(page_scale.Pass());
|
|
|
| + inner_clip->SetHasRenderSurface(true);
|
| layer_tree_impl->SetRootLayer(inner_clip.Pass());
|
| layer_tree_impl->SetViewportLayersFromIds(
|
| Layer::INVALID_ID, kPageScaleLayerId, kInnerViewportScrollLayerId,
|
|
|