diff options
author | Ms2ger <Ms2ger@gmail.com> | 2016-11-18 12:54:10 +0100 |
---|---|---|
committer | Ms2ger <Ms2ger@gmail.com> | 2016-11-21 10:37:24 +0100 |
commit | 5ce869d58a82f792cf1572014c84e7ed3058933d (patch) | |
tree | cd96518f579f6f09c8fa4b8999608016e6c47ecb | |
parent | 508e6adb7ee5963acc6781c162c36d8bd1ab6b85 (diff) | |
download | servo-5ce869d58a82f792cf1572014c84e7ed3058933d.tar.gz servo-5ce869d58a82f792cf1572014c84e7ed3058933d.zip |
Factor out FileManager::read_file().
-rw-r--r-- | components/net/blob_loader.rs | 8 | ||||
-rw-r--r-- | components/net/filemanager_thread.rs | 23 |
2 files changed, 19 insertions, 12 deletions
diff --git a/components/net/blob_loader.rs b/components/net/blob_loader.rs index ee83717b080..35aa34ac978 100644 --- a/components/net/blob_loader.rs +++ b/components/net/blob_loader.rs @@ -12,7 +12,7 @@ use mime_classifier::MimeClassifier; use net_traits::{LoadConsumer, LoadData, Metadata, NetworkError}; use net_traits::ProgressMsg::{Done, Payload}; use net_traits::blob_url_store::parse_blob_url; -use net_traits::filemanager_thread::{FileManagerThreadMsg, ReadFileProgress}; +use net_traits::filemanager_thread::ReadFileProgress; use net_traits::response::HttpsState; use resource_thread::{send_error, start_sending_sniffed_opt}; use resource_thread::CancellationListener; @@ -41,8 +41,7 @@ fn load_blob<UI: 'static + UIProvider> let (chan, recv) = ipc::channel().unwrap(); if let Ok((id, origin, _fragment)) = parse_blob_url(&load_data.url.clone()) { let check_url_validity = true; - let msg = FileManagerThreadMsg::ReadFile(chan, id, check_url_validity, origin); - let _ = filemanager.handle(msg, Some(cancel_listener)); + filemanager.read_file(chan, id, check_url_validity, origin, Some(cancel_listener)); // Receive first chunk match recv.recv().unwrap() { @@ -137,8 +136,7 @@ pub fn load_blob_sync<UI: 'static + UIProvider> let (sender, receiver) = ipc::channel().unwrap(); let check_url_validity = true; - let msg = FileManagerThreadMsg::ReadFile(sender, id, check_url_validity, origin); - let _ = filemanager.handle(msg, None); + filemanager.read_file(sender, id, check_url_validity, origin, None); let blob_buf = match receiver.recv().unwrap() { Ok(ReadFileProgress::Meta(blob_buf)) => blob_buf, diff --git a/components/net/filemanager_thread.rs b/components/net/filemanager_thread.rs index b5c03534024..e965cff1a0b 100644 --- a/components/net/filemanager_thread.rs +++ b/components/net/filemanager_thread.rs @@ -135,6 +135,21 @@ impl<UI: 'static + UIProvider> FileManager<UI> { } } + pub fn read_file(&self, + sender: IpcSender<FileManagerResult<ReadFileProgress>>, + id: Uuid, + check_url_validity: bool, + origin: FileOrigin, + cancel_listener: Option<CancellationListener>) { + let store = self.store.clone(); + spawn_named("read file".to_owned(), move || { + if let Err(e) = store.try_read_file(&sender, id, check_url_validity, + origin, cancel_listener) { + let _ = sender.send(Err(FileManagerThreadError::BlobURLStoreError(e))); + } + }) + } + /// Message handler pub fn handle(&self, msg: FileManagerThreadMsg, cancel_listener: Option<CancellationListener>) { match msg { @@ -153,13 +168,7 @@ impl<UI: 'static + UIProvider> FileManager<UI> { }) } FileManagerThreadMsg::ReadFile(sender, id, check_url_validity, origin) => { - let store = self.store.clone(); - spawn_named("read file".to_owned(), move || { - if let Err(e) = store.try_read_file(&sender, id, check_url_validity, - origin, cancel_listener) { - let _ = sender.send(Err(FileManagerThreadError::BlobURLStoreError(e))); - } - }) + self.read_file(sender, id, check_url_validity, origin, cancel_listener); } FileManagerThreadMsg::PromoteMemory(blob_buf, set_valid, sender, origin) => { let store = self.store.clone(); |