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

Unified Diff: chrome/browser/extensions/extension_prefs.cc

Issue 10545104: Refactor chrome.alarms interface to support absolute alarm deadlines. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rename timeToFire to time Created 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/extension_prefs.cc
diff --git a/chrome/browser/extensions/extension_prefs.cc b/chrome/browser/extensions/extension_prefs.cc
index 6f0f3fbd7915e79add85a92bff3e8ae9d3d7c6b2..bae304d56fb11fceb63fc5ee2d71fd2abefa811c 100644
--- a/chrome/browser/extensions/extension_prefs.cc
+++ b/chrome/browser/extensions/extension_prefs.cc
@@ -173,7 +173,7 @@ const char kRegisteredEvents[] = "events";
// A list of alarms that this extension has set.
const char kRegisteredAlarms[] = "alarms";
-const char kAlarmScheduledRunTime[] = "scheduled_run_time";
+const char kAlarmGranularity[] = "granularity";
// Persisted value for omnibox.setDefaultSuggestion.
const char kOmniboxDefaultSuggestion[] = "omnibox_default_suggestion";
@@ -762,65 +762,67 @@ void ExtensionPrefs::UpdateBlacklist(
namespace {
-// Serializes |time| as a string value mapped to |key| in |dictionary|.
-void SaveTime(DictionaryValue* dictionary,
- const char* key,
- const base::Time& time) {
+// Serializes |value| as a string value mapped to |key| in |dictionary|.
+template<typename T>
+void Save(DictionaryValue* dictionary,
Matt Perry 2012/06/11 22:32:44 I would still call this SaveTime since it only wor
Jeffrey Yasskin 2012/06/12 19:12:31 Done.
+ const char* key,
+ const T& value) {
if (!dictionary)
return;
- std::string string_value = base::Int64ToString(time.ToInternalValue());
+ std::string string_value = base::Int64ToString(value.ToInternalValue());
dictionary->SetString(key, string_value);
}
-// The opposite of SaveTime. If |key| is not found, this returns an empty Time
-// (is_null() will return true).
-base::Time ReadTime(const DictionaryValue* dictionary, const char* key) {
+// The opposite of Save. If |key| is not found, this returns a
+// default-constructed T (for Times and TimeDeltas, is_null() will return true).
+template<typename T>
+T Read(const DictionaryValue* dictionary, const char* key) {
if (!dictionary)
- return base::Time();
+ return T();
std::string string_value;
int64 value;
if (dictionary->GetString(key, &string_value)) {
if (base::StringToInt64(string_value, &value)) {
- return base::Time::FromInternalValue(value);
+ return T::FromInternalValue(value);
}
}
- return base::Time();
+ return T();
}
} // namespace
base::Time ExtensionPrefs::LastPingDay(const std::string& extension_id) const {
DCHECK(Extension::IdIsValid(extension_id));
- return ReadTime(GetExtensionPref(extension_id), kLastPingDay);
+ return Read<base::Time>(GetExtensionPref(extension_id), kLastPingDay);
}
void ExtensionPrefs::SetLastPingDay(const std::string& extension_id,
const base::Time& time) {
DCHECK(Extension::IdIsValid(extension_id));
ScopedExtensionPrefUpdate update(prefs_, extension_id);
- SaveTime(update.Get(), kLastPingDay, time);
+ Save<base::Time>(update.Get(), kLastPingDay, time);
}
base::Time ExtensionPrefs::BlacklistLastPingDay() const {
- return ReadTime(prefs_->GetDictionary(kExtensionsBlacklistUpdate),
- kLastPingDay);
+ return Read<base::Time>(prefs_->GetDictionary(kExtensionsBlacklistUpdate),
+ kLastPingDay);
}
void ExtensionPrefs::SetBlacklistLastPingDay(const base::Time& time) {
DictionaryPrefUpdate update(prefs_, kExtensionsBlacklistUpdate);
- SaveTime(update.Get(), kLastPingDay, time);
+ Save<base::Time>(update.Get(), kLastPingDay, time);
}
base::Time ExtensionPrefs::LastActivePingDay(const std::string& extension_id) {
DCHECK(Extension::IdIsValid(extension_id));
- return ReadTime(GetExtensionPref(extension_id), kLastActivePingDay);
+ return Read<base::Time>(GetExtensionPref(extension_id), kLastActivePingDay);
}
void ExtensionPrefs::SetLastActivePingDay(const std::string& extension_id,
const base::Time& time) {
DCHECK(Extension::IdIsValid(extension_id));
ScopedExtensionPrefUpdate update(prefs_, extension_id);
- SaveTime(update.Get(), kLastActivePingDay, time);
+ Save<base::Time>(update.Get(), kLastActivePingDay, time);
}
bool ExtensionPrefs::GetActiveBit(const std::string& extension_id) {
@@ -957,9 +959,9 @@ void ExtensionPrefs::SetRegisteredEvents(
UpdateExtensionPref(extension_id, kRegisteredEvents, value);
}
-std::vector<extensions::AlarmPref> ExtensionPrefs::GetRegisteredAlarms(
+std::vector<extensions::Alarm> ExtensionPrefs::GetRegisteredAlarms(
const std::string& extension_id) {
- std::vector<extensions::AlarmPref> alarms;
+ std::vector<extensions::Alarm> alarms;
const base::DictionaryValue* extension = GetExtensionPref(extension_id);
if (!extension)
return alarms;
@@ -968,14 +970,13 @@ std::vector<extensions::AlarmPref> ExtensionPrefs::GetRegisteredAlarms(
if (!extension->GetList(kRegisteredAlarms, &list))
return alarms;
- typedef extensions::AlarmManager::Alarm Alarm;
for (size_t i = 0; i < list->GetSize(); ++i) {
base::DictionaryValue* alarm_dict = NULL;
- extensions::AlarmPref alarm;
- alarm.alarm.reset(new Alarm());
+ extensions::Alarm alarm;
if (list->GetDictionary(i, &alarm_dict) &&
- Alarm::Populate(*alarm_dict, alarm.alarm.get())) {
- alarm.scheduled_run_time = ReadTime(alarm_dict, kAlarmScheduledRunTime);
+ extensions::api::alarms::Alarm::Populate(*alarm_dict,
+ alarm.js_alarm.get())) {
+ alarm.granularity = Read<base::TimeDelta>(alarm_dict, kAlarmGranularity);
alarms.push_back(alarm);
}
}
@@ -984,11 +985,13 @@ std::vector<extensions::AlarmPref> ExtensionPrefs::GetRegisteredAlarms(
void ExtensionPrefs::SetRegisteredAlarms(
const std::string& extension_id,
- const std::vector<extensions::AlarmPref>& alarms) {
+ const std::vector<extensions::Alarm>& alarms) {
base::ListValue* list = new ListValue();
for (size_t i = 0; i < alarms.size(); ++i) {
- scoped_ptr<base::DictionaryValue> alarm = alarms[i].alarm->ToValue().Pass();
- SaveTime(alarm.get(), kAlarmScheduledRunTime, alarms[i].scheduled_run_time);
+ scoped_ptr<base::DictionaryValue> alarm =
+ alarms[i].js_alarm->ToValue().Pass();
+ Save<base::TimeDelta>(alarm.get(), kAlarmGranularity,
+ alarms[i].granularity);
list->Append(alarm.release());
}
UpdateExtensionPref(extension_id, kRegisteredAlarms, list);

Powered by Google App Engine
This is Rietveld 408576698