diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-30 17:22:49 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-30 17:22:49 +0000 |
commit | f859eba5c449a4599851c3de396326e3360abd13 (patch) | |
tree | fc5e916fd8954971c8260bff0d9fa7cd07f3aab6 /content | |
parent | 4da414195b83c07d4a2228d7d8bd4a8c0d496478 (diff) | |
download | chromium_src-f859eba5c449a4599851c3de396326e3360abd13.zip chromium_src-f859eba5c449a4599851c3de396326e3360abd13.tar.gz chromium_src-f859eba5c449a4599851c3de396326e3360abd13.tar.bz2 |
Switch DownloadUrlParameters to use a content::Referrer instead of a GURL for the referrer
BUG=124750
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10441090
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139562 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
4 files changed, 10 insertions, 7 deletions
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc index 0303c3b..aae7f8a 100644 --- a/content/browser/download/download_manager_impl.cc +++ b/content/browser/download/download_manager_impl.cc @@ -37,6 +37,7 @@ #include "content/public/browser/web_contents_delegate.h" #include "net/base/load_flags.h" #include "net/base/upload_data.h" +#include "webkit/glue/webkit_glue.h" using content::BrowserThread; using content::DownloadId; @@ -57,7 +58,9 @@ void BeginDownload(content::DownloadUrlParameters* params) { params->resource_dispatcher_host()); scoped_ptr<net::URLRequest> request(new net::URLRequest( params->url(), resource_dispatcher_host)); - request->set_referrer(params->referrer().spec()); + request->set_referrer(params->referrer().url.spec()); + webkit_glue::ConfigureURLRequestForReferrerPolicy( + request.get(), params->referrer().policy); request->set_load_flags(request->load_flags() | params->load_flags()); request->set_method(params->method()); if (!params->post_body().empty()) diff --git a/content/browser/download/drag_download_file.cc b/content/browser/download/drag_download_file.cc index 077bb78..cbb4cab 100644 --- a/content/browser/download/drag_download_file.cc +++ b/content/browser/download/drag_download_file.cc @@ -139,7 +139,7 @@ void DragDownloadFile::InitiateDownload() { download_stats::INITIATED_BY_DRAG_N_DROP); scoped_ptr<DownloadUrlParameters> params( DownloadUrlParameters::FromWebContents(web_contents_, url_, save_info)); - params->set_referrer(referrer_.url); + params->set_referrer(referrer_); params->set_referrer_encoding(referrer_encoding_); 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 9ba0f4f..6512414 100644 --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc @@ -3049,8 +3049,7 @@ void WebContentsImpl::SaveURL(const GURL& url, save_info.prompt_for_save_location = true; scoped_ptr<DownloadUrlParameters> params( DownloadUrlParameters::FromWebContents(this, url, save_info)); - // TODO(jochen): Pass in the referrer policy as well. - params->set_referrer(referrer.url); + params->set_referrer(referrer); params->set_post_id(post_id); params->set_prefer_cache(true); if (post_id >= 0) diff --git a/content/public/browser/download_url_parameters.h b/content/public/browser/download_url_parameters.h index ba36cfa..f43aa94 100644 --- a/content/public/browser/download_url_parameters.h +++ b/content/public/browser/download_url_parameters.h @@ -13,6 +13,7 @@ #include "base/callback.h" #include "content/public/browser/download_id.h" #include "content/public/browser/download_save_info.h" +#include "content/public/common/referrer.h" #include "googleurl/src/gurl.h" #include "net/base/net_errors.h" @@ -64,7 +65,7 @@ class CONTENT_EXPORT DownloadUrlParameters { void add_request_header(const std::string& name, const std::string& value) { request_headers_.push_back(make_pair(name, value)); } - void set_referrer(const GURL& referrer) { referrer_ = referrer; } + void set_referrer(const Referrer& referrer) { referrer_ = referrer; } void set_referrer_encoding(const std::string& referrer_encoding) { referrer_encoding_ = referrer_encoding; } @@ -90,7 +91,7 @@ class CONTENT_EXPORT DownloadUrlParameters { const std::string& post_body() const { return post_body_; } int64 post_id() const { return post_id_; } bool prefer_cache() const { return prefer_cache_; } - const GURL& referrer() const { return referrer_; } + const Referrer& referrer() const { return referrer_; } const std::string& referrer_encoding() const { return referrer_encoding_; } int render_process_host_id() const { return render_process_host_id_; } int render_view_host_routing_id() const { @@ -120,7 +121,7 @@ class CONTENT_EXPORT DownloadUrlParameters { std::string post_body_; int64 post_id_; bool prefer_cache_; - GURL referrer_; + Referrer referrer_; std::string referrer_encoding_; int render_process_host_id_; int render_view_host_routing_id_; |