diff options
author | Shing Lyu <shing.lyu@gmail.com> | 2016-02-03 15:06:13 +0800 |
---|---|---|
committer | Shing Lyu <shing.lyu@gmail.com> | 2016-03-22 13:56:31 +0800 |
commit | f55b0765d17c06bccd7bf411563e3a404de0a56a (patch) | |
tree | 75db1d8e4a5a2f1b04561acb5495f4fe37ee3496 /components/script/dom | |
parent | aa35d7721b0e1e7893e48af1eb91bf8ad2495d46 (diff) | |
download | servo-f55b0765d17c06bccd7bf411563e3a404de0a56a.tar.gz servo-f55b0765d17c06bccd7bf411563e3a404de0a56a.zip |
Bug 8830 - Implemented XMLHttpRequest.responseURL
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/xmlhttprequest.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 65ccb435dbf..8d1456a73ae 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -118,7 +118,7 @@ pub struct XMLHttpRequest { timeout: Cell<u32>, with_credentials: Cell<bool>, upload: JS<XMLHttpRequestUpload>, - response_url: String, + response_url: DOMRefCell<String>, status: Cell<u16>, status_text: DOMRefCell<ByteString>, response: DOMRefCell<ByteString>, @@ -160,7 +160,7 @@ impl XMLHttpRequest { timeout: Cell::new(0u32), with_credentials: Cell::new(false), upload: JS::from_rooted(&XMLHttpRequestUpload::new(global)), - response_url: String::from(""), + response_url: DOMRefCell::new(String::from("")), status: Cell::new(0), status_text: DOMRefCell::new(ByteString::new(vec!())), response: DOMRefCell::new(ByteString::new(vec!())), @@ -691,7 +691,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { // https://xhr.spec.whatwg.org/#the-responseurl-attribute fn ResponseURL(&self) -> USVString { - USVString(self.response_url.clone()) + USVString(self.response_url.borrow().clone()) } // https://xhr.spec.whatwg.org/#the-status-attribute @@ -876,6 +876,8 @@ impl XMLHttpRequest { } } + *self.response_url.borrow_mut() = metadata.final_url.serialize_no_fragment(); + // XXXManishearth Clear cache entries in case of a network error self.process_partial_response(XHRProgress::HeadersReceived(gen_id, metadata.headers, @@ -980,6 +982,7 @@ impl XMLHttpRequest { // Subsubsteps 5-7 self.send_flag.set(false); + self.change_ready_state(XMLHttpRequestState::Done); return_if_fetch_was_terminated!(); // Subsubsteps 10-12 |