| Index: client/html/dartium/html_dartium.dart | 
| diff --git a/client/html/dartium/html_dartium.dart b/client/html/dartium/html_dartium.dart | 
| index a80d47b78743e766189421957587154f2bce9ed9..708977c61a1473cfe354e2b2e6851f65011b9384 100644 | 
| --- a/client/html/dartium/html_dartium.dart | 
| +++ b/client/html/dartium/html_dartium.dart | 
| @@ -1377,6 +1377,11 @@ class _BlobBuilderImpl extends _DOMTypeBase implements BlobBuilder { | 
| class _BodyElementImpl extends _ElementImpl implements BodyElement { | 
| _BodyElementImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  _BodyElementEventsImpl get on() { | 
| +    if (_on == null) _on = new _BodyElementEventsImpl(this); | 
| +    return _on; | 
| +  } | 
| + | 
| String get aLink() => _wrap(_ptr.aLink); | 
|  | 
| void set aLink(String value) { _ptr.aLink = _unwrap(value); } | 
| @@ -1396,11 +1401,6 @@ class _BodyElementImpl extends _ElementImpl implements BodyElement { | 
| String get vLink() => _wrap(_ptr.vLink); | 
|  | 
| void set vLink(String value) { _ptr.vLink = _unwrap(value); } | 
| - | 
| -  _BodyElementEventsImpl get on() { | 
| -    if (_on == null) _on = new _BodyElementEventsImpl(this); | 
| -    return _on; | 
| -  } | 
| } | 
|  | 
| class _BodyElementEventsImpl extends _ElementEventsImpl implements BodyElementEvents { | 
| @@ -5826,13 +5826,13 @@ class _DListElementImpl extends _ElementImpl implements DListElement { | 
| class _DOMApplicationCacheImpl extends _EventTargetImpl implements DOMApplicationCache { | 
| _DOMApplicationCacheImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| -  int get status() => _wrap(_ptr.status); | 
| - | 
| _DOMApplicationCacheEventsImpl get on() { | 
| if (_on == null) _on = new _DOMApplicationCacheEventsImpl(this); | 
| return _on; | 
| } | 
|  | 
| +  int get status() => _wrap(_ptr.status); | 
| + | 
| void abort() { | 
| _ptr.abort(); | 
| return; | 
| @@ -6668,6 +6668,11 @@ class _DivElementImpl extends _ElementImpl implements DivElement { | 
| class _DocumentImpl extends _ElementImpl | 
| implements Document { | 
|  | 
| +  _DocumentEventsImpl get on() { | 
| +    if (_on == null) _on = new _DocumentEventsImpl(_wrappedDocumentPtr); | 
| +    return _on; | 
| +  } | 
| + | 
| Element get activeElement() => _wrap(_documentPtr.activeElement); | 
|  | 
| Element get body() => _wrap(_documentPtr.body); | 
| @@ -6716,11 +6721,6 @@ class _DocumentImpl extends _ElementImpl | 
|  | 
| String get webkitVisibilityState() => _wrap(_documentPtr.webkitVisibilityState); | 
|  | 
| -  _DocumentEventsImpl get on() { | 
| -    if (_on == null) _on = new _DocumentEventsImpl(_wrappedDocumentPtr); | 
| -    return _on; | 
| -  } | 
| - | 
| Range caretRangeFromPoint(int x, int y) { | 
| return _wrap(_documentPtr.caretRangeFromPoint(_unwrap(x), _unwrap(y))); | 
| } | 
| @@ -6940,6 +6940,11 @@ class _DocumentEventsImpl extends _ElementEventsImpl implements DocumentEvents { | 
| class _DocumentFragmentImpl extends _NodeImpl implements DocumentFragment { | 
| _DocumentFragmentImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  ElementEvents get on() { | 
| +    if (_on == null) _on = new ElementEvents(this); | 
| +    return _on; | 
| +  } | 
| + | 
| Element query(String selectors) { | 
| return _wrap(_ptr.querySelector(_unwrap(selectors))); | 
| } | 
| @@ -7517,6 +7522,11 @@ class _ElementImpl extends _NodeImpl implements Element { | 
| } | 
| _ElementImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  _ElementEventsImpl get on() { | 
| +    if (_on == null) _on = new _ElementEventsImpl(this); | 
| +    return _on; | 
| +  } | 
| + | 
| int get _childElementCount() => _wrap(_ptr.childElementCount); | 
|  | 
| HTMLCollection get _children() => _wrap(_ptr.children); | 
| @@ -7623,11 +7633,6 @@ class _ElementImpl extends _NodeImpl implements Element { | 
|  | 
| void set webkitdropzone(String value) { _ptr.webkitdropzone = _unwrap(value); } | 
|  | 
| -  _ElementEventsImpl get on() { | 
| -    if (_on == null) _on = new _ElementEventsImpl(this); | 
| -    return _on; | 
| -  } | 
| - | 
| void blur() { | 
| _ptr.blur(); | 
| return; | 
| @@ -8148,17 +8153,17 @@ class _EventExceptionImpl extends _DOMTypeBase implements EventException { | 
| class _EventSourceImpl extends _EventTargetImpl implements EventSource { | 
| _EventSourceImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  _EventSourceEventsImpl get on() { | 
| +    if (_on == null) _on = new _EventSourceEventsImpl(this); | 
| +    return _on; | 
| +  } | 
| + | 
| String get URL() => _wrap(_ptr.URL); | 
|  | 
| int get readyState() => _wrap(_ptr.readyState); | 
|  | 
| String get url() => _wrap(_ptr.url); | 
|  | 
| -  _EventSourceEventsImpl get on() { | 
| -    if (_on == null) _on = new _EventSourceEventsImpl(this); | 
| -    return _on; | 
| -  } | 
| - | 
| void _addEventListener(String type, EventListener listener, [bool useCapture = null]) { | 
| if (useCapture === null) { | 
| _ptr.addEventListener(_unwrap(type), _unwrap(listener)); | 
| @@ -8990,6 +8995,11 @@ class _FrameElementImpl extends _ElementImpl implements FrameElement { | 
| class _FrameSetElementImpl extends _ElementImpl implements FrameSetElement { | 
| _FrameSetElementImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  _FrameSetElementEventsImpl get on() { | 
| +    if (_on == null) _on = new _FrameSetElementEventsImpl(this); | 
| +    return _on; | 
| +  } | 
| + | 
| String get cols() => _wrap(_ptr.cols); | 
|  | 
| void set cols(String value) { _ptr.cols = _unwrap(value); } | 
| @@ -8997,11 +9007,6 @@ class _FrameSetElementImpl extends _ElementImpl implements FrameSetElement { | 
| String get rows() => _wrap(_ptr.rows); | 
|  | 
| void set rows(String value) { _ptr.rows = _unwrap(value); } | 
| - | 
| -  _FrameSetElementEventsImpl get on() { | 
| -    if (_on == null) _on = new _FrameSetElementEventsImpl(this); | 
| -    return _on; | 
| -  } | 
| } | 
|  | 
| class _FrameSetElementEventsImpl extends _ElementEventsImpl implements FrameSetElementEvents { | 
| @@ -9945,6 +9950,11 @@ class _ImageElementImpl extends _ElementImpl implements ImageElement { | 
| class _InputElementImpl extends _ElementImpl implements InputElement { | 
| _InputElementImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  _InputElementEventsImpl get on() { | 
| +    if (_on == null) _on = new _InputElementEventsImpl(this); | 
| +    return _on; | 
| +  } | 
| + | 
| String get accept() => _wrap(_ptr.accept); | 
|  | 
| void set accept(String value) { _ptr.accept = _unwrap(value); } | 
| @@ -10113,11 +10123,6 @@ class _InputElementImpl extends _ElementImpl implements InputElement { | 
|  | 
| bool get willValidate() => _wrap(_ptr.willValidate); | 
|  | 
| -  _InputElementEventsImpl get on() { | 
| -    if (_on == null) _on = new _InputElementEventsImpl(this); | 
| -    return _on; | 
| -  } | 
| - | 
| bool checkValidity() { | 
| return _wrap(_ptr.checkValidity()); | 
| } | 
| @@ -12058,6 +12063,11 @@ class _NotationImpl extends _NodeImpl implements Notation { | 
| class _NotificationImpl extends _EventTargetImpl implements Notification { | 
| _NotificationImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  _NotificationEventsImpl get on() { | 
| +    if (_on == null) _on = new _NotificationEventsImpl(this); | 
| +    return _on; | 
| +  } | 
| + | 
| String get dir() => _wrap(_ptr.dir); | 
|  | 
| void set dir(String value) { _ptr.dir = _unwrap(value); } | 
| @@ -12066,11 +12076,6 @@ class _NotificationImpl extends _EventTargetImpl implements Notification { | 
|  | 
| void set replaceId(String value) { _ptr.replaceId = _unwrap(value); } | 
|  | 
| -  _NotificationEventsImpl get on() { | 
| -    if (_on == null) _on = new _NotificationEventsImpl(this); | 
| -    return _on; | 
| -  } | 
| - | 
| void cancel() { | 
| _ptr.cancel(); | 
| return; | 
| @@ -13509,6 +13514,11 @@ class _SVGElementImpl extends _ElementImpl implements SVGElement { | 
| class _SVGElementInstanceImpl extends _EventTargetImpl implements SVGElementInstance { | 
| _SVGElementInstanceImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  _SVGElementInstanceEventsImpl get on() { | 
| +    if (_on == null) _on = new _SVGElementInstanceEventsImpl(this); | 
| +    return _on; | 
| +  } | 
| + | 
| SVGElementInstanceList get childNodes() => _wrap(_ptr.childNodes); | 
|  | 
| SVGElement get correspondingElement() => _wrap(_ptr.correspondingElement); | 
| @@ -13525,11 +13535,6 @@ class _SVGElementInstanceImpl extends _EventTargetImpl implements SVGElementInst | 
|  | 
| SVGElementInstance get previousSibling() => _wrap(_ptr.previousSibling); | 
|  | 
| -  _SVGElementInstanceEventsImpl get on() { | 
| -    if (_on == null) _on = new _SVGElementInstanceEventsImpl(this); | 
| -    return _on; | 
| -  } | 
| - | 
| void _addEventListener(String type, EventListener listener, [bool useCapture = null]) { | 
| if (useCapture === null) { | 
| _ptr.addEventListener(_unwrap(type), _unwrap(listener)); | 
| @@ -19713,6 +19718,11 @@ class _WebKitNamedFlowImpl extends _DOMTypeBase implements WebKitNamedFlow { | 
| class _WebSocketImpl extends _EventTargetImpl implements WebSocket { | 
| _WebSocketImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  _WebSocketEventsImpl get on() { | 
| +    if (_on == null) _on = new _WebSocketEventsImpl(this); | 
| +    return _on; | 
| +  } | 
| + | 
| String get URL() => _wrap(_ptr.URL); | 
|  | 
| String get binaryType() => _wrap(_ptr.binaryType); | 
| @@ -19729,11 +19739,6 @@ class _WebSocketImpl extends _EventTargetImpl implements WebSocket { | 
|  | 
| String get url() => _wrap(_ptr.url); | 
|  | 
| -  _WebSocketEventsImpl get on() { | 
| -    if (_on == null) _on = new _WebSocketEventsImpl(this); | 
| -    return _on; | 
| -  } | 
| - | 
| void _addEventListener(String type, EventListener listener, [bool useCapture = null]) { | 
| if (useCapture === null) { | 
| _ptr.addEventListener(_unwrap(type), _unwrap(listener)); | 
| @@ -19847,6 +19852,11 @@ class _WindowImpl extends _EventTargetImpl implements Window { | 
|  | 
| _WindowImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  _WindowEventsImpl get on() { | 
| +    if (_on == null) _on = new _WindowEventsImpl(this); | 
| +    return _on; | 
| +  } | 
| + | 
| DOMApplicationCache get applicationCache() => _wrap(_ptr.applicationCache); | 
|  | 
| Navigator get clientInformation() => _wrap(_ptr.clientInformation); | 
| @@ -19955,11 +19965,6 @@ class _WindowImpl extends _EventTargetImpl implements Window { | 
|  | 
| Window get window() => _wrap(_ptr.window); | 
|  | 
| -  _WindowEventsImpl get on() { | 
| -    if (_on == null) _on = new _WindowEventsImpl(this); | 
| -    return _on; | 
| -  } | 
| - | 
| void _addEventListener(String type, EventListener listener, [bool useCapture = null]) { | 
| if (useCapture === null) { | 
| _ptr.addEventListener(_unwrap(type), _unwrap(listener)); | 
| @@ -20579,6 +20584,11 @@ class _WorkerNavigatorImpl extends _DOMTypeBase implements WorkerNavigator { | 
| class _XMLHttpRequestImpl extends _EventTargetImpl implements XMLHttpRequest { | 
| _XMLHttpRequestImpl._wrap(ptr) : super._wrap(ptr); | 
|  | 
| +  _XMLHttpRequestEventsImpl get on() { | 
| +    if (_on == null) _on = new _XMLHttpRequestEventsImpl(this); | 
| +    return _on; | 
| +  } | 
| + | 
| bool get asBlob() => _wrap(_ptr.asBlob); | 
|  | 
| void set asBlob(bool value) { _ptr.asBlob = _unwrap(value); } | 
| @@ -20607,11 +20617,6 @@ class _XMLHttpRequestImpl extends _EventTargetImpl implements XMLHttpRequest { | 
|  | 
| void set withCredentials(bool value) { _ptr.withCredentials = _unwrap(value); } | 
|  | 
| -  _XMLHttpRequestEventsImpl get on() { | 
| -    if (_on == null) _on = new _XMLHttpRequestEventsImpl(this); | 
| -    return _on; | 
| -  } | 
| - | 
| void abort() { | 
| _ptr.abort(); | 
| return; | 
| @@ -21766,6 +21771,8 @@ interface BlobBuilder default _BlobBuilderFactoryProvider { | 
|  | 
| interface BodyElement extends Element { | 
|  | 
| +  BodyElementEvents get on(); | 
| + | 
| String aLink; | 
|  | 
| String background; | 
| @@ -21775,8 +21782,6 @@ interface BodyElement extends Element { | 
| String link; | 
|  | 
| String vLink; | 
| - | 
| -  BodyElementEvents get on(); | 
| } | 
|  | 
| interface BodyElementEvents extends ElementEvents { | 
| @@ -24601,6 +24606,8 @@ interface DListElement extends Element { | 
|  | 
| interface DOMApplicationCache extends EventTarget { | 
|  | 
| +  DOMApplicationCacheEvents get on(); | 
| + | 
| static final int CHECKING = 2; | 
|  | 
| static final int DOWNLOADING = 3; | 
| @@ -24615,8 +24622,6 @@ interface DOMApplicationCache extends EventTarget { | 
|  | 
| final int status; | 
|  | 
| -  DOMApplicationCacheEvents get on(); | 
| - | 
| void abort(); | 
|  | 
| void _addEventListener(String type, EventListener listener, [bool useCapture]); | 
| @@ -25204,6 +25209,8 @@ interface DivElement extends Element { | 
| interface Document extends HtmlElement { | 
|  | 
|  | 
| +  DocumentEvents get on(); | 
| + | 
| final Element activeElement; | 
|  | 
| Element body; | 
| @@ -25242,8 +25249,6 @@ interface Document extends HtmlElement { | 
|  | 
| final String webkitVisibilityState; | 
|  | 
| -  DocumentEvents get on(); | 
| - | 
| Range caretRangeFromPoint(int x, int y); | 
|  | 
| CDATASection createCDATASection(String data); | 
| @@ -25388,6 +25393,8 @@ interface DocumentEvents extends ElementEvents { | 
|  | 
| interface DocumentFragment extends Node, NodeSelector { | 
|  | 
| +  ElementEvents get on(); | 
| + | 
| Element query(String selectors); | 
|  | 
| NodeList _querySelectorAll(String selectors); | 
| @@ -25727,6 +25734,8 @@ interface Element extends Node, NodeSelector default _ElementFactoryProvider { | 
| Element get parent(); | 
|  | 
|  | 
| +  ElementEvents get on(); | 
| + | 
| static final int ALLOW_KEYBOARD_INPUT = 1; | 
|  | 
| final int _childElementCount; | 
| @@ -25805,8 +25814,6 @@ interface Element extends Node, NodeSelector default _ElementFactoryProvider { | 
|  | 
| String webkitdropzone; | 
|  | 
| -  ElementEvents get on(); | 
| - | 
| void blur(); | 
|  | 
| void click(); | 
| @@ -26254,6 +26261,8 @@ interface EventSource extends EventTarget default _EventSourceFactoryProvider { | 
|  | 
| EventSource(String scriptUrl); | 
|  | 
| +  EventSourceEvents get on(); | 
| + | 
| static final int CLOSED = 2; | 
|  | 
| static final int CONNECTING = 0; | 
| @@ -26266,8 +26275,6 @@ interface EventSource extends EventTarget default _EventSourceFactoryProvider { | 
|  | 
| final String url; | 
|  | 
| -  EventSourceEvents get on(); | 
| - | 
| void _addEventListener(String type, EventListener listener, [bool useCapture]); | 
|  | 
| void close(); | 
| @@ -26747,11 +26754,11 @@ interface FrameElement extends Element { | 
|  | 
| interface FrameSetElement extends Element { | 
|  | 
| +  FrameSetElementEvents get on(); | 
| + | 
| String cols; | 
|  | 
| String rows; | 
| - | 
| -  FrameSetElementEvents get on(); | 
| } | 
|  | 
| interface FrameSetElementEvents extends ElementEvents { | 
| @@ -27386,6 +27393,8 @@ interface ImageElement extends Element { | 
|  | 
| interface InputElement extends Element { | 
|  | 
| +  InputElementEvents get on(); | 
| + | 
| String accept; | 
|  | 
| String align; | 
| @@ -27476,8 +27485,6 @@ interface InputElement extends Element { | 
|  | 
| final bool willValidate; | 
|  | 
| -  InputElementEvents get on(); | 
| - | 
| bool checkValidity(); | 
|  | 
| void select(); | 
| @@ -28685,12 +28692,12 @@ interface Notation extends Node { | 
|  | 
| interface Notification extends EventTarget { | 
|  | 
| +  NotificationEvents get on(); | 
| + | 
| String dir; | 
|  | 
| String replaceId; | 
|  | 
| -  NotificationEvents get on(); | 
| - | 
| void cancel(); | 
|  | 
| void show(); | 
| @@ -29950,6 +29957,8 @@ interface SVGElement extends Element { | 
|  | 
| interface SVGElementInstance extends EventTarget { | 
|  | 
| +  SVGElementInstanceEvents get on(); | 
| + | 
| final SVGElementInstanceList childNodes; | 
|  | 
| final SVGElement correspondingElement; | 
| @@ -29966,8 +29975,6 @@ interface SVGElementInstance extends EventTarget { | 
|  | 
| final SVGElementInstance previousSibling; | 
|  | 
| -  SVGElementInstanceEvents get on(); | 
| - | 
| void _addEventListener(String type, EventListener listener, [bool useCapture]); | 
|  | 
| bool _dispatchEvent(Event event); | 
| @@ -34415,6 +34422,8 @@ interface WebKitNamedFlow { | 
|  | 
| interface WebSocket extends EventTarget { | 
|  | 
| +  WebSocketEvents get on(); | 
| + | 
| static final int CLOSED = 3; | 
|  | 
| static final int CLOSING = 2; | 
| @@ -34437,8 +34446,6 @@ interface WebSocket extends EventTarget { | 
|  | 
| final String url; | 
|  | 
| -  WebSocketEvents get on(); | 
| - | 
| void _addEventListener(String type, EventListener listener, [bool useCapture]); | 
|  | 
| void close([int code, String reason]); | 
| @@ -34520,6 +34527,8 @@ interface Window extends EventTarget { | 
| void requestLayoutFrame(TimeoutHandler callback); | 
|  | 
|  | 
| +  WindowEvents get on(); | 
| + | 
| static final int PERSISTENT = 1; | 
|  | 
| static final int TEMPORARY = 0; | 
| @@ -34622,8 +34631,6 @@ interface Window extends EventTarget { | 
|  | 
| final Window window; | 
|  | 
| -  WindowEvents get on(); | 
| - | 
| void _addEventListener(String type, EventListener listener, [bool useCapture]); | 
|  | 
| void alert(String message); | 
| @@ -34996,6 +35003,8 @@ interface XMLHttpRequest extends EventTarget default _XMLHttpRequestFactoryProvi | 
|  | 
| XMLHttpRequest(); | 
|  | 
| +  XMLHttpRequestEvents get on(); | 
| + | 
| static final int DONE = 4; | 
|  | 
| static final int HEADERS_RECEIVED = 2; | 
| @@ -35028,8 +35037,6 @@ interface XMLHttpRequest extends EventTarget default _XMLHttpRequestFactoryProvi | 
|  | 
| bool withCredentials; | 
|  | 
| -  XMLHttpRequestEvents get on(); | 
| - | 
| void abort(); | 
|  | 
| void _addEventListener(String type, EventListener listener, [bool useCapture]); | 
|  |