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

Unified Diff: chrome/browser/extensions/api/image_writer_private/operation_manager.h

Issue 263393002: Remove NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED from c/b/e/api (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix test Created 6 years, 7 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: chrome/browser/extensions/api/image_writer_private/operation_manager.h
diff --git a/chrome/browser/extensions/api/image_writer_private/operation_manager.h b/chrome/browser/extensions/api/image_writer_private/operation_manager.h
index b255a989e80f919c958c44966c5673129d9286ff..8d9208f0be3533017018d74664bf294fcd7a0aa3 100644
--- a/chrome/browser/extensions/api/image_writer_private/operation_manager.h
+++ b/chrome/browser/extensions/api/image_writer_private/operation_manager.h
@@ -10,6 +10,7 @@
#include "base/bind.h"
#include "base/callback.h"
#include "base/memory/weak_ptr.h"
+#include "base/scoped_observer.h"
#include "base/stl_util.h"
#include "base/timer/timer.h"
#include "chrome/browser/extensions/api/image_writer_private/image_writer_private_api.h"
@@ -18,6 +19,7 @@
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
#include "extensions/browser/browser_context_keyed_api_factory.h"
+#include "extensions/browser/extension_registry_observer.h"
#include "url/gurl.h"
namespace image_writer_api = extensions::api::image_writer_private;
@@ -29,6 +31,8 @@ class BrowserContext;
}
namespace extensions {
+class ExtensionRegistry;
+
namespace image_writer {
class Operation;
@@ -37,6 +41,7 @@ class Operation;
// and message routing.
class OperationManager : public BrowserContextKeyedAPI,
public content::NotificationObserver,
+ public extensions::ExtensionRegistryObserver,
public base::SupportsWeakPtr<OperationManager> {
public:
typedef std::string ExtensionId;
@@ -85,29 +90,37 @@ class OperationManager : public BrowserContextKeyedAPI,
static BrowserContextKeyedAPIFactory<OperationManager>* GetFactoryInstance();
static OperationManager* Get(content::BrowserContext* context);
- Profile* profile() { return profile_; }
-
private:
static const char* service_name() {
return "OperationManager";
}
- // NotificationObserver
+ // NotificationObserver implementation.
virtual void Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
+ // ExtensionRegistryObserver implementation.
+ virtual void OnExtensionUnloaded(
+ content::BrowserContext* browser_context,
+ const Extension* extension,
+ UnloadedExtensionInfo::Reason reason) OVERRIDE;
+
Operation* GetOperation(const ExtensionId& extension_id);
void DeleteOperation(const ExtensionId& extension_id);
friend class BrowserContextKeyedAPIFactory<OperationManager>;
typedef std::map<ExtensionId, scoped_refptr<Operation> > OperationMap;
- Profile* profile_;
+ content::BrowserContext* browser_context_;
OperationMap operations_;
content::NotificationRegistrar registrar_;
+ // Listen to extension unloaded notification.
+ ScopedObserver<ExtensionRegistry, ExtensionRegistryObserver>
+ extension_registry_observer_;
+
base::WeakPtrFactory<OperationManager> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(OperationManager);

Powered by Google App Engine
This is Rietveld 408576698