From 14934a42d7b5a87c58bc74123d2326b10f7f9c54 Mon Sep 17 00:00:00 2001 From: Alexandrov Sergey Date: Wed, 5 Oct 2016 00:19:35 +0300 Subject: add SVG fragment (SpecificFragmentInfo::Svg) --- components/layout/construct.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'components/layout/construct.rs') diff --git a/components/layout/construct.rs b/components/layout/construct.rs index 8a463ded66a..ae77f4d7751 100644 --- a/components/layout/construct.rs +++ b/components/layout/construct.rs @@ -22,7 +22,7 @@ use floats::FloatKind; use flow::{self, AbsoluteDescendants, IS_ABSOLUTELY_POSITIONED, ImmutableFlowUtils}; use flow::{CAN_BE_FRAGMENTED, MutableFlowUtils, MutableOwnedFlowUtils}; use flow_ref::{self, FlowRef}; -use fragment::{CanvasFragmentInfo, ImageFragmentInfo, InlineAbsoluteFragmentInfo}; +use fragment::{CanvasFragmentInfo, ImageFragmentInfo, InlineAbsoluteFragmentInfo, SvgFragmentInfo}; use fragment::{Fragment, GeneratedContentInfo, IframeFragmentInfo}; use fragment::{InlineAbsoluteHypotheticalFragmentInfo, TableColumnFragmentInfo}; use fragment::{InlineBlockFragmentInfo, SpecificFragmentInfo, UnscannedTextFragmentInfo}; @@ -335,6 +335,10 @@ impl<'a, ConcreteThreadSafeLayoutNode: ThreadSafeLayoutNode> let data = node.canvas_data().unwrap(); SpecificFragmentInfo::Canvas(box CanvasFragmentInfo::new(node, data, self.style_context())) } + Some(LayoutNodeType::Element(LayoutElementType::SVGSVGElement)) => { + let data = node.svg_data().unwrap(); + SpecificFragmentInfo::Svg(box SvgFragmentInfo::new(node, data, self.style_context())) + } _ => { // This includes pseudo-elements. SpecificFragmentInfo::Generic @@ -1701,7 +1705,8 @@ impl NodeUtils for ConcreteThreadSafeLayoutNode Some(LayoutNodeType::Document) | Some(LayoutNodeType::Element(LayoutElementType::HTMLImageElement)) | Some(LayoutNodeType::Element(LayoutElementType::HTMLIFrameElement)) | - Some(LayoutNodeType::Element(LayoutElementType::HTMLCanvasElement)) => true, + Some(LayoutNodeType::Element(LayoutElementType::HTMLCanvasElement)) | + Some(LayoutNodeType::Element(LayoutElementType::SVGSVGElement)) => true, Some(LayoutNodeType::Element(LayoutElementType::HTMLObjectElement)) => self.has_object_data(), Some(LayoutNodeType::Element(_)) => false, None => self.get_pseudo_element_type().is_replaced_content(), -- cgit v1.2.3