| Index: tools/dom/templates/html/impl/impl_SVGElement.darttemplate
|
| diff --git a/tools/dom/templates/html/impl/impl_SVGElement.darttemplate b/tools/dom/templates/html/impl/impl_SVGElement.darttemplate
|
| index 576854b83edfc1a55fec97ac398676ca4961742a..9e87d5b7e98f6254b790b9249ee2504ca977223c 100644
|
| --- a/tools/dom/templates/html/impl/impl_SVGElement.darttemplate
|
| +++ b/tools/dom/templates/html/impl/impl_SVGElement.darttemplate
|
| @@ -31,28 +31,10 @@ class _AttributeClassSet extends CssClassSetImpl {
|
| }
|
|
|
| $(ANNOTATIONS)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
|
| - static final _START_TAG_REGEXP = new RegExp('<(\\w+)');
|
| -
|
| factory $CLASSNAME.tag(String tag) =>
|
| - document.$dom_createElementNS("http://www.w3.org/2000/svg", tag);
|
| - factory $CLASSNAME.svg(String svg,
|
| - {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
|
| -
|
| - if (validator == null && treeSanitizer == null) {
|
| - validator = new NodeValidatorBuilder.common()..allowSvg();
|
| - }
|
| -
|
| - final match = _START_TAG_REGEXP.firstMatch(svg);
|
| - var parentElement;
|
| - if (match != null && match.group(1).toLowerCase() == 'svg') {
|
| - parentElement = document.body;
|
| - } else {
|
| - parentElement = new SvgSvgElement();
|
| - }
|
| - var fragment = parentElement.createFragment(svg, validator: validator,
|
| - treeSanitizer: treeSanitizer);
|
| - return fragment.nodes.where((e) => e is SvgElement).single;
|
| - }
|
| + _$(CLASSNAME)FactoryProvider.create$(CLASSNAME)_tag(tag);
|
| + factory $CLASSNAME.svg(String svg) =>
|
| + _$(CLASSNAME)FactoryProvider.create$(CLASSNAME)_svg(svg);
|
|
|
| _AttributeClassSet _cssClassSet;
|
| CssClassSet get classes {
|
| @@ -84,33 +66,12 @@ $(ANNOTATIONS)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
|
| return container.innerHtml;
|
| }
|
|
|
| - void set innerHtml(String value) {
|
| - this.setInnerHtml(value);
|
| - }
|
| -
|
| - DocumentFragment createFragment(String svg,
|
| - {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
|
| -
|
| - if (treeSanitizer == null) {
|
| - if (validator == null) {
|
| - validator = new NodeValidatorBuilder.common()
|
| - ..allowSvg();
|
| - }
|
| - treeSanitizer = new NodeTreeSanitizer(validator);
|
| - }
|
| -
|
| - // We create a fragment which will parse in the HTML parser
|
| - var html = '<svg version="1.1">$svg</svg>';
|
| - var fragment = document.body.createFragment(html,
|
| - treeSanitizer: treeSanitizer);
|
| -
|
| - var svgFragment = new DocumentFragment();
|
| - // The root is the <svg/> element, need to pull out the contents.
|
| - var root = fragment.nodes.single;
|
| - while (root.firstChild != null) {
|
| - svgFragment.append(root.firstChild);
|
| - }
|
| - return svgFragment;
|
| + void set innerHtml(String svg) {
|
| + final container = new Element.tag("div");
|
| + // Wrap the SVG string in <svg> so that SvgElements are created, rather than
|
| + // HTMLElements.
|
| + container.innerHtml = '<svg version="1.1">$svg</svg>';
|
| + this.children = container.children[0].children;
|
| }
|
|
|
| // Unsupported methods inherited from Element.
|
|
|