Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(939)

Unified Diff: chrome/browser/extensions/webstore_installer.cc

Issue 10980002: Mac Web Intents Part 1: Show extension download progress (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/webstore_installer.cc
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc
index 88e68ddf40ec39c9fccd62a4c2ebb5f5ed1fe2aa..7af3db7a2f95f1d10e01539ea4885d265213bfac 100644
--- a/chrome/browser/extensions/webstore_installer.cc
+++ b/chrome/browser/extensions/webstore_installer.cc
@@ -201,7 +201,7 @@ void WebstoreInstaller::Start() {
AddRef(); // Balanced in ReportSuccess and ReportFailure.
if (!Extension::IdIsValid(id_)) {
- ReportFailure(kInvalidIdError);
+ ReportFailure(kInvalidIdError, false);
return;
}
@@ -224,7 +224,7 @@ void WebstoreInstaller::Observe(int type,
if (extension == NULL && download_item_ != NULL &&
installer->download_url() == download_item_->GetURL() &&
installer->profile()->IsSameProfile(profile_)) {
- ReportFailure(kInstallCanceledError);
+ ReportFailure(kInstallCanceledError, true);
Steve McKay 2012/09/25 18:56:04 Add a method name ReportCancelled, call that inste
sail 2012/10/02 18:57:01 I changed ReportFailure to take a enum. Do you sti
Greg Billock 2012/10/02 19:20:38 This is fine. On 2012/10/02 18:57:01, sail wrote:
}
break;
}
@@ -249,7 +249,7 @@ void WebstoreInstaller::Observe(int type,
const string16* error = content::Details<const string16>(details).ptr();
const std::string utf8_error = UTF16ToUTF8(*error);
if (download_url_ == crx_installer->original_download_url())
- ReportFailure(utf8_error);
+ ReportFailure(utf8_error, false);
break;
}
@@ -271,7 +271,7 @@ WebstoreInstaller::~WebstoreInstaller() {
void WebstoreInstaller::OnDownloadStarted(DownloadId id, net::Error error) {
if (error != net::OK) {
- ReportFailure(net::ErrorToString(error));
+ ReportFailure(net::ErrorToString(error), false);
return;
}
@@ -286,6 +286,8 @@ void WebstoreInstaller::OnDownloadStarted(DownloadId id, net::Error error) {
download_item_->AddObserver(this);
if (approval_.get())
download_item_->SetUserData(kApprovalKey, approval_.release());
+ if (delegate_)
+ delegate_->OnExtensionDownloadStarted(id_, download_item_);
}
}
@@ -294,15 +296,21 @@ void WebstoreInstaller::OnDownloadUpdated(DownloadItem* download) {
switch (download->GetState()) {
case DownloadItem::CANCELLED:
- ReportFailure(kDownloadCanceledError);
+ ReportFailure(kDownloadCanceledError, true);
break;
case DownloadItem::INTERRUPTED:
- ReportFailure(kDownloadInterruptedError);
+ ReportFailure(kDownloadInterruptedError, false);
break;
case DownloadItem::COMPLETE:
// Wait for other notifications if the download is really an extension.
if (!download_crx_util::IsExtensionDownload(*download))
- ReportFailure(kInvalidDownloadError);
+ ReportFailure(kInvalidDownloadError, false);
+ else if (delegate_)
+ delegate_->OnExtensionDownloadProgress(id_, download);
+ break;
+ case DownloadItem::IN_PROGRESS:
+ if (delegate_)
+ delegate_->OnExtensionDownloadProgress(id_, download);
break;
default:
// Continue listening if the download is not in one of the above states.
@@ -329,7 +337,7 @@ void WebstoreInstaller::StartDownload(const FilePath& file) {
!controller_->GetWebContents()->GetBrowserContext() ||
!controller_->GetWebContents()->GetBrowserContext()
->GetResourceContext()) {
- ReportFailure(kDownloadDirectoryError);
+ ReportFailure(kDownloadDirectoryError, false);
return;
}
@@ -352,9 +360,10 @@ void WebstoreInstaller::StartDownload(const FilePath& file) {
download_manager->DownloadUrl(params.Pass());
}
-void WebstoreInstaller::ReportFailure(const std::string& error) {
+void WebstoreInstaller::ReportFailure(const std::string& error,
+ bool cancelled) {
if (delegate_) {
- delegate_->OnExtensionInstallFailure(id_, error);
+ delegate_->OnExtensionInstallFailure(id_, error, cancelled);
Nico 2012/09/25 03:07:18 nit: It looks like cancelled is true iff error ==
sail 2012/10/02 18:57:01 I changed this to take an enum. error is a string
delegate_ = NULL;
}

Powered by Google App Engine
This is Rietveld 408576698