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.
This commit is contained in:
parent
964ba0c69b
commit
addc87dcf1
2
bin/cache/engine.version
vendored
2
bin/cache/engine.version
vendored
@ -1 +1 @@
|
|||||||
138fae117a19b6c7a9ae1a098daf35275a3002e7
|
5114eade633fa9d08355d3e7a67b4c9f983d4357
|
||||||
|
@ -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 {
|
|||||||
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 {
|
|||||||
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';
|
|||||||
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 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 {
|
|||||||
|
|
||||||
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
|
|||||||
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();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user