Index: cc/layer_tree_host_unittest_delegated.cc |
diff --git a/cc/layer_tree_host_unittest_delegated.cc b/cc/layer_tree_host_unittest_delegated.cc |
index 098a941af5b858bd42be2881f72482e4c25858e3..b5510cb8d238f09c22140d9a106e8e0d0b9adeb2 100644 |
--- a/cc/layer_tree_host_unittest_delegated.cc |
+++ b/cc/layer_tree_host_unittest_delegated.cc |
@@ -364,11 +364,6 @@ class LayerTreeHostDelegatedTestMergeResources |
EXPECT_EQ(1u, map.count(999)); |
EXPECT_EQ(1u, map.count(555)); |
- // Both frames' resources should be saved on the layer. |
- EXPECT_EQ(2u, delegated_impl->Resources().size()); |
- EXPECT_EQ(1u, delegated_impl->Resources().count(map.find(999)->second)); |
- EXPECT_EQ(1u, delegated_impl->Resources().count(map.find(555)->second)); |
- |
endTest(); |
} |
@@ -637,9 +632,6 @@ class LayerTreeHostDelegatedTestFrameBeforeAck |
EXPECT_EQ(1u, map.size()); |
EXPECT_EQ(1u, map.count(999)); |
- EXPECT_EQ(1u, delegated_impl->Resources().size()); |
- EXPECT_EQ(1u, delegated_impl->Resources().count(map.find(999)->second)); |
- |
const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
EXPECT_EQ(1u, pass->quad_list.size()); |
const TextureDrawQuad* quad = TextureDrawQuad::MaterialCast( |
@@ -743,9 +735,6 @@ class LayerTreeHostDelegatedTestFrameBeforeTakeResources |
EXPECT_EQ(1u, map.size()); |
EXPECT_EQ(1u, map.count(999)); |
- EXPECT_EQ(1u, delegated_impl->Resources().size()); |
- EXPECT_EQ(1u, delegated_impl->Resources().count(map.find(999)->second)); |
- |
const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
EXPECT_EQ(1u, pass->quad_list.size()); |
const TextureDrawQuad* quad = TextureDrawQuad::MaterialCast( |
@@ -849,10 +838,6 @@ class LayerTreeHostDelegatedTestBadFrame |
EXPECT_EQ(1u, map.count(999)); |
EXPECT_EQ(1u, map.count(555)); |
- EXPECT_EQ(2u, delegated_impl->Resources().size()); |
- EXPECT_EQ(1u, delegated_impl->Resources().count(map.find(999)->second)); |
- EXPECT_EQ(1u, delegated_impl->Resources().count(map.find(555)->second)); |
- |
const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
EXPECT_EQ(2u, pass->quad_list.size()); |
const TextureDrawQuad* quad1 = TextureDrawQuad::MaterialCast( |
@@ -871,11 +856,6 @@ class LayerTreeHostDelegatedTestBadFrame |
EXPECT_EQ(1u, map.count(555)); |
EXPECT_EQ(1u, map.count(444)); |
- EXPECT_EQ(3u, delegated_impl->Resources().size()); |
- EXPECT_EQ(1u, delegated_impl->Resources().count(map.find(999)->second)); |
- EXPECT_EQ(1u, delegated_impl->Resources().count(map.find(555)->second)); |
- EXPECT_EQ(1u, delegated_impl->Resources().count(map.find(444)->second)); |
- |
// The bad frame is dropped though, we still have the frame with 999 and |
// 555 in it. |
const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
@@ -893,9 +873,6 @@ class LayerTreeHostDelegatedTestBadFrame |
EXPECT_EQ(1u, map.size()); |
EXPECT_EQ(1u, map.count(999)); |
- EXPECT_EQ(1u, delegated_impl->Resources().size()); |
- EXPECT_EQ(1u, delegated_impl->Resources().count(map.find(999)->second)); |
- |
const RenderPass* pass = delegated_impl->RenderPassesInDrawOrder()[0]; |
EXPECT_EQ(1u, pass->quad_list.size()); |
const TextureDrawQuad* quad1 = TextureDrawQuad::MaterialCast( |
@@ -911,5 +888,59 @@ class LayerTreeHostDelegatedTestBadFrame |
SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestBadFrame) |
+class LayerTreeHostDelegatedTestUnnamedResource |
+ : public LayerTreeHostDelegatedTestCaseSingleDelegatedLayer { |
+ public: |
+ virtual void beginTest() OVERRIDE { |
+ postSetNeedsCommitToMainThread(); |
+ } |
+ |
+ virtual void didCommit() OVERRIDE { |
+ scoped_ptr<DelegatedFrameData> frame; |
+ TransferableResourceArray resources; |
+ |
+ int next_source_frame_number = m_layerTreeHost->commitNumber(); |
+ switch (next_source_frame_number) { |
+ case 1: |
+ // This frame includes two resources in it, but only uses one. |
+ frame = CreateFrameData(gfx::Rect(0, 0, 1, 1), gfx::Rect(0, 0, 1, 1)); |
+ AddTransferableResource(frame.get(), 999); |
+ AddTextureQuad(frame.get(), 555); |
+ AddTransferableResource(frame.get(), 555); |
+ delegated_->SetFrameData(frame.Pass()); |
+ break; |
+ case 2: |
+ // The unused resource should be returned. |
+ delegated_->TakeUnusedResourcesForChildCompositor(&resources); |
+ EXPECT_EQ(1u, resources.size()); |
+ EXPECT_EQ(999, resources[0].id); |
+ |
+ endTest(); |
+ break; |
+ } |
+ } |
+ |
+ virtual void treeActivatedOnThread(LayerTreeHostImpl* host_impl) OVERRIDE { |
+ if (host_impl->activeTree()->source_frame_number() != 1) |
+ return; |
+ |
+ LayerImpl* root_impl = host_impl->activeTree()->RootLayer(); |
+ FakeDelegatedRendererLayerImpl* delegated_impl = |
+ static_cast<FakeDelegatedRendererLayerImpl*>(root_impl->children()[0]); |
+ |
+ const ResourceProvider::ResourceIdMap& map = |
+ host_impl->resourceProvider()->getChildToParentMap( |
+ delegated_impl->ChildId()); |
+ |
+ // The layer only held on to the resource that was used. |
+ EXPECT_EQ(1u, map.size()); |
+ EXPECT_EQ(1u, map.count(555)); |
+ } |
+ |
+ virtual void afterTest() OVERRIDE {} |
+}; |
+ |
+SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostDelegatedTestUnnamedResource) |
+ |
} // namespace |
} // namespace cc |