Chrome roll 202464->204370.

TBR=vsm@google.com

Review URL: https://codereview.chromium.org//16234006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23743 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 367774f..a3f0363 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -9097,6 +9097,23 @@
 // BSD-style license that can be found in the LICENSE file.
 
 
+@DomName('ElementTimeControl')
+@Unstable
+abstract class ElementTimeControl {
+
+  void beginElement();
+
+  void beginElementAt(num offset);
+
+  void endElement();
+
+  void endElementAt(num offset);
+}
+// 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.
+
+
 @DomName('ElementTraversal')
 @Unstable
 abstract class ElementTraversal {
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index f5c7f46..e8df740 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -9389,6 +9389,36 @@
 
 
 @DocsEditable
+@DomName('ElementTimeControl')
+@Unstable
+class ElementTimeControl extends NativeFieldWrapperClass1 {
+  ElementTimeControl.internal();
+
+  @DomName('ElementTimeControl.beginElement')
+  @DocsEditable
+  void beginElement() native "ElementTimeControl_beginElement_Callback";
+
+  @DomName('ElementTimeControl.beginElementAt')
+  @DocsEditable
+  void beginElementAt(num offset) native "ElementTimeControl_beginElementAt_Callback";
+
+  @DomName('ElementTimeControl.endElement')
+  @DocsEditable
+  void endElement() native "ElementTimeControl_endElement_Callback";
+
+  @DomName('ElementTimeControl.endElementAt')
+  @DocsEditable
+  void endElementAt(num offset) native "ElementTimeControl_endElementAt_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.
+
+// WARNING: Do not edit - generated code.
+
+
+@DocsEditable
 @DomName('ElementTraversal')
 @Unstable
 class ElementTraversal extends NativeFieldWrapperClass1 {
diff --git a/sdk/lib/svg/dart2js/svg_dart2js.dart b/sdk/lib/svg/dart2js/svg_dart2js.dart
index 62fb74b..8a8ad6c 100644
--- a/sdk/lib/svg/dart2js/svg_dart2js.dart
+++ b/sdk/lib/svg/dart2js/svg_dart2js.dart
@@ -1243,23 +1243,6 @@
 // BSD-style license that can be found in the LICENSE file.
 
 
-@DomName('ElementTimeControl')
-@Unstable
-abstract class ElementTimeControl {
-
-  void beginElement();
-
-  void beginElementAt(num offset);
-
-  void endElement();
-
-  void endElementAt(num offset);
-}
-// 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('SVGEllipseElement')
 @Unstable
diff --git a/sdk/lib/svg/dartium/svg_dartium.dart b/sdk/lib/svg/dartium/svg_dartium.dart
index 713e9ab..ee6484f 100644
--- a/sdk/lib/svg/dartium/svg_dartium.dart
+++ b/sdk/lib/svg/dartium/svg_dartium.dart
@@ -1357,36 +1357,6 @@
 
 
 @DocsEditable
-@DomName('ElementTimeControl')
-@Unstable
-class ElementTimeControl extends NativeFieldWrapperClass1 {
-  ElementTimeControl.internal();
-
-  @DomName('ElementTimeControl.beginElement')
-  @DocsEditable
-  void beginElement() native "ElementTimeControl_beginElement_Callback";
-
-  @DomName('ElementTimeControl.beginElementAt')
-  @DocsEditable
-  void beginElementAt(num offset) native "ElementTimeControl_beginElementAt_Callback";
-
-  @DomName('ElementTimeControl.endElement')
-  @DocsEditable
-  void endElement() native "ElementTimeControl_endElement_Callback";
-
-  @DomName('ElementTimeControl.endElementAt')
-  @DocsEditable
-  void endElementAt(num offset) native "ElementTimeControl_endElementAt_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.
-
-// WARNING: Do not edit - generated code.
-
-
-@DocsEditable
 @DomName('SVGEllipseElement')
 @Unstable
 class EllipseElement extends StyledElement implements Transformable, Tests, ExternalResourcesRequired, LangSpace {
diff --git a/tools/dom/scripts/htmlrenamer.py b/tools/dom/scripts/htmlrenamer.py
index cd1d45c..18e5949 100644
--- a/tools/dom/scripts/htmlrenamer.py
+++ b/tools/dom/scripts/htmlrenamer.py
@@ -727,18 +727,19 @@
       return 'indexed_db'
     if interface.id.startswith("SQL"):
       return 'web_sql'
+    if interface.id.startswith("SVG"):
+      return 'svg'
+    if interface.id.startswith("WebGL") or interface.id.startswith("OES") \
+        or interface.id.startswith("EXT"):
+      return 'web_gl'
 
     if 'Conditional' in interface.ext_attrs:
       if 'WEB_AUDIO' in interface.ext_attrs['Conditional']:
         return 'web_audio'
-      if 'SVG' in interface.ext_attrs['Conditional']:
-        return 'svg'
       if 'INDEXED_DATABASE' in interface.ext_attrs['Conditional']:
         return 'indexed_db'
       if 'SQL_DATABASE' in interface.ext_attrs['Conditional']:
         return 'web_sql'
-      if 'WEBGL' in interface.ext_attrs['Conditional']:
-        return 'web_gl'
 
     if interface.id in typed_array_renames:
       return 'typed_data'
diff --git a/tools/dom/scripts/idlnode.py b/tools/dom/scripts/idlnode.py
index 9726cb7..5fc3d22 100755
--- a/tools/dom/scripts/idlnode.py
+++ b/tools/dom/scripts/idlnode.py
@@ -482,9 +482,17 @@
     # getter <ReturnType>(args).  For now force the name to be __getter__,
     # but it should be operator[] later.
     if self.id is None:
-      if len(self.specials) != 1:
+      if self.specials == ['getter']:
+        self.id = '__getter__'
+      elif self.specials == ['setter']:
+        self.id = '__setter__'
+        # Special case: if it's a setter, ignore 'declared' return type
+        self.type = IDLType([('VoidType', None)])
+      elif self.specials == ['deleter']:
+        self.id = '__delete__'
+      else:
         raise Exception('Cannot handle %s: operation has no id' % ast)
-      self.id = '__%s__' % self.specials[0]
+
   def _extra_repr(self):
     return [self.arguments]
 
diff --git a/tools/dom/scripts/systemnative.py b/tools/dom/scripts/systemnative.py
index c016b7e..648f2eb 100644
--- a/tools/dom/scripts/systemnative.py
+++ b/tools/dom/scripts/systemnative.py
@@ -576,10 +576,12 @@
           'static ' if operation.is_static else '',
           self.SecureOutputType(operation.type.id),
           overload_name, argument_list)
+      is_custom = 'Custom' in operation.ext_attrs
       cpp_callback_name = self._GenerateNativeBinding(
           overload_name, (0 if operation.is_static else 1) + argument_count,
-          dart_declaration, 'Callback', False, False)
-      self._GenerateOperationNativeCallback(operation, operation.arguments[:argument_count], cpp_callback_name)
+          dart_declaration, 'Callback', is_custom, emit_metadata=False)
+      if not is_custom:
+        self._GenerateOperationNativeCallback(operation, operation.arguments[:argument_count], cpp_callback_name)
 
     self._GenerateDispatcherBody(
         info,
@@ -787,6 +789,7 @@
     start_index = 1 if needs_receiver else 0
     for i, argument in enumerate(arguments):
       type_info = self._TypeInfo(argument.type.id)
+      self._cpp_impl_includes |= set(type_info.conversion_includes())
       argument_expression_template, type, cls, function = \
           type_info.to_native_info(argument, self._interface.id)