servo: Merge #14865 - Implement Subresource Integrity (from mrnayak:sri-fetch); r=jdm
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 1) Wait for response body 2) If the response does not have a termination reason and response does not match request’s integrity metadata, set response and internalResponse to a network error. Dependency updated: html5ever-atoms from 0.1.2 to 0.1.3. This will not completely fix #14523, It will implement changes related to response validation. Request validation algorithm implementation needs CSP. I did not update any WPT-Test. In my local system, I found some assertion issue dependent on the order of execution of test-case. It would be helpful if someone could do "try" build on these changes to get wpt results. r? @jdm <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors <!-- Either: --> - [X] There are tests for these changes <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: f958dafcaeed643f1232a23f5c2d4f6ba141bfea
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user