| Index: mojo/dart/packages/mojo_services/lib/mojo/ui/view_trees.mojom.dart
 | 
| diff --git a/mojo/dart/packages/mojo_services/lib/mojo/ui/view_trees.mojom.dart b/mojo/dart/packages/mojo_services/lib/mojo/ui/view_trees.mojom.dart
 | 
| index 38029edccd317baf7258a825f1b35c06d324e93b..aab717c0706363cc3eaca06b182f0f2b2b05bcd4 100644
 | 
| --- a/mojo/dart/packages/mojo_services/lib/mojo/ui/view_trees.mojom.dart
 | 
| +++ b/mojo/dart/packages/mojo_services/lib/mojo/ui/view_trees.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;
 | 
|  import 'package:mojo_services/mojo/ui/layouts.mojom.dart' as layouts_mojom;
 | 
|  import 'package:mojo_services/mojo/ui/views.mojom.dart' as views_mojom;
 | 
|  
 | 
| @@ -70,6 +72,12 @@ class ViewTreeOnLayoutParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _view_trees_ViewTree_OnLayout_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ViewTreeOnLayoutParams')
 | 
| +    ..fields = <mojom_types.StructField>[];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ViewTreeOnLayoutResponseParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -128,6 +136,12 @@ class ViewTreeOnLayoutResponseParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _view_trees_ViewTree_OnLayout_ResponseParams__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ViewTreeOnLayoutResponseParams')
 | 
| +    ..fields = <mojom_types.StructField>[];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ViewTreeOnRootUnavailableParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -195,6 +209,16 @@ class ViewTreeOnRootUnavailableParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _view_trees_ViewTree_OnRootUnavailable_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ViewTreeOnRootUnavailableParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'RootKey')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT32),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ViewTreeOnRootUnavailableResponseParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -253,6 +277,12 @@ class ViewTreeOnRootUnavailableResponseParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _view_trees_ViewTree_OnRootUnavailable_ResponseParams__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ViewTreeOnRootUnavailableResponseParams')
 | 
| +    ..fields = <mojom_types.StructField>[];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ViewTreeHostRequestLayoutParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -311,6 +341,12 @@ class ViewTreeHostRequestLayoutParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _view_trees_ViewTreeHost_RequestLayout_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ViewTreeHostRequestLayoutParams')
 | 
| +    ..fields = <mojom_types.StructField>[];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ViewTreeHostSetRootParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -388,6 +424,25 @@ class ViewTreeHostSetRootParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _view_trees_ViewTreeHost_SetRoot_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ViewTreeHostSetRootParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'RootKey')
 | 
| +        ..type = (new mojom_types.Type()..simpleType = mojom_types.SimpleType.UINT32),
 | 
| +      
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'RootViewToken')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +  
 | 
| +    ..identifier = '_views_ViewToken__'
 | 
| +    ..typeKey = '_views_ViewToken__'
 | 
| +  )),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ViewTreeHostResetRootParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -446,6 +501,12 @@ class ViewTreeHostResetRootParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _view_trees_ViewTreeHost_ResetRoot_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ViewTreeHostResetRootParams')
 | 
| +    ..fields = <mojom_types.StructField>[];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ViewTreeHostLayoutRootParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -514,6 +575,21 @@ class ViewTreeHostLayoutRootParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _view_trees_ViewTreeHost_LayoutRoot_Params__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ViewTreeHostLayoutRootParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'RootLayoutParams')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +  
 | 
| +    ..identifier = '_layouts_ViewLayoutParams__'
 | 
| +    ..typeKey = '_layouts_ViewLayoutParams__'
 | 
| +  )),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
|  
 | 
|  class ViewTreeHostLayoutRootResponseParams extends bindings.Struct {
 | 
|    static const List<bindings.StructDataHeader> kVersions = const [
 | 
| @@ -582,12 +658,59 @@ class ViewTreeHostLayoutRootResponseParams extends bindings.Struct {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +mojom_types.MojomStruct _view_trees_ViewTreeHost_LayoutRoot_ResponseParams__() {
 | 
| +  return new mojom_types.MojomStruct()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = 'ViewTreeHostLayoutRootResponseParams')
 | 
| +    ..fields = <mojom_types.StructField>[
 | 
| +      new mojom_types.StructField()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = 'Info')
 | 
| +        ..type = (new mojom_types.Type()
 | 
| +    ..typeReference = (new mojom_types.TypeReference()
 | 
| +    ..nullable = true
 | 
| +  
 | 
| +  
 | 
| +    ..identifier = '_layouts_ViewLayoutInfo__'
 | 
| +    ..typeKey = '_layouts_ViewLayoutInfo__'
 | 
| +  )),
 | 
| +      ];
 | 
| +}
 | 
| +
 | 
| +
 | 
|  const int kViewTree_onLayout_name = 0;
 | 
|  const int kViewTree_onRootUnavailable_name = 1;
 | 
|  
 | 
|  const String ViewTreeName =
 | 
|        'mojo::ui::ViewTree';
 | 
|  
 | 
| +mojom_types.MojomInterface _view_trees_ViewTree__() {
 | 
| +  return new mojom_types.MojomInterface()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = "ViewTree")
 | 
| +    ..interfaceName = "ViewTree"
 | 
| +    ..methods = <int, mojom_types.MojomMethod>{
 | 
| +kViewTree_onLayout_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "OnLayout")
 | 
| +        ..ordinal = kViewTree_onLayout_name
 | 
| +        ..responseParams = _view_trees_ViewTree_OnLayout_ResponseParams__()..parameters = _view_trees_ViewTree_OnLayout_Params__(),kViewTree_onRootUnavailable_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "OnRootUnavailable")
 | 
| +        ..ordinal = kViewTree_onRootUnavailable_name
 | 
| +        ..responseParams = _view_trees_ViewTree_OnRootUnavailable_ResponseParams__()..parameters = _view_trees_ViewTree_OnRootUnavailable_Params__(),
 | 
| +    };
 | 
| +}
 | 
| +
 | 
| +class _ViewTreeServiceDescription extends service_describer.ServiceDescription {
 | 
| +  // Avoid infinite loop by overriding serviceDescription field.
 | 
| +  final service_describer.ServiceDescription serviceDescription = null;
 | 
| +dynamic getTopLevelInterface([Function responseFactory = null]) {
 | 
| +    return _view_trees_ViewTree__();
 | 
| +  }
 | 
| +  dynamic getTypeDefinition(String typeKey,[Function responseFactory = null]) {
 | 
| +    return getAllMojomTypeDefinitions()[typeKey];
 | 
| +  }
 | 
| +  dynamic getAllTypeDefinitions([Function responseFactory = null]) {
 | 
| +    return getAllMojomTypeDefinitions();
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  abstract class ViewTree {
 | 
|    dynamic onLayout([Function responseFactory = null]);
 | 
|    dynamic onRootUnavailable(int rootKey,[Function responseFactory = null]);
 | 
| @@ -612,6 +735,9 @@ class ViewTreeProxyImpl extends bindings.Proxy {
 | 
|  
 | 
|    String get name => ViewTreeName;
 | 
|  
 | 
| +  service_describer.ServiceDescription get serviceDescription =>
 | 
| +    new _ViewTreeServiceDescription();
 | 
| +
 | 
|    void handleResponse(bindings.ServiceMessage message) {
 | 
|      switch (message.header.type) {
 | 
|        case kViewTree_onLayout_name:
 | 
| @@ -851,6 +977,9 @@ class ViewTreeStub extends bindings.Stub {
 | 
|    }
 | 
|  
 | 
|    int get version => 0;
 | 
| +
 | 
| +  service_describer.ServiceDescription get serviceDescription =>
 | 
| +    new _ViewTreeServiceDescription();
 | 
|  }
 | 
|  
 | 
|  const int kViewTreeHost_requestLayout_name = 0;
 | 
| @@ -861,6 +990,38 @@ const int kViewTreeHost_layoutRoot_name = 3;
 | 
|  const String ViewTreeHostName =
 | 
|        'mojo::ui::ViewTreeHost';
 | 
|  
 | 
| +mojom_types.MojomInterface _view_trees_ViewTreeHost__() {
 | 
| +  return new mojom_types.MojomInterface()
 | 
| +    ..declData = (new mojom_types.DeclarationData()..shortName = "ViewTreeHost")
 | 
| +    ..interfaceName = "ViewTreeHost"
 | 
| +    ..methods = <int, mojom_types.MojomMethod>{
 | 
| +kViewTreeHost_requestLayout_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "RequestLayout")
 | 
| +        ..ordinal = kViewTreeHost_requestLayout_name..parameters = _view_trees_ViewTreeHost_RequestLayout_Params__(),kViewTreeHost_setRoot_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "SetRoot")
 | 
| +        ..ordinal = kViewTreeHost_setRoot_name..parameters = _view_trees_ViewTreeHost_SetRoot_Params__(),kViewTreeHost_resetRoot_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "ResetRoot")
 | 
| +        ..ordinal = kViewTreeHost_resetRoot_name..parameters = _view_trees_ViewTreeHost_ResetRoot_Params__(),kViewTreeHost_layoutRoot_name: new mojom_types.MojomMethod()
 | 
| +        ..declData = (new mojom_types.DeclarationData()..shortName = "LayoutRoot")
 | 
| +        ..ordinal = kViewTreeHost_layoutRoot_name
 | 
| +        ..responseParams = _view_trees_ViewTreeHost_LayoutRoot_ResponseParams__()..parameters = _view_trees_ViewTreeHost_LayoutRoot_Params__(),
 | 
| +    };
 | 
| +}
 | 
| +
 | 
| +class _ViewTreeHostServiceDescription extends service_describer.ServiceDescription {
 | 
| +  // Avoid infinite loop by overriding serviceDescription field.
 | 
| +  final service_describer.ServiceDescription serviceDescription = null;
 | 
| +dynamic getTopLevelInterface([Function responseFactory = null]) {
 | 
| +    return _view_trees_ViewTreeHost__();
 | 
| +  }
 | 
| +  dynamic getTypeDefinition(String typeKey,[Function responseFactory = null]) {
 | 
| +    return getAllMojomTypeDefinitions()[typeKey];
 | 
| +  }
 | 
| +  dynamic getAllTypeDefinitions([Function responseFactory = null]) {
 | 
| +    return getAllMojomTypeDefinitions();
 | 
| +  }
 | 
| +}
 | 
| +
 | 
|  abstract class ViewTreeHost {
 | 
|    void requestLayout();
 | 
|    void setRoot(int rootKey, views_mojom.ViewToken rootViewToken);
 | 
| @@ -887,6 +1048,9 @@ class ViewTreeHostProxyImpl extends bindings.Proxy {
 | 
|  
 | 
|    String get name => ViewTreeHostName;
 | 
|  
 | 
| +  service_describer.ServiceDescription get serviceDescription =>
 | 
| +    new _ViewTreeHostServiceDescription();
 | 
| +
 | 
|    void handleResponse(bindings.ServiceMessage message) {
 | 
|      switch (message.header.type) {
 | 
|        case kViewTreeHost_layoutRoot_name:
 | 
| @@ -1117,6 +1281,107 @@ class ViewTreeHostStub extends bindings.Stub {
 | 
|    }
 | 
|  
 | 
|    int get version => 0;
 | 
| +
 | 
| +  service_describer.ServiceDescription get serviceDescription =>
 | 
| +    new _ViewTreeHostServiceDescription();
 | 
| +}
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +
 | 
| +var _MojomDesc__ = _initDescriptions();
 | 
| +
 | 
| +Map<String, mojom_types.UserDefinedType> _initDescriptions() {
 | 
| +  var map = new Map<String, mojom_types.UserDefinedType>();
 | 
| +  
 | 
| +  map["_view_trees_ViewTree_OnLayout_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _view_trees_ViewTree_OnLayout_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_view_trees_ViewTree_OnLayout_ResponseParams__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _view_trees_ViewTree_OnLayout_ResponseParams__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_view_trees_ViewTree_OnRootUnavailable_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _view_trees_ViewTree_OnRootUnavailable_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_view_trees_ViewTree_OnRootUnavailable_ResponseParams__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _view_trees_ViewTree_OnRootUnavailable_ResponseParams__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_view_trees_ViewTreeHost_RequestLayout_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _view_trees_ViewTreeHost_RequestLayout_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_view_trees_ViewTreeHost_SetRoot_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _view_trees_ViewTreeHost_SetRoot_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_view_trees_ViewTreeHost_ResetRoot_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _view_trees_ViewTreeHost_ResetRoot_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_view_trees_ViewTreeHost_LayoutRoot_Params__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _view_trees_ViewTreeHost_LayoutRoot_Params__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_view_trees_ViewTreeHost_LayoutRoot_ResponseParams__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..structType = _view_trees_ViewTreeHost_LayoutRoot_ResponseParams__();
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +
 | 
| +  
 | 
| +  map["_view_trees_ViewTree__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..interfaceType = _view_trees_ViewTree__();
 | 
| +
 | 
| +  
 | 
| +  map["_view_trees_ViewTreeHost__"] =
 | 
| +    new mojom_types.UserDefinedType()
 | 
| +      ..interfaceType = _view_trees_ViewTreeHost__();
 | 
| +
 | 
| +layouts_mojom.getAllMojomTypeDefinitions().forEach((String s, mojom_types.UserDefinedType udt) {
 | 
| +  map[s] = udt;
 | 
| +});
 | 
| +views_mojom.getAllMojomTypeDefinitions().forEach((String s, mojom_types.UserDefinedType udt) {
 | 
| +  map[s] = udt;
 | 
| +});
 | 
| +  return map;
 | 
| +}
 | 
| +
 | 
| +Map<String, mojom_types.UserDefinedType> getAllMojomTypeDefinitions() {
 | 
| +  return _MojomDesc__;
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |