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

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

Issue 1316203006: Convert DeviceManagerDelegate to PermissionProvider mojo interface. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add comment and move ctor. 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
« no previous file with comments | « device/devices_app/devices_app.gyp ('k') | device/devices_app/usb/device_manager_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/devices_app/usb/device_manager_impl.h
diff --git a/device/devices_app/usb/device_manager_impl.h b/device/devices_app/usb/device_manager_impl.h
index 69b991e99a284afee050132d55565159ac47d6cd..b84f2544e0cbd0c6188db3ac866209fe08565903 100644
--- a/device/devices_app/usb/device_manager_impl.h
+++ b/device/devices_app/usb/device_manager_impl.h
@@ -14,9 +14,10 @@
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
#include "device/devices_app/usb/public/interfaces/device_manager.mojom.h"
+#include "device/devices_app/usb/public/interfaces/permission_provider.mojom.h"
#include "third_party/mojo/src/mojo/public/cpp/bindings/array.h"
+#include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h"
#include "third_party/mojo/src/mojo/public/cpp/bindings/interface_request.h"
-#include "third_party/mojo/src/mojo/public/cpp/bindings/strong_binding.h"
namespace base {
class SequencedTaskRunner;
@@ -38,11 +39,13 @@ class DeviceManagerImpl : public DeviceManager {
public:
DeviceManagerImpl(
mojo::InterfaceRequest<DeviceManager> request,
- scoped_ptr<DeviceManagerDelegate> delegate,
+ PermissionProviderPtr permission_provider,
scoped_refptr<base::SequencedTaskRunner> service_task_runner);
~DeviceManagerImpl() override;
- void set_connection_error_handler(const mojo::Closure& error_handler);
+ void set_connection_error_handler(const mojo::Closure& error_handler) {
+ connection_error_handler_ = error_handler;
+ }
private:
class ServiceThreadHelper;
@@ -55,20 +58,25 @@ class DeviceManagerImpl : public DeviceManager {
mojo::InterfaceRequest<Device> device_request,
const OpenDeviceCallback& callback) override;
+ void OnOpenDevicePermissionCheckComplete(
+ mojo::InterfaceRequest<Device> device_request,
+ const OpenDeviceCallback& callback,
+ mojo::Array<mojo::String> allowed_guids);
+
// Callbacks to handle the async responses from the underlying UsbService.
void OnGetDevices(const GetDevicesCallback& callback,
mojo::Array<DeviceInfoPtr> devices);
- void OnGetInitialDevices(const GetDeviceChangesCallback& callback,
- mojo::Array<DeviceInfoPtr> devices);
// Methods called by |helper_| when devices are added or removed.
void OnDeviceAdded(DeviceInfoPtr device);
void OnDeviceRemoved(std::string device_guid);
void MaybeRunDeviceChangesCallback();
+ void OnEnumerationPermissionCheckComplete(
+ mojo::Array<DeviceInfoPtr> devices_added,
+ const std::set<std::string>& devices_removed,
+ mojo::Array<mojo::String> allowed_guids);
- mojo::StrongBinding<DeviceManager> binding_;
-
- scoped_ptr<DeviceManagerDelegate> delegate_;
+ PermissionProviderPtr permission_provider_;
scoped_refptr<base::SequencedTaskRunner> service_task_runner_;
// If there are unfinished calls to GetDeviceChanges their callbacks
@@ -78,11 +86,17 @@ class DeviceManagerImpl : public DeviceManager {
std::queue<GetDeviceChangesCallback> device_change_callbacks_;
mojo::Array<DeviceInfoPtr> devices_added_;
std::set<std::string> devices_removed_;
+ // To ensure that GetDeviceChangesCallbacks are called in the correct order
+ // only perform a single request to |permission_provider_| at a time.
+ bool permission_request_pending_ = false;
// |helper_| is owned by the service thread and holds a weak reference
// back to the device manager that created it.
- ServiceThreadHelper* helper_ = nullptr;
+ ServiceThreadHelper* helper_;
+
+ mojo::Closure connection_error_handler_;
+ mojo::Binding<DeviceManager> binding_;
base::WeakPtrFactory<DeviceManagerImpl> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(DeviceManagerImpl);
« no previous file with comments | « device/devices_app/devices_app.gyp ('k') | device/devices_app/usb/device_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698