summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorrdsmith@chromium.org <rdsmith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-06 21:18:12 +0000
committerrdsmith@chromium.org <rdsmith@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-06 21:18:12 +0000
commit49d812e82f892a7d93e43a667dc2cb40164bc21e (patch)
tree01a6094be3e3957fe7524cdc9776f93565f0b14d /content
parentddf4216c55613f11562632bf91a10b665d9caecb (diff)
downloadchromium_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.cc11
-rw-r--r--content/browser/download/drag_download_file.cc11
-rw-r--r--content/browser/web_contents/web_contents_impl.cc5
-rw-r--r--content/public/browser/download_url_parameters.cc14
-rw-r--r--content/public/browser/download_url_parameters.h36
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);