mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
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
This commit is contained in:
parent
d53507f747
commit
43ad4ba585
18 changed files with 253 additions and 152 deletions
|
@ -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)
|
||||
},
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue