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

Side by Side Diff: extensions/renderer/resources/serial_service.js

Issue 628763002: Mojo JS bindings: simplify mojo.connectToService() usage - Part 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed template indentation Created 6 years, 2 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('serial_service', [ 5 define('serial_service', [
6 'content/public/renderer/service_provider', 6 'content/public/renderer/service_provider',
7 'data_receiver', 7 'data_receiver',
8 'data_sender', 8 'data_sender',
9 'device/serial/serial.mojom', 9 'device/serial/serial.mojom',
10 'device/serial/serial_serialization.mojom', 10 'device/serial/serial_serialization.mojom',
11 'mojo/public/js/bindings/core', 11 'mojo/public/js/bindings/core',
12 'mojo/public/js/bindings/router', 12 'mojo/public/js/bindings/router',
13 ], function(serviceProvider, 13 ], function(serviceProvider,
14 dataReceiver, 14 dataReceiver,
15 dataSender, 15 dataSender,
16 serialMojom, 16 serialMojom,
17 serialization, 17 serialization,
18 core, 18 core,
19 routerModule) { 19 routerModule) {
20 /** 20 /**
21 * A Javascript client for the serial service and connection Mojo services. 21 * A Javascript client for the serial service and connection Mojo services.
22 * 22 *
23 * This provides a thick client around the Mojo services, exposing a JS-style 23 * This provides a thick client around the Mojo services, exposing a JS-style
24 * interface to serial connections and information about serial devices. This 24 * interface to serial connections and information about serial devices. This
25 * converts parameters and result between the Apps serial API types and the 25 * converts parameters and result between the Apps serial API types and the
26 * Mojo types. 26 * Mojo types.
27 */ 27 */
28 28
29 var service = new serialMojom.SerialServiceProxy(new routerModule.Router( 29 var service = new serialMojom.SerialService.proxyClass(
30 serviceProvider.connectToService(serialMojom.SerialServiceProxy.NAME_))); 30 new routerModule.Router(
31 serviceProvider.connectToService(serialMojom.SerialService.name)));
31 32
32 function getDevices() { 33 function getDevices() {
33 return service.getDevices().then(function(response) { 34 return service.getDevices().then(function(response) {
34 return $Array.map(response.devices, function(device) { 35 return $Array.map(response.devices, function(device) {
35 var result = {path: device.path}; 36 var result = {path: device.path};
36 if (device.has_vendor_id) 37 if (device.has_vendor_id)
37 result.vendorId = device.vendor_id; 38 result.vendorId = device.vendor_id;
38 if (device.has_product_id) 39 if (device.has_product_id)
39 result.productId = device.product_id; 40 result.productId = device.product_id;
40 if (device.display_name) 41 if (device.display_name)
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 var serviceOptions = getServiceOptions(options); 187 var serviceOptions = getServiceOptions(options);
187 var pipe = core.createMessagePipe(); 188 var pipe = core.createMessagePipe();
188 var sendPipe = core.createMessagePipe(); 189 var sendPipe = core.createMessagePipe();
189 var receivePipe = core.createMessagePipe(); 190 var receivePipe = core.createMessagePipe();
190 service.connect(path, 191 service.connect(path,
191 serviceOptions, 192 serviceOptions,
192 pipe.handle0, 193 pipe.handle0,
193 sendPipe.handle0, 194 sendPipe.handle0,
194 receivePipe.handle0); 195 receivePipe.handle0);
195 var router = new routerModule.Router(pipe.handle1); 196 var router = new routerModule.Router(pipe.handle1);
196 var connection = new serialMojom.ConnectionProxy(router); 197 var connection = new serialMojom.Connection.proxyClass(router);
197 return connection.getInfo().then(convertServiceInfo).then(function(info) { 198 return connection.getInfo().then(convertServiceInfo).then(function(info) {
198 return Promise.all([info, allocateConnectionId()]); 199 return Promise.all([info, allocateConnectionId()]);
199 }).catch(function(e) { 200 }).catch(function(e) {
200 router.close(); 201 router.close();
201 core.close(sendPipe.handle1); 202 core.close(sendPipe.handle1);
202 core.close(receivePipe.handle1); 203 core.close(receivePipe.handle1);
203 throw e; 204 throw e;
204 }).then(function(results) { 205 }).then(function(results) {
205 var info = results[0]; 206 var info = results[0];
206 var id = results[1]; 207 var id = results[1];
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 506
506 return { 507 return {
507 getDevices: getDevices, 508 getDevices: getDevices,
508 createConnection: Connection.create, 509 createConnection: Connection.create,
509 getConnection: getConnection, 510 getConnection: getConnection,
510 getConnections: getConnections, 511 getConnections: getConnections,
511 // For testing. 512 // For testing.
512 Connection: Connection, 513 Connection: Connection,
513 }; 514 };
514 }); 515 });
OLDNEW
« no previous file with comments | « extensions/renderer/resources/data_sender.js ('k') | extensions/test/data/data_receiver_unittest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698