Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Unified Diff: client/html/release/htmlimpl.dart

Side-by-side diff isn't available for this file because of its large size.
Issue 9392028: Ensure that newly-constructed elements don't have parents. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
Index: client/html/release/htmlimpl.dart
diff --git a/client/html/release/htmlimpl.dart b/client/html/release/htmlimpl.dart
index 39644f521d890253ce78c2edec903ca85efe1d40..e908071db77db9491b3e73f7f0b77d05b608cdbd 100644
--- a/client/html/release/htmlimpl.dart
+++ b/client/html/release/htmlimpl.dart
@@ -22726,17 +22726,20 @@ class ElementWrappingImplementation extends NodeWrappingImplementation implement
var temp = dom.document.createElement(parentTag);
temp.innerHTML = html;
+ var element;
if (temp.childElementCount == 1) {
- return LevelDom.wrapElement(temp.firstElementChild);
+ element = LevelDom.wrapElement(temp.firstElementChild);
} else if (parentTag == 'html' && temp.childElementCount == 2) {
// Work around for edge case in WebKit and possibly other browsers where
// both body and head elements are created even though the inner html
// only contains a head or body element.
- return LevelDom.wrapElement(temp.children.item(tag == 'head' ? 0 : 1));
+ element = LevelDom.wrapElement(temp.children.item(tag == 'head' ? 0 : 1));
} else {
throw new IllegalArgumentException('HTML had ${temp.childElementCount} ' +
'top level elements but 1 expected');
}
+ element.remove();
+ return element;
}
/** @domName Document.createElement */
@@ -24208,7 +24211,7 @@ class SVGElementWrappingImplementation extends ElementWrappingImplementation imp
}
parentTag.innerHTML = svg;
- if (parentTag.elements.length == 1) return parentTag.elements[0];
+ if (parentTag.elements.length == 1) return parentTag.nodes.removeLast();
throw new IllegalArgumentException('SVG had ${parentTag.elements.length} ' +
'top-level elements but 1 expected');
« no previous file with comments | « no previous file | client/html/src/ElementWrappingImplementation.dart » ('j') | client/html/src/ElementWrappingImplementation.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698