Auto merge of #13589 - splav:SVGElement#12974, r=pcwalton,Ms2ger

Support SVG element

<!-- 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. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13589)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-10-07 17:40:13 -05:00 committed by GitHub
commit dad3b4785a
22 changed files with 533 additions and 19 deletions

View file

@ -0,0 +1,22 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://svgwg.org/svg2-draft/types.html#InterfaceSVGElement
[Pref="dom.svg.enabled"]
interface SVGElement : Element {
//[SameObject] readonly attribute SVGAnimatedString className;
//[SameObject] readonly attribute DOMStringMap dataset;
//readonly attribute SVGSVGElement? ownerSVGElement;
//readonly attribute SVGElement? viewportElement;
//attribute long tabIndex;
//void focus();
//void blur();
};
//SVGElement implements GlobalEventHandlers;
//SVGElement implements SVGElementInstance;

View file

@ -0,0 +1,22 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://svgwg.org/svg2-draft/types.html#InterfaceSVGGraphicsElement
[Pref="dom.svg.enabled"]
//dictionary SVGBoundingBoxOptions {
// boolean fill = true;
// boolean stroke = false;
// boolean markers = false;
// boolean clipped = false;
//};
interface SVGGraphicsElement : SVGElement {
//[SameObject] readonly attribute SVGAnimatedTransformList transform;
//DOMRect getBBox(optional SVGBoundingBoxOptions options);
//DOMMatrix? getCTM();
//DOMMatrix? getScreenCTM();
};
//SVGGraphicsElement implements SVGTests;

View file

@ -0,0 +1,45 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// https://svgwg.org/svg2-draft/struct.html#InterfaceSVGSVGElement
[Pref="dom.svg.enabled"]
interface SVGSVGElement : SVGGraphicsElement {
//[SameObject] readonly attribute SVGAnimatedLength x;
//[SameObject] readonly attribute SVGAnimatedLength y;
//[SameObject] readonly attribute SVGAnimatedLength width;
//[SameObject] readonly attribute SVGAnimatedLength height;
//attribute float currentScale;
//[SameObject] readonly attribute DOMPointReadOnly currentTranslate;
//NodeList getIntersectionList(DOMRectReadOnly rect, SVGElement? referenceElement);
//NodeList getEnclosureList(DOMRectReadOnly rect, SVGElement? referenceElement);
//boolean checkIntersection(SVGElement element, DOMRectReadOnly rect);
//boolean checkEnclosure(SVGElement element, DOMRectReadOnly rect);
//void deselectAll();
//SVGNumber createSVGNumber();
//SVGLength createSVGLength();
//SVGAngle createSVGAngle();
//DOMPoint createSVGPoint();
//DOMMatrix createSVGMatrix();
//DOMRect createSVGRect();
//SVGTransform createSVGTransform();
//SVGTransform createSVGTransformFromMatrix(DOMMatrixReadOnly matrix);
//Element getElementById(DOMString elementId);
// Deprecated methods that have no effect when called,
// but which are kept for compatibility reasons.
//unsigned long suspendRedraw(unsigned long maxWaitMilliseconds);
//void unsuspendRedraw(unsigned long suspendHandleID);
//void unsuspendRedrawAll();
//void forceRedraw();
};
//SVGSVGElement implements SVGFitToViewBox;
//SVGSVGElement implements SVGZoomAndPan;
//SVGSVGElement implements WindowEventHandlers;