mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Factor out FileManager::read_file().
This commit is contained in:
parent
508e6adb7e
commit
5ce869d58a
2 changed files with 19 additions and 12 deletions
|
@ -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,
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue