aboutsummaryrefslogtreecommitdiffstats
path: root/components/net_traits/request.rs
diff options
context:
space:
mode:
authormrnayak <rmuddur@gmail.com>2017-01-08 08:52:18 +0530
committermrnayak <rmuddur@gmail.com>2017-01-08 08:52:18 +0530
commita3026499f43860c0d02170534bee20f8f5cc7faa (patch)
treeed575e0f6388fc082ca505dc094675e6ae707279 /components/net_traits/request.rs
parent496447a363ca4fc5d6789241ccb0b94134917b9a (diff)
downloadservo-a3026499f43860c0d02170534bee20f8f5cc7faa.tar.gz
servo-a3026499f43860c0d02170534bee20f8f5cc7faa.zip
Implement Subresource Integrity
Implemented response validation part of https://w3c.github.io/webappsec-subresource-integrity/. Implemented step eighteen of the main fetch. If a request has integrity metadata, then following steps are performed *Wait for response body *If the response does not have a termination reason and response does not match request’s integrity metadata, set response to a network error.# Please enter the commit message for your changes. Lines starting
Diffstat (limited to 'components/net_traits/request.rs')
-rw-r--r--components/net_traits/request.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/components/net_traits/request.rs b/components/net_traits/request.rs
index d082f20b422..13a0ece3c0b 100644
--- a/components/net_traits/request.rs
+++ b/components/net_traits/request.rs
@@ -158,6 +158,7 @@ pub struct RequestInit {
pub referrer_policy: Option<ReferrerPolicy>,
pub pipeline_id: Option<PipelineId>,
pub redirect_mode: RedirectMode,
+ pub integrity_metadata: String,
}
impl Default for RequestInit {
@@ -181,6 +182,7 @@ impl Default for RequestInit {
referrer_policy: None,
pipeline_id: None,
redirect_mode: RedirectMode::Follow,
+ integrity_metadata: "".to_owned(),
}
}
}
@@ -291,6 +293,7 @@ impl Request {
req.referrer_policy.set(init.referrer_policy);
req.pipeline_id.set(init.pipeline_id);
req.redirect_mode.set(init.redirect_mode);
+ *req.integrity_metadata.borrow_mut() = init.integrity_metadata;
req
}