Index: cc/layers/ui_resource_layer.cc |
diff --git a/cc/layers/ui_resource_layer.cc b/cc/layers/ui_resource_layer.cc |
index 944cf7d54844c7016feb32eacfc401fb590146ab..9d711feb61e4054a17ca81d620a925fdaeca1613 100644 |
--- a/cc/layers/ui_resource_layer.cc |
+++ b/cc/layers/ui_resource_layer.cc |
@@ -107,23 +107,26 @@ void UIResourceLayer::SetLayerTreeHost(LayerTreeHost* host) { |
Layer::SetLayerTreeHost(host); |
- // Recreate the resource hold against the new LTH. |
+ // Recreate the resource held against the new LTH. |
RecreateUIResourceHolder(); |
+ |
+ UpdateDrawsContent(HasDrawableContent()); |
} |
void UIResourceLayer::RecreateUIResourceHolder() { |
- ui_resource_holder_ = nullptr; |
+ if (!bitmap_.empty()) |
+ SetBitmap(bitmap_); |
+} |
+ |
+void UIResourceLayer::SetBitmap(const SkBitmap& skbitmap) { |
+ bitmap_ = skbitmap; |
if (layer_tree_host() && !bitmap_.empty()) { |
ui_resource_holder_ = |
ScopedUIResourceHolder::Create(layer_tree_host(), bitmap_); |
+ } else { |
+ ui_resource_holder_ = nullptr; |
} |
UpdateDrawsContent(HasDrawableContent()); |
-} |
- |
-void UIResourceLayer::SetBitmap(const SkBitmap& skbitmap) { |
- bitmap_ = skbitmap; |
- |
- RecreateUIResourceHolder(); |
SetNeedsCommit(); |
} |