diff options
author | Josh Matthews <josh@joshmatthews.net> | 2019-10-01 13:11:50 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2019-10-04 09:22:21 -0400 |
commit | 81a67aed9e0cc866f4689e8d7a5541198d75e445 (patch) | |
tree | 65c5496febb57bab609aa1c62a771ae06a9ee49b /components/script/dom/canvasrenderingcontext2d.rs | |
parent | ea4600828861010da859399d3d432e2252619c2d (diff) | |
download | servo-81a67aed9e0cc866f4689e8d7a5541198d75e445.tar.gz servo-81a67aed9e0cc866f4689e8d7a5541198d75e445.zip |
Double key image cache by requesting origin, and store CORS status with cached images.
Diffstat (limited to 'components/script/dom/canvasrenderingcontext2d.rs')
-rw-r--r-- | components/script/dom/canvasrenderingcontext2d.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 1faf9878b53..e2495816408 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -47,7 +47,7 @@ use net_traits::image_cache::UsePlaceholder; use pixels::PixelFormat; use profile_traits::ipc as profiled_ipc; use script_traits::ScriptMsg; -use servo_url::ServoUrl; +use servo_url::{ImmutableOrigin, ServoUrl}; use std::cell::Cell; use std::str::FromStr; use std::sync::Arc; @@ -126,6 +126,7 @@ pub struct CanvasState { /// The base URL for resolving CSS image URL values. /// Needed because of https://github.com/servo/servo/issues/17625 base_url: ServoUrl, + origin: ImmutableOrigin, /// Any missing image URLs. missing_image_urls: DomRefCell<Vec<ServoUrl>>, saved_states: DomRefCell<Vec<CanvasContextState>>, @@ -152,6 +153,7 @@ impl CanvasState { base_url: global.api_base_url(), missing_image_urls: DomRefCell::new(Vec::new()), saved_states: DomRefCell::new(Vec::new()), + origin: global.origin().immutable().clone(), } } @@ -222,6 +224,7 @@ impl CanvasState { fn request_image_from_cache(&self, url: ServoUrl) -> ImageResponse { let response = self.image_cache.find_image_or_metadata( url.clone(), + self.origin.clone(), UsePlaceholder::No, CanRequestImages::No, ); |