| Index: chrome/browser/extensions/api/serial/serial_api.cc
|
| diff --git a/chrome/browser/extensions/api/serial/serial_api.cc b/chrome/browser/extensions/api/serial/serial_api.cc
|
| index ebf2a6682a0b65629aae79e7dce98e99dfb5f04e..81d4d49bdf74978760f9a3a4eaee0aec4a33cd52 100644
|
| --- a/chrome/browser/extensions/api/serial/serial_api.cc
|
| +++ b/chrome/browser/extensions/api/serial/serial_api.cc
|
| @@ -37,7 +37,7 @@ const serial::StopBits kDefaultStopBits = serial::STOP_BITS_ONE;
|
| const int kDefaultReceiveTimeout = 0;
|
| const int kDefaultSendTimeout = 0;
|
|
|
| -const char kErrorOpenFailed[] = "Failed to open the port.";
|
| +const char kErrorConnectFailed[] = "Failed to connect to the port.";
|
| const char kErrorSerialConnectionNotFound[] = "Serial connection not found.";
|
| const char kErrorGetControlSignalsFailed[] = "Failed to get control signals.";
|
|
|
| @@ -98,12 +98,12 @@ void SerialGetDevicesFunction::Work() {
|
| results_ = serial::GetDevices::Results::Create(devices);
|
| }
|
|
|
| -SerialOpenFunction::SerialOpenFunction() {}
|
| +SerialConnectFunction::SerialConnectFunction() {}
|
|
|
| -SerialOpenFunction::~SerialOpenFunction() {}
|
| +SerialConnectFunction::~SerialConnectFunction() {}
|
|
|
| -bool SerialOpenFunction::Prepare() {
|
| - params_ = serial::Open::Params::Create(*args_);
|
| +bool SerialConnectFunction::Prepare() {
|
| + params_ = serial::Connect::Params::Create(*args_);
|
| EXTENSION_FUNCTION_VALIDATE(params_.get());
|
|
|
| // Fill in any omitted options to ensure a known initial configuration.
|
| @@ -131,13 +131,13 @@ bool SerialOpenFunction::Prepare() {
|
| return true;
|
| }
|
|
|
| -void SerialOpenFunction::AsyncWorkStart() {
|
| +void SerialConnectFunction::AsyncWorkStart() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| connection_ = CreateSerialConnection(params_->path, extension_->id());
|
| - connection_->Open(base::Bind(&SerialOpenFunction::OnOpen, this));
|
| + connection_->Open(base::Bind(&SerialConnectFunction::OnConnected, this));
|
| }
|
|
|
| -void SerialOpenFunction::OnOpen(bool success) {
|
| +void SerialConnectFunction::OnConnected(bool success) {
|
| DCHECK(connection_);
|
|
|
| if (success) {
|
| @@ -152,25 +152,31 @@ void SerialOpenFunction::OnOpen(bool success) {
|
| }
|
|
|
| BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&SerialOpenFunction::FinishOpen, this));
|
| + base::Bind(&SerialConnectFunction::FinishConnect,
|
| + this));
|
| }
|
|
|
| -void SerialOpenFunction::FinishOpen() {
|
| +void SerialConnectFunction::FinishConnect() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| if (!connection_) {
|
| - error_ = kErrorOpenFailed;
|
| + error_ = kErrorConnectFailed;
|
| } else {
|
| int id = manager_->Add(connection_);
|
| - serial_event_dispatcher_->PollConnection(extension_->id(), id);
|
| -
|
| - serial::OpenInfo open_info;
|
| - open_info.connection_id = id;
|
| - results_ = serial::Open::Results::Create(open_info);
|
| + serial::ConnectionInfo info;
|
| + info.connection_id = id;
|
| + if (connection_->GetInfo(&info)) {
|
| + serial_event_dispatcher_->PollConnection(extension_->id(), id);
|
| + results_ = serial::Connect::Results::Create(info);
|
| + } else {
|
| + connection_->Close();
|
| + RemoveSerialConnection(id);
|
| + error_ = kErrorConnectFailed;
|
| + }
|
| }
|
| AsyncWorkCompleted();
|
| }
|
|
|
| -SerialConnection* SerialOpenFunction::CreateSerialConnection(
|
| +SerialConnection* SerialConnectFunction::CreateSerialConnection(
|
| const std::string& port, const std::string& extension_id) const {
|
| return new SerialConnection(port, extension_id);
|
| }
|
| @@ -196,18 +202,18 @@ void SerialUpdateFunction::Work() {
|
| results_ = serial::Update::Results::Create(success);
|
| }
|
|
|
| -SerialCloseFunction::SerialCloseFunction() {}
|
| +SerialDisconnectFunction::SerialDisconnectFunction() {}
|
|
|
| -SerialCloseFunction::~SerialCloseFunction() {}
|
| +SerialDisconnectFunction::~SerialDisconnectFunction() {}
|
|
|
| -bool SerialCloseFunction::Prepare() {
|
| - params_ = serial::Close::Params::Create(*args_);
|
| +bool SerialDisconnectFunction::Prepare() {
|
| + params_ = serial::Disconnect::Params::Create(*args_);
|
| EXTENSION_FUNCTION_VALIDATE(params_.get());
|
|
|
| return true;
|
| }
|
|
|
| -void SerialCloseFunction::Work() {
|
| +void SerialDisconnectFunction::Work() {
|
| SerialConnection* connection = GetSerialConnection(params_->connection_id);
|
| if (!connection) {
|
| error_ = kErrorSerialConnectionNotFound;
|
| @@ -215,7 +221,7 @@ void SerialCloseFunction::Work() {
|
| }
|
| connection->Close();
|
| RemoveSerialConnection(params_->connection_id);
|
| - results_ = serial::Close::Results::Create(true);
|
| + results_ = serial::Disconnect::Results::Create(true);
|
| }
|
|
|
| SerialSendFunction::SerialSendFunction() {}
|
|
|