| Index: cc/trees/layer_tree_host_unittest.cc
|
| diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
|
| index ab0046c1715c5f7b2d52d257c21b63b1ebd71cb9..44a1c942a01a071d7b2541de7ec5443e19d3274b 100644
|
| --- a/cc/trees/layer_tree_host_unittest.cc
|
| +++ b/cc/trees/layer_tree_host_unittest.cc
|
| @@ -4025,30 +4025,22 @@ TEST_F(LayerTreeHostTestTreeActivationCallback, DelegatingRenderer) {
|
| RunTest(true, true, true);
|
| }
|
|
|
| -// VideoLayer must support being invalidated and then passing that along
|
| -// to the compositor thread, even though no resources are updated in
|
| -// response to that invalidation.
|
| -class LayerTreeHostTestVideoLayerInvalidate : public LayerTreeHostTest {
|
| +class LayerInvalidateCausesDraw : public LayerTreeHostTest {
|
| public:
|
| - LayerTreeHostTestVideoLayerInvalidate() : num_commits_(0), num_draws_(0) {}
|
| -
|
| - virtual void SetupTree() OVERRIDE {
|
| - LayerTreeHostTest::SetupTree();
|
| - video_layer_ = VideoLayer::Create(&provider_);
|
| - video_layer_->SetBounds(gfx::Size(10, 10));
|
| - video_layer_->SetIsDrawable(true);
|
| - layer_tree_host()->root_layer()->AddChild(video_layer_);
|
| - }
|
| + LayerInvalidateCausesDraw() : num_commits_(0), num_draws_(0) {}
|
|
|
| virtual void BeginTest() OVERRIDE {
|
| + ASSERT_TRUE(!!invalidate_layer_)
|
| + << "Derived tests must set this in SetupTree";
|
| +
|
| // One initial commit.
|
| PostSetNeedsCommitToMainThread();
|
| }
|
|
|
| virtual void DidCommitAndDrawFrame() OVERRIDE {
|
| - // After commit, invalidate the video layer. This should cause a commit.
|
| + // After commit, invalidate the layer. This should cause a commit.
|
| if (layer_tree_host()->source_frame_number() == 1)
|
| - video_layer_->SetNeedsDisplay();
|
| + invalidate_layer_->SetNeedsDisplay();
|
| }
|
|
|
| virtual void DrawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE {
|
| @@ -4066,15 +4058,58 @@ class LayerTreeHostTestVideoLayerInvalidate : public LayerTreeHostTest {
|
| EXPECT_GE(2, num_draws_);
|
| }
|
|
|
| + protected:
|
| + scoped_refptr<Layer> invalidate_layer_;
|
| +
|
| private:
|
| - FakeVideoFrameProvider provider_;
|
| - scoped_refptr<VideoLayer> video_layer_;
|
| int num_commits_;
|
| int num_draws_;
|
| };
|
|
|
| +// VideoLayer must support being invalidated and then passing that along
|
| +// to the compositor thread, even though no resources are updated in
|
| +// response to that invalidation.
|
| +class LayerTreeHostTestVideoLayerInvalidate : public LayerInvalidateCausesDraw {
|
| + public:
|
| + virtual void SetupTree() OVERRIDE {
|
| + LayerTreeHostTest::SetupTree();
|
| + scoped_refptr<VideoLayer> video_layer = VideoLayer::Create(&provider_);
|
| + video_layer->SetBounds(gfx::Size(10, 10));
|
| + video_layer->SetIsDrawable(true);
|
| + layer_tree_host()->root_layer()->AddChild(video_layer);
|
| +
|
| + invalidate_layer_ = video_layer;
|
| + }
|
| +
|
| + private:
|
| + FakeVideoFrameProvider provider_;
|
| +};
|
| +
|
| SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestVideoLayerInvalidate);
|
|
|
| +// IOSurfaceLayer must support being invalidated and then passing that along
|
| +// to the compositor thread, even though no resources are updated in
|
| +// response to that invalidation.
|
| +class LayerTreeHostTestIOSurfaceLayerInvalidate
|
| + : public LayerInvalidateCausesDraw {
|
| + public:
|
| + virtual void SetupTree() OVERRIDE {
|
| + LayerTreeHostTest::SetupTree();
|
| + scoped_refptr<IOSurfaceLayer> layer = IOSurfaceLayer::Create();
|
| + layer->SetBounds(gfx::Size(10, 10));
|
| + uint32_t fake_io_surface_id = 7;
|
| + layer->SetIOSurfaceProperties(fake_io_surface_id, layer->bounds());
|
| + layer->SetIsDrawable(true);
|
| + layer_tree_host()->root_layer()->AddChild(layer);
|
| +
|
| + invalidate_layer_ = layer;
|
| + }
|
| +};
|
| +
|
| +// TODO(danakj): IOSurface layer can not be transported. crbug.com/239335
|
| +SINGLE_AND_MULTI_THREAD_DIRECT_RENDERER_TEST_F(
|
| + LayerTreeHostTestIOSurfaceLayerInvalidate);
|
| +
|
| class LayerTreeHostTestPushHiddenLayer : public LayerTreeHostTest {
|
| protected:
|
| virtual void SetupTree() OVERRIDE {
|
|
|