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 aa483ee9363e160ee2011a141b2f97e8ac6f8d22..38a772405fe8800d13fdf1a7a9634aa040ed5f85 100644 |
--- a/chrome/browser/extensions/api/alarms/alarm_manager.cc |
+++ b/chrome/browser/extensions/api/alarms/alarm_manager.cc |
@@ -299,7 +299,7 @@ void AlarmManager::ReadFromStorage(const std::string& extension_id, |
} |
void AlarmManager::ScheduleNextPoll() { |
- // 0. If there are no alarms, stop the timer. |
+ // If there are no alarms, stop the timer. |
if (alarms_.empty()) { |
timer_.Stop(); |
return; |
@@ -324,6 +324,11 @@ void AlarmManager::ScheduleNextPoll() { |
soonest_alarm_time = cur_alarm_time; |
if (l_it->granularity < min_granularity) |
min_granularity = l_it->granularity; |
+ base::TimeDelta cur_alarm_delta = cur_alarm_time - clock_->Now(); |
+ if (cur_alarm_delta < min_granularity) |
+ min_granularity = cur_alarm_delta; |
+ if (min_granularity < l_it->minimum_granularity) |
Matt Perry
2014/01/16 22:58:34
I think these 2 ifs are reversed. The idea here is
Yoyo Zhou
2014/01/16 23:34:32
This lg to me.
iclelland
2014/01/17 14:54:32
I don't think it's reversed -- it should _increase
Matt Perry
2014/01/17 18:43:52
That's not the intended calculation. Each alarm's
|
+ min_granularity = l_it->minimum_granularity; |
} |
} |
@@ -426,6 +431,7 @@ Alarm::Alarm(const std::string& name, |
base::Time now) |
: js_alarm(new api::alarms::Alarm()) { |
js_alarm->name = name; |
+ minimum_granularity = min_granularity; |
if (create_info.when.get()) { |
// Absolute scheduling. |