aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/request.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2017-04-01 00:31:00 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2017-04-03 12:39:07 +0200
commitcb2eb81208ba06b9c051807c50126e3efbbb245a (patch)
treeb1fe3e20b9eabe464b12f5383cd0068331165f40 /components/script/dom/request.rs
parentf42a63baea0f2897db937faddbbebb6bddf63264 (diff)
downloadservo-cb2eb81208ba06b9c051807c50126e3efbbb245a.tar.gz
servo-cb2eb81208ba06b9c051807c50126e3efbbb245a.zip
Remove all internal mutability from Request
Diffstat (limited to 'components/script/dom/request.rs')
-rw-r--r--components/script/dom/request.rs80
1 files changed, 36 insertions, 44 deletions
diff --git a/components/script/dom/request.rs b/components/script/dom/request.rs
index a6ba6700533..acbd5758bed 100644
--- a/components/script/dom/request.rs
+++ b/components/script/dom/request.rs
@@ -158,9 +158,9 @@ impl Request {
request.method = temporary_request.method;
request.headers = temporary_request.headers.clone();
request.unsafe_request = true;
- request.window.set(window);
+ request.window = window;
// TODO: `entry settings object` is not implemented in Servo yet.
- *request.origin.borrow_mut() = Origin::Client;
+ request.origin = Origin::Client;
request.omit_origin_header = temporary_request.omit_origin_header;
request.referrer = temporary_request.referrer;
request.referrer_policy = temporary_request.referrer_policy;
@@ -187,11 +187,11 @@ impl Request {
request.mode = NetTraitsRequestMode::SameOrigin;
}
// Step 13.2
- request.omit_origin_header.set(false);
+ request.omit_origin_header = false;
// Step 13.3
- *request.referrer.borrow_mut() = NetTraitsRequestReferrer::Client;
+ request.referrer = NetTraitsRequestReferrer::Client;
// Step 13.4
- request.referrer_policy.set(None);
+ request.referrer_policy = None;
}
// Step 14
@@ -200,7 +200,7 @@ impl Request {
let ref referrer = init_referrer.0;
// Step 14.2
if referrer.is_empty() {
- *request.referrer.borrow_mut() = NetTraitsRequestReferrer::NoReferrer;
+ request.referrer = NetTraitsRequestReferrer::NoReferrer;
} else {
// Step 14.3
let parsed_referrer = base_url.join(referrer);
@@ -215,10 +215,10 @@ impl Request {
parsed_referrer.scheme() == "about" &&
parsed_referrer.path() == "client") ||
parsed_referrer.origin() != origin {
- *request.referrer.borrow_mut() = NetTraitsRequestReferrer::Client;
+ request.referrer = NetTraitsRequestReferrer::Client;
} else {
// Step 14.6
- *request.referrer.borrow_mut() = NetTraitsRequestReferrer::ReferrerUrl(parsed_referrer);
+ request.referrer = NetTraitsRequestReferrer::ReferrerUrl(parsed_referrer);
}
}
}
@@ -227,7 +227,7 @@ impl Request {
// Step 15
if let Some(init_referrerpolicy) = init.referrerPolicy.as_ref() {
let init_referrer_policy = init_referrerpolicy.clone().into();
- request.referrer_policy.set(Some(init_referrer_policy));
+ request.referrer_policy = Some(init_referrer_policy);
}
// Step 16
@@ -254,11 +254,11 @@ impl Request {
// Step 21
if let Some(init_cache) = init.cache.as_ref() {
let cache = init_cache.clone().into();
- request.cache_mode.set(cache);
+ request.cache_mode = cache;
}
// Step 22
- if request.cache_mode.get() == NetTraitsRequestCache::OnlyIfCached {
+ if request.cache_mode == NetTraitsRequestCache::OnlyIfCached {
if request.mode != NetTraitsRequestMode::SameOrigin {
return Err(Error::Type(
"Cache is 'only-if-cached' and mode is not 'same-origin'".to_string()));
@@ -268,13 +268,13 @@ impl Request {
// Step 23
if let Some(init_redirect) = init.redirect.as_ref() {
let redirect = init_redirect.clone().into();
- request.redirect_mode.set(redirect);
+ request.redirect_mode = redirect;
}
// Step 24
if let Some(init_integrity) = init.integrity.as_ref() {
let integrity = init_integrity.clone().to_string();
- *request.integrity_metadata.borrow_mut() = integrity;
+ request.integrity_metadata = integrity;
}
// Step 25
@@ -292,7 +292,7 @@ impl Request {
None => return Err(Error::Type("Method is not a valid UTF8".to_string())),
};
// Step 25.3
- *request.method.borrow_mut() = method;
+ request.method = method;
}
// Step 26
@@ -334,12 +334,12 @@ impl Request {
if r.request.borrow().mode == NetTraitsRequestMode::NoCors {
let borrowed_request = r.request.borrow();
// Step 30.1
- if !is_cors_safelisted_method(&borrowed_request.method.borrow()) {
+ if !is_cors_safelisted_method(&borrowed_request.method) {
return Err(Error::Type(
"The mode is 'no-cors' but the method is not a cors-safelisted method".to_string()));
}
// Step 30.2
- if !borrowed_request.integrity_metadata.borrow().is_empty() {
+ if !borrowed_request.integrity_metadata.is_empty() {
return Err(Error::Type("Integrity metadata is not an empty string".to_string()));
}
// Step 30.3
@@ -364,8 +364,7 @@ impl Request {
// Step 32
let mut input_body = if let RequestInfo::Request(ref input_request) = input {
let input_request_request = input_request.request.borrow();
- let body = input_request_request.body.borrow();
- body.clone()
+ input_request_request.body.clone()
} else {
None
};
@@ -374,11 +373,11 @@ impl Request {
if let Some(init_body_option) = init.body.as_ref() {
if init_body_option.is_some() || input_body.is_some() {
let req = r.request.borrow();
- let req_method = req.method.borrow();
- match &*req_method {
- &HttpMethod::Get => return Err(Error::Type(
+ let req_method = &req.method;
+ match *req_method {
+ HttpMethod::Get => return Err(Error::Type(
"Init's body is non-null, and request method is GET".to_string())),
- &HttpMethod::Head => return Err(Error::Type(
+ HttpMethod::Head => return Err(Error::Type(
"Init's body is non-null, and request method is HEAD".to_string())),
_ => {},
}
@@ -402,10 +401,7 @@ impl Request {
}
// Step 35
- {
- let borrowed_request = r.request.borrow();
- *borrowed_request.body.borrow_mut() = input_body;
- }
+ r.request.borrow_mut().body = input_body;
// Step 36
let extracted_mime_type = r.Headers().extract_mime_type();
@@ -445,10 +441,10 @@ impl Request {
let mime_type = r.mime_type.borrow().clone();
let headers_guard = r.Headers().get_guard();
let r_clone = Request::new(&r.global(), url, is_service_worker_global_scope);
- r_clone.request.borrow_mut().pipeline_id.set(req.pipeline_id.get());
+ r_clone.request.borrow_mut().pipeline_id = req.pipeline_id;
{
let mut borrowed_r_request = r_clone.request.borrow_mut();
- *borrowed_r_request.origin.borrow_mut() = req.origin.borrow().clone();
+ borrowed_r_request.origin = req.origin.clone();
}
*r_clone.request.borrow_mut() = req.clone();
r_clone.body_used.set(body_used);
@@ -540,15 +536,13 @@ impl RequestMethods for Request {
// https://fetch.spec.whatwg.org/#dom-request-method
fn Method(&self) -> ByteString {
let r = self.request.borrow();
- let m = r.method.borrow();
- ByteString::new(m.as_ref().as_bytes().into())
+ ByteString::new(r.method.as_ref().as_bytes().into())
}
// https://fetch.spec.whatwg.org/#dom-request-url
fn Url(&self) -> USVString {
let r = self.request.borrow();
- let url = r.url_list.borrow();
- USVString(url.get(0).map_or("", |u| u.as_str()).into())
+ USVString(r.url_list.get(0).map_or("", |u| u.as_str()).into())
}
// https://fetch.spec.whatwg.org/#dom-request-headers
@@ -569,11 +563,10 @@ impl RequestMethods for Request {
// https://fetch.spec.whatwg.org/#dom-request-referrer
fn Referrer(&self) -> USVString {
let r = self.request.borrow();
- let referrer = r.referrer.borrow();
- USVString(match &*referrer {
- &NetTraitsRequestReferrer::NoReferrer => String::from("no-referrer"),
- &NetTraitsRequestReferrer::Client => String::from("about:client"),
- &NetTraitsRequestReferrer::ReferrerUrl(ref u) => {
+ USVString(match r.referrer {
+ NetTraitsRequestReferrer::NoReferrer => String::from("no-referrer"),
+ NetTraitsRequestReferrer::Client => String::from("about:client"),
+ NetTraitsRequestReferrer::ReferrerUrl(ref u) => {
let u_c = u.clone();
u_c.into_string()
}
@@ -582,7 +575,7 @@ impl RequestMethods for Request {
// https://fetch.spec.whatwg.org/#dom-request-referrerpolicy
fn ReferrerPolicy(&self) -> ReferrerPolicy {
- self.request.borrow().referrer_policy.get().map(|m| m.into()).unwrap_or(ReferrerPolicy::_empty)
+ self.request.borrow().referrer_policy.map(|m| m.into()).unwrap_or(ReferrerPolicy::_empty)
}
// https://fetch.spec.whatwg.org/#dom-request-mode
@@ -599,20 +592,19 @@ impl RequestMethods for Request {
// https://fetch.spec.whatwg.org/#dom-request-cache
fn Cache(&self) -> RequestCache {
let r = self.request.borrow().clone();
- r.cache_mode.get().into()
+ r.cache_mode.into()
}
// https://fetch.spec.whatwg.org/#dom-request-redirect
fn Redirect(&self) -> RequestRedirect {
let r = self.request.borrow().clone();
- r.redirect_mode.get().into()
+ r.redirect_mode.into()
}
// https://fetch.spec.whatwg.org/#dom-request-integrity
fn Integrity(&self) -> DOMString {
let r = self.request.borrow();
- let integrity = r.integrity_metadata.borrow();
- DOMString::from_string(integrity.clone())
+ DOMString::from_string(r.integrity_metadata.clone())
}
// https://fetch.spec.whatwg.org/#dom-body-bodyused
@@ -675,8 +667,8 @@ impl BodyOperations for Request {
}
fn take_body(&self) -> Option<Vec<u8>> {
- let request = self.request.borrow_mut();
- let body = request.body.borrow_mut().take();
+ let mut request = self.request.borrow_mut();
+ let body = request.body.take();
Some(body.unwrap_or(vec![]))
}