Commit addc87dc authored by Adam Barth's avatar Adam Barth

Look for the keyboard in the view services

The engine now provides the keyboard and raw keyboard services via the view
services. This patch updates the framework to look there for the keyboard.
Also, this patch migrates callers to the new MojoServices name for these entry
points.
parent 964ba0c6
138fae117a19b6c7a9ae1a098daf35275a3002e7 5114eade633fa9d08355d3e7a67b4c9f983d4357
...@@ -30,7 +30,7 @@ class MojoShell { ...@@ -30,7 +30,7 @@ class MojoShell {
static MojoShell _instance; static MojoShell _instance;
static mojom.ShellProxy _initShellProxy() { static mojom.ShellProxy _initShellProxy() {
core.MojoHandle shellHandle = new core.MojoHandle(ui.takeShellProxyHandle()); core.MojoHandle shellHandle = new core.MojoHandle(ui.MojoServices.takeShell());
if (!shellHandle.isValid) if (!shellHandle.isValid)
return null; return null;
return new mojom.ShellProxy.fromHandle(shellHandle); return new mojom.ShellProxy.fromHandle(shellHandle);
...@@ -38,13 +38,13 @@ class MojoShell { ...@@ -38,13 +38,13 @@ class MojoShell {
final mojom.Shell _shell = _initShellProxy()?.ptr; final mojom.Shell _shell = _initShellProxy()?.ptr;
static ApplicationConnection _initEmbedderConnection() { static ApplicationConnection _initEmbedderConnection() {
core.MojoHandle servicesHandle = new core.MojoHandle(ui.takeServicesProvidedByEmbedder()); core.MojoHandle incomingServicesHandle = new core.MojoHandle(ui.MojoServices.takeIncomingServices());
core.MojoHandle exposedServicesHandle = new core.MojoHandle(ui.takeServicesProvidedToEmbedder()); core.MojoHandle outgoingServicesHandle = new core.MojoHandle(ui.MojoServices.takeOutgoingServices());
if (!servicesHandle.isValid || !exposedServicesHandle.isValid) if (!incomingServicesHandle.isValid || !outgoingServicesHandle.isValid)
return null; return null;
mojom.ServiceProviderProxy services = new mojom.ServiceProviderProxy.fromHandle(servicesHandle); mojom.ServiceProviderProxy incomingServices = new mojom.ServiceProviderProxy.fromHandle(incomingServicesHandle);
mojom.ServiceProviderStub exposedServices = new mojom.ServiceProviderStub.fromHandle(exposedServicesHandle); mojom.ServiceProviderStub outgoingServices = new mojom.ServiceProviderStub.fromHandle(outgoingServicesHandle);
return new ApplicationConnection(exposedServices, services); return new ApplicationConnection(outgoingServices, incomingServices);
} }
final ApplicationConnection _embedderConnection = _initEmbedderConnection(); final ApplicationConnection _embedderConnection = _initEmbedderConnection();
...@@ -92,6 +92,24 @@ class MojoShell { ...@@ -92,6 +92,24 @@ class MojoShell {
services.close(); services.close();
} }
static mojom.ServiceProviderProxy _takeViewServices() {
core.MojoHandle services = new core.MojoHandle(ui.MojoServices.takeViewServices());
if (!services.isValid)
return null;
return new mojom.ServiceProviderProxy.fromHandle(services);
}
final mojom.ServiceProviderProxy _viewServices = _takeViewServices();
void connectToViewAssociatedService(bindings.ProxyBase proxy) {
if (overrideConnectToService != null && overrideConnectToService(null, proxy))
return;
if (_viewServices == null)
return;
core.MojoMessagePipe pipe = new core.MojoMessagePipe();
proxy.impl.bind(pipe.endpoints[0]);
_viewServices.ptr.connectToService(proxy.serviceName, pipe.endpoints[1]);
}
/// Registers a service to expose to the embedder. /// Registers a service to expose to the embedder.
void provideService(String interfaceName, ServiceFactory factory) { void provideService(String interfaceName, ServiceFactory factory) {
_embedderConnection?.provideService(interfaceName, factory); _embedderConnection?.provideService(interfaceName, factory);
......
...@@ -18,7 +18,7 @@ import 'box.dart'; ...@@ -18,7 +18,7 @@ import 'box.dart';
import 'object.dart'; import 'object.dart';
mojom.ViewProxy _initViewProxy() { mojom.ViewProxy _initViewProxy() {
int viewHandle = ui.takeViewHandle(); int viewHandle = ui.MojoServices.takeView();
if (viewHandle == core.MojoHandle.INVALID) if (viewHandle == core.MojoHandle.INVALID)
return null; return null;
return new mojom.ViewProxy.fromHandle(new core.MojoHandle(viewHandle)); return new mojom.ViewProxy.fromHandle(new core.MojoHandle(viewHandle));
......
...@@ -105,7 +105,7 @@ class MojoAssetBundle extends CachingAssetBundle { ...@@ -105,7 +105,7 @@ class MojoAssetBundle extends CachingAssetBundle {
} }
AssetBundle _initRootBundle() { AssetBundle _initRootBundle() {
int h = ui.takeRootBundleHandle(); int h = ui.MojoServices.takeRootBundle();
if (h == core.MojoHandle.INVALID) if (h == core.MojoHandle.INVALID)
return null; return null;
core.MojoHandle handle = new core.MojoHandle(h); core.MojoHandle handle = new core.MojoHandle(h);
......
...@@ -84,7 +84,7 @@ class KeyboardHandle { ...@@ -84,7 +84,7 @@ class KeyboardHandle {
mojom.KeyboardProxy _initKeyboardProxy() { mojom.KeyboardProxy _initKeyboardProxy() {
mojom.KeyboardProxy proxy = new mojom.KeyboardProxy.unbound(); mojom.KeyboardProxy proxy = new mojom.KeyboardProxy.unbound();
shell.connectToService(null, proxy); shell.connectToViewAssociatedService(proxy);
return proxy; return proxy;
} }
......
...@@ -59,7 +59,7 @@ class _RawKeyboardListenerState extends State<RawKeyboardListener> implements mo ...@@ -59,7 +59,7 @@ class _RawKeyboardListenerState extends State<RawKeyboardListener> implements mo
return; return;
_stub = new mojom.RawKeyboardListenerStub.unbound()..impl = this; _stub = new mojom.RawKeyboardListenerStub.unbound()..impl = this;
mojom.RawKeyboardServiceProxy keyboard = new mojom.RawKeyboardServiceProxy.unbound(); mojom.RawKeyboardServiceProxy keyboard = new mojom.RawKeyboardServiceProxy.unbound();
shell.connectToService(null, keyboard); shell.connectToViewAssociatedService(keyboard);
keyboard.ptr.addListener(_stub); keyboard.ptr.addListener(_stub);
keyboard.close(); keyboard.close();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment