aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout_2020/replaced.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/layout_2020/replaced.rs')
-rw-r--r--components/layout_2020/replaced.rs29
1 files changed, 16 insertions, 13 deletions
diff --git a/components/layout_2020/replaced.rs b/components/layout_2020/replaced.rs
index df845841438..391cd34c22a 100644
--- a/components/layout_2020/replaced.rs
+++ b/components/layout_2020/replaced.rs
@@ -27,6 +27,7 @@ use style::Zero;
use url::Url;
use webrender_api::ImageKey;
+use crate::cell::ArcRefCell;
use crate::context::LayoutContext;
use crate::dom::NodeExt;
use crate::fragment_tree::{BaseFragmentInfo, Fragment, IFrameFragment, ImageFragment};
@@ -334,23 +335,25 @@ impl ReplacedContents {
.as_ref()
.and_then(|image| image.id)
.map(|image_key| {
- Fragment::Image(ImageFragment {
+ Fragment::Image(ArcRefCell::new(ImageFragment {
base: self.base_fragment_info.into(),
style: style.clone(),
rect,
clip,
image_key: Some(image_key),
- })
+ }))
})
.into_iter()
.collect(),
- ReplacedContentKind::Video(video) => vec![Fragment::Image(ImageFragment {
- base: self.base_fragment_info.into(),
- style: style.clone(),
- rect,
- clip,
- image_key: video.as_ref().map(|video| video.image_key),
- })],
+ ReplacedContentKind::Video(video) => {
+ vec![Fragment::Image(ArcRefCell::new(ImageFragment {
+ base: self.base_fragment_info.into(),
+ style: style.clone(),
+ rect,
+ clip,
+ image_key: video.as_ref().map(|video| video.image_key),
+ }))]
+ },
ReplacedContentKind::IFrame(iframe) => {
let size = Size2D::new(rect.size.width.to_f32_px(), rect.size.height.to_f32_px());
layout_context.iframe_sizes.lock().insert(
@@ -361,13 +364,13 @@ impl ReplacedContents {
size,
},
);
- vec![Fragment::IFrame(IFrameFragment {
+ vec![Fragment::IFrame(ArcRefCell::new(IFrameFragment {
base: self.base_fragment_info.into(),
style: style.clone(),
pipeline_id: iframe.pipeline_id,
browsing_context_id: iframe.browsing_context_id,
rect,
- })]
+ }))]
},
ReplacedContentKind::Canvas(canvas_info) => {
if self.natural_size.width == Some(Au::zero()) ||
@@ -392,13 +395,13 @@ impl ReplacedContents {
},
CanvasSource::Empty => return vec![],
};
- vec![Fragment::Image(ImageFragment {
+ vec![Fragment::Image(ArcRefCell::new(ImageFragment {
base: self.base_fragment_info.into(),
style: style.clone(),
rect,
clip,
image_key: Some(image_key),
- })]
+ }))]
},
}
}