pub trait ImageCache: Sync + Send {
// Required methods
fn memory_report(&self, prefix: &str, ops: &mut MallocSizeOfOps) -> Report;
fn get_image_key(&self) -> Option<ImageKey>;
fn get_image(
&self,
url: ServoUrl,
origin: ImmutableOrigin,
cors_setting: Option<CorsSettings>,
) -> Option<Image>;
fn get_cached_image_status(
&self,
url: ServoUrl,
origin: ImmutableOrigin,
cors_setting: Option<CorsSettings>,
) -> ImageCacheResult;
fn rasterize_vector_image(
&self,
image_id: VectorImageId,
size: DeviceIntSize,
) -> Option<RasterImage>;
fn add_rasterization_complete_listener(
&self,
pipeline_id: PipelineId,
image_id: VectorImageId,
size: DeviceIntSize,
callback: ImageCacheResponseCallback,
);
fn get_broken_image_icon(&self) -> Option<Arc<RasterImage>>;
fn add_listener(&self, listener: ImageLoadListener);
fn notify_pending_response(
&self,
id: PendingImageId,
action: FetchResponseMsg,
);
fn fill_key_cache_with_batch_of_keys(&self, image_keys: Vec<ImageKey>);
}Expand description
An ImageCache manages fetching and decoding images for a single Pipeline for its
Document and all of its associated Workers.
Required Methods§
fn memory_report(&self, prefix: &str, ops: &mut MallocSizeOfOps) -> Report
Sourcefn get_image_key(&self) -> Option<ImageKey>
fn get_image_key(&self) -> Option<ImageKey>
Sourcefn get_image(
&self,
url: ServoUrl,
origin: ImmutableOrigin,
cors_setting: Option<CorsSettings>,
) -> Option<Image>
fn get_image( &self, url: ServoUrl, origin: ImmutableOrigin, cors_setting: Option<CorsSettings>, ) -> Option<Image>
Definitively check whether there is a cached, fully loaded image available.
fn get_cached_image_status( &self, url: ServoUrl, origin: ImmutableOrigin, cors_setting: Option<CorsSettings>, ) -> ImageCacheResult
Sourcefn rasterize_vector_image(
&self,
image_id: VectorImageId,
size: DeviceIntSize,
) -> Option<RasterImage>
fn rasterize_vector_image( &self, image_id: VectorImageId, size: DeviceIntSize, ) -> Option<RasterImage>
Returns Some if the given image_id has already been rasterized at the given size.
Otherwise, triggers a new job to perform the rasterization. If a notification
is needed after rasterization is completed, the add_rasterization_complete_listener
API below can be used to add a listener.
Sourcefn add_rasterization_complete_listener(
&self,
pipeline_id: PipelineId,
image_id: VectorImageId,
size: DeviceIntSize,
callback: ImageCacheResponseCallback,
)
fn add_rasterization_complete_listener( &self, pipeline_id: PipelineId, image_id: VectorImageId, size: DeviceIntSize, callback: ImageCacheResponseCallback, )
Adds a new listener to be notified once the given image_id has been rasterized at
the given size. The listener will receive a VectorImageRasterizationComplete
message on the given sender, even if the listener is called after rasterization
at has already completed.
Sourcefn get_broken_image_icon(&self) -> Option<Arc<RasterImage>>
fn get_broken_image_icon(&self) -> Option<Arc<RasterImage>>
Synchronously get the broken image icon for this ImageCache. This will
allocate space for this icon and upload it to WebRender.
Sourcefn add_listener(&self, listener: ImageLoadListener)
fn add_listener(&self, listener: ImageLoadListener)
Add a new listener for the given pending image id. If the image is already present, the responder will still receive the expected response.
Sourcefn notify_pending_response(&self, id: PendingImageId, action: FetchResponseMsg)
fn notify_pending_response(&self, id: PendingImageId, action: FetchResponseMsg)
Inform the image cache about a response for a pending request.
Sourcefn fill_key_cache_with_batch_of_keys(&self, image_keys: Vec<ImageKey>)
fn fill_key_cache_with_batch_of_keys(&self, image_keys: Vec<ImageKey>)
Fills the image cache with a batch of keys.