summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-30 17:22:49 +0000
committerjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-30 17:22:49 +0000
commitf859eba5c449a4599851c3de396326e3360abd13 (patch)
treefc5e916fd8954971c8260bff0d9fa7cd07f3aab6 /content
parent4da414195b83c07d4a2228d7d8bd4a8c0d496478 (diff)
downloadchromium_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')
-rw-r--r--content/browser/download/download_manager_impl.cc5
-rw-r--r--content/browser/download/drag_download_file.cc2
-rw-r--r--content/browser/web_contents/web_contents_impl.cc3
-rw-r--r--content/public/browser/download_url_parameters.h7
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_;