Index: chrome/browser/ui/intents/web_intent_picker_model.cc |
diff --git a/chrome/browser/ui/intents/web_intent_picker_model.cc b/chrome/browser/ui/intents/web_intent_picker_model.cc |
index 131f735d8b04be7fbcaf702035b20b6e682a8ed0..b5743021ef5f74d3cc2ddf931a8ae681a9c4c317 100644 |
--- a/chrome/browser/ui/intents/web_intent_picker_model.cc |
+++ b/chrome/browser/ui/intents/web_intent_picker_model.cc |
@@ -8,7 +8,9 @@ |
#include "base/logging.h" |
#include "base/stl_util.h" |
+#include "chrome/browser/download/download_item_model.h" |
#include "chrome/browser/ui/intents/web_intent_picker_model_observer.h" |
+#include "content/public/browser/download_item.h" |
#include "grit/generated_resources.h" |
#include "grit/ui_resources.h" |
#include "ui/base/l10n/l10n_util.h" |
@@ -24,7 +26,8 @@ const size_t kMaxSuggestionCount = 5; // Maximum number of visible suggestions. |
WebIntentPickerModel::WebIntentPickerModel() |
: observer_(NULL), |
waiting_for_suggestions_(true), |
- default_service_hash_(0) { |
+ default_service_hash_(0), |
+ pending_extension_install_download_progress_(0) { |
} |
WebIntentPickerModel::~WebIntentPickerModel() { |
@@ -62,6 +65,7 @@ void WebIntentPickerModel::Clear() { |
type_.clear(); |
inline_disposition_url_ = GURL::EmptyGURL(); |
waiting_for_suggestions_ = true; |
+ ClearPendingExtensionInstall(); |
if (observer_) |
observer_->OnModelChanged(this); |
} |
@@ -160,6 +164,43 @@ void WebIntentPickerModel::SetWaitingForSuggestions(bool waiting) { |
observer_->OnModelChanged(this); |
} |
+void WebIntentPickerModel::SetPendingExtensionInstallId(const std::string& id) { |
+ pending_extension_install_id_ = id; |
+ if (observer_) |
+ observer_->OnModelChanged(this); |
+} |
+ |
+void WebIntentPickerModel::UpdateExtensionDownloadState( |
+ content::DownloadItem* item) { |
+ pending_extension_install_download_progress_ = item->PercentComplete(); |
+ DownloadItemModel download_model(item); |
+ pending_extension_install_status_string_ = download_model.GetStatusText(); |
+ if (observer_) |
+ observer_->OnModelChanged(this); |
+} |
+ |
+void WebIntentPickerModel::SetPendingExtensionInstallDownloadProgress( |
+ int progress) { |
+ pending_extension_install_download_progress_ = progress; |
+ if (observer_) |
+ observer_->OnModelChanged(this); |
+} |
+ |
+void WebIntentPickerModel::SetPendingExtensionInstallStatusString( |
+ const string16& status) { |
+ pending_extension_install_status_string_ = status; |
+ if (observer_) |
+ observer_->OnModelChanged(this); |
+} |
+ |
+void WebIntentPickerModel::ClearPendingExtensionInstall() { |
+ pending_extension_install_id_.clear(); |
+ pending_extension_install_download_progress_ = 0; |
+ pending_extension_install_status_string_.clear(); |
+ if (observer_) |
+ observer_->OnModelChanged(this); |
+} |
+ |
void WebIntentPickerModel::DestroyAll() { |
STLDeleteElements(&installed_services_); |
} |