Chromium Code Reviews| Index: chromeos/dbus/fake_permission_broker_client.cc |
| diff --git a/chromeos/dbus/fake_permission_broker_client.cc b/chromeos/dbus/fake_permission_broker_client.cc |
| index 548173b5f1b33910ec30405e510d2309549d8a2b..b1c3d6ae1522beae4833f6a90723956b5f508cfd 100644 |
| --- a/chromeos/dbus/fake_permission_broker_client.cc |
| +++ b/chromeos/dbus/fake_permission_broker_client.cc |
| @@ -12,6 +12,7 @@ |
| #include "base/location.h" |
| #include "base/logging.h" |
| #include "base/posix/eintr_wrapper.h" |
| +#include "base/strings/stringprintf.h" |
| #include "base/thread_task_runner_handle.h" |
| #include "base/threading/worker_pool.h" |
| #include "dbus/file_descriptor.h" |
| @@ -27,17 +28,24 @@ namespace { |
| void OpenPathAndValidate( |
| const std::string& path, |
| const PermissionBrokerClient::OpenPathCallback& callback, |
| + const PermissionBrokerClient::ErrorCallback& error_callback, |
| scoped_refptr<base::TaskRunner> task_runner) { |
| - dbus::FileDescriptor dbus_fd; |
| int fd = HANDLE_EINTR(open(path.c_str(), O_RDWR)); |
| if (fd < 0) { |
| - PLOG(WARNING) << "Failed to open '" << path << "'"; |
| + int error_code = logging::GetLastSystemErrorCode(); |
| + task_runner->PostTask( |
| + FROM_HERE, |
| + base::Bind(error_callback, "open_failed", |
|
stevenjb
2016/02/09 23:16:51
nit: define 'open_failed' as a const, make availab
Reilly Grant (use Gerrit)
2016/02/09 23:54:03
Which header do you recommend? permission_broker_c
stevenjb
2016/02/10 00:01:01
Oh, I didn't notice this was the fake. In that cas
Reilly Grant (use Gerrit)
2016/02/10 00:16:32
Done.
|
| + base::StringPrintf( |
| + "Failed to open '%s': %s", path.c_str(), |
| + logging::SystemErrorCodeToString(error_code).c_str()))); |
|
stevenjb
2016/02/09 23:16:51
nit: return here, remove else
Reilly Grant (use Gerrit)
2016/02/10 00:16:32
Done.
|
| } else { |
| + dbus::FileDescriptor dbus_fd; |
| dbus_fd.PutValue(fd); |
| dbus_fd.CheckValidity(); |
| + task_runner->PostTask(FROM_HERE, |
| + base::Bind(callback, base::Passed(&dbus_fd))); |
| } |
| - task_runner->PostTask(FROM_HERE, |
| - base::Bind(callback, base::Passed(&dbus_fd))); |
| } |
| } // namespace |
| @@ -55,11 +63,13 @@ void FakePermissionBrokerClient::CheckPathAccess( |
| } |
| void FakePermissionBrokerClient::OpenPath(const std::string& path, |
| - const OpenPathCallback& callback) { |
| - base::WorkerPool::PostTask(FROM_HERE, |
| - base::Bind(&OpenPathAndValidate, path, callback, |
| - base::ThreadTaskRunnerHandle::Get()), |
| - false); |
| + const OpenPathCallback& callback, |
| + const ErrorCallback& error_callback) { |
| + base::WorkerPool::PostTask( |
| + FROM_HERE, |
| + base::Bind(&OpenPathAndValidate, path, callback, error_callback, |
| + base::ThreadTaskRunnerHandle::Get()), |
| + false); |
| } |
| void FakePermissionBrokerClient::RequestTcpPortAccess( |