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

Side by Side Diff: third_party/mojo_services/src/public/js/service_exchange.js

Issue 954643002: Update mojo sdk to rev 3d23dae011859a2aae49f1d1adde705c8e85d819 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: use run_renderer_in_process() 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 define("mojo/services/public/js/service_exchange", [ 5 define("mojo/services/public/js/service_exchange", [
6 "mojo/public/js/bindings", 6 "mojo/public/js/bindings",
7 "mojo/public/interfaces/application/service_provider.mojom", 7 "mojo/public/interfaces/application/service_provider.mojom",
8 "mojo/public/js/connection", 8 "mojo/public/js/connection",
9 ], function(bindings, spMojom, connection) { 9 ], function(bindings, spMojom, connection) {
10 10
(...skipping 29 matching lines...) Expand all
40 var stub = connection.bindHandleToStub(serviceHandle, provider.service); 40 var stub = connection.bindHandleToStub(serviceHandle, provider.service);
41 StubBindings(stub).delegate = new provider.factory(); 41 StubBindings(stub).delegate = new provider.factory();
42 provider.connections.push(StubBindings(stub).connection); 42 provider.connections.push(StubBindings(stub).connection);
43 } 43 }
44 44
45 provideService(service, factory) { 45 provideService(service, factory) {
46 checkServiceExchange(this); 46 checkServiceExchange(this);
47 47
48 var provider = { 48 var provider = {
49 service: service, // A JS bindings interface object. 49 service: service, // A JS bindings interface object.
50 factory: factory, // factory(clientProxy) => interface implemntation 50 factory: factory, // factory() => interface implemntation
51 connections: [], 51 connections: [],
52 }; 52 };
53 this.providers_.set(service.name, provider); 53 this.providers_.set(service.name, provider);
54 54
55 if (this.pendingRequests_.has(service.name)) { 55 if (this.pendingRequests_.has(service.name)) {
56 this.connectToService(service.name, pendingRequests_.get(service.name)); 56 this.connectToService(service.name, pendingRequests_.get(service.name));
57 pendingRequests_.delete(service.name); 57 pendingRequests_.delete(service.name);
58 } 58 }
59 return this; 59 return this;
60 } 60 }
61 61
62 // Outgoing requests 62 // Outgoing requests
63 requestService(interfaceObject, clientImpl) { 63 requestService(interfaceObject) {
64 checkServiceExchange(this); 64 checkServiceExchange(this);
65 if (!interfaceObject.name) 65 if (!interfaceObject.name)
66 throw new Error("Invalid service parameter"); 66 throw new Error("Invalid service parameter");
67 if (!clientImpl && interfaceObject.client)
68 throw new Error("Client implementation must be provided");
69 67
70 var serviceProxy; 68 var serviceProxy;
71 var serviceHandle = connection.bindProxy( 69 var serviceHandle = connection.bindProxy(
72 function(sp) {serviceProxy = sp;}, interfaceObject); 70 function(sp) {serviceProxy = sp;}, interfaceObject);
73 this.proxy.connectToService(interfaceObject.name, serviceHandle); 71 this.proxy.connectToService(interfaceObject.name, serviceHandle);
74 return serviceProxy; 72 return serviceProxy;
75 }; 73 };
76 74
77 close() { 75 close() {
78 this.providers_ = null; 76 this.providers_ = null;
79 this.pendingRequests_ = null; 77 this.pendingRequests_ = null;
80 } 78 }
81 } 79 }
82 80
83 var exports = {}; 81 var exports = {};
84 exports.ServiceExchange = ServiceExchange; 82 exports.ServiceExchange = ServiceExchange;
85 return exports; 83 return exports;
86 }); 84 });
OLDNEW
« no previous file with comments | « third_party/mojo_services/src/public/js/application.js ('k') | third_party/mojo_services/src/public/js/shell.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698