Index: chrome/browser/extensions/extension_service.cc |
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc |
index 4a4b216b3af5124b6d277c37dd72a47e6d66efbc..23454c55c5792082a3ffafcee64cbbdddfb2638b 100644 |
--- a/chrome/browser/extensions/extension_service.cc |
+++ b/chrome/browser/extensions/extension_service.cc |
@@ -194,7 +194,8 @@ bool ExtensionService::OnExternalExtensionUpdateUrlFound( |
const GURL& update_url, |
Manifest::Location location, |
int creation_flags, |
- bool mark_acknowledged) { |
+ bool mark_acknowledged, |
+ bool is_initial_load) { |
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
CHECK(crx_file::id_util::IdIsValid(id)); |
@@ -228,10 +229,27 @@ bool ExtensionService::OnExternalExtensionUpdateUrlFound( |
return false; |
} |
- update_once_all_providers_are_ready_ = true; |
+ if (is_initial_load) |
+ update_once_all_providers_are_ready_ = true; |
return true; |
} |
+void ExtensionService::OnExternalProviderUpdateComplete( |
+ const extensions::ExternalProviderInterface* provider, |
+ const std::set<std::string>& removed_extensions) { |
+ if (updater_) { |
+ // Empty params will cause pending extensions to be updated. |
+ extensions::ExtensionUpdater::CheckParams empty_params; |
+ updater_->CheckNow(empty_params); |
asargent_no_longer_on_chrome
2016/01/20 22:49:00
It seems a little unfortunate to kick off an updat
lazyboy
2016/01/21 21:02:12
This should not kick off update check for all curr
|
+ } |
+ |
+ for (const std::string& id : removed_extensions) |
+ CheckExternalUninstall(id); |
+ |
+ error_controller_->ShowErrorIfNeeded(); |
+ external_install_manager_->UpdateExternalExtensionAlert(); |
+} |
+ |
// static |
// This function is used to uninstall an extension via sync. The LOG statements |
// within this function are used to inform the user if the uninstall cannot be |