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
76 lines
1.9 KiB
Rust
76 lines
1.9 KiB
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#![feature(box_syntax)]
|
|
#![feature(mpsc_select)]
|
|
#![feature(plugin)]
|
|
#![plugin(plugins)]
|
|
|
|
#![deny(unsafe_code)]
|
|
|
|
#[macro_use]
|
|
extern crate bitflags;
|
|
extern crate brotli;
|
|
extern crate content_blocker as content_blocker_parser;
|
|
extern crate cookie as cookie_rs;
|
|
extern crate devtools_traits;
|
|
extern crate flate2;
|
|
extern crate hyper;
|
|
extern crate hyper_serde;
|
|
extern crate immeta;
|
|
extern crate ipc_channel;
|
|
#[macro_use] extern crate lazy_static;
|
|
#[macro_use] extern crate log;
|
|
#[macro_use] #[no_link] extern crate matches;
|
|
#[macro_use]
|
|
extern crate mime;
|
|
extern crate mime_guess;
|
|
extern crate msg;
|
|
extern crate net_traits;
|
|
extern crate openssl;
|
|
extern crate openssl_verify;
|
|
extern crate profile_traits;
|
|
extern crate rustc_serialize;
|
|
#[macro_use]
|
|
extern crate serde_derive;
|
|
extern crate servo_config;
|
|
extern crate servo_url;
|
|
extern crate threadpool;
|
|
extern crate time;
|
|
#[cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))]
|
|
extern crate tinyfiledialogs;
|
|
extern crate unicase;
|
|
extern crate url;
|
|
extern crate uuid;
|
|
extern crate webrender_traits;
|
|
extern crate websocket;
|
|
|
|
mod blob_loader;
|
|
mod chrome_loader;
|
|
mod connector;
|
|
mod content_blocker;
|
|
pub mod cookie;
|
|
pub mod cookie_storage;
|
|
mod data_loader;
|
|
pub mod filemanager_thread;
|
|
pub mod hsts;
|
|
mod http_loader;
|
|
pub mod image_cache_thread;
|
|
pub mod mime_classifier;
|
|
pub mod resource_thread;
|
|
mod storage_thread;
|
|
pub mod subresource_integrity;
|
|
mod websocket_loader;
|
|
/// An implementation of the [Fetch specification](https://fetch.spec.whatwg.org/)
|
|
pub mod fetch {
|
|
pub mod cors_cache;
|
|
pub mod methods;
|
|
}
|
|
|
|
/// A module for re-exports of items used in unit tests.
|
|
pub mod test {
|
|
pub use chrome_loader::resolve_chrome_url;
|
|
pub use http_loader::HttpState;
|
|
}
|