| Index: extensions/browser/updater/extension_downloader.cc | 
| diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc | 
| index 116ef7abb1561000f78029f313f49510d8e086ab..6d94e8697669dd7efce8de52c0c1ae94a6359cf8 100644 | 
| --- a/extensions/browser/updater/extension_downloader.cc | 
| +++ b/extensions/browser/updater/extension_downloader.cc | 
| @@ -27,6 +27,7 @@ | 
| #include "extensions/browser/extensions_browser_client.h" | 
| #include "extensions/browser/notification_types.h" | 
| #include "extensions/browser/updater/extension_cache.h" | 
| +#include "extensions/browser/updater/extension_downloader_test_delegate.h" | 
| #include "extensions/browser/updater/request_queue_impl.h" | 
| #include "extensions/browser/updater/safe_manifest_parser.h" | 
| #include "extensions/common/extension_urls.h" | 
| @@ -90,6 +91,8 @@ const char kTokenServiceConsumerId[] = "extension_downloader"; | 
| const char kWebstoreOAuth2Scope[] = | 
| "https://www.googleapis.com/auth/chromewebstore.readonly"; | 
|  | 
| +ExtensionDownloaderTestDelegate* g_test_delegate = nullptr; | 
| + | 
| #define RETRY_HISTOGRAM(name, retry_count, url)                           \ | 
| if ((url).DomainIs(kGoogleDotCom)) {                                    \ | 
| UMA_HISTOGRAM_CUSTOM_COUNTS("Extensions." name "RetryCountGoogleUrl", \ | 
| @@ -278,6 +281,12 @@ void ExtensionDownloader::SetWebstoreIdentityProvider( | 
| identity_provider_.swap(identity_provider); | 
| } | 
|  | 
| +// static | 
| +void ExtensionDownloader::set_test_delegate( | 
| +    ExtensionDownloaderTestDelegate* delegate) { | 
| +  g_test_delegate = delegate; | 
| +} | 
| + | 
| bool ExtensionDownloader::AddExtensionData(const std::string& id, | 
| const Version& version, | 
| Manifest::Type extension_type, | 
| @@ -405,6 +414,11 @@ void ExtensionDownloader::ReportStats() const { | 
|  | 
| void ExtensionDownloader::StartUpdateCheck( | 
| scoped_ptr<ManifestFetchData> fetch_data) { | 
| +  if (g_test_delegate) { | 
| +    g_test_delegate->StartUpdateCheck(this, delegate_, std::move(fetch_data)); | 
| +    return; | 
| +  } | 
| + | 
| const std::set<std::string>& id_set(fetch_data->extension_ids()); | 
|  | 
| if (!ExtensionsBrowserClient::Get()->IsBackgroundUpdateAllowed()) { | 
|  |