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

Side by Side Diff: sky/framework/embedder.dart

Issue 1088793003: Expose sky KeyboardService in android mojo_shell (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 import "package:mojo/public/dart/application.dart"; 5 import "package:mojo/public/dart/application.dart";
6 import "dart:sky.internals" as internals; 6 import "dart:sky.internals" as internals;
7 import "package:mojo/public/dart/bindings.dart" as bindings; 7 import "package:mojo/public/dart/bindings.dart" as bindings;
8 import "package:mojo/public/dart/core.dart" as core; 8 import "package:mojo/public/dart/core.dart" as core;
9 import "package:mojo/public/interfaces/application/service_provider.mojom.dart"; 9 import "package:mojo/public/interfaces/application/service_provider.mojom.dart";
10 import "package:mojo/public/interfaces/application/shell.mojom.dart"; 10 import "package:mojo/public/interfaces/application/shell.mojom.dart";
11 import "package:mojo/services/service_registry/public/interfaces/service_registr y.mojom.dart"; 11 import "package:mojo/services/service_registry/public/interfaces/service_registr y.mojom.dart";
12 12
13 final _EmbedderImpl embedder = new _EmbedderImpl(); 13 final _EmbedderImpl embedder = new _EmbedderImpl();
14 14
15 class _EmbedderImpl { 15 class _EmbedderImpl {
16 ApplicationConnection _connection; 16 ApplicationConnection _connection;
17 ServiceRegistryProxy _serviceRegistry; 17 ServiceRegistryProxy _serviceRegistry;
18 ShellProxy _shell;
19 bool _internalsHasNoShell;
18 20
19 final ShellProxy shell = new ShellProxy.fromHandle( 21 ShellProxy get shell {
20 new core.MojoHandle(internals.takeShellProxyHandle())); 22 if (_internalsHasNoShell || _shell != null) return _shell;
23
24 try {
25 _shell = new ShellProxy.fromHandle(
26 new core.MojoHandle(internals.takeShellProxyHandle()));
27 } catch (e) {
28 _internalsHasNoShell = true;
29 }
30 return _shell;
31 }
21 32
22 ApplicationConnection get connection { 33 ApplicationConnection get connection {
23 if (_connection == null) { 34 if (_connection == null) {
24 var stubHandle = 35 var stubHandle =
25 new core.MojoHandle(internals.takeServicesProvidedToEmbedder()); 36 new core.MojoHandle(internals.takeServicesProvidedToEmbedder());
26 var proxyHandle = 37 var proxyHandle =
27 new core.MojoHandle(internals.takeServicesProvidedByEmbedder()); 38 new core.MojoHandle(internals.takeServicesProvidedByEmbedder());
28 _connection = new ApplicationConnection(stubHandle.isValid 39 _connection = new ApplicationConnection(stubHandle.isValid
29 ? new ServiceProviderStub.fromHandle(stubHandle) 40 ? new ServiceProviderStub.fromHandle(stubHandle)
30 : null, proxyHandle.isValid 41 : null, proxyHandle.isValid
(...skipping 20 matching lines...) Expand all
51 } 62 }
52 63
53 ServiceRegistryProxy get serviceRegistry { 64 ServiceRegistryProxy get serviceRegistry {
54 if (_serviceRegistry == null) { 65 if (_serviceRegistry == null) {
55 _serviceRegistry = new ServiceRegistryProxy.fromHandle( 66 _serviceRegistry = new ServiceRegistryProxy.fromHandle(
56 new core.MojoHandle(internals.takeServiceRegistry())); 67 new core.MojoHandle(internals.takeServiceRegistry()));
57 } 68 }
58 return _serviceRegistry; 69 return _serviceRegistry;
59 } 70 }
60 } 71 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698