| Index: mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
 | 
| diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
 | 
| index d154c5b1b15b94bb75a4990a97ec951021583112..60107d875a206f9fce2762e2db9b5fa4854b3d3f 100644
 | 
| --- a/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
 | 
| +++ b/mojo/dart/packages/_mojo_for_test_only/lib/test/echo_service.mojom.dart
 | 
| @@ -8,6 +8,8 @@ import 'dart:async';
 | 
|  
 | 
|  import 'package:mojo/bindings.dart' as bindings;
 | 
|  import 'package:mojo/core.dart' as core;
 | 
| +import 'package:mojo/mojo/mojom_types.mojom.dart' as mojom_types;
 | 
| +import 'package:mojo/mojo/service_describer.mojom.dart' as service_describer;
 | 
|  
 | 
|  
 | 
|  
 | 
| @@ -77,6 +79,17 @@ class EchoServiceEchoStringParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _echo_service_EchoService_EchoString_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'EchoServiceEchoStringParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Value')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +..stringType = (new mojom_types.StringType()..nullable = true)),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class EchoServiceEchoStringResponseParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -144,6 +157,17 @@ class EchoServiceEchoStringResponseParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _echo_service_EchoService_EchoString_ResponseParams__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'EchoServiceEchoStringResponseParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Value')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +..stringType = (new mojom_types.StringType()..nullable = true)),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class EchoServiceDelayedEchoStringParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -220,6 +244,21 @@ class EchoServiceDelayedEchoStringParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _echo_service_EchoService_DelayedEchoString_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'EchoServiceDelayedEchoStringParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Value')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +..stringType = (new mojom_types.StringType()..nullable = true)),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Millis')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.INT32),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class EchoServiceDelayedEchoStringResponseParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -287,12 +326,53 @@ class EchoServiceDelayedEchoStringResponseParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _echo_service_EchoService_DelayedEchoString_ResponseParams__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'EchoServiceDelayedEchoStringResponseParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Value')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +..stringType = (new mojom_types.StringType()..nullable = true)),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
| +
 | 
|  const int kEchoService_echoString_name = 0;
 | 
|  const int kEchoService_delayedEchoString_name = 1;
 | 
|  
 | 
|  const String EchoServiceName =
 | 
|        'test::EchoService';
 | 
|  
 | 
| +mojom_types.MojomInterface _echo_service_EchoService__() {
 | 
| +  return new mojom_types.MojomInterface()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = "EchoService")
 | 
| +    ..interfaceName = "EchoService"
 | 
| +    ..methods = <int, mojom_types.MojomMethod>{
 | 
| +kEchoService_echoString_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "EchoString")
 | 
| +        ..ordinal = kEchoService_echoString_name
 | 
| +        ..responseParams = _echo_service_EchoService_EchoString_ResponseParams__()..parameters = _echo_service_EchoService_EchoString_Params__(),kEchoService_delayedEchoString_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "DelayedEchoString")
 | 
| +        ..ordinal = kEchoService_delayedEchoString_name
 | 
| +        ..responseParams = _echo_service_EchoService_DelayedEchoString_ResponseParams__()..parameters = _echo_service_EchoService_DelayedEchoString_Params__(),
 | 
| +    };
 | 
| +}
 | 
| +
 | 
| +class _EchoServiceServiceDescription extends service_describer.ServiceDescription {
 | 
| +  // Avoid infinite loop by overriding serviceDescription field.
 | 
| +  final service_describer.ServiceDescription serviceDescription = null;
 | 
| +dynamic getTopLevelInterface([Function responseFactory = null]) {
 | 
| +    return _echo_service_EchoService__();
 | 
| +  }
 | 
| +  dynamic getTypeDefinition(String typeKey,[Function responseFactory = null]) {
 | 
| +    return getAllMojomTypeDefinitions()[typeKey];
 | 
| +  }
 | 
| +  dynamic getAllTypeDefinitions([Function responseFactory = null]) {
 | 
| +    return getAllMojomTypeDefinitions();
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  abstract class EchoService {
 | 
|    dynamic echoString(String value,[Function responseFactory = null]);
 | 
|    dynamic delayedEchoString(String value,int millis,[Function responseFactory = null]);
 | 
| @@ -317,6 +397,9 @@ class EchoServiceProxyImpl extends bindings.Proxy {
 | 
|  
 | 
|    String get name => EchoServiceName;
 | 
|  
 | 
| +  service_describer.ServiceDescription get serviceDescription =>
 | 
| +    new _EchoServiceServiceDescription();
 | 
| +
 | 
|    void handleResponse(bindings.ServiceMessage message) {
 | 
|      switch (message.header.type) {
 | 
|        case kEchoService_echoString_name:
 | 
| @@ -560,6 +643,66 @@ class EchoServiceStub extends bindings.Stub {
 | 
|    }
 | 
|  
 | 
|    int get version => 0;
 | 
| +
 | 
| +  service_describer.ServiceDescription get serviceDescription =>
 | 
| +    new _EchoServiceServiceDescription();
 | 
| +}
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +var _MojomDesc__ = _initDescriptions();
 | 
| +
 | 
| +Map<String, mojom_types.UserDefinedType> _initDescriptions() {
 | 
| +  var map = new Map<String, mojom_types.UserDefinedType>();
 | 
| +  
 | 
| +  map["_echo_service_EchoService_EchoString_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _echo_service_EchoService_EchoString_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_echo_service_EchoService_EchoString_ResponseParams__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _echo_service_EchoService_EchoString_ResponseParams__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_echo_service_EchoService_DelayedEchoString_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _echo_service_EchoService_DelayedEchoString_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_echo_service_EchoService_DelayedEchoString_ResponseParams__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _echo_service_EchoService_DelayedEchoString_ResponseParams__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_echo_service_EchoService__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..interfaceType = _echo_service_EchoService__();
 | 
| +
 | 
| +  return map;
 | 
| +}
 | 
| +
 | 
| +Map<String, mojom_types.UserDefinedType> getAllMojomTypeDefinitions() {
 | 
| +  return _MojomDesc__;
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |