Index: device/serial/serial_connection_factory.cc |
diff --git a/device/serial/serial_connection_factory.cc b/device/serial/serial_connection_factory.cc |
index 3e309b46ca4fdf908f9b19f57bed4c4f02f8441b..6b01490ecab7d08691ce7650de7cdb8a70291b2f 100644 |
--- a/device/serial/serial_connection_factory.cc |
+++ b/device/serial/serial_connection_factory.cc |
@@ -95,6 +95,10 @@ SerialConnectionFactory::ConnectTask::ConnectTask( |
connection_request_(connection_request.Pass()), |
sink_(sink.Pass()), |
source_(source.Pass()) { |
+ if (!options_) { |
+ options_ = serial::ConnectionOptions::New(); |
+ } |
+ FillDefaultConnectionOptions(options_.get()); |
} |
void SerialConnectionFactory::ConnectTask::Run() { |
@@ -109,19 +113,16 @@ SerialConnectionFactory::ConnectTask::~ConnectTask() { |
void SerialConnectionFactory::ConnectTask::Connect() { |
io_handler_ = factory_->io_handler_factory_.Run(); |
io_handler_->Open( |
- path_, |
+ path_, *options_, |
base::Bind(&SerialConnectionFactory::ConnectTask::OnConnected, this)); |
} |
void SerialConnectionFactory::ConnectTask::OnConnected(bool success) { |
DCHECK(io_handler_.get()); |
- if (!success) |
- return; |
- if (!options_) |
- options_ = serial::ConnectionOptions::New(); |
- FillDefaultConnectionOptions(options_.get()); |
- if (!io_handler_->ConfigurePort(*options_)) |
+ if (!success) { |
return; |
+ } |
+ |
mojo::BindToRequest( |
new SerialConnection(io_handler_, sink_.Pass(), source_.Pass()), |
&connection_request_); |