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

Side by Side Diff: chrome/browser/download/chrome_download_manager_delegate.cc

Issue 8414007: Rearrange Should*Download delegate calls to be more useful and intuitive. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tweaked comment. Created 9 years, 1 month 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/download/chrome_download_manager_delegate.h" 5 #include "chrome/browser/download/chrome_download_manager_delegate.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/callback.h" 9 #include "base/callback.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 FilePath::StringType extension = path.Extension(); 140 FilePath::StringType extension = path.Extension();
141 if (extension.empty()) 141 if (extension.empty())
142 return false; 142 return false;
143 if (Extension::IsExtension(path)) 143 if (Extension::IsExtension(path))
144 return false; 144 return false;
145 DCHECK(extension[0] == FilePath::kExtensionSeparator); 145 DCHECK(extension[0] == FilePath::kExtensionSeparator);
146 extension.erase(0, 1); 146 extension.erase(0, 1);
147 return download_prefs_->IsAutoOpenEnabledForExtension(extension); 147 return download_prefs_->IsAutoOpenEnabledForExtension(extension);
148 } 148 }
149 149
150 bool ChromeDownloadManagerDelegate::ShouldCompleteDownload(DownloadItem* item) {
151 return true;
152 }
153
150 bool ChromeDownloadManagerDelegate::ShouldOpenDownload(DownloadItem* item) { 154 bool ChromeDownloadManagerDelegate::ShouldOpenDownload(DownloadItem* item) {
151 if (!IsExtensionDownload(item)) 155 if (!IsExtensionDownload(item))
152 return true; 156 return true;
153 157
154 download_crx_util::OpenChromeExtension(profile_, *item);
155 return false;
156 }
157
158 bool ChromeDownloadManagerDelegate::ShouldCompleteDownload(DownloadItem* item) {
159 if (!IsExtensionDownload(item))
160 return true;
161
162 scoped_refptr<CrxInstaller> crx_installer = 158 scoped_refptr<CrxInstaller> crx_installer =
163 download_crx_util::OpenChromeExtension(profile_, *item); 159 download_crx_util::OpenChromeExtension(profile_, *item);
164 160
165 // CRX_INSTALLER_DONE will fire when the install completes. Observe() 161 // CRX_INSTALLER_DONE will fire when the install completes. Observe()
166 // will call CompleteDelayedDownload() on this item. If this DownloadItem is 162 // will call DelayedDownloadOpened() on this item. If this DownloadItem is
167 // not around when CRX_INSTALLER_DONE fires, Complete() will not be called. 163 // not around when CRX_INSTALLER_DONE fires, Complete() will not be called.
168 registrar_.Add(this, 164 registrar_.Add(this,
169 chrome::NOTIFICATION_CRX_INSTALLER_DONE, 165 chrome::NOTIFICATION_CRX_INSTALLER_DONE,
170 content::Source<CrxInstaller>(crx_installer.get())); 166 content::Source<CrxInstaller>(crx_installer.get()));
171 167
172 crx_installers_[crx_installer.get()] = item->id(); 168 crx_installers_[crx_installer.get()] = item->id();
173 // The status text and percent complete indicator will change now 169 // The status text and percent complete indicator will change now
174 // that we are installing a CRX. Update observers so that they pick 170 // that we are installing a CRX. Update observers so that they pick
175 // up the change. 171 // up the change.
176 item->UpdateObservers(); 172 item->UpdateObservers();
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 registrar_.Remove(this, 311 registrar_.Remove(this,
316 chrome::NOTIFICATION_CRX_INSTALLER_DONE, 312 chrome::NOTIFICATION_CRX_INSTALLER_DONE,
317 source); 313 source);
318 314
319 CrxInstaller* installer = content::Source<CrxInstaller>(source).ptr(); 315 CrxInstaller* installer = content::Source<CrxInstaller>(source).ptr();
320 int download_id = crx_installers_[installer]; 316 int download_id = crx_installers_[installer];
321 crx_installers_.erase(installer); 317 crx_installers_.erase(installer);
322 318
323 DownloadItem* item = download_manager_->GetActiveDownloadItem(download_id); 319 DownloadItem* item = download_manager_->GetActiveDownloadItem(download_id);
324 if (item) 320 if (item)
325 item->CompleteDelayedDownload(); 321 item->DelayedDownloadOpened();
326 } 322 }
327 323
328 void ChromeDownloadManagerDelegate::CheckVisitedReferrerBeforeDone( 324 void ChromeDownloadManagerDelegate::CheckVisitedReferrerBeforeDone(
329 int32 download_id, 325 int32 download_id,
330 bool visited_referrer_before) { 326 bool visited_referrer_before) {
331 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 327 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
332 328
333 DownloadItem* download = 329 DownloadItem* download =
334 download_manager_->GetActiveDownloadItem(download_id); 330 download_manager_->GetActiveDownloadItem(download_id);
335 if (!download) 331 if (!download)
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 // TODO(noelutz): This function currently works as a callback place holder. 536 // TODO(noelutz): This function currently works as a callback place holder.
541 // Once we decide the hash check is reliable, we could move the 537 // Once we decide the hash check is reliable, we could move the
542 // MaybeCompleteDownload in OnAllDataSaved to this function. 538 // MaybeCompleteDownload in OnAllDataSaved to this function.
543 void ChromeDownloadManagerDelegate::CheckDownloadHashDone( 539 void ChromeDownloadManagerDelegate::CheckDownloadHashDone(
544 int32 download_id, 540 int32 download_id,
545 bool is_dangerous_hash) { 541 bool is_dangerous_hash) {
546 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 542 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
547 DVLOG(1) << "CheckDownloadHashDone, download_id: " << download_id 543 DVLOG(1) << "CheckDownloadHashDone, download_id: " << download_id
548 << " is dangerous_hash: " << is_dangerous_hash; 544 << " is dangerous_hash: " << is_dangerous_hash;
549 } 545 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698