aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMs2ger <Ms2ger@gmail.com>2016-11-18 12:54:10 +0100
committerMs2ger <Ms2ger@gmail.com>2016-11-21 10:37:24 +0100
commit5ce869d58a82f792cf1572014c84e7ed3058933d (patch)
treecd96518f579f6f09c8fa4b8999608016e6c47ecb
parent508e6adb7ee5963acc6781c162c36d8bd1ab6b85 (diff)
downloadservo-5ce869d58a82f792cf1572014c84e7ed3058933d.tar.gz
servo-5ce869d58a82f792cf1572014c84e7ed3058933d.zip
Factor out FileManager::read_file().
-rw-r--r--components/net/blob_loader.rs8
-rw-r--r--components/net/filemanager_thread.rs23
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();