aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-07-22 01:09:58 -0500
committerGitHub <noreply@github.com>2016-07-22 01:09:58 -0500
commit9c0e7b1cf2696ac214fcb0ce20f95ae9f16f2ea1 (patch)
tree67503ca2ff7b15e0a3915e5e58a4380e5ded2e43 /components/script/dom
parent05cc76370f4f8dd5c715e42549a2027dc4c8ca71 (diff)
parentf598b5f7fdce7c5d64f8999c30396a3458e2660e (diff)
downloadservo-9c0e7b1cf2696ac214fcb0ce20f95ae9f16f2ea1.tar.gz
servo-9c0e7b1cf2696ac214fcb0ce20f95ae9f16f2ea1.zip
Auto merge of #12544 - izgzhen:patch-file-api, r=Manishearth
Patches of File API r? @Manishearth <!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors <!-- Either: --> - [x] There are tests for these changes OR <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/12544) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/blob.rs7
-rw-r--r--components/script/dom/file.rs5
2 files changed, 8 insertions, 4 deletions
diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs
index f63e66e3b7b..1e3c74e1e26 100644
--- a/components/script/dom/blob.rs
+++ b/components/script/dom/blob.rs
@@ -20,6 +20,7 @@ use net_traits::filemanager_thread::{FileManagerThreadMsg, SelectedFileId, Relat
use std::cell::Cell;
use std::ops::Index;
use std::path::PathBuf;
+use uuid::Uuid;
/// File-based blob
#[derive(JSTraceable)]
@@ -183,7 +184,7 @@ impl Blob {
match rx.recv().unwrap() {
Ok(_) => f.id.clone(),
- Err(_) => SelectedFileId("".to_string()) // Return a dummy id on error
+ Err(_) => SelectedFileId(Uuid::new_v4().simple().to_string()) // Return a dummy id on error
}
}
BlobImpl::Memory(ref slice) => {
@@ -194,7 +195,7 @@ impl Blob {
BlobImpl::Sliced(_, _) => {
debug!("Sliced can't have a sliced parent");
// Return dummy id
- SelectedFileId("".to_string())
+ SelectedFileId(Uuid::new_v4().simple().to_string())
}
BlobImpl::File(ref f) =>
self.create_sliced_url_id(&f.id, rel_pos),
@@ -230,7 +231,7 @@ impl Blob {
match rx.recv().unwrap() {
Ok(new_id) => SelectedFileId(new_id.0),
// Dummy id
- Err(_) => SelectedFileId("".to_string()),
+ Err(_) => SelectedFileId(Uuid::new_v4().simple().to_string()),
}
}
diff --git a/components/script/dom/file.rs b/components/script/dom/file.rs
index 4528a116e45..f9b181dbf1a 100644
--- a/components/script/dom/file.rs
+++ b/components/script/dom/file.rs
@@ -73,7 +73,10 @@ impl File {
let ref typeString = blobPropertyBag.type_;
let modified = filePropertyBag.lastModified;
- Ok(File::new(global, BlobImpl::new_from_bytes(bytes), filename, modified, typeString))
+ // NOTE: Following behaviour might be removed in future,
+ // see https://github.com/w3c/FileAPI/issues/41
+ let replaced_filename = DOMString::from_string(filename.replace("/", ":"));
+ Ok(File::new(global, BlobImpl::new_from_bytes(bytes), replaced_filename, modified, typeString))
}
pub fn name(&self) -> &DOMString {