diff --git a/servo/components/script/dom/webidls/XMLHttpRequest.webidl b/servo/components/script/dom/webidls/XMLHttpRequest.webidl index 372627a0ecae..4223a13543cc 100644 --- a/servo/components/script/dom/webidls/XMLHttpRequest.webidl +++ b/servo/components/script/dom/webidls/XMLHttpRequest.webidl @@ -37,16 +37,15 @@ interface XMLHttpRequest : XMLHttpRequestEventTarget { const unsigned short HEADERS_RECEIVED = 2; const unsigned short LOADING = 3; const unsigned short DONE = 4; - readonly attribute unsigned short readyState; // request [Throws] - void open(ByteString method, /* [EnsureUTF16] */ DOMString url); + void open(ByteString method, USVString url); [Throws] - void open(ByteString method, /* [EnsureUTF16] */ DOMString url, boolean async, - optional /* [EnsureUTF16] */ DOMString? username = null, - optional /* [EnsureUTF16] */ DOMString? password = null); + void open(ByteString method, USVString url, boolean async, + optional USVString? username = null, + optional USVString? password = null); [Throws] void setRequestHeader(ByteString name, ByteString value); @@ -60,7 +59,7 @@ interface XMLHttpRequest : XMLHttpRequestEventTarget { void abort(); // response - readonly attribute DOMString responseURL; + readonly attribute USVString responseURL; readonly attribute unsigned short status; readonly attribute ByteString statusText; ByteString? getResponseHeader(ByteString name); @@ -71,7 +70,7 @@ interface XMLHttpRequest : XMLHttpRequestEventTarget { attribute XMLHttpRequestResponseType responseType; readonly attribute any response; [Throws] - readonly attribute DOMString responseText; + readonly attribute USVString responseText; [Throws] /*[Exposed=Window]*/ readonly attribute Document? responseXML; }; diff --git a/servo/components/script/dom/xmlhttprequest.rs b/servo/components/script/dom/xmlhttprequest.rs index f129095bdb45..9802538d5b52 100644 --- a/servo/components/script/dom/xmlhttprequest.rs +++ b/servo/components/script/dom/xmlhttprequest.rs @@ -22,7 +22,7 @@ use dom::bindings::js::{JS, MutNullableHeap}; use dom::bindings::js::{Root, RootedReference}; use dom::bindings::refcounted::Trusted; use dom::bindings::reflector::{Reflectable, reflect_dom_object}; -use dom::bindings::str::ByteString; +use dom::bindings::str::{ByteString, USVString}; use dom::document::DocumentSource; use dom::document::{Document, IsHTMLDocument}; use dom::event::{Event, EventBubbles, EventCancelable}; @@ -118,7 +118,7 @@ pub struct XMLHttpRequest { timeout: Cell, with_credentials: Cell, upload: JS, - response_url: DOMString, + response_url: String, status: Cell, status_text: DOMRefCell, response: DOMRefCell, @@ -155,7 +155,7 @@ impl XMLHttpRequest { timeout: Cell::new(0u32), with_credentials: Cell::new(false), upload: JS::from_rooted(&XMLHttpRequestUpload::new(global)), - response_url: DOMString::new(), + response_url: String::from(""), status: Cell::new(0), status_text: DOMRefCell::new(ByteString::new(vec!())), response: DOMRefCell::new(ByteString::new(vec!())), @@ -293,7 +293,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { } // https://xhr.spec.whatwg.org/#the-open()-method - fn Open(&self, method: ByteString, url: DOMString) -> ErrorResult { + fn Open(&self, method: ByteString, url: USVString) -> ErrorResult { //FIXME(seanmonstar): use a Trie instead? let maybe_method = method.as_str().and_then(|s| { // Note: hyper tests against the uppercase versions @@ -324,7 +324,7 @@ impl XMLHttpRequestMethods for XMLHttpRequest { // Step 6 let base = self.global().r().get_url(); - let parsed_url = match base.join(&url) { + let parsed_url = match base.join(&url.0) { Ok(parsed) => parsed, Err(_) => return Err(Error::Syntax) // Step 7 }; @@ -358,8 +358,8 @@ impl XMLHttpRequestMethods for XMLHttpRequest { } // https://xhr.spec.whatwg.org/#the-open()-method - fn Open_(&self, method: ByteString, url: DOMString, async: bool, - _username: Option, _password: Option) -> ErrorResult { + fn Open_(&self, method: ByteString, url: USVString, async: bool, + _username: Option, _password: Option) -> ErrorResult { self.sync.set(!async); self.Open(method, url) } @@ -634,8 +634,8 @@ impl XMLHttpRequestMethods for XMLHttpRequest { } // https://xhr.spec.whatwg.org/#the-responseurl-attribute - fn ResponseURL(&self) -> DOMString { - self.response_url.clone() + fn ResponseURL(&self) -> USVString { + USVString(self.response_url.clone()) } // https://xhr.spec.whatwg.org/#the-status-attribute @@ -745,13 +745,13 @@ impl XMLHttpRequestMethods for XMLHttpRequest { } // https://xhr.spec.whatwg.org/#the-responsetext-attribute - fn GetResponseText(&self) -> Fallible { + fn GetResponseText(&self) -> Fallible { match self.response_type.get() { _empty | Text => { - Ok(DOMString::from(match self.ready_state.get() { + Ok(USVString(String::from(match self.ready_state.get() { XMLHttpRequestState::Loading | XMLHttpRequestState::Done => self.text_response(), _ => "".to_owned() - })) + }))) }, _ => Err(Error::InvalidState) } @@ -1110,7 +1110,7 @@ impl XMLHttpRequest { let doc = doc.r(); let docloader = DocumentLoader::new(&*doc.loader()); let base = self.global().r().get_url(); - let parsed_url = match base.join(&self.ResponseURL()) { + let parsed_url = match base.join(&self.ResponseURL().0) { Ok(parsed) => Some(parsed), Err(_) => None // Step 7 };