summaryrefslogtreecommitdiffstats
path: root/content/browser/download
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-06 14:55:57 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-06 14:55:57 +0000
commitb441a849460cc2fca0ce9a18fe8e255cadc0656c (patch)
tree83610aa4039deac864b88cbc1c3df02b92e004f0 /content/browser/download
parent7a2dbfbf3cfea03bca0cfa79c639e0683dc11569 (diff)
downloadchromium_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.cc29
-rw-r--r--content/browser/download/download_manager_impl.h4
-rw-r--r--content/browser/download/download_manager_impl_unittest.cc16
-rw-r--r--content/browser/download/download_request_handle.cc3
-rw-r--r--content/browser/download/drag_download_file.cc4
-rw-r--r--content/browser/download/save_package.cc4
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);