aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorNaveen Gattu <naveen.gattu@gmail.com>2021-12-17 10:09:22 -0800
committerNaveen Gattu <naveen.gattu@gmail.com>2021-12-17 11:25:59 -0800
commita744ac26dae5c6de52569da1af3875943f7f98af (patch)
tree3dcea93a3265c9e4b482a50611afb2134e404e10 /components/script/dom
parent8650794391729c6fee34bc2644ccbb85bd8fd58d (diff)
downloadservo-a744ac26dae5c6de52569da1af3875943f7f98af.tar.gz
servo-a744ac26dae5c6de52569da1af3875943f7f98af.zip
concept-response-clone: Ensure header guard is cloned after headers
https://fetch.spec.whatwg.org/#concept-response-clone If the header guard of the response to clone is `immutable`, then copying the headers to the new response will fail with `Guard is immutable` unless we ensure the guard is copied _after_ the headers. https://github.com/servo/servo/blob/8650794391729c6fee34bc2644ccbb85bd8fd58d/components/script/dom/response.rs#L331-L334 fn Append(&self, name: ByteString, value: ByteString) -> ErrorResult { // Step 1 let value = normalize_value(value); // Step 2 let (mut valid_name, valid_value) = validate_name_and_value(name, value)?; valid_name = valid_name.to_lowercase(); // Step 3 if self.guard.get() == Guard::Immutable { return Err(Error::Type("Guard is immutable".to_string())); }
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/response.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/components/script/dom/response.rs b/components/script/dom/response.rs
index 432fcbeb3e4..85d20a62d06 100644
--- a/components/script/dom/response.rs
+++ b/components/script/dom/response.rs
@@ -330,8 +330,8 @@ impl ResponseMethods for Response {
// Step 2
let new_response = Response::new(&self.global());
- new_response.Headers().set_guard(self.Headers().get_guard());
new_response.Headers().copy_from_headers(self.Headers())?;
+ new_response.Headers().set_guard(self.Headers().get_guard());
// https://fetch.spec.whatwg.org/#concept-response-clone
// Instead of storing a net_traits::Response internally, we