aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/construct.rs
diff options
context:
space:
mode:
authorAlexandrov Sergey <splavgm@gmail.com>2016-10-05 00:19:35 +0300
committerAlexandrov Sergey <splavgm@gmail.com>2016-10-07 21:41:02 +0300
commit14934a42d7b5a87c58bc74123d2326b10f7f9c54 (patch)
tree72c5b8680732381a65d17606f67ac8d6964c28cc /components/layout/construct.rs
parent9876020c2258ef833044596944ab0aa5370b0a74 (diff)
downloadservo-14934a42d7b5a87c58bc74123d2326b10f7f9c54.tar.gz
servo-14934a42d7b5a87c58bc74123d2326b10f7f9c54.zip
add SVG fragment (SpecificFragmentInfo::Svg)
Diffstat (limited to 'components/layout/construct.rs')
-rw-r--r--components/layout/construct.rs9
1 files changed, 7 insertions, 2 deletions
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<ConcreteThreadSafeLayoutNode> 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(),