diff options
author | CYBAI <cyb.ai.815@gmail.com> | 2019-05-10 00:30:45 +0900 |
---|---|---|
committer | CYBAI <cyb.ai.815@gmail.com> | 2019-05-11 12:10:28 +0900 |
commit | 261c8d9e0c4ec1ccd8d945b8ec133ac7b308978c (patch) | |
tree | 32cc6ce0d0d2a4b223943e61deed87070c924caf /components/net_traits/request.rs | |
parent | ffdcd3aa7a23ef300118677a4bb90d6c9747f7b3 (diff) | |
download | servo-261c8d9e0c4ec1ccd8d945b8ec133ac7b308978c.tar.gz servo-261c8d9e0c4ec1ccd8d945b8ec133ac7b308978c.zip |
Introduce parser metadata for request
Diffstat (limited to 'components/net_traits/request.rs')
-rw-r--r-- | components/net_traits/request.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/components/net_traits/request.rs b/components/net_traits/request.rs index d8da3f1f002..18cbb7fa661 100644 --- a/components/net_traits/request.rs +++ b/components/net_traits/request.rs @@ -134,6 +134,14 @@ pub enum CorsSettings { UseCredentials, } +/// [Parser Metadata](https://fetch.spec.whatwg.org/#concept-request-parser-metadata) +#[derive(Clone, Copy, Debug, Deserialize, MallocSizeOf, PartialEq, Serialize)] +pub enum ParserMetadata { + Default, + ParserInserted, + NotParserInserted, +} + #[derive(Clone, Debug, Deserialize, MallocSizeOf, Serialize)] pub struct RequestBuilder { #[serde( @@ -169,6 +177,7 @@ pub struct RequestBuilder { pub integrity_metadata: String, // to keep track of redirects pub url_list: Vec<ServoUrl>, + pub parser_metadata: ParserMetadata, } impl RequestBuilder { @@ -194,6 +203,7 @@ impl RequestBuilder { redirect_mode: RedirectMode::Follow, integrity_metadata: "".to_owned(), url_list: vec![], + parser_metadata: ParserMetadata::Default, } } @@ -295,6 +305,11 @@ impl RequestBuilder { self } + pub fn parser_metadata(mut self, parser_metadata: ParserMetadata) -> RequestBuilder { + self.parser_metadata = parser_metadata; + self + } + pub fn build(self) -> Request { let mut request = Request::new( self.url.clone(), @@ -323,6 +338,7 @@ impl RequestBuilder { request.redirect_count = url_list.len() as u32 - 1; request.url_list = url_list; request.integrity_metadata = self.integrity_metadata; + request.parser_metadata = self.parser_metadata; request } } @@ -388,6 +404,8 @@ pub struct Request { pub redirect_count: u32, /// <https://fetch.spec.whatwg.org/#concept-request-response-tainting> pub response_tainting: ResponseTainting, + /// <https://fetch.spec.whatwg.org/#concept-request-parser-metadata> + pub parser_metadata: ParserMetadata, } impl Request { @@ -417,6 +435,7 @@ impl Request { redirect_mode: RedirectMode::Follow, integrity_metadata: String::new(), url_list: vec![url], + parser_metadata: ParserMetadata::Default, redirect_count: 0, response_tainting: ResponseTainting::Basic, } |