diff options
author | rdsmith@chromium.org <rdsmith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-06 21:18:12 +0000 |
---|---|---|
committer | rdsmith@chromium.org <rdsmith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-06 21:18:12 +0000 |
commit | 49d812e82f892a7d93e43a667dc2cb40164bc21e (patch) | |
tree | 01a6094be3e3957fe7524cdc9776f93565f0b14d /content | |
parent | ddf4216c55613f11562632bf91a10b665d9caecb (diff) | |
download | chromium_src-49d812e82f892a7d93e43a667dc2cb40164bc21e.zip chromium_src-49d812e82f892a7d93e43a667dc2cb40164bc21e.tar.gz chromium_src-49d812e82f892a7d93e43a667dc2cb40164bc21e.tar.bz2 |
Merge most instances of DownloadSaveInfo into DownloadUrlParams.
This simplifies the programmatic interface for downloads.
R=benjhayden@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11338045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166269 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r-- | content/browser/download/download_manager_impl.cc | 11 | ||||
-rw-r--r-- | content/browser/download/drag_download_file.cc | 11 | ||||
-rw-r--r-- | content/browser/web_contents/web_contents_impl.cc | 5 | ||||
-rw-r--r-- | content/public/browser/download_url_parameters.cc | 14 | ||||
-rw-r--r-- | content/public/browser/download_url_parameters.h | 36 |
5 files changed, 47 insertions, 30 deletions
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc index 0531244..327cc52 100644 --- a/content/browser/download/download_manager_impl.cc +++ b/content/browser/download/download_manager_impl.cc @@ -82,6 +82,15 @@ void BeginDownload(scoped_ptr<DownloadUrlParameters> params) { request->SetExtraRequestHeaderByName( iter->first, iter->second, false/*overwrite*/); } + + scoped_ptr<DownloadSaveInfo> save_info(new DownloadSaveInfo()); + save_info->file_path = params->file_path(); + save_info->suggested_name = params->suggested_name(); + save_info->offset = params->offset(); + save_info->hash_state = params->hash_state(); + save_info->prompt_for_save_location = params->prompt(); + save_info->file_stream = params->GetFileStream(); + params->resource_dispatcher_host()->BeginDownload( request.Pass(), params->content_initiated(), @@ -89,7 +98,7 @@ void BeginDownload(scoped_ptr<DownloadUrlParameters> params) { params->render_process_host_id(), params->render_view_host_routing_id(), params->prefer_cache(), - params->GetSaveInfo(), + save_info.Pass(), params->callback()); } diff --git a/content/browser/download/drag_download_file.cc b/content/browser/download/drag_download_file.cc index ffedcba..aa8d920 100644 --- a/content/browser/download/drag_download_file.cc +++ b/content/browser/download/drag_download_file.cc @@ -60,18 +60,15 @@ class DragDownloadFile::DragDownloadFileUI : public DownloadItem::Observer { DownloadManager* download_manager = BrowserContext::GetDownloadManager(web_contents_->GetBrowserContext()); - scoped_ptr<DownloadSaveInfo> save_info(new DownloadSaveInfo()); - save_info->file_path = file_path; - save_info->file_stream.reset(file_stream.release()); - RecordDownloadSource(INITIATED_BY_DRAG_N_DROP); - scoped_ptr<DownloadUrlParameters> params( - DownloadUrlParameters::FromWebContents( - web_contents_, url_, save_info.Pass())); + scoped_ptr<content::DownloadUrlParameters> params( + DownloadUrlParameters::FromWebContents(web_contents_, url_)); params->set_referrer(referrer_); params->set_referrer_encoding(referrer_encoding_); params->set_callback(base::Bind(&DragDownloadFileUI::OnDownloadStarted, weak_ptr_factory_.GetWeakPtr())); + params->set_file_path(file_path); + params->set_file_stream(file_stream.Pass()); // Nulls file_stream. download_manager->DownloadUrl(params.Pass()); } diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc index c4bb81b..693c08b 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -3304,15 +3304,14 @@ void WebContentsImpl::SaveURL(const GURL& url, if (entry) post_id = entry->GetPostID(); } - scoped_ptr<DownloadSaveInfo> save_info(new DownloadSaveInfo()); - save_info->prompt_for_save_location = true; scoped_ptr<DownloadUrlParameters> params( - DownloadUrlParameters::FromWebContents(this, url, save_info.Pass())); + DownloadUrlParameters::FromWebContents(this, url)); params->set_referrer(referrer); params->set_post_id(post_id); params->set_prefer_cache(true); if (post_id >= 0) params->set_method("POST"); + params->set_prompt(true); dlm->DownloadUrl(params.Pass()); } diff --git a/content/public/browser/download_url_parameters.cc b/content/public/browser/download_url_parameters.cc index 435365b..7ec8508 100644 --- a/content/public/browser/download_url_parameters.cc +++ b/content/public/browser/download_url_parameters.cc @@ -19,8 +19,7 @@ DownloadUrlParameters::DownloadUrlParameters( const GURL& url, int render_process_host_id, int render_view_host_routing_id, - ResourceContext* resource_context, - scoped_ptr<DownloadSaveInfo> save_info) + ResourceContext* resource_context) : content_initiated_(false), load_flags_(0), method_("GET"), @@ -30,7 +29,6 @@ DownloadUrlParameters::DownloadUrlParameters( render_view_host_routing_id_(render_view_host_routing_id), resource_context_(resource_context), resource_dispatcher_host_(ResourceDispatcherHost::Get()), - save_info_(save_info.Pass()), url_(url) { DCHECK(resource_dispatcher_host_); } @@ -41,18 +39,12 @@ DownloadUrlParameters::~DownloadUrlParameters() { // static DownloadUrlParameters* DownloadUrlParameters::FromWebContents( WebContents* web_contents, - const GURL& url, - scoped_ptr<DownloadSaveInfo> save_info) { + const GURL& url) { return new DownloadUrlParameters( url, web_contents->GetRenderProcessHost()->GetID(), web_contents->GetRenderViewHost()->GetRoutingID(), - web_contents->GetBrowserContext()->GetResourceContext(), - save_info.Pass()); -} - -scoped_ptr<DownloadSaveInfo> DownloadUrlParameters::GetSaveInfo() { - return save_info_.Pass(); + web_contents->GetBrowserContext()->GetResourceContext()); } } // namespace content diff --git a/content/public/browser/download_url_parameters.h b/content/public/browser/download_url_parameters.h index 6cff1c0..f8bfa0a 100644 --- a/content/public/browser/download_url_parameters.h +++ b/content/public/browser/download_url_parameters.h @@ -46,15 +46,13 @@ class CONTENT_EXPORT DownloadUrlParameters { static DownloadUrlParameters* FromWebContents( WebContents* web_contents, - const GURL& url, - scoped_ptr<DownloadSaveInfo> save_info); + const GURL& url); DownloadUrlParameters( const GURL& url, int render_process_host_id, int render_view_host_routing_id, - content::ResourceContext* resource_context, - scoped_ptr<DownloadSaveInfo> save_info); + content::ResourceContext* resource_context); ~DownloadUrlParameters(); @@ -82,9 +80,20 @@ class CONTENT_EXPORT DownloadUrlParameters { void set_callback(const OnStartedCallback& callback) { callback_ = callback; } - - // Note that this nulls the internal copy of the DownloadSaveInfo! - scoped_ptr<DownloadSaveInfo> GetSaveInfo(); + void set_file_path(const FilePath& file_path) { + save_info_.file_path = file_path; + } + void set_suggested_name(const string16& suggested_name) { + save_info_.suggested_name = suggested_name; + } + void set_offset(int64 offset) { save_info_.offset = offset; } + void set_hash_state(std::string hash_state) { + save_info_.hash_state = hash_state; + } + void set_prompt(bool prompt) { save_info_.prompt_for_save_location = prompt; } + void set_file_stream(scoped_ptr<net::FileStream> file_stream) { + save_info_.file_stream = file_stream.Pass(); + } const OnStartedCallback& callback() const { return callback_; } bool content_initiated() const { return content_initiated_; } @@ -111,8 +120,19 @@ class CONTENT_EXPORT DownloadUrlParameters { ResourceDispatcherHost* resource_dispatcher_host() const { return resource_dispatcher_host_; } + const FilePath& file_path() const { return save_info_.file_path; } + const string16& suggested_name() const { return save_info_.suggested_name; } + int64 offset() const { return save_info_.offset; } + const std::string& hash_state() const { return save_info_.hash_state; } + bool prompt() const { return save_info_.prompt_for_save_location; } const GURL& url() const { return url_; } + // Note that this is state changing--the DownloadUrlParameters object + // will not have a file_stream attached to it after this call. + scoped_ptr<net::FileStream> GetFileStream() { + return save_info_.file_stream.Pass(); + } + private: OnStartedCallback callback_; bool content_initiated_; @@ -128,7 +148,7 @@ class CONTENT_EXPORT DownloadUrlParameters { int render_view_host_routing_id_; ResourceContext* resource_context_; ResourceDispatcherHost* resource_dispatcher_host_; - scoped_ptr<DownloadSaveInfo> save_info_; + DownloadSaveInfo save_info_; GURL url_; DISALLOW_COPY_AND_ASSIGN(DownloadUrlParameters); |