Chromium Code Reviews| Index: chrome/browser/chromeos/extensions/external_cache.cc |
| diff --git a/chrome/browser/chromeos/extensions/external_cache.cc b/chrome/browser/chromeos/extensions/external_cache.cc |
| index 5b547a425f3729ff417c943c1876b7ab054c63a4..5eb9e042123cd14597ccac85f072170ead62f293 100644 |
| --- a/chrome/browser/chromeos/extensions/external_cache.cc |
| +++ b/chrome/browser/chromeos/extensions/external_cache.cc |
| @@ -108,6 +108,18 @@ void ExternalCache::OnDamagedFileDetected(const base::FilePath& path) { |
| LOG(ERROR) << "ExternalCache cannot find external_crx " << path.value(); |
| } |
| +void ExternalCache::RemoveExtensions(const std::vector<std::string>& ids) { |
| + if (ids.size() == 0) |
|
xiyuan
2014/05/02 18:33:51
nit: ids.empty()
jennyz
2014/05/02 21:05:04
Done.
|
| + return; |
| + |
| + for (size_t i = 0; i < ids.size(); ++i) { |
| + cached_extensions_->Remove(ids[i], NULL); |
| + extensions_->Remove(ids[i], NULL); |
| + local_cache_.RemoveExtension(ids[i]); |
| + } |
| + UpdateExtensionLoader(); |
| +} |
| + |
| void ExternalCache::Observe(int type, |
| const content::NotificationSource& source, |
| const content::NotificationDetails& details) { |
| @@ -133,10 +145,14 @@ void ExternalCache::OnExtensionDownloadFailed( |
| if (!cached_extensions_->HasKey(id)) { |
| LOG(ERROR) << "ExternalCache extension " << id |
| << " not found on update server"; |
| + delegate_->OnExtensionDownloadFailed(id, error); |
| + } else { |
| + delegate_->OnExtensionLoadedInCache(id); |
| } |
| } else { |
| LOG(ERROR) << "ExternalCache failed to download extension " << id |
| << ", error " << error; |
| + delegate_->OnExtensionDownloadFailed(id, error); |
| } |
| } |
| @@ -293,6 +309,8 @@ void ExternalCache::OnPutExtension(const std::string& id, |
| file_path.value()); |
| cached_extensions_->Set(id, entry); |
| + if (delegate_) |
| + delegate_->OnExtensionLoadedInCache(id); |
| UpdateExtensionLoader(); |
| } |