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 #include "chrome/browser/extensions/api/alarms/alarms_api.h" | 5 #include "chrome/browser/extensions/api/alarms/alarms_api.h" |
6 | 6 |
7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
| 8 #include "base/time/clock.h" |
| 9 #include "base/time/default_clock.h" |
8 #include "base/values.h" | 10 #include "base/values.h" |
9 #include "chrome/browser/extensions/api/alarms/alarm_manager.h" | 11 #include "chrome/browser/extensions/api/alarms/alarm_manager.h" |
10 #include "chrome/browser/extensions/extension_system.h" | 12 #include "chrome/browser/extensions/extension_system.h" |
11 #include "chrome/common/extensions/api/alarms.h" | 13 #include "chrome/common/extensions/api/alarms.h" |
12 #include "extensions/common/error_utils.h" | 14 #include "extensions/common/error_utils.h" |
13 | 15 |
14 namespace alarms = extensions::api::alarms; | 16 namespace alarms = extensions::api::alarms; |
15 | 17 |
16 namespace extensions { | 18 namespace extensions { |
17 | 19 |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 alarm_name)); | 83 alarm_name)); |
82 } | 84 } |
83 } | 85 } |
84 | 86 |
85 return true; | 87 return true; |
86 } | 88 } |
87 | 89 |
88 } // namespace | 90 } // namespace |
89 | 91 |
90 AlarmsCreateFunction::AlarmsCreateFunction() | 92 AlarmsCreateFunction::AlarmsCreateFunction() |
91 : now_(&base::Time::Now) { | 93 : clock_(new base::DefaultClock()), owns_clock_(true) {} |
| 94 |
| 95 AlarmsCreateFunction::AlarmsCreateFunction(base::Clock* clock) |
| 96 : clock_(clock), owns_clock_(false) {} |
| 97 |
| 98 AlarmsCreateFunction::~AlarmsCreateFunction() { |
| 99 if (owns_clock_) |
| 100 delete clock_; |
92 } | 101 } |
93 | 102 |
94 bool AlarmsCreateFunction::RunImpl() { | 103 bool AlarmsCreateFunction::RunImpl() { |
95 scoped_ptr<alarms::Create::Params> params( | 104 scoped_ptr<alarms::Create::Params> params( |
96 alarms::Create::Params::Create(*args_)); | 105 alarms::Create::Params::Create(*args_)); |
97 EXTENSION_FUNCTION_VALIDATE(params.get()); | 106 EXTENSION_FUNCTION_VALIDATE(params.get()); |
98 const std::string& alarm_name = | 107 const std::string& alarm_name = |
99 params->name.get() ? *params->name : kDefaultAlarmName; | 108 params->name.get() ? *params->name : kDefaultAlarmName; |
100 std::vector<std::string> warnings; | 109 std::vector<std::string> warnings; |
101 if (!ValidateAlarmCreateInfo( | 110 if (!ValidateAlarmCreateInfo( |
102 alarm_name, params->alarm_info, GetExtension(), &error_, &warnings)) | 111 alarm_name, params->alarm_info, GetExtension(), &error_, &warnings)) |
103 return false; | 112 return false; |
104 for (std::vector<std::string>::const_iterator it = warnings.begin(); | 113 for (std::vector<std::string>::const_iterator it = warnings.begin(); |
105 it != warnings.end(); ++it) | 114 it != warnings.end(); ++it) |
106 WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_WARNING, *it); | 115 WriteToConsole(content::CONSOLE_MESSAGE_LEVEL_WARNING, *it); |
107 | 116 |
108 Alarm alarm(alarm_name, | 117 Alarm alarm(alarm_name, |
109 params->alarm_info, | 118 params->alarm_info, |
110 base::TimeDelta::FromMinutes( | 119 base::TimeDelta::FromMinutes( |
111 GetExtension()->location() == Manifest::LOAD ? | 120 GetExtension()->location() == Manifest::LOAD ? |
112 kDevDelayMinimum : kReleaseDelayMinimum), | 121 kDevDelayMinimum : kReleaseDelayMinimum), |
113 now_); | 122 clock_->Now()); |
114 ExtensionSystem::Get(profile())->alarm_manager()->AddAlarm( | 123 ExtensionSystem::Get(profile())->alarm_manager()->AddAlarm( |
115 extension_id(), alarm); | 124 extension_id(), alarm); |
116 | 125 |
117 return true; | 126 return true; |
118 } | 127 } |
119 | 128 |
120 bool AlarmsGetFunction::RunImpl() { | 129 bool AlarmsGetFunction::RunImpl() { |
121 scoped_ptr<alarms::Get::Params> params(alarms::Get::Params::Create(*args_)); | 130 scoped_ptr<alarms::Get::Params> params(alarms::Get::Params::Create(*args_)); |
122 EXTENSION_FUNCTION_VALIDATE(params.get()); | 131 EXTENSION_FUNCTION_VALIDATE(params.get()); |
123 | 132 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
169 return true; | 178 return true; |
170 } | 179 } |
171 | 180 |
172 bool AlarmsClearAllFunction::RunImpl() { | 181 bool AlarmsClearAllFunction::RunImpl() { |
173 ExtensionSystem::Get(profile())->alarm_manager()->RemoveAllAlarms( | 182 ExtensionSystem::Get(profile())->alarm_manager()->RemoveAllAlarms( |
174 extension_id()); | 183 extension_id()); |
175 return true; | 184 return true; |
176 } | 185 } |
177 | 186 |
178 } // namespace extensions | 187 } // namespace extensions |
OLD | NEW |