Index: sdk/lib/html/dart2js/html_dart2js.dart |
=================================================================== |
--- sdk/lib/html/dart2js/html_dart2js.dart (revision 32687) |
+++ sdk/lib/html/dart2js/html_dart2js.dart (working copy) |
@@ -111,7 +111,7 @@ |
@DocsEditable() |
@DomName('AbstractWorker') |
-class AbstractWorker extends Interceptor implements EventTarget native "AbstractWorker" { |
+abstract class AbstractWorker extends Interceptor implements EventTarget native "AbstractWorker" { |
// To suppress missing implicit constructor warnings. |
factory AbstractWorker._() { throw new UnsupportedError("Not supported"); } |
@@ -266,6 +266,12 @@ |
@DocsEditable() |
String href; |
+ @DomName('HTMLAnchorElement.origin') |
+ @DocsEditable() |
+ // WebKit only |
+ @Experimental() // non-standard |
+ final String origin; |
+ |
@DomName('HTMLAnchorElement.password') |
@DocsEditable() |
@Experimental() // untriaged |
@@ -7843,16 +7849,19 @@ |
validator: validator, treeSanitizer: treeSanitizer); |
} |
+ HtmlCollection get _children => throw new UnimplementedError( |
+ 'Use _docChildren instead'); |
+ |
// Native field is used only by Dart code so does not lead to instantiation |
// of native classes |
@Creates('Null') |
- List<Element> _children; |
+ List<Element> _docChildren; |
List<Element> get children { |
- if (_children == null) { |
- _children = new FilteredElementList(this); |
+ if (_docChildren == null) { |
+ _docChildren = new FilteredElementList(this); |
} |
- return _children; |
+ return _docChildren; |
} |
void set children(List<Element> value) { |
@@ -7985,21 +7994,6 @@ |
@DocsEditable() |
-@DomName('DocumentType') |
-// http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-412266927 |
-@deprecated // stable |
-class DocumentType extends Node implements ChildNode native "DocumentType" { |
- // To suppress missing implicit constructor warnings. |
- factory DocumentType._() { throw new UnsupportedError("Not supported"); } |
- |
- // From ChildNode |
-} |
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
- |
-@DocsEditable() |
@DomName('DOMError') |
class DomError extends Interceptor native "DOMError" { |
// To suppress missing implicit constructor warnings. |
@@ -8086,11 +8080,11 @@ |
@DomName('DOMImplementation.createDocument') |
@DocsEditable() |
- Document createDocument(String namespaceURI, String qualifiedName, DocumentType doctype) native; |
+ Document createDocument(String namespaceURI, String qualifiedName, _DocumentType doctype) native; |
@DomName('DOMImplementation.createDocumentType') |
@DocsEditable() |
- DocumentType createDocumentType(String qualifiedName, String publicId, String systemId) native; |
+ _DocumentType createDocumentType(String qualifiedName, String publicId, String systemId) native; |
@JSName('createHTMLDocument') |
@DomName('DOMImplementation.createHTMLDocument') |
@@ -10901,19 +10895,6 @@ |
@DocsEditable() |
bool hidden; |
- /** |
- * The current state of IME composition. |
- * |
- * ## Other resources |
- * |
- * * [Input method editor specification] |
- * (http://www.w3.org/TR/ime-api/) from W3C. |
- */ |
- @DomName('Element.inputMethodContext') |
- @DocsEditable() |
- @Experimental() // untriaged |
- final InputMethodContext inputMethodContext; |
- |
@DomName('Element.isContentEditable') |
@DocsEditable() |
final bool isContentEditable; |
@@ -14512,10 +14493,6 @@ |
class HtmlFormControlsCollection extends HtmlCollection native "HTMLFormControlsCollection" { |
// To suppress missing implicit constructor warnings. |
factory HtmlFormControlsCollection._() { throw new UnsupportedError("Not supported"); } |
- |
- @DomName('HTMLFormControlsCollection.__getter__') |
- @DocsEditable() |
- Node __getter__(int index) native; |
} |
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
@@ -29177,6 +29154,15 @@ |
String getEventType(EventTarget target) { |
return _eventType; |
} |
+ |
+ ElementStream<BeforeUnloadEvent> forElement(Element e, {bool useCapture: false}) { |
+ return new _ElementEventStreamImpl(e, _eventType, useCapture); |
+ } |
+ |
+ ElementStream<BeforeUnloadEvent> _forElementList(ElementList e, |
+ {bool useCapture: false}) { |
+ return new _ElementListEventStreamImpl(e, _eventType, useCapture); |
+ } |
} |
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
@@ -29206,11 +29192,6 @@ |
// To suppress missing implicit constructor warnings. |
factory WindowEventHandlers._() { throw new UnsupportedError("Not supported"); } |
- @DomName('WindowEventHandlers.beforeunloadEvent') |
- @DocsEditable() |
- @Experimental() // untriaged |
- static const EventStreamProvider<Event> beforeUnloadEvent = const EventStreamProvider<Event>('beforeunload'); |
- |
@DomName('WindowEventHandlers.hashchangeEvent') |
@DocsEditable() |
@Experimental() // untriaged |
@@ -29251,11 +29232,6 @@ |
@Experimental() // untriaged |
static const EventStreamProvider<Event> unloadEvent = const EventStreamProvider<Event>('unload'); |
- @DomName('WindowEventHandlers.onbeforeunload') |
- @DocsEditable() |
- @Experimental() // untriaged |
- Stream<Event> get onBeforeUnload => beforeUnloadEvent.forTarget(this); |
- |
@DomName('WindowEventHandlers.onhashchange') |
@DocsEditable() |
@Experimental() // untriaged |
@@ -30334,6 +30310,21 @@ |
@DocsEditable() |
+@DomName('DocumentType') |
+// http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-412266927 |
+@deprecated // stable |
+abstract class _DocumentType extends Node implements ChildNode native "DocumentType" { |
+ // To suppress missing implicit constructor warnings. |
+ factory _DocumentType._() { throw new UnsupportedError("Not supported"); } |
+ |
+ // From ChildNode |
+} |
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+ |
+@DocsEditable() |
@DomName('WebKitPoint') |
@SupportedBrowser(SupportedBrowser.CHROME) |
@SupportedBrowser(SupportedBrowser.SAFARI) |
@@ -32656,6 +32647,9 @@ |
String getEventType(EventTarget target) { |
return _eventTypeGetter(target); |
} |
+ |
+ String get _eventType => |
+ throw new UnsupportedError('Access type through getEventType method.'); |
} |
// DO NOT EDIT- this file is generated from running tool/generator.sh. |
@@ -34890,6 +34884,10 @@ |
*/ |
class _WrappedEvent implements Event { |
final Event wrapped; |
+ |
+ /** The CSS selector involved with event delegation. */ |
+ String _selector; |
+ |
_WrappedEvent(this.wrapped); |
bool get bubbles => wrapped.bubbles; |
@@ -34927,6 +34925,43 @@ |
void stopPropagation() { |
wrapped.stopPropagation(); |
} |
+ |
+ /** |
+ * A pointer to the element whose CSS selector matched within which an event |
+ * was fired. If this Event was not associated with any Event delegation, |
+ * accessing this value will throw an [UnsupportedError]. |
+ */ |
+ Element get matchingTarget { |
+ if (_selector == null) { |
+ throw new UnsupportedError('Cannot call matchingTarget if this Event did' |
+ ' not arise as a result of event delegation.'); |
+ } |
+ var currentTarget = this.currentTarget; |
+ var target = this.target; |
+ var matchedTarget; |
+ do { |
+ if (target.matches(_selector)) return target; |
+ target = target.parent; |
+ } while (target != null && target != currentTarget.parent); |
+ throw new StateError('No selector matched for populating matchedTarget.'); |
+ } |
+ |
+ /** |
+ * This event's path, taking into account shadow DOM. |
+ * |
+ * ## Other resources |
+ * |
+ * * [Shadow DOM extensions to Event] |
+ * (http://w3c.github.io/webcomponents/spec/shadow/#extensions-to-event) from |
+ * W3C. |
+ */ |
+ // https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#extensions-to-event |
+ @Experimental() |
+ List<Node> get path => wrapped.path; |
+ |
+ dynamic get _get_currentTarget => wrapped._get_currentTarget; |
+ |
+ dynamic get _get_target => wrapped._get_target; |
} |
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |
@@ -35318,6 +35353,17 @@ |
return new _DOMWindowCrossFrame(w); |
} |
} |
+ |
+ // TODO(efortuna): Remove this method. dartbug.com/16814 |
+ Events get on => throw new UnimplementedError(); |
+ // TODO(efortuna): Remove this method. dartbug.com/16814 |
+ void addEventListener(String type, EventListener listener, [bool useCapture]) |
+ => throw new UnimplementedError(); |
+ // TODO(efortuna): Remove this method. dartbug.com/16814 |
+ bool dispatchEvent(Event event) => throw new UnimplementedError(); |
+ // TODO(efortuna): Remove this method. dartbug.com/16814 |
+ void removeEventListener(String type, EventListener listener, |
+ [bool useCapture]) => throw new UnimplementedError(); |
} |
class _LocationCrossFrame implements LocationBase { |
@@ -35580,6 +35626,17 @@ |
throw new UnsupportedError( |
"Cannot initialize a KeyboardEvent from a KeyEvent."); |
} |
+ int get _layerX => throw new UnsupportedError('Not applicable to KeyEvent'); |
+ int get _layerY => throw new UnsupportedError('Not applicable to KeyEvent'); |
+ int get _pageX => throw new UnsupportedError('Not applicable to KeyEvent'); |
+ int get _pageY => throw new UnsupportedError('Not applicable to KeyEvent'); |
+ @Experimental() // untriaged |
+ bool getModifierState(String keyArgument) => throw new UnimplementedError(); |
+ @Experimental() // untriaged |
+ int get location => throw new UnimplementedError(); |
+ @Experimental() // untriaged |
+ bool get repeat => throw new UnimplementedError(); |
+ dynamic get _get_view => throw new UnimplementedError(); |
} |
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
// for details. All rights reserved. Use of this source code is governed by a |