aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/xmlhttprequest.rs
diff options
context:
space:
mode:
authorZhen Zhang <izgzhen@gmail.com>2016-05-17 12:52:35 +0800
committerZhen Zhang <izgzhen@gmail.com>2016-06-01 09:47:07 +0800
commit43ad4ba5857dbcd1a31aaf7e441c5cfe4fe1b84f (patch)
treeef221985dfe1d3ed54e7a2af31903d8b1dbf40e4 /components/script/dom/xmlhttprequest.rs
parentd53507f747f7122dc520f5e4a374ee1ad955aa5d (diff)
downloadservo-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.rs9
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)
},
}
}