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 0dec810aca4c80984e2a627074e74f5414f7a73e..18086eb4efa7b0e874975184554074c91494e1b1 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) { |
@@ -7985,21 +7994,6 @@ class DocumentFragment extends Node implements ParentNode native "DocumentFragme |
@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 @@ class DomImplementation extends Interceptor native "DOMImplementation" { |
@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 @@ 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; |
@@ -14512,10 +14493,6 @@ class HtmlDocument extends Document native "HTMLDocument" { |
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 |
@@ -29226,6 +29203,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 |
@@ -29255,11 +29241,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 |
@@ -29300,11 +29281,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 |
@@ -30383,6 +30359,21 @@ abstract class _DirectoryReaderSync extends Interceptor native "DirectoryReaderS |
@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) |
@@ -32705,6 +32696,9 @@ 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. |
@@ -34939,6 +34933,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; |
@@ -34976,6 +34974,43 @@ 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; |
+ |
+ 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 |
@@ -35367,6 +35402,17 @@ class _DOMWindowCrossFrame implements WindowBase { |
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 { |
@@ -35629,6 +35675,17 @@ 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(); |
+ 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 |