From d03167d9801e6f082107899968a62b5af3be49fd Mon Sep 17 00:00:00 2001 From: Jeena Lee Date: Wed, 12 Oct 2016 12:46:03 -0700 Subject: [PATCH] Fix Request's Headers to be cloned correctly Previously, when `Clone()` was called, Headers of the template Request did not get cloned properly. This commit fixes that issue, and updates the expected wpt results. --- components/script/dom/request.rs | 7 ++++--- .../metadata/fetch/api/request/request-clone.sub.html.ini | 8 -------- 2 files changed, 4 insertions(+), 11 deletions(-) delete mode 100644 tests/wpt/metadata/fetch/api/request/request-clone.sub.html.ini diff --git a/components/script/dom/request.rs b/components/script/dom/request.rs index 4cad8753eeb8..3358fc63ef50 100644 --- a/components/script/dom/request.rs +++ b/components/script/dom/request.rs @@ -420,7 +420,7 @@ impl Request { r } - fn clone_from(r: &Request) -> Root { + fn clone_from(r: &Request) -> Fallible> { let req = r.request.borrow(); let url = req.url(); let is_service_worker_global_scope = req.is_service_worker_global_scope; @@ -436,8 +436,9 @@ impl Request { *r_clone.request.borrow_mut() = req.clone(); r_clone.body_used.set(body_used); *r_clone.mime_type.borrow_mut() = mime_type; + try!(r_clone.Headers().fill(Some(HeadersInit::Headers(r.Headers())))); r_clone.Headers().set_guard(headers_guard); - r_clone + Ok(r_clone) } pub fn get_request(&self) -> NetTraitsRequest { @@ -613,7 +614,7 @@ impl RequestMethods for Request { } // Step 2 - Ok(Request::clone_from(self)) + Request::clone_from(self) } #[allow(unrooted_must_root)] diff --git a/tests/wpt/metadata/fetch/api/request/request-clone.sub.html.ini b/tests/wpt/metadata/fetch/api/request/request-clone.sub.html.ini deleted file mode 100644 index eb2b589fa57a..000000000000 --- a/tests/wpt/metadata/fetch/api/request/request-clone.sub.html.ini +++ /dev/null @@ -1,8 +0,0 @@ -[request-clone.sub.html] - type: testharness - [Check cloning a request] - expected: FAIL - - [Check cloning a request copies the headers] - expected: FAIL -