| Index: tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate
 | 
| diff --git a/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate b/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate
 | 
| index 8cbbf2c27ef301b3b2b1ec25d28b9fe305686a3d..199b67ad3359fa261cf7b67adefafd2784230ccd 100644
 | 
| --- a/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate
 | 
| +++ b/tools/dom/templates/html/impl/impl_DocumentFragment.darttemplate
 | 
| @@ -7,21 +7,18 @@ part of $LIBRARYNAME;
 | 
|  $(ANNOTATIONS)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
 | 
|    factory $CLASSNAME() => document.createDocumentFragment();
 | 
|  
 | 
| -  factory $CLASSNAME.html(String html) {
 | 
| -    final fragment = new DocumentFragment();
 | 
| -    fragment.innerHtml = html;
 | 
| -    return fragment;
 | 
| +  factory $CLASSNAME.html(String html,
 | 
| +      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
 | 
| +
 | 
| +    return document.body.createFragment(html,
 | 
| +      validator: validator, treeSanitizer: treeSanitizer);
 | 
|    }
 | 
|  
 | 
| -  factory $CLASSNAME.svg(String svgContent) {
 | 
| -    final fragment = new DocumentFragment();
 | 
| -    final e = new svg.SvgSvgElement();
 | 
| -    e.innerHtml = svgContent;
 | 
| +  factory $CLASSNAME.svg(String svgContent,
 | 
| +      {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
 | 
|  
 | 
| -    // Copy list first since we don't want liveness during iteration.
 | 
| -    final List nodes = new List.from(e.nodes);
 | 
| -    fragment.nodes.addAll(nodes);
 | 
| -    return fragment;
 | 
| +    return new svg.SvgSvgElement().createFragment(svgContent,
 | 
| +        validator: validator, treeSanitizer: treeSanitizer);
 | 
|    }
 | 
|  
 | 
|  $if DART2JS
 | 
| @@ -57,17 +54,16 @@ $endif
 | 
|      return e.innerHtml;
 | 
|    }
 | 
|  
 | 
| -  // TODO(nweiz): Do we want to support some variant of innerHtml for XML and/or
 | 
| -  // SVG strings?
 | 
|    void set innerHtml(String value) {
 | 
| -    this.nodes.clear();
 | 
| +    this.setInnerHtml(value);
 | 
| +  }
 | 
|  
 | 
| -    final e = new Element.tag("div");
 | 
| -    e.innerHtml = value;
 | 
| +  void setInnerHtml(String html,
 | 
| +    {NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
 | 
|  
 | 
| -    // Copy list first since we don't want liveness during iteration.
 | 
| -    List nodes = new List.from(e.nodes, growable: false);
 | 
| -    this.nodes.addAll(nodes);
 | 
| +    this.nodes.clear();
 | 
| +    append(document.body.createFragment(
 | 
| +        html, validator: validator, treeSanitizer: treeSanitizer));
 | 
|    }
 | 
|  
 | 
|    /**
 | 
| 
 |