aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/document_loader.rs
diff options
context:
space:
mode:
authorYing-Ruei Liang(KK) <thumbd03803@gmail.com>2016-07-12 01:25:50 +0800
committerYing-Ruei Liang(KK) <thumbd03803@gmail.com>2016-09-20 21:17:37 +0800
commit55a2270e16868addccf62854f9eeafdb7e3016f1 (patch)
tree61971bdca94f41c8ac35e13bbec8340bc784e221 /components/script/document_loader.rs
parent53938c439f3a0c2b3c3d734346ca291e1eb703a5 (diff)
downloadservo-55a2270e16868addccf62854f9eeafdb7e3016f1.tar.gz
servo-55a2270e16868addccf62854f9eeafdb7e3016f1.zip
Bring referrer policy delivery to <a> and <link> via rel attribute
Diffstat (limited to 'components/script/document_loader.rs')
-rw-r--r--components/script/document_loader.rs12
1 files changed, 7 insertions, 5 deletions
diff --git a/components/script/document_loader.rs b/components/script/document_loader.rs
index 04e266994c2..0fc1e5e06c5 100644
--- a/components/script/document_loader.rs
+++ b/components/script/document_loader.rs
@@ -7,7 +7,7 @@
use dom::bindings::js::JS;
use dom::document::Document;
-use msg::constellation_msg::PipelineId;
+use msg::constellation_msg::{PipelineId, ReferrerPolicy};
use net_traits::{PendingAsyncLoad, AsyncResponseTarget, LoadContext};
use net_traits::{ResourceThreads, IpcSend};
use std::thread;
@@ -125,7 +125,8 @@ impl DocumentLoader {
/// the future.
pub fn prepare_async_load(&mut self,
load: LoadType,
- referrer: &Document) -> PendingAsyncLoad {
+ referrer: &Document,
+ referrer_policy: Option<ReferrerPolicy>) -> PendingAsyncLoad {
let context = load.to_load_context();
let url = load.url().clone();
self.add_blocking_load(load);
@@ -133,7 +134,7 @@ impl DocumentLoader {
self.resource_threads.sender(),
url,
self.pipeline,
- referrer.get_referrer_policy(),
+ referrer_policy.or(referrer.get_referrer_policy()),
Some(referrer.url().clone()))
}
@@ -141,8 +142,9 @@ impl DocumentLoader {
pub fn load_async(&mut self,
load: LoadType,
listener: AsyncResponseTarget,
- referrer: &Document) {
- let pending = self.prepare_async_load(load, referrer);
+ referrer: &Document,
+ referrer_policy: Option<ReferrerPolicy>) {
+ let pending = self.prepare_async_load(load, referrer, referrer_policy);
pending.load_async(listener)
}