servo: Merge #13589 - Support SVG element (from splav:SVGElement#12974); r=pcwalton,Ms2ger
<!-- Please describe your changes on the following line: --> minimal SVG element implementation --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #12974 (github issue number if applicable). <!-- Either: --> - [x] There are tests for these changes OR - [ ] These changes do not require tests because _____ <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: dad3b4785a73aa6ddea5ed50ee4ef01bd4049c8d
This commit is contained in:
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user