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

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

Issue 889283002: Remove Client= from device/serial/data_stream.mojom. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: This time without racing message pipes Created 5 years, 10 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',
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 if ('name' in options) 127 if ('name' in options)
128 clientOptions.name = options.name; 128 clientOptions.name = options.name;
129 if ('receiveTimeout' in options) 129 if ('receiveTimeout' in options)
130 clientOptions.receiveTimeout = options.receiveTimeout; 130 clientOptions.receiveTimeout = options.receiveTimeout;
131 if ('sendTimeout' in options) 131 if ('sendTimeout' in options)
132 clientOptions.sendTimeout = options.sendTimeout; 132 clientOptions.sendTimeout = options.sendTimeout;
133 if ('bufferSize' in options) 133 if ('bufferSize' in options)
134 clientOptions.bufferSize = options.bufferSize; 134 clientOptions.bufferSize = options.bufferSize;
135 }; 135 };
136 136
137 function Connection(connection, router, receivePipe, sendPipe, id, options) { 137 function Connection(connection, router, receivePipe, receiveClientPipe,
138 sendPipe, id, options) {
138 var state = new serialization.ConnectionState(); 139 var state = new serialization.ConnectionState();
139 state.connectionId = id; 140 state.connectionId = id;
140 updateClientOptions(state, options); 141 updateClientOptions(state, options);
141 var receiver = new dataReceiver.DataReceiver( 142 var receiver = new dataReceiver.DataReceiver(
142 receivePipe, state.bufferSize, serialMojom.ReceiveError.DISCONNECTED); 143 receivePipe, receiveClientPipe, state.bufferSize,
143 var sender = new dataSender.DataSender( 144 serialMojom.ReceiveError.DISCONNECTED);
144 sendPipe, state.bufferSize, serialMojom.SendError.DISCONNECTED); 145 var sender = new dataSender.DataSender(sendPipe, state.bufferSize,
146 serialMojom.SendError.DISCONNECTED);
145 this.init_(state, 147 this.init_(state,
146 connection, 148 connection,
147 router, 149 router,
148 receiver, 150 receiver,
149 sender, 151 sender,
150 null, 152 null,
151 serialMojom.ReceiveError.NONE); 153 serialMojom.ReceiveError.NONE);
152 connections_.set(id, this); 154 connections_.set(id, this);
153 this.startReceive_(); 155 this.startReceive_();
154 } 156 }
(...skipping 26 matching lines...) Expand all
181 this.sendPipe_ = sender; 183 this.sendPipe_ = sender;
182 this.sendInProgress_ = false; 184 this.sendInProgress_ = false;
183 }; 185 };
184 186
185 Connection.create = function(path, options) { 187 Connection.create = function(path, options) {
186 options = options || {}; 188 options = options || {};
187 var serviceOptions = getServiceOptions(options); 189 var serviceOptions = getServiceOptions(options);
188 var pipe = core.createMessagePipe(); 190 var pipe = core.createMessagePipe();
189 var sendPipe = core.createMessagePipe(); 191 var sendPipe = core.createMessagePipe();
190 var receivePipe = core.createMessagePipe(); 192 var receivePipe = core.createMessagePipe();
193 var receivePipeClient = core.createMessagePipe();
191 service.connect(path, 194 service.connect(path,
192 serviceOptions, 195 serviceOptions,
193 pipe.handle0, 196 pipe.handle0,
194 sendPipe.handle0, 197 sendPipe.handle0,
195 receivePipe.handle0); 198 receivePipe.handle0,
199 receivePipeClient.handle0);
196 var router = new routerModule.Router(pipe.handle1); 200 var router = new routerModule.Router(pipe.handle1);
197 var connection = new serialMojom.Connection.proxyClass(router); 201 var connection = new serialMojom.Connection.proxyClass(router);
198 return connection.getInfo().then(convertServiceInfo).then(function(info) { 202 return connection.getInfo().then(convertServiceInfo).then(function(info) {
199 return Promise.all([info, allocateConnectionId()]); 203 return Promise.all([info, allocateConnectionId()]);
200 }).catch(function(e) { 204 }).catch(function(e) {
201 router.close(); 205 router.close();
202 core.close(sendPipe.handle1); 206 core.close(sendPipe.handle1);
203 core.close(receivePipe.handle1); 207 core.close(receivePipe.handle1);
208 core.close(receivePipeClient.handle1);
204 throw e; 209 throw e;
205 }).then(function(results) { 210 }).then(function(results) {
206 var info = results[0]; 211 var info = results[0];
207 var id = results[1]; 212 var id = results[1];
208 var serialConnectionClient = new Connection(connection, 213 var serialConnectionClient = new Connection(connection,
209 router, 214 router,
210 receivePipe.handle1, 215 receivePipe.handle1,
216 receivePipeClient.handle1,
211 sendPipe.handle1, 217 sendPipe.handle1,
212 id, 218 id,
213 options); 219 options);
214 var clientInfo = serialConnectionClient.getClientInfo_(); 220 var clientInfo = serialConnectionClient.getClientInfo_();
215 for (var key in clientInfo) { 221 for (var key in clientInfo) {
216 info[key] = clientInfo[key]; 222 info[key] = clientInfo[key];
217 } 223 }
218 return { 224 return {
219 connection: serialConnectionClient, 225 connection: serialConnectionClient,
220 info: info, 226 info: info,
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 512
507 return { 513 return {
508 getDevices: getDevices, 514 getDevices: getDevices,
509 createConnection: Connection.create, 515 createConnection: Connection.create,
510 getConnection: getConnection, 516 getConnection: getConnection,
511 getConnections: getConnections, 517 getConnections: getConnections,
512 // For testing. 518 // For testing.
513 Connection: Connection, 519 Connection: Connection,
514 }; 520 };
515 }); 521 });
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