diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-06 14:55:57 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-06 14:55:57 +0000 |
commit | b441a849460cc2fca0ce9a18fe8e255cadc0656c (patch) | |
tree | 83610aa4039deac864b88cbc1c3df02b92e004f0 /content/browser/download | |
parent | 7a2dbfbf3cfea03bca0cfa79c639e0683dc11569 (diff) | |
download | chromium_src-b441a849460cc2fca0ce9a18fe8e255cadc0656c.zip chromium_src-b441a849460cc2fca0ce9a18fe8e255cadc0656c.tar.gz chromium_src-b441a849460cc2fca0ce9a18fe8e255cadc0656c.tar.bz2 |
Move creation and ownership of DownloadManager from the embedder to content. This matches all the other objects that content depends on.
In a followup change, I'll make content support NULL DownloadManagerDelegates to match the rest of the delegate interfaces.
BUG=98716
Review URL: https://chromiumcodereview.appspot.com/10535026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140761 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/download')
-rw-r--r-- | content/browser/download/download_manager_impl.cc | 29 | ||||
-rw-r--r-- | content/browser/download/download_manager_impl.h | 4 | ||||
-rw-r--r-- | content/browser/download/download_manager_impl_unittest.cc | 16 | ||||
-rw-r--r-- | content/browser/download/download_request_handle.cc | 3 | ||||
-rw-r--r-- | content/browser/download/drag_download_file.cc | 4 | ||||
-rw-r--r-- | content/browser/download/save_package.cc | 4 |
6 files changed, 29 insertions, 31 deletions
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc index 3296daa..45e2c98 100644 --- a/content/browser/download/download_manager_impl.cc +++ b/content/browser/download/download_manager_impl.cc @@ -140,13 +140,6 @@ void EnsureNoPendingDownloadJobsOnIO(bool* result) { namespace content { -// static -DownloadManager* DownloadManager::Create( - content::DownloadManagerDelegate* delegate, - net::NetLog* net_log) { - return new DownloadManagerImpl(delegate, net_log); -} - bool DownloadManager::EnsureNoPendingDownloadsForTesting() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); bool result = true; @@ -159,14 +152,12 @@ bool DownloadManager::EnsureNoPendingDownloadsForTesting() { } // namespace content -DownloadManagerImpl::DownloadManagerImpl( - content::DownloadManagerDelegate* delegate, - net::NetLog* net_log) - : shutdown_needed_(false), - browser_context_(NULL), - file_manager_(NULL), - delegate_(delegate), - net_log_(net_log) { +DownloadManagerImpl::DownloadManagerImpl(net::NetLog* net_log) + : shutdown_needed_(false), + browser_context_(NULL), + file_manager_(NULL), + delegate_(NULL), + net_log_(net_log) { } DownloadManagerImpl::~DownloadManagerImpl() { @@ -185,6 +176,11 @@ bool DownloadManagerImpl::ShouldOpenFileBasedOnExtension(const FilePath& path) { return delegate_->ShouldOpenFileBasedOnExtension(path); } +void DownloadManagerImpl::SetDelegate( + content::DownloadManagerDelegate* delegate) { + delegate_ = delegate; +} + void DownloadManagerImpl::Shutdown() { VLOG(20) << __FUNCTION__ << "()" << " shutdown_needed_ = " << shutdown_needed_; @@ -249,7 +245,8 @@ void DownloadManagerImpl::Shutdown() { DCHECK(save_page_downloads_.empty()); file_manager_ = NULL; - delegate_->Shutdown(); + if (delegate_) + delegate_->Shutdown(); } void DownloadManagerImpl::GetTemporaryDownloads( diff --git a/content/browser/download/download_manager_impl.h b/content/browser/download/download_manager_impl.h index ad1a027..1539d5b 100644 --- a/content/browser/download/download_manager_impl.h +++ b/content/browser/download/download_manager_impl.h @@ -25,10 +25,10 @@ class CONTENT_EXPORT DownloadManagerImpl : public content::DownloadManager, public DownloadItemImpl::Delegate { public: - DownloadManagerImpl(content::DownloadManagerDelegate* delegate, - net::NetLog* net_log); + explicit DownloadManagerImpl(net::NetLog* net_log); // content::DownloadManager functions. + virtual void SetDelegate(content::DownloadManagerDelegate* delegate) OVERRIDE; virtual void Shutdown() OVERRIDE; virtual void GetTemporaryDownloads(const FilePath& dir_path, DownloadVector* result) OVERRIDE; diff --git a/content/browser/download/download_manager_impl_unittest.cc b/content/browser/download/download_manager_impl_unittest.cc index 1be540f..325f914 100644 --- a/content/browser/download/download_manager_impl_unittest.cc +++ b/content/browser/download/download_manager_impl_unittest.cc @@ -104,21 +104,17 @@ DownloadId::Domain kValidIdDomain = "valid DownloadId::Domain"; class TestDownloadManagerDelegate : public content::DownloadManagerDelegate { public: - TestDownloadManagerDelegate() + explicit TestDownloadManagerDelegate(content::DownloadManager* dm) : mark_content_dangerous_(false), prompt_user_for_save_location_(false), should_complete_download_(true), - download_manager_(NULL) { + download_manager_(dm) { } void set_download_directory(const FilePath& path) { download_directory_ = path; } - void set_download_manager(content::DownloadManager* dm) { - download_manager_ = dm; - } - void set_prompt_user_for_save_location(bool value) { prompt_user_for_save_location_ = value; } @@ -262,13 +258,13 @@ class DownloadManagerTest : public testing::Test { DownloadManagerTest() : browser_context(new content::TestBrowserContext()), - download_manager_delegate_(new TestDownloadManagerDelegate()), - download_manager_(new DownloadManagerImpl( - download_manager_delegate_.get(), NULL)), + download_manager_(new DownloadManagerImpl(NULL)), ui_thread_(BrowserThread::UI, &message_loop_), file_thread_(BrowserThread::FILE, &message_loop_) { + download_manager_delegate_.reset( + new TestDownloadManagerDelegate(download_manager_.get())); + download_manager_->SetDelegate(download_manager_delegate_.get()); download_manager_->Init(browser_context.get()); - download_manager_delegate_->set_download_manager(download_manager_); } ~DownloadManagerTest() { diff --git a/content/browser/download/download_request_handle.cc b/content/browser/download/download_request_handle.cc index 31158305..43682e4 100644 --- a/content/browser/download/download_request_handle.cc +++ b/content/browser/download/download_request_handle.cc @@ -11,6 +11,7 @@ #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" +using content::BrowserContext; using content::BrowserThread; using content::DownloadManager; using content::RenderViewHostImpl; @@ -56,7 +57,7 @@ DownloadManager* DownloadRequestHandle::GetDownloadManager() const { content::BrowserContext* context = rph->GetBrowserContext(); if (context == NULL) return NULL; - return context->GetDownloadManager(); + return BrowserContext::GetDownloadManager(context); } void DownloadRequestHandle::PauseRequest() const { diff --git a/content/browser/download/drag_download_file.cc b/content/browser/download/drag_download_file.cc index cbb4cab..38f0df0 100644 --- a/content/browser/download/drag_download_file.cc +++ b/content/browser/download/drag_download_file.cc @@ -16,6 +16,7 @@ #include "content/public/browser/download_url_parameters.h" #include "net/base/file_stream.h" +using content::BrowserContext; using content::BrowserThread; using content::DownloadItem; using content::DownloadManager; @@ -127,7 +128,8 @@ void DragDownloadFile::InitiateDownload() { } #endif - download_manager_ = web_contents_->GetBrowserContext()->GetDownloadManager(); + download_manager_ = BrowserContext::GetDownloadManager( + web_contents_->GetBrowserContext()); download_manager_observer_added_ = true; download_manager_->AddObserver(this); diff --git a/content/browser/download/save_package.cc b/content/browser/download/save_package.cc index a473292..5537747 100644 --- a/content/browser/download/save_package.cc +++ b/content/browser/download/save_package.cc @@ -45,6 +45,7 @@ #include "third_party/WebKit/Source/WebKit/chromium/public/WebPageSerializerClient.h" using base::Time; +using content::BrowserContext; using content::BrowserThread; using content::DownloadItem; using content::NavigationEntry; @@ -263,7 +264,8 @@ void SavePackage::InternalInit() { file_manager_ = rdh->save_file_manager(); DCHECK(file_manager_); - download_manager_ = web_contents()->GetBrowserContext()->GetDownloadManager(); + download_manager_ = BrowserContext::GetDownloadManager( + web_contents()->GetBrowserContext()); DCHECK(download_manager_); download_stats::RecordSavePackageEvent(download_stats::SAVE_PACKAGE_STARTED); |