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

Unified Diff: device/devices_app/usb/device_manager_impl.cc

Issue 1352683006: Move device opening from DeviceManager to Device. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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
Index: device/devices_app/usb/device_manager_impl.cc
diff --git a/device/devices_app/usb/device_manager_impl.cc b/device/devices_app/usb/device_manager_impl.cc
index 48c9361b69ca23a64321f2b3ae8b58949d8e117a..333df78bdb27cdd050b3dee24220d67746c1da15 100644
--- a/device/devices_app/usb/device_manager_impl.cc
+++ b/device/devices_app/usb/device_manager_impl.cc
@@ -53,69 +53,14 @@ void GetDevicesOnServiceThread(
void GetDeviceOnServiceThread(
const mojo::String& guid,
- const base::Callback<void(DeviceInfoPtr)>& callback,
+ const base::Callback<void(scoped_refptr<UsbDevice>)>& callback,
scoped_refptr<base::TaskRunner> callback_task_runner) {
- DeviceInfoPtr device_info;
DCHECK(DeviceClient::Get());
+ scoped_refptr<UsbDevice> device;
UsbService* usb_service = DeviceClient::Get()->GetUsbService();
- if (usb_service) {
- scoped_refptr<UsbDevice> device = usb_service->GetDevice(guid);
- if (device)
- device_info = DeviceInfo::From(*device);
- }
-
- callback_task_runner->PostTask(
- FROM_HERE, base::Bind(callback, base::Passed(&device_info)));
-}
-
-void RunOpenDeviceCallback(const DeviceManager::OpenDeviceCallback& callback,
- OpenDeviceError error) {
- callback.Run(error);
-}
-
-void OnOpenDeviceOnServiceThread(
- mojo::InterfaceRequest<Device> device_request,
- const DeviceManager::OpenDeviceCallback& callback,
- scoped_refptr<base::TaskRunner> callback_task_runner,
- scoped_refptr<UsbDeviceHandle> device_handle) {
- if (!device_handle) {
- callback_task_runner->PostTask(FROM_HERE,
- base::Bind(&RunOpenDeviceCallback, callback,
- OPEN_DEVICE_ERROR_ACCESS_DENIED));
- return;
- }
-
- // Owned by its MessagePipe.
- new DeviceImpl(device_handle, device_request.Pass());
-
- callback_task_runner->PostTask(
- FROM_HERE,
- base::Bind(&RunOpenDeviceCallback, callback, OPEN_DEVICE_ERROR_OK));
-}
-
-void OpenDeviceOnServiceThread(
- const std::string& guid,
- mojo::InterfaceRequest<Device> device_request,
- const DeviceManager::OpenDeviceCallback& callback,
- scoped_refptr<base::TaskRunner> callback_task_runner) {
- DCHECK(DeviceClient::Get());
- UsbService* usb_service = DeviceClient::Get()->GetUsbService();
- if (!usb_service) {
- callback_task_runner->PostTask(FROM_HERE,
- base::Bind(&RunOpenDeviceCallback, callback,
- OPEN_DEVICE_ERROR_NOT_FOUND));
- return;
- }
- scoped_refptr<UsbDevice> device = usb_service->GetDevice(guid);
- if (!device) {
- callback_task_runner->PostTask(FROM_HERE,
- base::Bind(&RunOpenDeviceCallback, callback,
- OPEN_DEVICE_ERROR_NOT_FOUND));
- return;
- }
- device->Open(base::Bind(&OnOpenDeviceOnServiceThread,
- base::Passed(&device_request), callback,
- callback_task_runner));
+ if (usb_service)
+ device = usb_service->GetDevice(guid);
+ callback_task_runner->PostTask(FROM_HERE, base::Bind(callback, device));
}
void FilterAndConvertDevicesAndThen(
@@ -224,51 +169,42 @@ void DeviceManagerImpl::GetDeviceChanges(
MaybeRunDeviceChangesCallback();
}
-void DeviceManagerImpl::OpenDevice(
+void DeviceManagerImpl::GetDevice(
const mojo::String& guid,
- mojo::InterfaceRequest<Device> device_request,
- const OpenDeviceCallback& callback) {
- auto has_permission_callback = base::Bind(
- &DeviceManagerImpl::OnGotDeviceInfoForOpen, weak_factory_.GetWeakPtr(),
- base::Passed(&device_request), callback);
+ mojo::InterfaceRequest<Device> device_request) {
+ auto get_device_callback =
+ base::Bind(&DeviceManagerImpl::OnGetDevice, weak_factory_.GetWeakPtr(),
+ base::Passed(&device_request));
service_task_runner_->PostTask(
FROM_HERE,
- base::Bind(&GetDeviceOnServiceThread, guid, has_permission_callback,
+ base::Bind(&GetDeviceOnServiceThread, guid, get_device_callback,
base::ThreadTaskRunnerHandle::Get()));
}
-void DeviceManagerImpl::OnGotDeviceInfoForOpen(
+void DeviceManagerImpl::OnGetDevice(
mojo::InterfaceRequest<Device> device_request,
- const OpenDeviceCallback& callback,
- DeviceInfoPtr device_info) {
- if (!device_info) {
- callback.Run(OPEN_DEVICE_ERROR_NOT_FOUND);
+ scoped_refptr<UsbDevice> device) {
+ if (!device)
return;
- }
mojo::Array<DeviceInfoPtr> requested_devices(1);
- requested_devices[0] = device_info.Pass();
+ requested_devices[0] = DeviceInfo::From(*device);
permission_provider_->HasDevicePermission(
requested_devices.Pass(),
- base::Bind(&DeviceManagerImpl::OnOpenDevicePermissionCheckComplete,
- base::Unretained(this), base::Passed(&device_request),
- callback));
+ base::Bind(&DeviceManagerImpl::OnGetDevicePermissionCheckComplete,
+ base::Unretained(this), device,
+ base::Passed(&device_request)));
}
-void DeviceManagerImpl::OnOpenDevicePermissionCheckComplete(
+void DeviceManagerImpl::OnGetDevicePermissionCheckComplete(
+ scoped_refptr<UsbDevice> device,
mojo::InterfaceRequest<Device> device_request,
- const OpenDeviceCallback& callback,
mojo::Array<mojo::String> allowed_guids) {
- if (allowed_guids.size() == 0) {
- callback.Run(OPEN_DEVICE_ERROR_ACCESS_DENIED);
+ if (allowed_guids.size() == 0)
return;
- }
DCHECK(allowed_guids.size() == 1);
- service_task_runner_->PostTask(
- FROM_HERE, base::Bind(&OpenDeviceOnServiceThread, allowed_guids[0],
- base::Passed(&device_request), callback,
- base::ThreadTaskRunnerHandle::Get()));
+ new DeviceImpl(device, device_request.Pass());
}
void DeviceManagerImpl::OnGetDevices(EnumerationOptionsPtr options,
« no previous file with comments | « device/devices_app/usb/device_manager_impl.h ('k') | device/devices_app/usb/device_manager_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698