Index: cc/trees/layer_tree_host.cc |
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc |
index 0f0b31ebebea03b41ac4d65987060b09d1574e08..be9d38d9ec497dd7a113a2207a10cde58bca2fff 100644 |
--- a/cc/trees/layer_tree_host.cc |
+++ b/cc/trees/layer_tree_host.cc |
@@ -938,9 +938,16 @@ void LayerTreeHost::RecreateUIResources() { |
UIResourceId uid = iter->first; |
const UIResourceClientData& data = iter->second; |
bool resource_lost = true; |
- UIResourceRequest request(UIResourceRequest::UI_RESOURCE_CREATE, uid, |
- data.client->GetBitmap(uid, resource_lost)); |
- ui_resource_request_queue_.push_back(request); |
+ auto it = std::find_if(ui_resource_request_queue_.begin(), |
+ ui_resource_request_queue_.end(), |
+ [uid](const UIResourceRequest& request) { |
+ return request.GetId() == uid; |
+ }); |
+ if (it == ui_resource_request_queue_.end()) { |
+ UIResourceRequest request(UIResourceRequest::UI_RESOURCE_CREATE, uid, |
+ data.client->GetBitmap(uid, resource_lost)); |
+ ui_resource_request_queue_.push_back(request); |
+ } |
} |
} |