| Index: extensions/browser/api/alarms/alarm_manager.h
|
| diff --git a/extensions/browser/api/alarms/alarm_manager.h b/extensions/browser/api/alarms/alarm_manager.h
|
| index c5917f8470fc92d5ddbf21888906fbae46ae9a57..7abbbf3506e2f1fb9cae2184436cdfd836affd88 100644
|
| --- a/extensions/browser/api/alarms/alarm_manager.h
|
| +++ b/extensions/browser/api/alarms/alarm_manager.h
|
| @@ -38,10 +38,9 @@ struct Alarm {
|
| const api::alarms::AlarmCreateInfo& create_info,
|
| base::TimeDelta min_granularity,
|
| base::Time now);
|
| - Alarm(const Alarm& other);
|
| ~Alarm();
|
|
|
| - linked_ptr<api::alarms::Alarm> js_alarm;
|
| + std::unique_ptr<api::alarms::Alarm> js_alarm;
|
| // The granularity isn't exposed to the extension's javascript, but we poll at
|
| // least as often as the shortest alarm's granularity. It's initialized as
|
| // the relative delay requested in creation, even if creation uses an absolute
|
| @@ -51,6 +50,9 @@ struct Alarm {
|
| // The minimum granularity is the minimum allowed polling rate. This stops
|
| // alarms from polling too often.
|
| base::TimeDelta minimum_granularity;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(Alarm);
|
| };
|
|
|
| // Manages the currently pending alarms for every extension in a profile.
|
| @@ -59,7 +61,7 @@ class AlarmManager : public BrowserContextKeyedAPI,
|
| public ExtensionRegistryObserver,
|
| public base::SupportsWeakPtr<AlarmManager> {
|
| public:
|
| - typedef std::vector<Alarm> AlarmList;
|
| + using AlarmList = std::vector<std::unique_ptr<Alarm>>;
|
|
|
| class Delegate {
|
| public:
|
| @@ -79,7 +81,7 @@ class AlarmManager : public BrowserContextKeyedAPI,
|
| // Adds |alarm| for the given extension, and starts the timer. Invokes
|
| // |callback| when done.
|
| void AddAlarm(const std::string& extension_id,
|
| - const Alarm& alarm,
|
| + std::unique_ptr<Alarm> alarm,
|
| const AddAlarmCallback& callback);
|
|
|
| typedef base::Callback<void(Alarm*)> GetAlarmCallback;
|
| @@ -145,7 +147,7 @@ class AlarmManager : public BrowserContextKeyedAPI,
|
| typedef std::pair<AlarmMap::iterator, AlarmList::iterator> AlarmIterator;
|
|
|
| // Part of AddAlarm that is executed after alarms are loaded.
|
| - void AddAlarmWhenReady(const Alarm& alarm,
|
| + void AddAlarmWhenReady(std::unique_ptr<Alarm> alarm,
|
| const AddAlarmCallback& callback,
|
| const std::string& extension_id);
|
|
|
| @@ -181,7 +183,8 @@ class AlarmManager : public BrowserContextKeyedAPI,
|
| void OnAlarm(AlarmIterator iter);
|
|
|
| // Internal helper to add an alarm and start the timer with the given delay.
|
| - void AddAlarmImpl(const std::string& extension_id, const Alarm& alarm);
|
| + void AddAlarmImpl(const std::string& extension_id,
|
| + std::unique_ptr<Alarm> alarm);
|
|
|
| // Syncs our alarm data for the given extension to/from the state storage.
|
| void WriteToStorage(const std::string& extension_id);
|
|
|