Chromium Code Reviews| Index: chrome/browser/extensions/extension_service.cc |
| diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc |
| index 7234169ec5e648c56e26a72bd5aac9447a5ce7d1..343d7283560da1892827f54356339f53bf6e02e0 100644 |
| --- a/chrome/browser/extensions/extension_service.cc |
| +++ b/chrome/browser/extensions/extension_service.cc |
| @@ -88,6 +88,7 @@ |
| #include "chrome/browser/extensions/crx_installer.h" |
| #include "chrome/browser/extensions/permissions_updater.h" |
| #include "chrome/browser/extensions/unpacked_installer.h" |
| +#include "chrome/browser/extensions/updater/extension_downloader.h" |
| #include "chrome/browser/extensions/updater/extension_updater.h" |
| #endif |
| @@ -96,6 +97,8 @@ using content::BrowserThread; |
| using content::DevToolsAgentHost; |
| using extensions::CrxInstaller; |
| using extensions::Extension; |
| +using extensions::ExtensionDownloader; |
| +using extensions::ExtensionDownloaderDelegate; |
| using extensions::ExtensionIdSet; |
| using extensions::ExtensionInfo; |
| using extensions::ExtensionRegistry; |
| @@ -327,7 +330,8 @@ ExtensionService::ExtensionService(Profile* profile, |
| profile, |
| update_frequency, |
| extensions::ExtensionCache::GetInstance(), |
| - CreateWebstoreIdentityProvider(profile_))); |
| + base::Bind(&ExtensionService::CreateExtensionDownloader, |
| + base::Unretained(this)))); |
|
Yoyo Zhou
2014/08/11 23:19:28
Why not use weak pointers?
Ken Rockot(use gerrit already)
2014/08/11 23:48:24
Not allowed to use weak pointers when binding to m
|
| } |
| #endif |
| @@ -595,6 +599,20 @@ bool ExtensionService::UpdateExtension(const std::string& id, |
| #endif |
| } |
| +scoped_ptr<ExtensionDownloader> ExtensionService::CreateExtensionDownloader( |
| + ExtensionDownloaderDelegate* delegate) { |
| + scoped_ptr<ExtensionDownloader> downloader; |
| +#if defined(ENABLE_EXTENSIONS) |
| + scoped_ptr<IdentityProvider> identity_provider = |
| + CreateWebstoreIdentityProvider(profile_); |
| + downloader.reset(new ExtensionDownloader( |
| + delegate, |
| + profile_->GetRequestContext())); |
| + downloader->SetWebstoreIdentityProvider(identity_provider.Pass()); |
| +#endif |
| + return downloader.Pass(); |
| +} |
| + |
| void ExtensionService::ReloadExtensionImpl( |
| // "transient" because the process of reloading may cause the reference |
| // to become invalid. Instead, use |extension_id|, a copy. |