diff options
Diffstat (limited to 'components')
-rw-r--r-- | components/script/dom/blob.rs | 41 | ||||
-rw-r--r-- | components/script/dom/webidls/Blob.webidl | 3 |
2 files changed, 21 insertions, 23 deletions
diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index de7a7b8c35a..49fc47e8a68 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -117,29 +117,28 @@ impl Blob { } // https://w3c.github.io/FileAPI/#constructorBlob - pub fn Constructor(global: GlobalRef) -> Fallible<Root<Blob>> { - Ok(Blob::new(global, Vec::new(), "")) - } - - // https://w3c.github.io/FileAPI/#constructorBlob - pub fn Constructor_(global: GlobalRef, - blobParts: Vec<BlobOrString>, - blobPropertyBag: &BlobBinding::BlobPropertyBag) - -> Fallible<Root<Blob>> { + pub fn Constructor(global: GlobalRef, + blobParts: Option<Vec<BlobOrString>>, + blobPropertyBag: &BlobBinding::BlobPropertyBag) + -> Fallible<Root<Blob>> { // TODO: accept other blobParts types - ArrayBuffer or ArrayBufferView - let bytes: Vec<u8> = blobParts.iter() - .flat_map(|bPart| { - match bPart { - &BlobOrString::String(ref s) => { - UTF_8.encode(s, EncoderTrap::Replace).unwrap() - }, - &BlobOrString::Blob(ref b) => { - b.get_data().get_bytes().to_vec() - }, - } - }) - .collect(); + let bytes: Vec<u8> = match blobParts { + None => Vec::new(), + Some(blobs) => { + blobs.iter().flat_map(|bPart| { + match bPart { + &BlobOrString::String(ref s) => { + UTF_8.encode(s, EncoderTrap::Replace).unwrap() + }, + &BlobOrString::Blob(ref b) => { + b.get_data().get_bytes().to_vec() + }, + } + }) + .collect() + } + }; let typeString = if is_ascii_printable(&blobPropertyBag.type_) { &*blobPropertyBag.type_ } else { diff --git a/components/script/dom/webidls/Blob.webidl b/components/script/dom/webidls/Blob.webidl index bad890fafdc..f5ef8d035e0 100644 --- a/components/script/dom/webidls/Blob.webidl +++ b/components/script/dom/webidls/Blob.webidl @@ -4,8 +4,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob -[Constructor, - Constructor(sequence<(/*ArrayBuffer or ArrayBufferView or */Blob or DOMString)> blobParts, +[Constructor(optional sequence<(/*ArrayBuffer or ArrayBufferView or */Blob or DOMString)> blobParts, optional BlobPropertyBag options), Exposed=Window/*,Worker*/] interface Blob { |