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..22bc26212c586959f187a6f255c7c94f886c312e 100644 |
--- a/cc/layers/ui_resource_layer.cc |
+++ b/cc/layers/ui_resource_layer.cc |
@@ -41,6 +41,8 @@ class SharedUIResourceHolder : public UIResourceLayer::UIResourceHolder { |
UIResourceId id() override { return id_; } |
+ bool NeedsRecreation() override { return true; } |
+ |
private: |
explicit SharedUIResourceHolder(UIResourceId id) : id_(id) {} |
@@ -51,6 +53,10 @@ class SharedUIResourceHolder : public UIResourceLayer::UIResourceHolder { |
UIResourceLayer::UIResourceHolder::~UIResourceHolder() {} |
+bool UIResourceLayer::UIResourceHolder::NeedsRecreation() { |
+ return false; |
+} |
+ |
scoped_refptr<UIResourceLayer> UIResourceLayer::Create() { |
return make_scoped_refptr(new UIResourceLayer()); |
} |
@@ -112,10 +118,15 @@ void UIResourceLayer::SetLayerTreeHost(LayerTreeHost* host) { |
} |
void UIResourceLayer::RecreateUIResourceHolder() { |
- ui_resource_holder_ = nullptr; |
if (layer_tree_host() && !bitmap_.empty()) { |
ui_resource_holder_ = |
ScopedUIResourceHolder::Create(layer_tree_host(), bitmap_); |
+ } else if (ui_resource_holder_.get() && |
+ ui_resource_holder_->NeedsRecreation()) { |
+ ui_resource_holder_ = |
awoloszyn
2014/10/24 14:15:13
We should be able to do nothing in this case, sinc
Changwan Ryu
2014/10/27 00:57:37
Done.
|
+ SharedUIResourceHolder::Create(ui_resource_holder_->id()); |
+ } else { |
+ ui_resource_holder_ = nullptr; |
} |
UpdateDrawsContent(HasDrawableContent()); |
} |