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 3 // found in the LICENSE file. 4 5 #include "content/browser/download/download_item_impl_delegate.h" 6 7 #include "base/logging.h" 8 #include "content/browser/download/download_item_impl.h" 9 10 namespace content { 11 12 // Infrastructure in DownloadItemImplDelegate to assert invariant that 13 // delegate always outlives all attached DownloadItemImpls. 14 DownloadItemImplDelegate::DownloadItemImplDelegate() 15 : count_(0) {} 16 17 DownloadItemImplDelegate::~DownloadItemImplDelegate() { 18 DCHECK_EQ(0, count_); 19 } 20 21 void DownloadItemImplDelegate::Attach() { 22 ++count_; 23 } 24 25 void DownloadItemImplDelegate::Detach() { 26 DCHECK_LT(0, count_); 27 --count_; 28 } 29 30 void DownloadItemImplDelegate::DetermineDownloadTarget( 31 DownloadItemImpl* download, const DownloadTargetCallback& callback) { 32 // TODO(rdsmith/asanka): Do something useful if forced file path is null. 33 base::FilePath target_path(download->GetForcedFilePath()); 34 callback.Run(target_path, 35 DownloadItem::TARGET_DISPOSITION_OVERWRITE, 36 DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS, 37 target_path); 38 } 39 40 bool DownloadItemImplDelegate::ShouldCompleteDownload( 41 DownloadItemImpl* download, 42 const base::Closure& complete_callback) { 43 return true; 44 } 45 46 bool DownloadItemImplDelegate::ShouldOpenDownload( 47 DownloadItemImpl* download, const ShouldOpenDownloadCallback& callback) { 48 return false; 49 } 50 51 bool DownloadItemImplDelegate::ShouldOpenFileBasedOnExtension( 52 const base::FilePath& path) { 53 return false; 54 } 55 56 void DownloadItemImplDelegate::CheckForFileRemoval( 57 DownloadItemImpl* download_item) {} 58 59 void DownloadItemImplDelegate::ResumeInterruptedDownload( 60 scoped_ptr<DownloadUrlParameters> params, uint32 id) {} 61 62 BrowserContext* DownloadItemImplDelegate::GetBrowserContext() const { 63 return NULL; 64 } 65 66 void DownloadItemImplDelegate::UpdatePersistence(DownloadItemImpl* download) {} 67 68 void DownloadItemImplDelegate::OpenDownload(DownloadItemImpl* download) {} 69 70 void DownloadItemImplDelegate::ShowDownloadInShell(DownloadItemImpl* download) { 71 } 72 73 void DownloadItemImplDelegate::DownloadRemoved(DownloadItemImpl* download) {} 74 75 void DownloadItemImplDelegate::AssertStateConsistent( 76 DownloadItemImpl* download) const {} 77 78 } // namespace content 79