diff options
author | Zhen Zhang <izgzhen@gmail.com> | 2016-05-17 12:52:35 +0800 |
---|---|---|
committer | Zhen Zhang <izgzhen@gmail.com> | 2016-06-01 09:47:07 +0800 |
commit | 43ad4ba5857dbcd1a31aaf7e441c5cfe4fe1b84f (patch) | |
tree | ef221985dfe1d3ed54e7a2af31903d8b1dbf40e4 /components/script/dom/xmlhttprequest.rs | |
parent | d53507f747f7122dc520f5e4a374ee1ad955aa5d (diff) | |
download | servo-43ad4ba5857dbcd1a31aaf7e441c5cfe4fe1b84f.tar.gz servo-43ad4ba5857dbcd1a31aaf7e441c5cfe4fe1b84f.zip |
Add file backend support for Blob and related
Changes include:
- Add BlobImpl to Blob, and related caching mechanism
- Expose ResourceThreads to document_loader, workerglobalscope, worker, and global
- Fix encode_multipart_form_data
- Other small fixes to accommodate the above changes
Diffstat (limited to 'components/script/dom/xmlhttprequest.rs')
-rw-r--r-- | components/script/dom/xmlhttprequest.rs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 743a06ff5ec..f0294238db8 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -22,7 +22,7 @@ use dom::bindings::js::{Root, RootedReference}; use dom::bindings::refcounted::Trusted; use dom::bindings::reflector::{Reflectable, reflect_dom_object}; use dom::bindings::str::{ByteString, DOMString, USVString, is_token}; -use dom::blob::{Blob, DataSlice}; +use dom::blob::{Blob, DataSlice, BlobImpl}; use dom::document::DocumentSource; use dom::document::{Document, IsHTMLDocument}; use dom::event::{Event, EventBubbles, EventCancelable}; @@ -1134,8 +1134,8 @@ impl XMLHttpRequest { let mime = self.final_mime_type().as_ref().map(Mime::to_string).unwrap_or("".to_owned()); // Step 3, 4 - let slice = DataSlice::new(Arc::new(self.response.borrow().to_vec()), None, None); - let blob = Blob::new(self.global().r(), slice, &mime); + let slice = DataSlice::from_bytes(self.response.borrow().to_vec()); + let blob = Blob::new(self.global().r(), BlobImpl::new_from_slice(slice), &mime); self.response_blob.set(Some(blob.r())); blob } @@ -1419,13 +1419,12 @@ impl Extractable for BodyInit { Some(DOMString::from("application/x-www-form-urlencoded;charset=UTF-8"))) }, BodyInit::Blob(ref b) => { - let data = b.get_data(); let content_type = if b.Type().as_ref().is_empty() { None } else { Some(b.Type()) }; - (data.get_bytes().to_vec(), content_type) + (b.get_slice_or_empty().get_bytes().to_vec(), content_type) }, } } |