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

Side by Side Diff: chrome/browser/ui/intents/web_intent_picker_model.cc

Issue 10980002: Mac Web Intents Part 1: Show extension download progress (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove downloads code Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/intents/web_intent_picker_model.h" 5 #include "chrome/browser/ui/intents/web_intent_picker_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
11 #include "chrome/browser/download/download_item_model.h"
11 #include "chrome/browser/ui/intents/web_intent_picker_model_observer.h" 12 #include "chrome/browser/ui/intents/web_intent_picker_model_observer.h"
13 #include "content/public/browser/download_item.h"
12 #include "grit/generated_resources.h" 14 #include "grit/generated_resources.h"
13 #include "grit/ui_resources.h" 15 #include "grit/ui_resources.h"
14 #include "ui/base/l10n/l10n_util.h" 16 #include "ui/base/l10n/l10n_util.h"
15 #include "ui/base/resource/resource_bundle.h" 17 #include "ui/base/resource/resource_bundle.h"
16 #include "ui/gfx/image/image.h" 18 #include "ui/gfx/image/image.h"
17 19
18 namespace { 20 namespace {
19 21
20 const size_t kMaxSuggestionCount = 5; // Maximum number of visible suggestions. 22 const size_t kMaxSuggestionCount = 5; // Maximum number of visible suggestions.
21 23
22 } // namespace 24 } // namespace
23 25
24 WebIntentPickerModel::WebIntentPickerModel() 26 WebIntentPickerModel::WebIntentPickerModel()
25 : observer_(NULL), 27 : observer_(NULL),
26 waiting_for_suggestions_(true), 28 waiting_for_suggestions_(true),
27 default_service_hash_(0) { 29 default_service_hash_(0),
30 pending_extension_install_download_progress_(0) {
28 } 31 }
29 32
30 WebIntentPickerModel::~WebIntentPickerModel() { 33 WebIntentPickerModel::~WebIntentPickerModel() {
31 DestroyAll(); 34 DestroyAll();
32 } 35 }
33 36
34 void WebIntentPickerModel::AddInstalledService( 37 void WebIntentPickerModel::AddInstalledService(
35 const string16& title, 38 const string16& title,
36 const GURL& url, 39 const GURL& url,
37 webkit_glue::WebIntentServiceData::Disposition disposition) { 40 webkit_glue::WebIntentServiceData::Disposition disposition) {
(...skipping 17 matching lines...) Expand all
55 if (observer_) 58 if (observer_)
56 observer_->OnModelChanged(this); 59 observer_->OnModelChanged(this);
57 } 60 }
58 61
59 void WebIntentPickerModel::Clear() { 62 void WebIntentPickerModel::Clear() {
60 DestroyAll(); 63 DestroyAll();
61 action_.clear(); 64 action_.clear();
62 type_.clear(); 65 type_.clear();
63 inline_disposition_url_ = GURL::EmptyGURL(); 66 inline_disposition_url_ = GURL::EmptyGURL();
64 waiting_for_suggestions_ = true; 67 waiting_for_suggestions_ = true;
68 ClearPendingExtensionInstall();
65 if (observer_) 69 if (observer_)
66 observer_->OnModelChanged(this); 70 observer_->OnModelChanged(this);
67 } 71 }
68 72
69 const WebIntentPickerModel::InstalledService& 73 const WebIntentPickerModel::InstalledService&
70 WebIntentPickerModel::GetInstalledServiceAt(size_t index) const { 74 WebIntentPickerModel::GetInstalledServiceAt(size_t index) const {
71 DCHECK_LT(index, installed_services_.size()); 75 DCHECK_LT(index, installed_services_.size());
72 return *installed_services_[index]; 76 return *installed_services_[index];
73 } 77 }
74 78
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 bool WebIntentPickerModel::IsWaitingForSuggestions() const { 157 bool WebIntentPickerModel::IsWaitingForSuggestions() const {
154 return waiting_for_suggestions_; 158 return waiting_for_suggestions_;
155 } 159 }
156 160
157 void WebIntentPickerModel::SetWaitingForSuggestions(bool waiting) { 161 void WebIntentPickerModel::SetWaitingForSuggestions(bool waiting) {
158 waiting_for_suggestions_ = waiting; 162 waiting_for_suggestions_ = waiting;
159 if (observer_) 163 if (observer_)
160 observer_->OnModelChanged(this); 164 observer_->OnModelChanged(this);
161 } 165 }
162 166
167 void WebIntentPickerModel::SetPendingExtensionInstallId(const std::string& id) {
168 pending_extension_install_id_ = id;
169 if (observer_)
170 observer_->OnModelChanged(this);
171 }
172
173 void WebIntentPickerModel::UpdateExtensionDownloadState(
174 content::DownloadItem* item) {
175 pending_extension_install_download_progress_ = item->PercentComplete();
176 DownloadItemModel download_model(item);
177 pending_extension_install_status_string_ = download_model.GetStatusText();
178 if (observer_)
179 observer_->OnModelChanged(this);
180 }
181
182 void WebIntentPickerModel::SetPendingExtensionInstallDownloadProgress(
183 int progress) {
184 pending_extension_install_download_progress_ = progress;
185 if (observer_)
186 observer_->OnModelChanged(this);
187 }
188
189 void WebIntentPickerModel::SetPendingExtensionInstallStatusString(
190 const string16& status) {
191 pending_extension_install_status_string_ = status;
192 if (observer_)
193 observer_->OnModelChanged(this);
194 }
195
196 void WebIntentPickerModel::ClearPendingExtensionInstall() {
197 pending_extension_install_id_.clear();
198 pending_extension_install_download_progress_ = 0;
199 pending_extension_install_status_string_.clear();
200 if (observer_)
201 observer_->OnModelChanged(this);
202 }
203
163 void WebIntentPickerModel::DestroyAll() { 204 void WebIntentPickerModel::DestroyAll() {
164 STLDeleteElements(&installed_services_); 205 STLDeleteElements(&installed_services_);
165 } 206 }
166 207
167 WebIntentPickerModel::InstalledService::InstalledService( 208 WebIntentPickerModel::InstalledService::InstalledService(
168 const string16& title, 209 const string16& title,
169 const GURL& url, 210 const GURL& url,
170 webkit_glue::WebIntentServiceData::Disposition disposition) 211 webkit_glue::WebIntentServiceData::Disposition disposition)
171 : title(title), 212 : title(title),
172 url(url), 213 url(url),
(...skipping 11 matching lines...) Expand all
184 double average_rating) 225 double average_rating)
185 : title(title), 226 : title(title),
186 id(id), 227 id(id),
187 average_rating(average_rating), 228 average_rating(average_rating),
188 icon(ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed( 229 icon(ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
189 IDR_DEFAULT_FAVICON)) { 230 IDR_DEFAULT_FAVICON)) {
190 } 231 }
191 232
192 WebIntentPickerModel::SuggestedExtension::~SuggestedExtension() { 233 WebIntentPickerModel::SuggestedExtension::~SuggestedExtension() {
193 } 234 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/intents/web_intent_picker_model.h ('k') | chrome/browser/ui/intents/web_intent_picker_model_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698