Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(872)

Unified Diff: lib/html/dartium/html_dartium.dart

Issue 10696209: MutationObserver (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
Index: lib/html/dartium/html_dartium.dart
diff --git a/lib/html/dartium/html_dartium.dart b/lib/html/dartium/html_dartium.dart
index 3993404a7272d1f7bceb7cf9f55d10eebc0abe74..d8bc6df0b85d5fe7f7115599d13a08636dde3252 100644
--- a/lib/html/dartium/html_dartium.dart
+++ b/lib/html/dartium/html_dartium.dart
@@ -13166,15 +13166,6 @@ class _MouseEventImpl extends _UIEventImpl implements MouseEvent {
// WARNING: Do not edit - generated code.
-class _MutationCallbackImpl extends NativeFieldWrapperClass1 implements MutationCallback {
-
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
class _MutationEventImpl extends _EventImpl implements MutationEvent {
int get attrChange() native "MutationEvent_attrChange_Getter";
@@ -20736,16 +20727,84 @@ class _WebKitCSSTransformValueImpl extends _CSSValueListImpl implements CSSTrans
// 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.
-// WARNING: Do not edit - generated code.
+class _MutationObserverFactoryProvider {
+ factory MutationObserver(MutationCallback callback) => _createMutationObserver(callback);
+ static MutationObserver _createMutationObserver(MutationCallback callback) native "WebKitMutationObserver_constructor_Callback";
+}
+// 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.
-class _WebKitMutationObserverImpl extends NativeFieldWrapperClass1 implements WebKitMutationObserver {
+class _WebKitMutationObserverImpl extends NativeFieldWrapperClass1 implements MutationObserver {
void disconnect() native "WebKitMutationObserver_disconnect_Callback";
- void observe(Node target, Map options) native "WebKitMutationObserver_observe_Callback";
+ void _observe(Node target, Map options) native "WebKitMutationObserver__observe_Callback";
List<MutationRecord> takeRecords() native "WebKitMutationObserver_takeRecords_Callback";
+ void observe(Node target,
+ [Map options,
+ bool childList,
+ bool attributes,
+ bool characterData,
+ bool subtree,
+ bool attributeOldValue,
+ bool characterDataOldValue,
+ List<String> attributeFilter]) {
+
+ // Parse options into map of known type.
+ var parsedOptions = _createDict();
+
+ if (options != null) {
+ options.forEach((k, v) {
+ if (_boolKeys.containsKey(k)) {
+ _add(parsedOptions, k, true === v);
+ } else if (k == 'attributeFilter') {
+ _add(parsedOptions, k, _fixupList(v));
+ } else {
+ throw new IllegalArgumentException(
+ "Illegal MutationObserver.observe option '$k'");
+ }
+ });
+ }
+
+ // Override options passed in the map with named optional arguments.
+ override(key, value) {
+ if (value != null) _add(parsedOptions, key, value);
+ }
+
+ override('childList', childList);
+ override('attributes', attributes);
+ override('characterData', characterData);
+ override('subtree', subtree);
+ override('attributeOldValue', attributeOldValue);
+ override('characterDataOldValue', characterDataOldValue);
+ if (attributeFilter != null) {
+ override('attributeFilter', _fixupList(attributeFilter));
+ }
+
+ _call(target, parsedOptions);
+ }
+
+ // TODO: Change to a set when const Sets are available.
+ static final _boolKeys =
+ const {'childList': true,
+ 'attributes': true,
+ 'characterData': true,
+ 'subtree': true,
+ 'attributeOldValue': true,
+ 'characterDataOldValue': true };
+
+ static _createDict() => {};
+ static _add(Map m, String key, value) { m[key] = value; }
+ static _lookup(Map m, String key) => m[key];
+ static _fixupList(list) => list;
+
+ _call(Node target, options) {
+ _observe(target, options);
+ }
+
}
// 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
@@ -30747,9 +30806,7 @@ interface MouseEvent extends UIEvent default _MouseEventFactoryProvider {
// WARNING: Do not edit - generated code.
-/// @domName MutationCallback
-interface MutationCallback {
-}
+typedef bool MutationCallback(List<MutationRecord> mutations, WebKitMutationObserver observer);
// 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.
@@ -30789,6 +30846,33 @@ interface MutationEvent extends Event {
// WARNING: Do not edit - generated code.
+/// @domName WebKitMutationObserver
+interface MutationObserver default _MutationObserverFactoryProvider {
+
+ MutationObserver(MutationCallback callback);
+
+ /** @domName WebKitMutationObserver.disconnect */
+ void disconnect();
+
+ /** @domName WebKitMutationObserver.takeRecords */
+ List<MutationRecord> takeRecords();
+
+ void observe(Node target,
+ [Map options,
+ bool childList,
+ bool attributes,
+ bool characterData,
+ bool subtree,
+ bool attributeOldValue,
+ bool characterDataOldValue,
+ List<String> attributeFilter]);
+}
+// 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.
+
+// WARNING: Do not edit - generated code.
+
/// @domName MutationRecord
interface MutationRecord {
@@ -38874,24 +38958,6 @@ interface WebKitCSSFilterValue extends CSSValueList {
// WARNING: Do not edit - generated code.
-/// @domName WebKitMutationObserver
-interface WebKitMutationObserver {
-
- /** @domName WebKitMutationObserver.disconnect */
- void disconnect();
-
- /** @domName WebKitMutationObserver.observe */
- void observe(Node target, Map options);
-
- /** @domName WebKitMutationObserver.takeRecords */
- List<MutationRecord> takeRecords();
-}
-// 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.
-
-// WARNING: Do not edit - generated code.
-
/// @domName WebKitNamedFlow
interface WebKitNamedFlow {

Powered by Google App Engine
This is Rietveld 408576698