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

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

Issue 1027603002: Dart: Removes all but native calls and the handle watcher from the snapshot. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Hoist application interface dependence Created 5 years, 9 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
« no previous file with comments | « sky/engine/core/script/dart_controller.cc ('k') | sky/tests/services/iframe-embed-vmc.sky » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "dart:mojo.bindings" as bindings; 7 import "package:mojo/public/dart/bindings.dart" as bindings;
8 import "dart:mojo.core" 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 ServiceRegistry _serviceRegistry; 17 ServiceRegistry _serviceRegistry;
18 18
19 final ShellProxy shell = new ShellProxy.fromHandle( 19 final ShellProxy shell = new ShellProxy.fromHandle(
20 new core.MojoHandle(internals.takeShellProxyHandle())); 20 new core.MojoHandle(internals.takeShellProxyHandle()));
21 21
22 ApplicationConnection get connection { 22 ApplicationConnection get connection {
23 if (_connection == null) { 23 if (_connection == null) {
24 var stubHandle = 24 var stubHandle =
25 new core.MojoHandle(internals.takeServicesProvidedToEmbedder()); 25 new core.MojoHandle(internals.takeServicesProvidedToEmbedder());
26 var proxyHandle = 26 var proxyHandle =
27 new core.MojoHandle(internals.takeServicesProvidedByEmbedder()); 27 new core.MojoHandle(internals.takeServicesProvidedByEmbedder());
28 _connection = new ApplicationConection( 28 _connection = new ApplicationConection(stubHandle.isValid
29 stubHandle.isValid ? new ServiceProviderStub.fromHandle(stubHandle) : null, 29 ? new ServiceProviderStub.fromHandle(stubHandle)
30 proxyHandle.isValid ? new ServiceProviderProxy.fromHandle(proxyHandle) : null); 30 : null, proxyHandle.isValid
31 ? new ServiceProviderProxy.fromHandle(proxyHandle)
32 : null);
31 } 33 }
32 return _connection; 34 return _connection;
33 } 35 }
34 36
35 ApplicationConnection connectToApplication(String url) { 37 ApplicationConnection connectToApplication(String url) {
36 var proxy = new ServiceProviderProxy.unbound(); 38 var proxy = new ServiceProviderProxy.unbound();
37 var stub = new ServiceProviderStub.unbound(); 39 var stub = new ServiceProviderStub.unbound();
38 shell.ptr.connectToApplication(url, proxy, stub); 40 shell.ptr.connectToApplication(url, proxy, stub);
39 return new ApplicationConnection(stub, proxy); 41 return new ApplicationConnection(stub, proxy);
40 } 42 }
41 43
42 void connectToService(String url, bindings.ProxyBase proxy) { 44 void connectToService(String url, bindings.ProxyBase proxy) {
43 var appSp = new ServiceProviderProxy.unbound(); 45 var appSp = new ServiceProviderProxy.unbound();
44 shell.ptr.connectToApplication(url, appSp, null); 46 shell.ptr.connectToApplication(url, appSp, null);
45 var pipe = new core.MojoMessagePipe(); 47 var pipe = new core.MojoMessagePipe();
46 proxy.impl.bind(pipe.endpoints[0]); 48 proxy.impl.bind(pipe.endpoints[0]);
47 appSp.ptr.connectToService(proxy.name, pipe.endpoints[1]); 49 appSp.ptr.connectToService(proxy.name, pipe.endpoints[1]);
48 appSp.close(); 50 appSp.close();
49 } 51 }
50 52
51 ServiceRegistryProxy get serviceRegistry { 53 ServiceRegistryProxy get serviceRegistry {
52 if (_serviceRegistry == null) { 54 if (_serviceRegistry == null) {
53 _serviceRegistry = new ServiceRegistryProxy.fromHandle( 55 _serviceRegistry = new ServiceRegistryProxy.fromHandle(
54 new core.MojoHandle(internals.takeServiceRegistry())); 56 new core.MojoHandle(internals.takeServiceRegistry()));
55 } 57 }
56 return _serviceRegistry; 58 return _serviceRegistry;
57 } 59 }
58 } 60 }
OLDNEW
« no previous file with comments | « sky/engine/core/script/dart_controller.cc ('k') | sky/tests/services/iframe-embed-vmc.sky » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698