mirror of
https://github.com/servo/servo.git
synced 2025-06-25 09:34:32 +01:00
Auto merge of #8405 - wenderen:8402-replace-load-whole-resource, r=Ms2ger
replace use of load_whole_resource in net/image_cache_task.rs with Fi… …le::open Fixes #8402. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8405) <!-- Reviewable:end -->
This commit is contained in:
commit
eda59fdd69
1 changed files with 12 additions and 20 deletions
|
@ -8,11 +8,12 @@ use net_traits::image::base::{Image, load_from_memory};
|
||||||
use net_traits::image_cache_task::ImageResponder;
|
use net_traits::image_cache_task::ImageResponder;
|
||||||
use net_traits::image_cache_task::{ImageCacheChan, ImageCacheCommand, ImageCacheTask, ImageState};
|
use net_traits::image_cache_task::{ImageCacheChan, ImageCacheCommand, ImageCacheTask, ImageState};
|
||||||
use net_traits::image_cache_task::{ImageCacheResult, ImageResponse, UsePlaceholder};
|
use net_traits::image_cache_task::{ImageCacheResult, ImageResponse, UsePlaceholder};
|
||||||
use net_traits::load_whole_resource;
|
|
||||||
use net_traits::{AsyncResponseTarget, ControlMsg, LoadConsumer, LoadData, ResourceTask, ResponseAction};
|
use net_traits::{AsyncResponseTarget, ControlMsg, LoadConsumer, LoadData, ResourceTask, ResponseAction};
|
||||||
use std::borrow::ToOwned;
|
use std::borrow::ToOwned;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::collections::hash_map::Entry::{Occupied, Vacant};
|
use std::collections::hash_map::Entry::{Occupied, Vacant};
|
||||||
|
use std::fs::File;
|
||||||
|
use std::io::Read;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::sync::mpsc::{Receiver, Select, Sender, channel};
|
use std::sync::mpsc::{Receiver, Select, Sender, channel};
|
||||||
|
@ -457,25 +458,16 @@ pub fn new_image_cache_task(resource_task: ResourceTask) -> ImageCacheTask {
|
||||||
spawn_named("ImageCacheThread".to_owned(), move || {
|
spawn_named("ImageCacheThread".to_owned(), move || {
|
||||||
|
|
||||||
// Preload the placeholder image, used when images fail to load.
|
// Preload the placeholder image, used when images fail to load.
|
||||||
let mut placeholder_url = resources_dir_path();
|
let mut placeholder_path = resources_dir_path();
|
||||||
placeholder_url.push("rippy.jpg");
|
placeholder_path.push("rippy.jpg");
|
||||||
let placeholder_image = match Url::from_file_path(&*placeholder_url) {
|
|
||||||
Ok(url) => {
|
let mut image_data = vec![];
|
||||||
match load_whole_resource(&resource_task, url, None) {
|
let result = File::open(&placeholder_path).and_then(|mut file| {
|
||||||
Err(..) => {
|
file.read_to_end(&mut image_data)
|
||||||
debug!("image_cache_task: failed loading the placeholder.");
|
});
|
||||||
None
|
let placeholder_image = result.ok().map(|_| {
|
||||||
}
|
Arc::new(load_from_memory(&image_data).unwrap())
|
||||||
Ok((_, image_data)) => {
|
});
|
||||||
Some(Arc::new(load_from_memory(&image_data).unwrap()))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Err(..) => {
|
|
||||||
debug!("image_cache_task: url {}", placeholder_url.display());
|
|
||||||
None
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Ask the router to proxy messages received over IPC to us.
|
// Ask the router to proxy messages received over IPC to us.
|
||||||
let cmd_receiver = ROUTER.route_ipc_receiver_to_new_mpsc_receiver(ipc_command_receiver);
|
let cmd_receiver = ROUTER.route_ipc_receiver_to_new_mpsc_receiver(ipc_command_receiver);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue