aboutsummaryrefslogtreecommitdiffstats
path: root/components/net_traits/request.rs
diff options
context:
space:
mode:
authorCYBAI <cyb.ai.815@gmail.com>2019-05-10 00:30:45 +0900
committerCYBAI <cyb.ai.815@gmail.com>2019-05-11 12:10:28 +0900
commit261c8d9e0c4ec1ccd8d945b8ec133ac7b308978c (patch)
tree32cc6ce0d0d2a4b223943e61deed87070c924caf /components/net_traits/request.rs
parentffdcd3aa7a23ef300118677a4bb90d6c9747f7b3 (diff)
downloadservo-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.rs19
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,
}