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

Side by Side Diff: chrome/browser/extensions/api/alarms/alarm_manager.cc

Issue 299393002: Use ExtensionRegistryObserver instead of deprecated extension notification from c/b/extension (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/alarms/alarm_manager.h" 5 #include "chrome/browser/extensions/api/alarms/alarm_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/time/clock.h" 11 #include "base/time/clock.h"
12 #include "base/time/default_clock.h" 12 #include "base/time/default_clock.h"
13 #include "base/time/time.h" 13 #include "base/time/time.h"
14 #include "base/value_conversions.h" 14 #include "base/value_conversions.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "chrome/browser/chrome_notification_types.h"
17 #include "chrome/browser/extensions/extension_service.h" 16 #include "chrome/browser/extensions/extension_service.h"
18 #include "chrome/browser/extensions/state_store.h" 17 #include "chrome/browser/extensions/state_store.h"
19 #include "chrome/common/extensions/api/alarms.h" 18 #include "chrome/common/extensions/api/alarms.h"
20 #include "content/public/browser/notification_service.h"
21 #include "extensions/browser/event_router.h" 19 #include "extensions/browser/event_router.h"
22 #include "extensions/browser/extension_registry.h" 20 #include "extensions/browser/extension_registry.h"
23 #include "extensions/browser/extension_system.h" 21 #include "extensions/browser/extension_system.h"
24 22
25 namespace extensions { 23 namespace extensions {
26 24
27 namespace alarms = api::alarms; 25 namespace alarms = api::alarms;
28 26
29 namespace { 27 namespace {
30 28
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 for (size_t i = 0; i < alarms.size(); ++i) { 82 for (size_t i = 0; i < alarms.size(); ++i) {
85 scoped_ptr<base::DictionaryValue> alarm = 83 scoped_ptr<base::DictionaryValue> alarm =
86 alarms[i].js_alarm->ToValue().Pass(); 84 alarms[i].js_alarm->ToValue().Pass();
87 alarm->Set(kAlarmGranularity, 85 alarm->Set(kAlarmGranularity,
88 base::CreateTimeDeltaValue(alarms[i].granularity)); 86 base::CreateTimeDeltaValue(alarms[i].granularity));
89 list->Append(alarm.release()); 87 list->Append(alarm.release());
90 } 88 }
91 return list.Pass(); 89 return list.Pass();
92 } 90 }
93 91
94
95 } // namespace 92 } // namespace
96 93
97 // AlarmManager 94 // AlarmManager
98 95
99 AlarmManager::AlarmManager(content::BrowserContext* context) 96 AlarmManager::AlarmManager(content::BrowserContext* context)
100 : browser_context_(context), 97 : browser_context_(context),
101 clock_(new base::DefaultClock()), 98 clock_(new base::DefaultClock()),
102 delegate_(new DefaultAlarmDelegate(context)), 99 delegate_(new DefaultAlarmDelegate(context)),
103 extension_registry_observer_(this) { 100 extension_registry_observer_(this) {
104 extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_)); 101 extension_registry_observer_.Add(ExtensionRegistry::Get(browser_context_));
105 registrar_.Add(this,
106 chrome::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED,
107 content::Source<content::BrowserContext>(browser_context_));
108 102
109 StateStore* storage = ExtensionSystem::Get(browser_context_)->state_store(); 103 StateStore* storage = ExtensionSystem::Get(browser_context_)->state_store();
110 if (storage) 104 if (storage)
111 storage->RegisterKey(kRegisteredAlarms); 105 storage->RegisterKey(kRegisteredAlarms);
112 } 106 }
113 107
114 AlarmManager::~AlarmManager() { 108 AlarmManager::~AlarmManager() {
115 } 109 }
116 110
117 void AlarmManager::AddAlarm(const std::string& extension_id, 111 void AlarmManager::AddAlarm(const std::string& extension_id,
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 if (storage) { 410 if (storage) {
417 ready_actions_.insert(ReadyMap::value_type(extension->id(), ReadyQueue())); 411 ready_actions_.insert(ReadyMap::value_type(extension->id(), ReadyQueue()));
418 storage->GetExtensionValue( 412 storage->GetExtensionValue(
419 extension->id(), 413 extension->id(),
420 kRegisteredAlarms, 414 kRegisteredAlarms,
421 base::Bind( 415 base::Bind(
422 &AlarmManager::ReadFromStorage, AsWeakPtr(), extension->id())); 416 &AlarmManager::ReadFromStorage, AsWeakPtr(), extension->id()));
423 } 417 }
424 } 418 }
425 419
426 void AlarmManager::Observe( 420 void AlarmManager::OnExtensionUninstalled(
427 int type, 421 content::BrowserContext* browser_context,
428 const content::NotificationSource& source, 422 const Extension* extension) {
429 const content::NotificationDetails& details) {
430 DCHECK_EQ(type, chrome::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED);
431 const Extension* extension = content::Details<const Extension>(details).ptr();
432 RemoveAllAlarms(extension->id(), base::Bind(RemoveAllOnUninstallCallback)); 423 RemoveAllAlarms(extension->id(), base::Bind(RemoveAllOnUninstallCallback));
433 } 424 }
434 425
435 // AlarmManager::Alarm 426 // AlarmManager::Alarm
436 427
437 Alarm::Alarm() 428 Alarm::Alarm()
438 : js_alarm(new api::alarms::Alarm()) { 429 : js_alarm(new api::alarms::Alarm()) {
439 } 430 }
440 431
441 Alarm::Alarm(const std::string& name, 432 Alarm::Alarm(const std::string& name,
(...skipping 28 matching lines...) Expand all
470 if (create_info.period_in_minutes.get()) { 461 if (create_info.period_in_minutes.get()) {
471 js_alarm->period_in_minutes.reset( 462 js_alarm->period_in_minutes.reset(
472 new double(*create_info.period_in_minutes)); 463 new double(*create_info.period_in_minutes));
473 } 464 }
474 } 465 }
475 466
476 Alarm::~Alarm() { 467 Alarm::~Alarm() {
477 } 468 }
478 469
479 } // namespace extensions 470 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/alarms/alarm_manager.h ('k') | chrome/browser/extensions/api/commands/command_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698