diff options
author | mrnayak <rmuddur@gmail.com> | 2017-01-08 08:52:18 +0530 |
---|---|---|
committer | mrnayak <rmuddur@gmail.com> | 2017-01-08 08:52:18 +0530 |
commit | a3026499f43860c0d02170534bee20f8f5cc7faa (patch) | |
tree | ed575e0f6388fc082ca505dc094675e6ae707279 /components/net_traits/request.rs | |
parent | 496447a363ca4fc5d6789241ccb0b94134917b9a (diff) | |
download | servo-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.rs | 3 |
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 } |