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

Unified Diff: device/usb/usb_device_impl.cc

Issue 1034333002: Check USB device path access when prompting users to select a device. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Move MockPermissionBrokerClient into its own header. Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « device/usb/usb_device_impl.h ('k') | extensions/browser/api/device_permissions_prompt.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « device/usb/usb_device_impl.h ('k') | extensions/browser/api/device_permissions_prompt.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698