Replace immeta dependency with imsz (#30294)

`immeta` is no longer maintained and `imsz` seems to have support for
more image formats as well as having no dependencies itself.
This commit is contained in:
Martin Robinson 2023-09-06 11:20:08 +02:00 committed by GitHub
parent 0cf84f9f7c
commit 1b6351486c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 24 deletions

View file

@ -34,7 +34,7 @@ http = { workspace = true }
hyper = { workspace = true, features = ["client", "http1", "http2", "tcp", "stream"] }
hyper-rustls = { workspace = true }
hyper_serde = { workspace = true }
immeta = "0.4"
imsz = { workspace = true }
ipc-channel = { workspace = true }
lazy_static = { workspace = true }
libflate = "0.1"

View file

@ -3,7 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
use embedder_traits::resources::{self, Resource};
use immeta::load_from_buf;
use imsz::imsz_from_reader;
use ipc_channel::ipc::IpcSender;
use net_traits::image::base::{load_from_memory, Image, ImageMetadata};
use net_traits::image_cache::{
@ -608,19 +608,18 @@ impl ImageCache for ImageCacheImpl {
let mut store = self.store.lock().unwrap();
let pending_load = store.pending_loads.get_by_key_mut(&id).unwrap();
pending_load.bytes.extend_from_slice(&data);
//jmr0 TODO: possibly move to another task?
if let None = pending_load.metadata {
if let Ok(metadata) = load_from_buf(&pending_load.bytes.as_slice()) {
let dimensions = metadata.dimensions();
let img_metadata = ImageMetadata {
width: dimensions.width,
height: dimensions.height,
};
for listener in &pending_load.listeners {
listener.respond(ImageResponse::MetadataLoaded(img_metadata.clone()));
}
pending_load.metadata = Some(img_metadata);
let mut reader = std::io::Cursor::new(pending_load.bytes.as_slice());
if let Ok(info) = imsz_from_reader(&mut reader) {
let img_metadata = ImageMetadata {
width: info.width as u32,
height: info.height as u32,
};
for listener in &pending_load.listeners {
listener.respond(ImageResponse::MetadataLoaded(img_metadata.clone()));
}
pending_load.metadata = Some(img_metadata);
}
},
(FetchResponseMsg::ProcessResponseEOF(result), key) => {