Index: sdk/lib/html/dart2js/html_dart2js.dart |
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart |
index 729b216f68e7bbc080bade8b9a3097590e3d1e1e..aabef473b7a5ff790bc32e994e25a6d86b1410b2 100644 |
--- a/sdk/lib/html/dart2js/html_dart2js.dart |
+++ b/sdk/lib/html/dart2js/html_dart2js.dart |
@@ -111,7 +111,7 @@ abstract class _EntryArray implements List<Entry> native "EntryArray" {} |
@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 @@ class AnchorElement extends HtmlElement implements UrlUtils native "HTMLAnchorEl |
@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 @@ class DocumentFragment extends Node implements ParentNode native "DocumentFragme |
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) { |
@@ -7988,7 +7997,7 @@ class DocumentFragment extends Node implements ParentNode native "DocumentFragme |
@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" { |
+abstract class DocumentType extends Node implements ChildNode { |
// To suppress missing implicit constructor warnings. |
factory DocumentType._() { throw new UnsupportedError("Not supported"); } |
@@ -10901,19 +10910,6 @@ abstract class Element extends Node implements GlobalEventHandlers, ParentNode, |
@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; |
@@ -29177,6 +29173,15 @@ class _BeforeUnloadEventStreamProvider implements |
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 +29211,6 @@ abstract class WindowEventHandlers extends EventTarget { |
// 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 +29251,6 @@ abstract class WindowEventHandlers extends EventTarget { |
@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 |
@@ -31583,7 +31578,7 @@ abstract class CanvasImageSource {} |
* * [DOM Window](https://developer.mozilla.org/en-US/docs/DOM/window) from MDN. |
* * [Window](http://www.w3.org/TR/Window/) from the W3C. |
*/ |
-abstract class WindowBase implements EventTarget { |
+abstract class WindowBase { |
// Fields. |
/** |
@@ -32656,6 +32651,8 @@ class _CustomEventStreamProvider<T extends Event> |
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 +34887,10 @@ abstract class ReadyState { |
*/ |
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 +34928,39 @@ class _WrappedEvent implements Event { |
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; |
} |
// 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 |
@@ -35580,6 +35614,16 @@ class KeyEvent extends _WrappedEvent implements KeyboardEvent { |
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(); |
} |
// 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 |