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 10namespace content { 11 12// Infrastructure in DownloadItemImplDelegate to assert invariant that 13// delegate always outlives all attached DownloadItemImpls. 14DownloadItemImplDelegate::DownloadItemImplDelegate() 15 : count_(0) {} 16 17DownloadItemImplDelegate::~DownloadItemImplDelegate() { 18 DCHECK_EQ(0, count_); 19} 20 21void DownloadItemImplDelegate::Attach() { 22 ++count_; 23} 24 25void DownloadItemImplDelegate::Detach() { 26 DCHECK_LT(0, count_); 27 --count_; 28} 29 30void 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 40bool DownloadItemImplDelegate::ShouldCompleteDownload( 41 DownloadItemImpl* download, 42 const base::Closure& complete_callback) { 43 return true; 44} 45 46bool DownloadItemImplDelegate::ShouldOpenDownload( 47 DownloadItemImpl* download, const ShouldOpenDownloadCallback& callback) { 48 return false; 49} 50 51bool DownloadItemImplDelegate::ShouldOpenFileBasedOnExtension( 52 const base::FilePath& path) { 53 return false; 54} 55 56void DownloadItemImplDelegate::CheckForFileRemoval( 57 DownloadItemImpl* download_item) {} 58 59void DownloadItemImplDelegate::ResumeInterruptedDownload( 60 scoped_ptr<DownloadUrlParameters> params, uint32 id) {} 61 62BrowserContext* DownloadItemImplDelegate::GetBrowserContext() const { 63 return NULL; 64} 65 66void DownloadItemImplDelegate::UpdatePersistence(DownloadItemImpl* download) {} 67 68void DownloadItemImplDelegate::OpenDownload(DownloadItemImpl* download) {} 69 70void DownloadItemImplDelegate::ShowDownloadInShell(DownloadItemImpl* download) { 71} 72 73void DownloadItemImplDelegate::DownloadRemoved(DownloadItemImpl* download) {} 74 75void DownloadItemImplDelegate::AssertStateConsistent( 76 DownloadItemImpl* download) const {} 77 78} // namespace content 79