Index: chrome/browser/ui/intents/web_intent_picker_controller.cc |
diff --git a/chrome/browser/ui/intents/web_intent_picker_controller.cc b/chrome/browser/ui/intents/web_intent_picker_controller.cc |
index 4a05ab5539066636c6b46a98f5f97f04ec81a09e..4b537de9c8e3098b45aa5c81a49cdef07c42d489 100644 |
--- a/chrome/browser/ui/intents/web_intent_picker_controller.cc |
+++ b/chrome/browser/ui/intents/web_intent_picker_controller.cc |
@@ -605,17 +605,19 @@ void WebIntentPickerController::OnCWSIntentServicesAvailable( |
const CWSIntentsRegistry::IntentExtensionList& extensions) { |
ExtensionServiceInterface* extension_service = |
tab_contents_->profile()->GetExtensionService(); |
+ |
+ std::vector<WebIntentPickerModel::SuggestedExtension> suggestions; |
for (size_t i = 0; i < extensions.size(); ++i) { |
const CWSIntentsRegistry::IntentExtensionInfo& info = extensions[i]; |
+ |
+ // Do not include suggestions for already installed extensions. |
if (extension_service->GetExtensionById(UTF16ToUTF8(info.id), |
- true)) { // Include disabled. |
+ true)) { |
continue; |
} |
- picker_model_->AddSuggestedExtension( |
- info.name, |
- info.id, |
- info.average_rating); |
+ suggestions.push_back(WebIntentPickerModel::SuggestedExtension( |
+ info.name, info.id, info.average_rating)); |
pending_async_count_++; |
net::URLFetcher* icon_url_fetcher = net::URLFetcher::Create( |
@@ -634,6 +636,8 @@ void WebIntentPickerController::OnCWSIntentServicesAvailable( |
icon_url_fetcher->Start(); |
} |
+ picker_model_->AddSuggestedExtensions(suggestions); |
+ |
AsyncOperationFinished(); |
} |