| Index: mojo/dart/packages/mojo_services/lib/mojo/ui/view_provider.mojom.dart
|
| diff --git a/mojo/dart/packages/mojo_services/lib/mojo/ui/view_provider.mojom.dart b/mojo/dart/packages/mojo_services/lib/mojo/ui/view_provider.mojom.dart
|
| index e1e5acf470c5814eba5a1b7e58d847a7c011eda4..0052a86b6e82cb1259812ef79878b4a6e6bbb3ac 100644
|
| --- a/mojo/dart/packages/mojo_services/lib/mojo/ui/view_provider.mojom.dart
|
| +++ b/mojo/dart/packages/mojo_services/lib/mojo/ui/view_provider.mojom.dart
|
| @@ -19,6 +19,7 @@ class _ViewProviderCreateViewParams extends bindings.Struct {
|
| static const List<bindings.StructDataHeader> kVersions = const [
|
| const bindings.StructDataHeader(24, 0)
|
| ];
|
| + Object viewOwner = null;
|
| Object services = null;
|
| Object exposedServices = null;
|
|
|
| @@ -59,11 +60,15 @@ class _ViewProviderCreateViewParams extends bindings.Struct {
|
| }
|
| if (mainDataHeader.version >= 0) {
|
|
|
| - result.services = decoder0.decodeInterfaceRequest(8, true, service_provider_mojom.ServiceProviderStub.newFromEndpoint);
|
| + result.viewOwner = decoder0.decodeInterfaceRequest(8, false, views_mojom.ViewOwnerStub.newFromEndpoint);
|
| }
|
| if (mainDataHeader.version >= 0) {
|
|
|
| - result.exposedServices = decoder0.decodeServiceInterface(12, true, service_provider_mojom.ServiceProviderProxy.newFromEndpoint);
|
| + result.services = decoder0.decodeInterfaceRequest(12, true, service_provider_mojom.ServiceProviderStub.newFromEndpoint);
|
| + }
|
| + if (mainDataHeader.version >= 0) {
|
| +
|
| + result.exposedServices = decoder0.decodeServiceInterface(16, true, service_provider_mojom.ServiceProviderProxy.newFromEndpoint);
|
| }
|
| return result;
|
| }
|
| @@ -71,14 +76,21 @@ class _ViewProviderCreateViewParams extends bindings.Struct {
|
| void encode(bindings.Encoder encoder) {
|
| var encoder0 = encoder.getStructEncoderAtOffset(kVersions.last);
|
| try {
|
| - encoder0.encodeInterfaceRequest(services, 8, true);
|
| + encoder0.encodeInterfaceRequest(viewOwner, 8, false);
|
| + } on bindings.MojoCodecError catch(e) {
|
| + e.message = "Error encountered while encoding field "
|
| + "viewOwner of struct _ViewProviderCreateViewParams: $e";
|
| + rethrow;
|
| + }
|
| + try {
|
| + encoder0.encodeInterfaceRequest(services, 12, true);
|
| } on bindings.MojoCodecError catch(e) {
|
| e.message = "Error encountered while encoding field "
|
| "services of struct _ViewProviderCreateViewParams: $e";
|
| rethrow;
|
| }
|
| try {
|
| - encoder0.encodeInterface(exposedServices, 12, true);
|
| + encoder0.encodeInterface(exposedServices, 16, true);
|
| } on bindings.MojoCodecError catch(e) {
|
| e.message = "Error encountered while encoding field "
|
| "exposedServices of struct _ViewProviderCreateViewParams: $e";
|
| @@ -88,6 +100,7 @@ class _ViewProviderCreateViewParams extends bindings.Struct {
|
|
|
| String toString() {
|
| return "_ViewProviderCreateViewParams("
|
| + "viewOwner: $viewOwner" ", "
|
| "services: $services" ", "
|
| "exposedServices: $exposedServices" ")";
|
| }
|
| @@ -101,81 +114,6 @@ class _ViewProviderCreateViewParams extends bindings.Struct {
|
|
|
|
|
|
|
| -class ViewProviderCreateViewResponseParams extends bindings.Struct {
|
| - static const List<bindings.StructDataHeader> kVersions = const [
|
| - const bindings.StructDataHeader(16, 0)
|
| - ];
|
| - views_mojom.ViewToken viewToken = null;
|
| -
|
| - ViewProviderCreateViewResponseParams() : super(kVersions.last.size);
|
| -
|
| - static ViewProviderCreateViewResponseParams deserialize(bindings.Message message) {
|
| - var decoder = new bindings.Decoder(message);
|
| - var result = decode(decoder);
|
| - if (decoder.excessHandles != null) {
|
| - decoder.excessHandles.forEach((h) => h.close());
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - static ViewProviderCreateViewResponseParams decode(bindings.Decoder decoder0) {
|
| - if (decoder0 == null) {
|
| - return null;
|
| - }
|
| - ViewProviderCreateViewResponseParams result = new ViewProviderCreateViewResponseParams();
|
| -
|
| - var mainDataHeader = decoder0.decodeStructDataHeader();
|
| - if (mainDataHeader.version <= kVersions.last.version) {
|
| - // Scan in reverse order to optimize for more recent versions.
|
| - for (int i = kVersions.length - 1; i >= 0; --i) {
|
| - if (mainDataHeader.version >= kVersions[i].version) {
|
| - if (mainDataHeader.size == kVersions[i].size) {
|
| - // Found a match.
|
| - break;
|
| - }
|
| - throw new bindings.MojoCodecError(
|
| - 'Header size doesn\'t correspond to known version size.');
|
| - }
|
| - }
|
| - } else if (mainDataHeader.size < kVersions.last.size) {
|
| - throw new bindings.MojoCodecError(
|
| - 'Message newer than the last known version cannot be shorter than '
|
| - 'required by the last known version.');
|
| - }
|
| - if (mainDataHeader.version >= 0) {
|
| -
|
| - var decoder1 = decoder0.decodePointer(8, false);
|
| - result.viewToken = views_mojom.ViewToken.decode(decoder1);
|
| - }
|
| - return result;
|
| - }
|
| -
|
| - void encode(bindings.Encoder encoder) {
|
| - var encoder0 = encoder.getStructEncoderAtOffset(kVersions.last);
|
| - try {
|
| - encoder0.encodeStruct(viewToken, 8, false);
|
| - } on bindings.MojoCodecError catch(e) {
|
| - e.message = "Error encountered while encoding field "
|
| - "viewToken of struct ViewProviderCreateViewResponseParams: $e";
|
| - rethrow;
|
| - }
|
| - }
|
| -
|
| - String toString() {
|
| - return "ViewProviderCreateViewResponseParams("
|
| - "viewToken: $viewToken" ")";
|
| - }
|
| -
|
| - Map toJson() {
|
| - Map map = new Map();
|
| - map["viewToken"] = viewToken;
|
| - return map;
|
| - }
|
| -}
|
| -
|
| -
|
| -
|
| -
|
| const int _ViewProvider_createViewName = 0;
|
|
|
|
|
| @@ -190,7 +128,7 @@ class _ViewProviderServiceDescription implements service_describer.ServiceDescri
|
|
|
| abstract class ViewProvider {
|
| static const String serviceName = "mojo::ui::ViewProvider";
|
| - dynamic createView(Object services,Object exposedServices,[Function responseFactory = null]);
|
| + void createView(Object viewOwner, Object services, Object exposedServices);
|
| }
|
|
|
|
|
| @@ -214,26 +152,6 @@ class _ViewProviderProxyImpl extends bindings.Proxy {
|
|
|
| void handleResponse(bindings.ServiceMessage message) {
|
| switch (message.header.type) {
|
| - case _ViewProvider_createViewName:
|
| - var r = ViewProviderCreateViewResponseParams.deserialize(
|
| - message.payload);
|
| - if (!message.header.hasRequestId) {
|
| - proxyError("Expected a message with a valid request Id.");
|
| - return;
|
| - }
|
| - Completer c = completerMap[message.header.requestId];
|
| - if (c == null) {
|
| - proxyError(
|
| - "Message had unknown request Id: ${message.header.requestId}");
|
| - return;
|
| - }
|
| - completerMap.remove(message.header.requestId);
|
| - if (c.isCompleted) {
|
| - proxyError("Response completer already completed");
|
| - return;
|
| - }
|
| - c.complete(r);
|
| - break;
|
| default:
|
| proxyError("Unexpected message type: ${message.header.type}");
|
| close(immediate: true);
|
| @@ -252,15 +170,16 @@ class _ViewProviderProxyCalls implements ViewProvider {
|
| _ViewProviderProxyImpl _proxyImpl;
|
|
|
| _ViewProviderProxyCalls(this._proxyImpl);
|
| - dynamic createView(Object services,Object exposedServices,[Function responseFactory = null]) {
|
| + void createView(Object viewOwner, Object services, Object exposedServices) {
|
| + if (!_proxyImpl.isBound) {
|
| + _proxyImpl.proxyError("The Proxy is closed.");
|
| + return;
|
| + }
|
| var params = new _ViewProviderCreateViewParams();
|
| + params.viewOwner = viewOwner;
|
| params.services = services;
|
| params.exposedServices = exposedServices;
|
| - return _proxyImpl.sendMessageWithRequestId(
|
| - params,
|
| - _ViewProvider_createViewName,
|
| - -1,
|
| - bindings.MessageHeader.kMessageExpectsResponse);
|
| + _proxyImpl.sendMessage(params, _ViewProvider_createViewName);
|
| }
|
| }
|
|
|
| @@ -343,11 +262,6 @@ class ViewProviderStub extends bindings.Stub {
|
| }
|
|
|
|
|
| - ViewProviderCreateViewResponseParams _ViewProviderCreateViewResponseParamsFactory(views_mojom.ViewToken viewToken) {
|
| - var mojo_factory_result = new ViewProviderCreateViewResponseParams();
|
| - mojo_factory_result.viewToken = viewToken;
|
| - return mojo_factory_result;
|
| - }
|
|
|
| dynamic handleMessage(bindings.ServiceMessage message) {
|
| if (bindings.ControlMessageHandler.isControlMessage(message)) {
|
| @@ -360,24 +274,7 @@ class ViewProviderStub extends bindings.Stub {
|
| case _ViewProvider_createViewName:
|
| var params = _ViewProviderCreateViewParams.deserialize(
|
| message.payload);
|
| - var response = _impl.createView(params.services,params.exposedServices,_ViewProviderCreateViewResponseParamsFactory);
|
| - if (response is Future) {
|
| - return response.then((response) {
|
| - if (response != null) {
|
| - return buildResponseWithId(
|
| - response,
|
| - _ViewProvider_createViewName,
|
| - message.header.requestId,
|
| - bindings.MessageHeader.kMessageIsResponse);
|
| - }
|
| - });
|
| - } else if (response != null) {
|
| - return buildResponseWithId(
|
| - response,
|
| - _ViewProvider_createViewName,
|
| - message.header.requestId,
|
| - bindings.MessageHeader.kMessageIsResponse);
|
| - }
|
| + _impl.createView(params.viewOwner, params.services, params.exposedServices);
|
| break;
|
| default:
|
| throw new bindings.MojoCodecError("Unexpected message name");
|
|
|