| Index: client/dom/templates/html/interface/interface_Element.darttemplate | 
| diff --git a/client/dom/templates/html/interface/interface_Element.darttemplate b/client/dom/templates/html/interface/interface_Element.darttemplate | 
| index 7644d819967064f202bd7a8a646c4705627448e9..c263cbc6878e8f3447f2f65366a9d3d050740e7f 100644 | 
| --- a/client/dom/templates/html/interface/interface_Element.darttemplate | 
| +++ b/client/dom/templates/html/interface/interface_Element.darttemplate | 
| @@ -84,7 +84,7 @@ class _DataAttributeMap implements Map<String, String> { | 
|  | 
| class _CssClassSet implements Set<String> { | 
|  | 
| -  final _ElementJs _element; | 
| +  final _ElementImpl _element; | 
|  | 
| _CssClassSet(this._element); | 
|  | 
| @@ -248,32 +248,37 @@ interface ElementRect { | 
| List<ClientRect> get clientRects(); | 
| } | 
|  | 
| -// TODO(jacobr): referencing _ElementJs here is problematic when we need | 
| -// to support wrappers as well. | 
| -interface Element extends Node, NodeSelector default _ElementJs { | 
| +interface Element extends Node, NodeSelector default _$(ID)FactoryProvider { | 
| // TODO(jacobr): switch back to: | 
| -// interface $ID$EXTENDS default _ElementJs { | 
| +// interface $ID$EXTENDS default _ElementImpl { | 
| Element.html(String html); | 
| Element.tag(String tag); | 
|  | 
| Map<String, String> get attributes(); | 
| void set attributes(Map<String, String> value); | 
|  | 
| +  /** | 
| +   * @domName querySelectorAll, getElementsByClassName, getElementsByTagName, | 
| +   *   getElementsByTagNameNS | 
| +   */ | 
| +  ElementList queryAll(String selectors); | 
| + | 
| // TODO(jacobr): remove these methods and let them be generated automatically | 
| // once dart supports defining fields with the same name in an interface and | 
| // its parent interface. | 
| String get title(); | 
| void set title(String value); | 
|  | 
| +  /** | 
| +   * @domName childElementCount, firstElementChild, lastElementChild, | 
| +   *   children, Node.nodes.add | 
| +   */ | 
| ElementList get elements(); | 
|  | 
| // TODO: The type of value should be Collection<Element>. See http://b/5392897 | 
| void set elements(value); | 
|  | 
| -  Element query(String selectors); | 
| - | 
| -  ElementList queryAll(String selectors); | 
| - | 
| +  /** @domName className, classList */ | 
| Set<String> get classes(); | 
|  | 
| // TODO: The type of value should be Collection<String>. See http://b/5392897 | 
| @@ -282,17 +287,21 @@ interface Element extends Node, NodeSelector default _ElementJs { | 
| Map<String, String> get dataAttributes(); | 
| void set dataAttributes(Map<String, String> value); | 
|  | 
| -  bool matchesSelector([String selectors]); | 
| - | 
| +  /** | 
| +   * @domName getClientRects, getBoundingClientRect, clientHeight, clientWidth, | 
| +   * clientTop, clientLeft, offsetHeight, offsetWidth, offsetTop, offsetLeft, | 
| +   * scrollHeight, scrollWidth, scrollTop, scrollLeft | 
| +   */ | 
| Future<ElementRect> get rect(); | 
|  | 
| +  /** @domName Window.getComputedStyle */ | 
| Future<CSSStyleDeclaration> get computedStyle(); | 
|  | 
| +  /** @domName Window.getComputedStyle */ | 
| Future<CSSStyleDeclaration> getComputedStyle(String pseudoElement); | 
|  | 
| Element clone(bool deep); | 
|  | 
| - | 
| Element get parent(); | 
|  | 
| $!MEMBERS | 
|  |