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

Side by Side Diff: chrome/browser/plugin_installer.cc

Issue 10704026: Reland DownloadItem::Observer::OnDownloadDestroyed() replaces DownloadItem::REMOVING (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 8 years, 5 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/plugin_installer.h" 5 #include "chrome/browser/plugin_installer.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/process.h" 10 #include "base/process.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_); 143 DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_);
144 state_ = INSTALLER_STATE_IDLE; 144 state_ = INSTALLER_STATE_IDLE;
145 FOR_EACH_OBSERVER(PluginInstallerObserver, observers_, 145 FOR_EACH_OBSERVER(PluginInstallerObserver, observers_,
146 DownloadFinished()); 146 DownloadFinished());
147 break; 147 break;
148 } 148 }
149 case DownloadItem::CANCELLED: { 149 case DownloadItem::CANCELLED: {
150 DownloadCancelled(); 150 DownloadCancelled();
151 break; 151 break;
152 } 152 }
153 case DownloadItem::REMOVING: {
154 DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_);
155 state_ = INSTALLER_STATE_IDLE;
156 break;
157 }
158 case DownloadItem::INTERRUPTED: { 153 case DownloadItem::INTERRUPTED: {
159 content::DownloadInterruptReason reason = download->GetLastReason(); 154 content::DownloadInterruptReason reason = download->GetLastReason();
160 DownloadError(content::InterruptReasonDebugString(reason)); 155 DownloadError(content::InterruptReasonDebugString(reason));
161 break; 156 break;
162 } 157 }
163 case DownloadItem::MAX_DOWNLOAD_STATE: { 158 case DownloadItem::MAX_DOWNLOAD_STATE: {
164 NOTREACHED(); 159 NOTREACHED();
165 return; 160 return;
166 } 161 }
167 } 162 }
168 download->RemoveObserver(this); 163 download->RemoveObserver(this);
169 } 164 }
170 165
171 void PluginInstaller::OnDownloadOpened(DownloadItem* download) { 166 void PluginInstaller::OnDownloadDestroyed(DownloadItem* download) {
167 DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_);
168 state_ = INSTALLER_STATE_IDLE;
169 download->RemoveObserver(this);
172 } 170 }
173 171
174 void PluginInstaller::AddObserver(PluginInstallerObserver* observer) { 172 void PluginInstaller::AddObserver(PluginInstallerObserver* observer) {
175 observers_.AddObserver(observer); 173 observers_.AddObserver(observer);
176 } 174 }
177 175
178 void PluginInstaller::RemoveObserver(PluginInstallerObserver* observer) { 176 void PluginInstaller::RemoveObserver(PluginInstallerObserver* observer) {
179 observers_.RemoveObserver(observer); 177 observers_.RemoveObserver(observer);
180 if (observers_.size() == weak_observers_.size()) { 178 if (observers_.size() == weak_observers_.size()) {
181 FOR_EACH_OBSERVER(WeakPluginInstallerObserver, weak_observers_, 179 FOR_EACH_OBSERVER(WeakPluginInstallerObserver, weak_observers_,
(...skipping 22 matching lines...) Expand all
204 download_util::INITIATED_BY_PLUGIN_INSTALLER); 202 download_util::INITIATED_BY_PLUGIN_INSTALLER);
205 BrowserThread::PostTask( 203 BrowserThread::PostTask(
206 BrowserThread::IO, FROM_HERE, 204 BrowserThread::IO, FROM_HERE,
207 base::Bind(&BeginDownload, 205 base::Bind(&BeginDownload,
208 plugin_url_, 206 plugin_url_,
209 tab_contents->profile()->GetResourceContext(), 207 tab_contents->profile()->GetResourceContext(),
210 web_contents->GetRenderProcessHost()->GetID(), 208 web_contents->GetRenderProcessHost()->GetID(),
211 web_contents->GetRenderViewHost()->GetRoutingID(), 209 web_contents->GetRenderViewHost()->GetRoutingID(),
212 base::Bind(&PluginInstaller::DownloadStarted, 210 base::Bind(&PluginInstaller::DownloadStarted,
213 base::Unretained(this), 211 base::Unretained(this),
214 make_scoped_refptr(download_manager)))); 212 make_scoped_refptr(download_manager))));
Randy Smith (Not in Mondays) 2012/07/11 17:55:37 *Not* relevant to this CL, but this code makes it
benjhayden 2012/07/13 20:03:17 The more downloads code we rediscover, the more of
215 } 213 }
216 214
217 void PluginInstaller::DownloadStarted( 215 void PluginInstaller::DownloadStarted(
218 scoped_refptr<content::DownloadManager> dlm, 216 scoped_refptr<content::DownloadManager> dlm,
219 content::DownloadId download_id, 217 content::DownloadId download_id,
220 net::Error error) { 218 net::Error error) {
221 if (error != net::OK) { 219 if (error != net::OK) {
222 std::string msg = 220 std::string msg =
223 base::StringPrintf("Error %d: %s", error, net::ErrorToString(error)); 221 base::StringPrintf("Error %d: %s", error, net::ErrorToString(error));
224 DownloadError(msg); 222 DownloadError(msg);
(...skipping 20 matching lines...) Expand all
245 DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_); 243 DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_);
246 state_ = INSTALLER_STATE_IDLE; 244 state_ = INSTALLER_STATE_IDLE;
247 FOR_EACH_OBSERVER(PluginInstallerObserver, observers_, DownloadError(msg)); 245 FOR_EACH_OBSERVER(PluginInstallerObserver, observers_, DownloadError(msg));
248 } 246 }
249 247
250 void PluginInstaller::DownloadCancelled() { 248 void PluginInstaller::DownloadCancelled() {
251 DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_); 249 DCHECK_EQ(INSTALLER_STATE_DOWNLOADING, state_);
252 state_ = INSTALLER_STATE_IDLE; 250 state_ = INSTALLER_STATE_IDLE;
253 FOR_EACH_OBSERVER(PluginInstallerObserver, observers_, DownloadCancelled()); 251 FOR_EACH_OBSERVER(PluginInstallerObserver, observers_, DownloadCancelled());
254 } 252 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698