Auto merge of #24875 - jdm:wr-no-ipc, r=asajeffrey

Extract IPC out of webrender

Fixes #20172. Fixes #13480.
This commit is contained in:
bors-servo 2019-11-27 20:48:13 -05:00 committed by GitHub
commit 5f1681ad25
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
76 changed files with 493 additions and 359 deletions

View file

@ -57,7 +57,7 @@ tokio = "0.1"
time = "0.1.17"
url = "2.0"
uuid = {version = "0.8", features = ["v4"]}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
webrender_api = {git = "https://github.com/servo/webrender"}
ws = { version = "0.9", features = ["ssl"] }
[dev-dependencies]

View file

@ -9,7 +9,9 @@ use net_traits::image_cache::{CanRequestImages, CorsStatus, ImageCache, ImageRes
use net_traits::image_cache::{ImageOrMetadataAvailable, ImageResponse, ImageState};
use net_traits::image_cache::{PendingImageId, UsePlaceholder};
use net_traits::request::CorsSettings;
use net_traits::{FetchMetadata, FetchResponseMsg, FilteredMetadata, NetworkError};
use net_traits::{
FetchMetadata, FetchResponseMsg, FilteredMetadata, NetworkError, WebrenderIpcSender,
};
use pixels::PixelFormat;
use servo_url::{ImmutableOrigin, ServoUrl};
use std::collections::hash_map::Entry::{Occupied, Vacant};
@ -43,7 +45,7 @@ fn decode_bytes_sync(key: LoadKey, bytes: &[u8], cors: CorsStatus) -> DecoderMsg
}
fn get_placeholder_image(
webrender_api: &webrender_api::RenderApi,
webrender_api: &WebrenderIpcSender,
data: &[u8],
) -> io::Result<Arc<Image>> {
let mut image = load_from_memory(&data, CorsStatus::Unsafe).unwrap();
@ -51,7 +53,7 @@ fn get_placeholder_image(
Ok(Arc::new(image))
}
fn set_webrender_image_key(webrender_api: &webrender_api::RenderApi, image: &mut Image) {
fn set_webrender_image_key(webrender_api: &WebrenderIpcSender, image: &mut Image) {
if image.id.is_some() {
return;
}
@ -337,7 +339,7 @@ struct ImageCacheStore {
placeholder_url: ServoUrl,
// Webrender API instance.
webrender_api: webrender_api::RenderApi,
webrender_api: WebrenderIpcSender,
}
impl ImageCacheStore {
@ -423,7 +425,7 @@ pub struct ImageCacheImpl {
}
impl ImageCache for ImageCacheImpl {
fn new(webrender_api: webrender_api::RenderApi) -> ImageCacheImpl {
fn new(webrender_api: WebrenderIpcSender) -> ImageCacheImpl {
debug!("New image cache");
let rippy_data = resources::read_bytes(Resource::RippyPNG);