Index: client/html/release/htmlimpl.dart |
diff --git a/client/html/release/htmlimpl.dart b/client/html/release/htmlimpl.dart |
index fb74c06aa8a8dcf7e7db4b4fc8bba22754bd6874..c5ea3fd57ebfc8c449f3eb49e03c71a3bbee648a 100644 |
--- a/client/html/release/htmlimpl.dart |
+++ b/client/html/release/htmlimpl.dart |
@@ -25985,19 +25985,25 @@ class XMLElementWrappingImplementation extends ElementWrappingImplementation |
String get outerHTML() { |
final container = new Element.tag("div"); |
- container.elements.add(this.clone(true)); |
+ // Safari requires that the clone be removed from its owner document before |
+ // being inserted into the HTML document. |
+ container.elements.add(this.clone(true).remove()); |
return container.innerHTML; |
} |
String get innerHTML() { |
final container = new Element.tag("div"); |
- container.nodes.addAll(this.clone(true).nodes); |
+ // Safari requires that the clone be removed from its owner document before |
+ // being inserted into the HTML document. |
+ container.nodes.addAll(this.clone(true).remove().nodes); |
return container.innerHTML; |
} |
void set innerHTML(String xml) { |
final xmlDoc = new XMLDocument.xml('<xml>$xml</xml>'); |
- this.nodes = xmlDoc.nodes; |
+ // Safari requires that the root node be removed from the document before |
+ // being inserted into the HTML document. |
+ this.nodes = xmlDoc.remove().nodes; |
} |
Node _insertAdjacentNode(String where, Node node) { |