Index: cc/layers/delegated_renderer_layer.cc |
diff --git a/cc/layers/delegated_renderer_layer.cc b/cc/layers/delegated_renderer_layer.cc |
index 0ffa54a7e3f8731d22b96738747260aa202cf948..1e1a8a0ab7a2859d6f38bc5d1aeb1cf422838a72 100644 |
--- a/cc/layers/delegated_renderer_layer.cc |
+++ b/cc/layers/delegated_renderer_layer.cc |
@@ -29,6 +29,23 @@ scoped_ptr<LayerImpl> DelegatedRendererLayer::CreateLayerImpl( |
tree_impl, layer_id_).PassAs<LayerImpl>(); |
} |
+void DelegatedRendererLayer::SetLayerTreeHost(LayerTreeHost* host) { |
+ if (layer_tree_host() == host) { |
+ Layer::SetLayerTreeHost(host); |
+ return; |
+ } |
+ |
+ if (!host) { |
+ // The active frame needs to be removed from the active tree and resources |
+ // returned before the commit is called complete. |
+ // TODO(danakj): Don't need to do this if the last frame commited was empty |
+ // or we never commited a frame with resources. |
+ SetNextCommitWaitsForActivation(); |
+ } |
+ |
+ Layer::SetLayerTreeHost(host); |
+} |
+ |
bool DelegatedRendererLayer::DrawsContent() const { |
return Layer::DrawsContent() && !frame_size_.IsEmpty(); |
} |
@@ -83,6 +100,9 @@ void DelegatedRendererLayer::SetFrameData( |
frame_size_ = gfx::Size(); |
} |
SetNeedsCommit(); |
+ // The active frame needs to be replaced and resources returned before the |
+ // commit is called complete. |
+ SetNextCommitWaitsForActivation(); |
} |
void DelegatedRendererLayer::TakeUnusedResourcesForChildCompositor( |
@@ -93,12 +113,4 @@ void DelegatedRendererLayer::TakeUnusedResourcesForChildCompositor( |
array->swap(unused_resources_for_child_compositor_); |
} |
-bool DelegatedRendererLayer::BlocksPendingCommit() const { |
- // The active frame needs to be replaced and resources returned before the |
- // commit is called complete. This is true even whenever there may be |
- // resources to return, regardless of if the layer will draw in its new |
- // state. |
- return true; |
-} |
- |
} // namespace cc |