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

Unified Diff: extensions/browser/api/device_permissions_manager.h

Issue 882813002: Observe UsbService from the FILE thread in DevicePermissionsManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove the controversial fix for bug 452298. Created 5 years, 11 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: extensions/browser/api/device_permissions_manager.h
diff --git a/extensions/browser/api/device_permissions_manager.h b/extensions/browser/api/device_permissions_manager.h
index d76426c5a4dada983cfdacacb6042870a80cb7c9..159cd7b3244b90d1cb9ea819374ea7f6c98140f2 100644
--- a/extensions/browser/api/device_permissions_manager.h
+++ b/extensions/browser/api/device_permissions_manager.h
@@ -18,6 +18,7 @@
#include "base/threading/thread_checker.h"
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
#include "components/keyed_service/core/keyed_service.h"
+#include "content/public/browser/browser_thread.h"
#include "device/usb/usb_service.h"
#include "extensions/browser/process_manager.h"
#include "extensions/browser/process_manager_observer.h"
@@ -134,8 +135,7 @@ class DevicePermissions {
// Manages saved device permissions for all extensions.
class DevicePermissionsManager : public KeyedService,
public base::NonThreadSafe,
- public ProcessManagerObserver,
- public device::UsbService::Observer {
+ public ProcessManagerObserver {
public:
static DevicePermissionsManager* Get(content::BrowserContext* context);
@@ -171,6 +171,8 @@ class DevicePermissionsManager : public KeyedService,
void Clear(const std::string& extension_id);
private:
+ class FileThreadHelper;
+
friend class DevicePermissionsManagerFactory;
FRIEND_TEST_ALL_PREFIXES(DevicePermissionsManagerTest, SuspendExtension);
@@ -179,19 +181,18 @@ class DevicePermissionsManager : public KeyedService,
DevicePermissions* Get(const std::string& extension_id) const;
DevicePermissions* GetOrInsert(const std::string& extension_id);
+ void OnDeviceRemoved(scoped_refptr<device::UsbDevice> device);
// ProcessManagerObserver implementation
void OnBackgroundHostClose(const std::string& extension_id) override;
- // device::UsbService::Observer implementation
- void OnDeviceRemoved(scoped_refptr<device::UsbDevice> device) override;
-
content::BrowserContext* context_;
std::map<std::string, DevicePermissions*> extension_id_to_device_permissions_;
ScopedObserver<ProcessManager, ProcessManagerObserver>
process_manager_observer_;
- ScopedObserver<device::UsbService, device::UsbService::Observer>
- usb_service_observer_;
+ FileThreadHelper* helper_;
+
+ base::WeakPtrFactory<DevicePermissionsManager> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(DevicePermissionsManager);
};

Powered by Google App Engine
This is Rietveld 408576698