| OLD | NEW |
| 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 #ifndef CHROME_BROWSER_EXTENSIONS_API_ALARMS_ALARM_MANAGER_H__ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_ALARMS_ALARM_MANAGER_H__ |
| 6 #define CHROME_BROWSER_EXTENSIONS_API_ALARMS_ALARM_MANAGER_H__ | 6 #define CHROME_BROWSER_EXTENSIONS_API_ALARMS_ALARM_MANAGER_H__ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <queue> | 9 #include <queue> |
| 10 #include <string> | 10 #include <string> |
| 11 #include <vector> | 11 #include <vector> |
| 12 | 12 |
| 13 #include "base/callback.h" | 13 #include "base/callback.h" |
| 14 #include "base/memory/weak_ptr.h" | 14 #include "base/memory/weak_ptr.h" |
| 15 #include "base/timer/timer.h" | 15 #include "base/timer/timer.h" |
| 16 #include "chrome/browser/extensions/api/profile_keyed_api_factory.h" | 16 #include "chrome/browser/extensions/api/profile_keyed_api_factory.h" |
| 17 #include "chrome/common/extensions/api/alarms.h" | 17 #include "chrome/common/extensions/api/alarms.h" |
| 18 #include "content/public/browser/notification_observer.h" | 18 #include "content/public/browser/notification_observer.h" |
| 19 #include "content/public/browser/notification_registrar.h" | 19 #include "content/public/browser/notification_registrar.h" |
| 20 #include "extensions/browser/extension_function.h" | 20 #include "extensions/browser/extension_function.h" |
| 21 | 21 |
| 22 class Profile; | 22 class Profile; |
| 23 | 23 |
| 24 namespace base { | 24 namespace base { |
| 25 class Clock; | 25 class Clock; |
| 26 } // namespace base | 26 } // namespace base |
| 27 | 27 |
| 28 namespace content { |
| 29 class BrowserContext; |
| 30 } // namespace content |
| 31 |
| 28 namespace extensions { | 32 namespace extensions { |
| 29 | 33 |
| 30 class ExtensionAlarmsSchedulingTest; | 34 class ExtensionAlarmsSchedulingTest; |
| 31 | 35 |
| 32 struct Alarm { | 36 struct Alarm { |
| 33 Alarm(); | 37 Alarm(); |
| 34 Alarm(const std::string& name, | 38 Alarm(const std::string& name, |
| 35 const api::alarms::AlarmCreateInfo& create_info, | 39 const api::alarms::AlarmCreateInfo& create_info, |
| 36 base::TimeDelta min_granularity, | 40 base::TimeDelta min_granularity, |
| 37 base::Time now); | 41 base::Time now); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 59 typedef std::vector<Alarm> AlarmList; | 63 typedef std::vector<Alarm> AlarmList; |
| 60 | 64 |
| 61 class Delegate { | 65 class Delegate { |
| 62 public: | 66 public: |
| 63 virtual ~Delegate() {} | 67 virtual ~Delegate() {} |
| 64 // Called when an alarm fires. | 68 // Called when an alarm fires. |
| 65 virtual void OnAlarm(const std::string& extension_id, | 69 virtual void OnAlarm(const std::string& extension_id, |
| 66 const Alarm& alarm) = 0; | 70 const Alarm& alarm) = 0; |
| 67 }; | 71 }; |
| 68 | 72 |
| 69 explicit AlarmManager(Profile* profile); | 73 explicit AlarmManager(content::BrowserContext* context); |
| 70 virtual ~AlarmManager(); | 74 virtual ~AlarmManager(); |
| 71 | 75 |
| 72 // Override the default delegate. Callee assumes onwership. Used for testing. | 76 // Override the default delegate. Callee assumes onwership. Used for testing. |
| 73 void set_delegate(Delegate* delegate) { delegate_.reset(delegate); } | 77 void set_delegate(Delegate* delegate) { delegate_.reset(delegate); } |
| 74 | 78 |
| 75 typedef base::Callback<void()> AddAlarmCallback; | 79 typedef base::Callback<void()> AddAlarmCallback; |
| 76 // Adds |alarm| for the given extension, and starts the timer. Invokes | 80 // Adds |alarm| for the given extension, and starts the timer. Invokes |
| 77 // |callback| when done. | 81 // |callback| when done. |
| 78 void AddAlarm(const std::string& extension_id, | 82 void AddAlarm(const std::string& extension_id, |
| 79 const Alarm& alarm, | 83 const Alarm& alarm, |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 | 236 |
| 233 // Next poll's time. | 237 // Next poll's time. |
| 234 base::Time next_poll_time_; | 238 base::Time next_poll_time_; |
| 235 | 239 |
| 236 DISALLOW_COPY_AND_ASSIGN(AlarmManager); | 240 DISALLOW_COPY_AND_ASSIGN(AlarmManager); |
| 237 }; | 241 }; |
| 238 | 242 |
| 239 } // namespace extensions | 243 } // namespace extensions |
| 240 | 244 |
| 241 #endif // CHROME_BROWSER_EXTENSIONS_API_ALARMS_ALARM_MANAGER_H__ | 245 #endif // CHROME_BROWSER_EXTENSIONS_API_ALARMS_ALARM_MANAGER_H__ |
| OLD | NEW |