Version 1.5.3

svn merge -c 37838 https://dart.googlecode.com/svn/branches/bleeding_edge 1.5
svn merge -c 37853 https://dart.googlecode.com/svn/branches/bleeding_edge 1.5
svn merge -c 37854 https://dart.googlecode.com/svn/branches/bleeding_edge 1.5
svn merge -c 37855 https://dart.googlecode.com/svn/branches/bleeding_edge 1.5
svn merge -c 37856 https://dart.googlecode.com/svn/branches/bleeding_edge 1.5
svn merge -c 37953 https://dart.googlecode.com/svn/branches/bleeding_edge 1.5

Merge bleeding edge 37883 by applying:
https://codereview.chromium.org/367913002/

Merge chrome / blink roll to 36.0.1985.97 by applying
https://codereview.chromium.org/365863002/
https://codereview.chromium.org/369443005/

R=kasperl@google.com

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

git-svn-id: http://dart.googlecode.com/svn/branches/1.5@37972 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc
index 5b28264..f7e6b57b 100644
--- a/runtime/vm/class_finalizer.cc
+++ b/runtime/vm/class_finalizer.cc
@@ -731,6 +731,7 @@
                                              const TypeArguments& arguments,
                                              Error* bound_error) {
   if (!cls.is_type_finalized()) {
+    FinalizeTypeParameters(cls);
     FinalizeUpperBounds(cls);
   }
   // Note that when finalizing a type, we need to verify the bounds in both
diff --git a/sdk/lib/_blink/dartium/_blink_dartium.dart b/sdk/lib/_blink/dartium/_blink_dartium.dart
index f32673f..fcf3ac6 100644
--- a/sdk/lib/_blink/dartium/_blink_dartium.dart
+++ b/sdk/lib/_blink/dartium/_blink_dartium.dart
@@ -3655,7 +3655,7 @@
 
   // Generated overload resolver
 Native_IDBDatabase_transaction(mthis, storeName_OR_storeNames, mode) {
-    if ((mode is String || mode == null) && (storeName_OR_storeNames is List<String> || storeName_OR_storeNames == null)) {
+    if ((mode is String || mode == null) && (storeName_OR_storeNames is DomStringList || storeName_OR_storeNames == null)) {
       return Native_IDBDatabase__transaction_1_Callback(mthis, storeName_OR_storeNames, mode);
     }
     if ((mode is String || mode == null) && (storeName_OR_storeNames is List<String> || storeName_OR_storeNames == null)) {
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 2e8e500..a5179d7 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -11981,7 +11981,7 @@
 
 
 @DomName('Event')
-class Event extends Interceptor native "Event" {
+class Event extends Interceptor native "Event,InputEvent" {
   // In JS, canBubble and cancelable are technically required parameters to
   // init*Event. In practice, though, if they aren't provided they simply
   // default to false (since that's Boolean(undefined)).
diff --git a/tests/html/html.status b/tests/html/html.status
index 782d633..fac30b9 100644
--- a/tests/html/html.status
+++ b/tests/html/html.status
@@ -7,8 +7,8 @@
 dromaeo_smoke_test: Skip # Issue 14521, 8257
 
 [ $compiler == none && ($runtime == drt || $runtime == dartium || $runtime == ContentShellOnAndroid) ]
-form_data_test/functional: Fail # Issue 18931 (Disabled for Chrome 35 roll)
-indexeddb_5_test: Fail # Issue 18931 (Disabled for Chrome 35 roll)
+form_data_test/functional: Pass, Timeout # Issue 18931 (Disabled for Chrome 35 roll)
+indexeddb_5_test: Pass, Timeout # Issue 18931 (Disabled for Chrome 35 roll)
 custom/attribute_changed_callback_test/unsupported_on_polyfill: Fail # Issue 18931 (Disabled for Chrome 35 roll)
 
 [ $compiler == dart2js && $csp ]
diff --git a/tools/VERSION b/tools/VERSION
index 96a2ed6..968b1c7 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -26,6 +26,6 @@
 CHANNEL stable
 MAJOR 1
 MINOR 5
-PATCH 2
+PATCH 3
 PRERELEASE 0
 PRERELEASE_PATCH 0
diff --git a/tools/dom/scripts/generator.py b/tools/dom/scripts/generator.py
index e5b4190..43ca17f 100644
--- a/tools/dom/scripts/generator.py
+++ b/tools/dom/scripts/generator.py
@@ -123,6 +123,9 @@
     'ApplicationCache':
         'ApplicationCache,DOMApplicationCache,OfflineResourceList',
 
+    'Event':
+        'Event,InputEvent',
+
     'HTMLTableCellElement':
         'HTMLTableCellElement,HTMLTableDataCellElement,HTMLTableHeaderCellElement',
 
diff --git a/tools/dom/scripts/htmldartgenerator.py b/tools/dom/scripts/htmldartgenerator.py
index c81be53..b6c4346 100644
--- a/tools/dom/scripts/htmldartgenerator.py
+++ b/tools/dom/scripts/htmldartgenerator.py
@@ -358,7 +358,8 @@
       for i in reversed(range(0, argument_count)):
         argument = signatures[signature_index][i]
         parameter_name = parameter_names[i]
-        test_type = self._DartType(argument.type.id)
+
+        test_type = self._NarrowToImplementationType(argument.type.id)
 
         if test_type in ['dynamic', 'Object']:
           checks.append('%s != null' % parameter_name)
@@ -755,6 +756,12 @@
     if type_name in _secure_base_types:
       return _secure_base_types[type_name]
 
+  def _NarrowToImplementationType(self, type_name):
+    return self._type_registry.TypeInfo(type_name).narrow_dart_type()
+
+  def _NarrowInputType(self, type_name):
+    return self._NarrowToImplementationType(type_name)
+
   def _DartType(self, type_name):
     return self._type_registry.DartType(type_name)
 
diff --git a/tools/dom/scripts/systemhtml.py b/tools/dom/scripts/systemhtml.py
index 42d252e..1bfb1d7 100644
--- a/tools/dom/scripts/systemhtml.py
+++ b/tools/dom/scripts/systemhtml.py
@@ -1145,12 +1145,6 @@
   def CustomJSMembers(self):
     return _js_custom_members
 
-  def _NarrowToImplementationType(self, type_name):
-    return self._type_registry.TypeInfo(type_name).narrow_dart_type()
-
-  def _NarrowInputType(self, type_name):
-    return self._NarrowToImplementationType(type_name)
-
   def _FindShadowedAttribute(self, attr):
     """Returns (attribute, superinterface) or (None, None)."""
     def FindInParent(interface):