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

Unified Diff: chrome/browser/extensions/api/alarms/alarm_manager.cc

Issue 275383002: Use ExtensionRegistryObserver instead of deprecated extension notification from c/b/e/api. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address review 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/alarms/alarm_manager.cc
diff --git a/chrome/browser/extensions/api/alarms/alarm_manager.cc b/chrome/browser/extensions/api/alarms/alarm_manager.cc
index cc3267d3f6cfcdc487e66a4235fe81547576f0c9..6866f2d278379d0140f4efbfae23a42d8773c2a1 100644
--- a/chrome/browser/extensions/api/alarms/alarm_manager.cc
+++ b/chrome/browser/extensions/api/alarms/alarm_manager.cc
@@ -16,10 +16,10 @@
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/state_store.h"
-#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/alarms.h"
#include "content/public/browser/notification_service.h"
#include "extensions/browser/event_router.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h"
namespace extensions {
@@ -97,16 +97,16 @@ scoped_ptr<base::ListValue> AlarmsToValue(const std::vector<Alarm>& alarms) {
// AlarmManager
AlarmManager::AlarmManager(content::BrowserContext* context)
- : profile_(Profile::FromBrowserContext(context)),
+ : browser_context_(context),
clock_(new base::DefaultClock()),
- delegate_(new DefaultAlarmDelegate(context)) {
+ delegate_(new DefaultAlarmDelegate(context)),
+ extension_registry_observer_(this) {
+ extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_));
registrar_.Add(this,
- chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED,
- content::Source<Profile>(profile_));
- registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED,
- content::Source<Profile>(profile_));
+ chrome::NOTIFICATION_EXTENSION_UNINSTALLED,
+ content::Source<content::BrowserContext>(browser_context_));
- StateStore* storage = ExtensionSystem::Get(profile_)->state_store();
+ StateStore* storage = ExtensionSystem::Get(browser_context_)->state_store();
if (storage)
storage->RegisterKey(kRegisteredAlarms);
}
@@ -226,8 +226,8 @@ AlarmManager::GetFactoryInstance() {
}
// static
-AlarmManager* AlarmManager::Get(Profile* profile) {
- return BrowserContextKeyedAPIFactory<AlarmManager>::Get(profile);
+AlarmManager* AlarmManager::Get(content::BrowserContext* browser_context) {
+ return BrowserContextKeyedAPIFactory<AlarmManager>::Get(browser_context);
}
void AlarmManager::RemoveAlarmIterator(const AlarmIterator& iter) {
@@ -290,7 +290,7 @@ void AlarmManager::AddAlarmImpl(const std::string& extension_id,
}
void AlarmManager::WriteToStorage(const std::string& extension_id) {
- StateStore* storage = ExtensionSystem::Get(profile_)->state_store();
+ StateStore* storage = ExtensionSystem::Get(browser_context_)->state_store();
if (!storage)
return;
@@ -410,35 +410,26 @@ void AlarmManager::RunWhenReady(
it->second.push(action);
}
+void AlarmManager::OnExtensionLoaded(content::BrowserContext* browser_context,
+ const Extension* extension) {
+ StateStore* storage = ExtensionSystem::Get(browser_context_)->state_store();
+ if (storage) {
+ ready_actions_.insert(ReadyMap::value_type(extension->id(), ReadyQueue()));
+ storage->GetExtensionValue(
+ extension->id(),
+ kRegisteredAlarms,
+ base::Bind(
+ &AlarmManager::ReadFromStorage, AsWeakPtr(), extension->id()));
+ }
+}
+
void AlarmManager::Observe(
int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) {
- switch (type) {
- case chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED: {
- const Extension* extension =
- content::Details<const Extension>(details).ptr();
- StateStore* storage = ExtensionSystem::Get(profile_)->state_store();
- if (storage) {
- ready_actions_.insert(
- ReadyMap::value_type(extension->id(), ReadyQueue()));
- storage->GetExtensionValue(extension->id(), kRegisteredAlarms,
- base::Bind(&AlarmManager::ReadFromStorage,
- AsWeakPtr(), extension->id()));
- }
- break;
- }
- case chrome::NOTIFICATION_EXTENSION_UNINSTALLED: {
- const Extension* extension =
- content::Details<const Extension>(details).ptr();
- RemoveAllAlarms(
- extension->id(), base::Bind(RemoveAllOnUninstallCallback));
- break;
- }
- default:
- NOTREACHED();
- break;
- }
+ DCHECK_EQ(type, chrome::NOTIFICATION_EXTENSION_UNINSTALLED);
+ const Extension* extension = content::Details<const Extension>(details).ptr();
+ RemoveAllAlarms(extension->id(), base::Bind(RemoveAllOnUninstallCallback));
}
// AlarmManager::Alarm
« no previous file with comments | « chrome/browser/extensions/api/alarms/alarm_manager.h ('k') | chrome/browser/extensions/api/alarms/alarms_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698