Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(899)

Unified Diff: mojo/dart/packages/mojo_services/lib/mojo/ui/view_provider.mojom.dart

Issue 1679023006: Reify view ownership as a message pipe. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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");

Powered by Google App Engine
This is Rietveld 408576698