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

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

Issue 1682363002: Remove //device/devices_app. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove two files that somehow survived in //device/devices_app. Created 4 years, 10 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
deleted file mode 100644
index b3f77843aad0d755c92b85a4d22889f6efeb45ca..0000000000000000000000000000000000000000
--- a/device/devices_app/usb/device_manager_impl.cc
+++ /dev/null
@@ -1,228 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "device/devices_app/usb/device_manager_impl.h"
-
-#include <stddef.h>
-#include <utility>
-
-#include "base/bind.h"
-#include "base/location.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/stl_util.h"
-#include "device/core/device_client.h"
-#include "device/devices_app/usb/device_impl.h"
-#include "device/devices_app/usb/public/interfaces/device.mojom.h"
-#include "device/devices_app/usb/type_converters.h"
-#include "device/usb/usb_device.h"
-#include "device/usb/usb_device_filter.h"
-#include "device/usb/usb_service.h"
-#include "mojo/public/cpp/bindings/array.h"
-#include "mojo/public/cpp/bindings/interface_request.h"
-
-namespace device {
-namespace usb {
-
-namespace {
-
-using DeviceList = DeviceManagerImpl::DeviceList;
-using DeviceMap = DeviceManagerImpl::DeviceMap;
-
-void FilterAndConvertDevicesAndThen(
- const DeviceMap& devices,
- const DeviceManagerImpl::GetDevicesCallback& callback,
- mojo::Array<mojo::String> allowed_guids) {
- mojo::Array<DeviceInfoPtr> allowed_devices(allowed_guids.size());
- for (size_t i = 0; i < allowed_guids.size(); ++i) {
- const auto it = devices.find(allowed_guids[i]);
- DCHECK(it != devices.end());
- allowed_devices[i] = DeviceInfo::From(*it->second);
- }
-
- callback.Run(std::move(allowed_devices));
-}
-
-} // namespace
-
-// static
-void DeviceManagerImpl::Create(PermissionProviderPtr permission_provider,
- mojo::InterfaceRequest<DeviceManager> request) {
- // The created object is owned by its binding.
- new DeviceManagerImpl(std::move(permission_provider), std::move(request));
-}
-
-DeviceManagerImpl::DeviceManagerImpl(
- PermissionProviderPtr permission_provider,
- mojo::InterfaceRequest<DeviceManager> request)
- : permission_provider_(std::move(permission_provider)),
- observer_(this),
- binding_(this, std::move(request)),
- weak_factory_(this) {
- // This object owns itself and will be destroyed if either the message pipe
- // it is bound to is closed or the PermissionProvider it depends on is
- // unavailable.
- binding_.set_connection_error_handler([this]() { delete this; });
- permission_provider_.set_connection_error_handler([this]() { delete this; });
-
- DCHECK(DeviceClient::Get());
- usb_service_ = DeviceClient::Get()->GetUsbService();
- if (usb_service_)
- observer_.Add(usb_service_);
-}
-
-DeviceManagerImpl::~DeviceManagerImpl() {
- connection_error_handler_.Run();
-}
-
-void DeviceManagerImpl::GetDevices(EnumerationOptionsPtr options,
- const GetDevicesCallback& callback) {
- if (!usb_service_) {
- mojo::Array<DeviceInfoPtr> no_devices;
- callback.Run(std::move(no_devices));
- return;
- }
-
- usb_service_->GetDevices(base::Bind(&DeviceManagerImpl::OnGetDevices,
- weak_factory_.GetWeakPtr(),
- base::Passed(&options), callback));
-}
-
-void DeviceManagerImpl::GetDeviceChanges(
- const GetDeviceChangesCallback& callback) {
- device_change_callbacks_.push(callback);
- MaybeRunDeviceChangesCallback();
-}
-
-void DeviceManagerImpl::GetDevice(
- const mojo::String& guid,
- mojo::InterfaceRequest<Device> device_request) {
- if (!usb_service_)
- return;
-
- scoped_refptr<UsbDevice> device = usb_service_->GetDevice(guid);
- if (!device)
- return;
-
- mojo::Array<DeviceInfoPtr> requested_devices(1);
- requested_devices[0] = DeviceInfo::From(*device);
- permission_provider_->HasDevicePermission(
- std::move(requested_devices),
- base::Bind(&DeviceManagerImpl::OnGetDevicePermissionCheckComplete,
- base::Unretained(this), device,
- base::Passed(&device_request)));
-}
-
-void DeviceManagerImpl::OnGetDevicePermissionCheckComplete(
- scoped_refptr<UsbDevice> device,
- mojo::InterfaceRequest<Device> device_request,
- mojo::Array<mojo::String> allowed_guids) {
- if (allowed_guids.size() == 0)
- return;
-
- DCHECK(allowed_guids.size() == 1);
- PermissionProviderPtr permission_provider;
- permission_provider_->Bind(mojo::GetProxy(&permission_provider));
- new DeviceImpl(device, std::move(permission_provider),
- std::move(device_request));
-}
-
-void DeviceManagerImpl::OnGetDevices(EnumerationOptionsPtr options,
- const GetDevicesCallback& callback,
- const DeviceList& devices) {
- std::vector<UsbDeviceFilter> filters;
- if (options)
- filters = options->filters.To<std::vector<UsbDeviceFilter>>();
-
- std::map<std::string, scoped_refptr<UsbDevice>> device_map;
- mojo::Array<DeviceInfoPtr> requested_devices(0);
- for (const auto& device : devices) {
- if (filters.empty() || UsbDeviceFilter::MatchesAny(device, filters)) {
- device_map[device->guid()] = device;
- requested_devices.push_back(DeviceInfo::From(*device));
- }
- }
-
- permission_provider_->HasDevicePermission(
- std::move(requested_devices),
- base::Bind(&FilterAndConvertDevicesAndThen, device_map, callback));
-}
-
-void DeviceManagerImpl::OnDeviceAdded(scoped_refptr<UsbDevice> device) {
- DCHECK(!ContainsKey(devices_removed_, device->guid()));
- devices_added_[device->guid()] = device;
- MaybeRunDeviceChangesCallback();
-}
-
-void DeviceManagerImpl::OnDeviceRemoved(scoped_refptr<UsbDevice> device) {
- if (devices_added_.erase(device->guid()) == 0)
- devices_removed_[device->guid()] = device;
- MaybeRunDeviceChangesCallback();
-}
-
-void DeviceManagerImpl::WillDestroyUsbService() {
- observer_.RemoveAll();
- usb_service_ = nullptr;
-}
-
-void DeviceManagerImpl::MaybeRunDeviceChangesCallback() {
- if (!permission_request_pending_ && !device_change_callbacks_.empty()) {
- DeviceMap devices_added;
- devices_added.swap(devices_added_);
- DeviceMap devices_removed;
- devices_removed.swap(devices_removed_);
-
- mojo::Array<DeviceInfoPtr> requested_devices(devices_added.size() +
- devices_removed.size());
- {
- size_t i = 0;
- for (const auto& map_entry : devices_added)
- requested_devices[i++] = DeviceInfo::From(*map_entry.second);
- for (const auto& map_entry : devices_removed)
- requested_devices[i++] = DeviceInfo::From(*map_entry.second);
- }
-
- permission_request_pending_ = true;
- permission_provider_->HasDevicePermission(
- std::move(requested_devices),
- base::Bind(&DeviceManagerImpl::OnEnumerationPermissionCheckComplete,
- base::Unretained(this), devices_added, devices_removed));
- }
-}
-
-void DeviceManagerImpl::OnEnumerationPermissionCheckComplete(
- const DeviceMap& devices_added,
- const DeviceMap& devices_removed,
- mojo::Array<mojo::String> allowed_guids) {
- permission_request_pending_ = false;
-
- if (allowed_guids.size() > 0) {
- DeviceChangeNotificationPtr notification = DeviceChangeNotification::New();
- notification->devices_added.resize(0);
- notification->devices_removed.resize(0);
-
- for (size_t i = 0; i < allowed_guids.size(); ++i) {
- const mojo::String& guid = allowed_guids[i];
- auto it = devices_added.find(guid);
- if (it != devices_added.end()) {
- DCHECK(!ContainsKey(devices_removed, guid));
- notification->devices_added.push_back(DeviceInfo::From(*it->second));
- } else {
- it = devices_removed.find(guid);
- DCHECK(it != devices_removed.end());
- notification->devices_removed.push_back(DeviceInfo::From(*it->second));
- }
- }
-
- DCHECK(!device_change_callbacks_.empty());
- const GetDeviceChangesCallback& callback = device_change_callbacks_.front();
- callback.Run(std::move(notification));
- device_change_callbacks_.pop();
- }
-
- if (devices_added_.size() > 0 || !devices_removed_.empty())
- MaybeRunDeviceChangesCallback();
-}
-
-} // namespace usb
-} // namespace device
« 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