Index: device/usb/usb_device_impl.cc |
diff --git a/device/usb/usb_device_impl.cc b/device/usb/usb_device_impl.cc |
index 3aa9fbaa86db660a20433ba67aebd276f6eb59ea..02ceb6f834afda1f90730081a487e6b7be4da80f 100644 |
--- a/device/usb/usb_device_impl.cc |
+++ b/device/usb/usb_device_impl.cc |
@@ -21,7 +21,6 @@ |
#include "third_party/libusb/src/libusb/libusb.h" |
#if defined(OS_CHROMEOS) |
-#include "base/sys_info.h" |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/dbus/permission_broker_client.h" |
#endif // defined(OS_CHROMEOS) |
@@ -35,12 +34,14 @@ namespace device { |
namespace { |
#if defined(OS_CHROMEOS) |
-void OnRequestUsbAccessReplied( |
+ |
+void PostResultOnTaskRunner( |
scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
const base::Callback<void(bool success)>& callback, |
bool success) { |
task_runner->PostTask(FROM_HERE, base::Bind(callback, success)); |
} |
+ |
#endif // defined(OS_CHROMEOS) |
UsbEndpointDirection GetDirection( |
@@ -179,35 +180,35 @@ UsbDeviceImpl::~UsbDeviceImpl() { |
#if defined(OS_CHROMEOS) |
-void UsbDeviceImpl::RequestUsbAccess( |
- int interface_id, |
- const base::Callback<void(bool success)>& callback) { |
+void UsbDeviceImpl::CheckUsbAccess(const ResultCallback& callback) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
- // ChromeOS builds on non-ChromeOS machines (dev) should not attempt to |
- // use permission broker. |
- if (base::SysInfo::IsRunningOnChromeOS()) { |
- chromeos::PermissionBrokerClient* client = |
- chromeos::DBusThreadManager::Get()->GetPermissionBrokerClient(); |
- DCHECK(client) << "Could not get permission broker client."; |
- if (!client) { |
- callback.Run(false); |
- return; |
- } |
+ chromeos::PermissionBrokerClient* client = |
+ chromeos::DBusThreadManager::Get()->GetPermissionBrokerClient(); |
+ DCHECK(client) << "Could not get permission broker client."; |
- ui_task_runner_->PostTask( |
- FROM_HERE, |
- base::Bind(&chromeos::PermissionBrokerClient::RequestPathAccess, |
- base::Unretained(client), |
- devnode_, |
- interface_id, |
- base::Bind(&OnRequestUsbAccessReplied, |
- base::ThreadTaskRunnerHandle::Get(), |
- callback))); |
- } else { |
- // Not really running on Chrome OS, declare success. |
- callback.Run(true); |
- } |
+ ui_task_runner_->PostTask( |
+ FROM_HERE, |
+ base::Bind(&chromeos::PermissionBrokerClient::CheckPathAccess, |
+ base::Unretained(client), devnode_, |
+ base::Bind(&PostResultOnTaskRunner, |
+ base::ThreadTaskRunnerHandle::Get(), callback))); |
+} |
+ |
+void UsbDeviceImpl::RequestUsbAccess(int interface_id, |
+ const ResultCallback& callback) { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
+ |
+ chromeos::PermissionBrokerClient* client = |
+ chromeos::DBusThreadManager::Get()->GetPermissionBrokerClient(); |
+ DCHECK(client) << "Could not get permission broker client."; |
+ |
+ ui_task_runner_->PostTask( |
+ FROM_HERE, |
+ base::Bind(&chromeos::PermissionBrokerClient::RequestPathAccess, |
+ base::Unretained(client), devnode_, interface_id, |
+ base::Bind(&PostResultOnTaskRunner, |
+ base::ThreadTaskRunnerHandle::Get(), callback))); |
} |
#endif |