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

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

Issue 488363002: Implement the host side of serial connection I/O on data pipe. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix win x64 build Created 6 years, 3 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 | « extensions/renderer/api/serial/serial_api_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 'device/serial/serial.mojom', 7 'device/serial/serial.mojom',
8 'mojo/public/js/bindings/core', 8 'mojo/public/js/bindings/core',
9 'mojo/public/js/bindings/router', 9 'mojo/public/js/bindings/router',
10 ], function(serviceProvider, serialMojom, core, routerModule) { 10 ], function(serviceProvider, serialMojom, core, routerModule) {
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 for (var key in DEFAULT_CLIENT_OPTIONS) { 115 for (var key in DEFAULT_CLIENT_OPTIONS) {
116 this.options_[key] = DEFAULT_CLIENT_OPTIONS[key]; 116 this.options_[key] = DEFAULT_CLIENT_OPTIONS[key];
117 } 117 }
118 this.setClientOptions_(options); 118 this.setClientOptions_(options);
119 } 119 }
120 120
121 Connection.create = function(path, options) { 121 Connection.create = function(path, options) {
122 options = options || {}; 122 options = options || {};
123 var serviceOptions = getServiceOptions(options); 123 var serviceOptions = getServiceOptions(options);
124 var pipe = core.createMessagePipe(); 124 var pipe = core.createMessagePipe();
125 service.connect(path, serviceOptions, pipe.handle0); 125 // Note: These two are created and closed because the service implementation
126 // requires that we provide valid message pipes for the data source and
127 // sink. Currently the client handles are immediately closed; the real
128 // implementation will come later.
129 var sendPipe = core.createMessagePipe();
130 var receivePipe = core.createMessagePipe();
131 service.connect(path,
132 serviceOptions,
133 pipe.handle0,
134 sendPipe.handle0,
135 receivePipe.handle0);
136 core.close(sendPipe.handle1);
137 core.close(receivePipe.handle1);
126 var router = new routerModule.Router(pipe.handle1); 138 var router = new routerModule.Router(pipe.handle1);
127 var connection = new serialMojom.ConnectionProxy(router); 139 var connection = new serialMojom.ConnectionProxy(router);
128 return connection.getInfo().then(convertServiceInfo).then( 140 return connection.getInfo().then(convertServiceInfo).then(
129 function(info) { 141 function(info) {
130 return Promise.all([info, allocateConnectionId()]); 142 return Promise.all([info, allocateConnectionId()]);
131 }).catch(function(e) { 143 }).catch(function(e) {
132 router.close(); 144 router.close();
133 throw e; 145 throw e;
134 }).then(function(results) { 146 }).then(function(results) {
135 var info = results[0]; 147 var info = results[0];
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 return Promise.resolve(nextConnectionId_++); 277 return Promise.resolve(nextConnectionId_++);
266 } 278 }
267 279
268 return { 280 return {
269 getDevices: getDevices, 281 getDevices: getDevices,
270 createConnection: Connection.create, 282 createConnection: Connection.create,
271 getConnection: getConnection, 283 getConnection: getConnection,
272 getConnections: getConnections, 284 getConnections: getConnections,
273 }; 285 };
274 }); 286 });
OLDNEW
« no previous file with comments | « extensions/renderer/api/serial/serial_api_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698