diff --git a/components/net/Cargo.toml b/components/net/Cargo.toml index c87485feedd6..c2e1dee90b92 100644 --- a/components/net/Cargo.toml +++ b/components/net/Cargo.toml @@ -39,7 +39,7 @@ time = "0.1.17" unicase = "1.4.0" url = {version = "1.2", features = ["heap_size", "rustc-serialize"]} util = {path = "../util"} -uuid = {version = "0.3", features = ["v4"]} +uuid = {version = "0.3.1", features = ["v4"]} websocket = "0.17" [dependencies.webrender_traits] diff --git a/components/net/blob_loader.rs b/components/net/blob_loader.rs index 0c9e858be362..5cad922802ae 100644 --- a/components/net/blob_loader.rs +++ b/components/net/blob_loader.rs @@ -12,7 +12,7 @@ use mime::{Mime, Attr}; use mime_classifier::MimeClassifier; use net_traits::ProgressMsg::{Payload, Done}; use net_traits::blob_url_store::parse_blob_url; -use net_traits::filemanager_thread::{FileManagerThreadMsg, SelectedFileId, ReadFileProgress}; +use net_traits::filemanager_thread::{FileManagerThreadMsg, ReadFileProgress}; use net_traits::response::HttpsState; use net_traits::{LoadConsumer, LoadData, Metadata, NetworkError}; use resource_thread::CancellationListener; @@ -40,7 +40,6 @@ fn load_blob cancel_listener: CancellationListener) { let (chan, recv) = ipc::channel().unwrap(); if let Ok((id, origin, _fragment)) = parse_blob_url(&load_data.url.clone()) { - let id = SelectedFileId(id.simple().to_string()); let check_url_validity = true; let msg = FileManagerThreadMsg::ReadFile(chan, id, check_url_validity, origin); let _ = filemanager.handle(msg, Some(cancel_listener)); diff --git a/components/net/filemanager_thread.rs b/components/net/filemanager_thread.rs index 4bfa44e87365..8e224d313b2b 100644 --- a/components/net/filemanager_thread.rs +++ b/components/net/filemanager_thread.rs @@ -6,8 +6,7 @@ use ipc_channel::ipc::IpcSender; use mime_guess::guess_mime_type_opt; use net_traits::blob_url_store::{BlobBuf, BlobURLStoreError}; use net_traits::filemanager_thread::{FileManagerThreadMsg, FileManagerResult, FilterPattern, FileOrigin}; -use net_traits::filemanager_thread::{SelectedFile, RelativePos, FileManagerThreadError}; -use net_traits::filemanager_thread::{SelectedFileId, ReadFileProgress}; +use net_traits::filemanager_thread::{SelectedFile, RelativePos, FileManagerThreadError, ReadFileProgress}; use resource_thread::CancellationListener; use std::collections::HashMap; use std::fs::File; @@ -157,31 +156,19 @@ impl FileManager { }) } FileManagerThreadMsg::DecRef(id, origin, sender) => { - if let Ok(id) = Uuid::parse_str(&id.0) { - spawn_named("dec ref".to_owned(), move || { - let _ = sender.send(store.dec_ref(&id, &origin)); - }) - } else { - let _ = sender.send(Err(BlobURLStoreError::InvalidFileID)); - } + spawn_named("dec ref".to_owned(), move || { + let _ = sender.send(store.dec_ref(&id, &origin)); + }) } FileManagerThreadMsg::RevokeBlobURL(id, origin, sender) => { - if let Ok(id) = Uuid::parse_str(&id.0) { - spawn_named("revoke blob url".to_owned(), move || { - let _ = sender.send(store.set_blob_url_validity(false, &id, &origin)); - }) - } else { - let _ = sender.send(Err(BlobURLStoreError::InvalidFileID)); - } + spawn_named("revoke blob url".to_owned(), move || { + let _ = sender.send(store.set_blob_url_validity(false, &id, &origin)); + }) } FileManagerThreadMsg::ActivateBlobURL(id, sender, origin) => { - if let Ok(id) = Uuid::parse_str(&id.0) { - spawn_named("activate blob url".to_owned(), move || { - let _ = sender.send(store.set_blob_url_validity(true, &id, &origin)); - }); - } else { - let _ = sender.send(Err(BlobURLStoreError::InvalidFileID)); - } + spawn_named("activate blob url".to_owned(), move || { + let _ = sender.send(store.set_blob_url_validity(true, &id, &origin)); + }); } } } @@ -245,31 +232,27 @@ impl FileManagerStore { } } - fn add_sliced_url_entry(&self, parent_id: SelectedFileId, rel_pos: RelativePos, - sender: IpcSender>, + fn add_sliced_url_entry(&self, parent_id: Uuid, rel_pos: RelativePos, + sender: IpcSender>, origin_in: FileOrigin) { - if let Ok(parent_id) = Uuid::parse_str(&parent_id.0) { - match self.inc_ref(&parent_id, &origin_in) { - Ok(_) => { - let new_id = Uuid::new_v4(); - self.insert(new_id, FileStoreEntry { - origin: origin_in, - file_impl: FileImpl::Sliced(parent_id, rel_pos), - refs: AtomicUsize::new(1), - // Valid here since AddSlicedURLEntry implies URL creation - // from a BlobImpl::Sliced - is_valid_url: AtomicBool::new(true), - }); - - // We assume that the returned id will be held by BlobImpl::File - let _ = sender.send(Ok(SelectedFileId(new_id.simple().to_string()))); - } - Err(e) => { - let _ = sender.send(Err(e)); - } + match self.inc_ref(&parent_id, &origin_in) { + Ok(_) => { + let new_id = Uuid::new_v4(); + self.insert(new_id, FileStoreEntry { + origin: origin_in, + file_impl: FileImpl::Sliced(parent_id, rel_pos), + refs: AtomicUsize::new(1), + // Valid here since AddSlicedURLEntry implies URL creation + // from a BlobImpl::Sliced + is_valid_url: AtomicBool::new(true), + }); + + // We assume that the returned id will be held by BlobImpl::File + let _ = sender.send(Ok(new_id)); + } + Err(e) => { + let _ = sender.send(Err(e)); } - } else { - let _ = sender.send(Err(BlobURLStoreError::InvalidFileID)); } } @@ -374,7 +357,7 @@ impl FileManagerStore { }; Ok(SelectedFile { - id: SelectedFileId(id.simple().to_string()), + id: id, filename: filename_path.to_path_buf(), modified: modified_epoch, size: file_size, @@ -446,11 +429,9 @@ impl FileManagerStore { // Convenient wrapper over get_blob_buf fn try_read_file(&self, sender: IpcSender>, - id: SelectedFileId, check_url_validity: bool, origin_in: FileOrigin, + id: Uuid, check_url_validity: bool, origin_in: FileOrigin, cancel_listener: Option) -> Result<(), BlobURLStoreError> { - let id = try!(Uuid::parse_str(&id.0).map_err(|_| BlobURLStoreError::InvalidFileID)); - self.get_blob_buf(sender, &id, &origin_in, RelativePos::full_range(), - check_url_validity, cancel_listener) + self.get_blob_buf(sender, &id, &origin_in, RelativePos::full_range(), check_url_validity, cancel_listener) } fn dec_ref(&self, id: &Uuid, origin_in: &FileOrigin) -> Result<(), BlobURLStoreError> { @@ -494,7 +475,7 @@ impl FileManagerStore { } fn promote_memory(&self, blob_buf: BlobBuf, set_valid: bool, - sender: IpcSender>, origin: FileOrigin) { + sender: IpcSender>, origin: FileOrigin) { match Url::parse(&origin) { // parse to check sanity Ok(_) => { let id = Uuid::new_v4(); @@ -505,7 +486,7 @@ impl FileManagerStore { is_valid_url: AtomicBool::new(set_valid), }); - let _ = sender.send(Ok(SelectedFileId(id.simple().to_string()))); + let _ = sender.send(Ok(id)); } Err(_) => { let _ = sender.send(Err(BlobURLStoreError::InvalidOrigin)); diff --git a/components/net_traits/Cargo.toml b/components/net_traits/Cargo.toml index 117ebe87fc97..23a2989d3301 100644 --- a/components/net_traits/Cargo.toml +++ b/components/net_traits/Cargo.toml @@ -25,5 +25,5 @@ serde = "0.8" serde_macros = "0.8" url = {version = "1.2", features = ["heap_size"]} websocket = "0.17" -uuid = { version = "0.3", features = ["v4", "serde"] } +uuid = { version = "0.3.1", features = ["v4", "serde"] } cookie = {version = "0.2.5", features = ["serialize-rustc"]} diff --git a/components/net_traits/filemanager_thread.rs b/components/net_traits/filemanager_thread.rs index 5068d48ed00f..c572c8c4926a 100644 --- a/components/net_traits/filemanager_thread.rs +++ b/components/net_traits/filemanager_thread.rs @@ -8,6 +8,7 @@ use num_traits::ToPrimitive; use std::cmp::{max, min}; use std::ops::Range; use std::path::PathBuf; +use uuid::Uuid; // HACK: Not really process-safe now, we should send Origin // directly instead of this in future, blocked on #11722 @@ -98,15 +99,10 @@ impl RelativePos { } } -// XXX: We should opt to Uuid once it implements `Deserialize` and `Serialize` -/// FileID used in inter-process message -#[derive(Clone, Debug, Deserialize, Serialize)] -pub struct SelectedFileId(pub String); - /// Response to file selection request #[derive(Debug, Deserialize, Serialize)] pub struct SelectedFile { - pub id: SelectedFileId, + pub id: Uuid, pub filename: PathBuf, pub modified: u64, pub size: u64, @@ -128,24 +124,24 @@ pub enum FileManagerThreadMsg { SelectFiles(Vec, IpcSender>>, FileOrigin, Option>), /// Read FileID-indexed file in chunks, optionally check URL validity based on boolean flag - ReadFile(IpcSender>, SelectedFileId, bool, FileOrigin), + ReadFile(IpcSender>, Uuid, bool, FileOrigin), /// Add an entry as promoted memory-based blob and send back the associated FileID /// as part of a valid/invalid Blob URL depending on the boolean flag - PromoteMemory(BlobBuf, bool, IpcSender>, FileOrigin), + PromoteMemory(BlobBuf, bool, IpcSender>, FileOrigin), /// Add a sliced entry pointing to the parent FileID, and send back the associated FileID /// as part of a valid Blob URL - AddSlicedURLEntry(SelectedFileId, RelativePos, IpcSender>, FileOrigin), + AddSlicedURLEntry(Uuid, RelativePos, IpcSender>, FileOrigin), /// Decrease reference count and send back the acknowledgement - DecRef(SelectedFileId, FileOrigin, IpcSender>), + DecRef(Uuid, FileOrigin, IpcSender>), /// Activate an internal FileID so it becomes valid as part of a Blob URL - ActivateBlobURL(SelectedFileId, IpcSender>, FileOrigin), + ActivateBlobURL(Uuid, IpcSender>, FileOrigin), /// Revoke Blob URL and send back the acknowledgement - RevokeBlobURL(SelectedFileId, FileOrigin, IpcSender>), + RevokeBlobURL(Uuid, FileOrigin, IpcSender>), } #[derive(Debug, Deserialize, Serialize)] diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index 34f1d33d6787..4645d2ce419b 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -70,7 +70,7 @@ style = {path = "../style"} time = "0.1.12" url = {version = "1.2", features = ["heap_size", "query_encoding"]} util = {path = "../util"} -uuid = {version = "0.3", features = ["v4"]} +uuid = {version = "0.3.1", features = ["v4"]} websocket = "0.17" xml5ever = {version = "0.1.2", features = ["unstable"]} diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 89b3ab88e114..d6969f38d6cc 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -57,7 +57,7 @@ use js::jsval::JSVal; use js::rust::Runtime; use libc; use msg::constellation_msg::{FrameType, PipelineId, SubpageId, WindowSizeType, ReferrerPolicy}; -use net_traits::filemanager_thread::{SelectedFileId, RelativePos}; +use net_traits::filemanager_thread::RelativePos; use net_traits::image::base::{Image, ImageMetadata}; use net_traits::image_cache_thread::{ImageCacheChan, ImageCacheThread}; use net_traits::request::Request; @@ -333,7 +333,6 @@ no_jsmanaged_fields!(USVString); no_jsmanaged_fields!(ReferrerPolicy); no_jsmanaged_fields!(ResourceThreads); no_jsmanaged_fields!(SystemTime); -no_jsmanaged_fields!(SelectedFileId); no_jsmanaged_fields!(RelativePos); no_jsmanaged_fields!(OpaqueStyleAndLayoutData); no_jsmanaged_fields!(PathBuf); diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index 49eff910cd9e..0e513081e100 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -15,7 +15,7 @@ use encoding::all::UTF_8; use encoding::types::{EncoderTrap, Encoding}; use ipc_channel::ipc; use net_traits::blob_url_store::{BlobBuf, get_blob_origin}; -use net_traits::filemanager_thread::{FileManagerThreadMsg, SelectedFileId, RelativePos, ReadFileProgress}; +use net_traits::filemanager_thread::{FileManagerThreadMsg, RelativePos, ReadFileProgress}; use net_traits::{CoreResourceMsg, IpcSend}; use std::cell::Cell; use std::mem; @@ -26,7 +26,7 @@ use uuid::Uuid; /// File-based blob #[derive(JSTraceable)] pub struct FileBlob { - id: SelectedFileId, + id: Uuid, name: Option, cache: DOMRefCell>>, size: u64, @@ -56,7 +56,7 @@ impl BlobImpl { } /// Construct file-backed BlobImpl from File ID - pub fn new_from_file(file_id: SelectedFileId, name: PathBuf, size: u64) -> BlobImpl { + pub fn new_from_file(file_id: Uuid, name: PathBuf, size: u64) -> BlobImpl { BlobImpl::File(FileBlob { id: file_id, name: Some(name), @@ -167,7 +167,7 @@ impl Blob { /// Get a FileID representing the Blob content, /// used by URL.createObjectURL - pub fn get_blob_url_id(&self) -> SelectedFileId { + pub fn get_blob_url_id(&self) -> Uuid { let opt_sliced_parent = match *self.blob_impl.borrow() { BlobImpl::Sliced(ref parent, ref rel_pos) => { Some((parent.promote(/* set_valid is */ false), rel_pos.clone(), parent.Size())) @@ -186,14 +186,14 @@ impl Blob { /// 2. File-based: If set_valid, then activate the FileID so it can serve as URL /// Depending on set_valid, the returned FileID can be part of /// valid or invalid Blob URL. - fn promote(&self, set_valid: bool) -> SelectedFileId { + fn promote(&self, set_valid: bool) -> Uuid { let mut bytes = vec![]; match *self.blob_impl.borrow_mut() { BlobImpl::Sliced(_, _) => { debug!("Sliced can't have a sliced parent"); // Return dummy id - return SelectedFileId(Uuid::new_v4().simple().to_string()); + return Uuid::new_v4(); } BlobImpl::File(ref f) => { if set_valid { @@ -207,7 +207,7 @@ impl Blob { match rx.recv().unwrap() { Ok(_) => return f.id.clone(), // Return a dummy id on error - Err(_) => return SelectedFileId(Uuid::new_v4().simple().to_string()) + Err(_) => return Uuid::new_v4(), } } else { // no need to activate @@ -233,7 +233,6 @@ impl Blob { match rx.recv().unwrap() { Ok(id) => { - let id = SelectedFileId(id.0); *self.blob_impl.borrow_mut() = BlobImpl::File(FileBlob { id: id.clone(), name: None, @@ -243,13 +242,13 @@ impl Blob { id } // Dummy id - Err(_) => SelectedFileId(Uuid::new_v4().simple().to_string()), + Err(_) => Uuid::new_v4(), } } /// Get a FileID representing sliced parent-blob content - fn create_sliced_url_id(&self, parent_id: &SelectedFileId, - rel_pos: &RelativePos, parent_len: u64) -> SelectedFileId { + fn create_sliced_url_id(&self, parent_id: &Uuid, + rel_pos: &RelativePos, parent_len: u64) -> Uuid { let global = self.global(); let origin = get_blob_origin(&global.r().get_url()); @@ -261,8 +260,6 @@ impl Blob { self.send_to_file_manager(msg); match rx.recv().expect("File manager thread is down") { Ok(new_id) => { - let new_id = SelectedFileId(new_id.0); - *self.blob_impl.borrow_mut() = BlobImpl::File(FileBlob { id: new_id.clone(), name: None, @@ -275,7 +272,7 @@ impl Blob { } Err(_) => { // Return dummy id - SelectedFileId(Uuid::new_v4().simple().to_string()) + Uuid::new_v4() } } } @@ -309,7 +306,7 @@ impl Drop for Blob { } } -fn read_file(global: GlobalRef, id: SelectedFileId) -> Result, ()> { +fn read_file(global: GlobalRef, id: Uuid) -> Result, ()> { let resource_threads = global.resource_threads(); let (chan, recv) = ipc::channel().map_err(|_|())?; let origin = get_blob_origin(&global.get_url()); diff --git a/components/script/dom/url.rs b/components/script/dom/url.rs index 768dabf1475b..e42b3b7f1cd2 100644 --- a/components/script/dom/url.rs +++ b/components/script/dom/url.rs @@ -15,7 +15,7 @@ use dom::urlhelper::UrlHelper; use dom::urlsearchparams::URLSearchParams; use ipc_channel::ipc; use net_traits::blob_url_store::{get_blob_origin, parse_blob_url}; -use net_traits::filemanager_thread::{SelectedFileId, FileManagerThreadMsg}; +use net_traits::filemanager_thread::FileManagerThreadMsg; use net_traits::{IpcSend, CoreResourceMsg}; use std::borrow::ToOwned; use std::default::Default; @@ -121,13 +121,13 @@ impl URL { if blob.IsClosed() { // Generate a dummy id - let id = Uuid::new_v4().simple().to_string(); + let id = Uuid::new_v4(); return DOMString::from(URL::unicode_serialization_blob_url(&origin, &id)); } let id = blob.get_blob_url_id(); - DOMString::from(URL::unicode_serialization_blob_url(&origin, &id.0)) + DOMString::from(URL::unicode_serialization_blob_url(&origin, &id)) } // https://w3c.github.io/FileAPI/#dfn-revokeObjectURL @@ -146,7 +146,6 @@ impl URL { if let Ok(url) = Url::parse(&url) { if let Ok((id, _, _)) = parse_blob_url(&url) { let resource_threads = global.resource_threads(); - let id = SelectedFileId(id.simple().to_string()); let (tx, rx) = ipc::channel().unwrap(); let msg = FileManagerThreadMsg::RevokeBlobURL(id, origin, tx); let _ = resource_threads.send(CoreResourceMsg::ToFileManager(msg)); @@ -157,7 +156,7 @@ impl URL { } // https://w3c.github.io/FileAPI/#unicodeSerializationOfBlobURL - fn unicode_serialization_blob_url(origin: &str, id: &str) -> String { + fn unicode_serialization_blob_url(origin: &str, id: &Uuid) -> String { // Step 1, 2 let mut result = "blob:".to_string(); @@ -168,7 +167,7 @@ impl URL { result.push('/'); // Step 5 - result.push_str(id); + result.push_str(&id.simple().to_string()); result } diff --git a/components/servo/Cargo.lock b/components/servo/Cargo.lock index 500fdc7dcba3..c31dc2b2e7db 100644 --- a/components/servo/Cargo.lock +++ b/components/servo/Cargo.lock @@ -1063,7 +1063,7 @@ dependencies = [ "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", - "uuid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1420,7 +1420,7 @@ dependencies = [ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.5.1 (git+https://github.com/servo/webrender)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1478,7 +1478,7 @@ dependencies = [ "serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1939,7 +1939,7 @@ dependencies = [ "tinyfiledialogs 0.1.0 (git+https://github.com/jdm/tinyfiledialogs)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.5.1 (git+https://github.com/servo/webrender)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "xml5ever 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2471,7 +2471,7 @@ dependencies = [ [[package]] name = "uuid" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2572,7 +2572,7 @@ dependencies = [ "script_traits 0.0.1", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "webdriver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] diff --git a/components/webdriver_server/Cargo.toml b/components/webdriver_server/Cargo.toml index 9c47fbef1a11..9106ceefe060 100644 --- a/components/webdriver_server/Cargo.toml +++ b/components/webdriver_server/Cargo.toml @@ -22,6 +22,6 @@ rustc-serialize = "0.3.4" script_traits = {path = "../script_traits"} url = {version = "1.2", features = ["heap_size"]} util = {path = "../util"} -uuid = { version = "0.3", features = ["v4"] } +uuid = { version = "0.3.1", features = ["v4"] } webdriver = "0.9" cookie = {version = "0.2.5", features = ["serialize-rustc"]} diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock index be4bbe408854..674a04efeef5 100644 --- a/ports/cef/Cargo.lock +++ b/ports/cef/Cargo.lock @@ -971,7 +971,7 @@ dependencies = [ "libc 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", - "uuid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1321,7 +1321,7 @@ dependencies = [ "unicase 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.5.1 (git+https://github.com/servo/webrender)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1357,7 +1357,7 @@ dependencies = [ "serde_macros 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1791,7 +1791,7 @@ dependencies = [ "tinyfiledialogs 0.1.0 (git+https://github.com/jdm/tinyfiledialogs)", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "webrender_traits 0.5.1 (git+https://github.com/servo/webrender)", "websocket 0.17.1 (registry+https://github.com/rust-lang/crates.io-index)", "xml5ever 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2331,7 +2331,7 @@ dependencies = [ [[package]] name = "uuid" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "rand 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2432,7 +2432,7 @@ dependencies = [ "script_traits 0.0.1", "url 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "util 0.0.1", - "uuid 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "webdriver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ]