| 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/string_number_conversions.h" | 7 #include "base/string_number_conversions.h" |
| 8 #include "base/values.h" | 8 #include "base/values.h" |
| 9 #include "chrome/browser/extensions/api/alarms/alarm_manager.h" | 9 #include "chrome/browser/extensions/api/alarms/alarm_manager.h" |
| 10 #include "chrome/browser/extensions/extension_system.h" | 10 #include "chrome/browser/extensions/extension_system.h" |
| 11 #include "chrome/common/extensions/api/alarms.h" | 11 #include "chrome/common/extensions/api/alarms.h" |
| 12 #include "chrome/common/extensions/extension_error_utils.h" | 12 #include "extensions/common/extension_error_utils.h" |
| 13 | 13 |
| 14 namespace alarms = extensions::api::alarms; | 14 namespace alarms = extensions::api::alarms; |
| 15 | 15 |
| 16 namespace extensions { | 16 namespace extensions { |
| 17 | 17 |
| 18 namespace { | 18 namespace { |
| 19 | 19 |
| 20 const char kDefaultAlarmName[] = ""; | 20 const char kDefaultAlarmName[] = ""; |
| 21 const char kAlarmNotFound[] = "No alarm named '*' exists."; | 21 const char kAlarmNotFound[] = "No alarm named '*' exists."; |
| 22 const char kDelayLessThanMinimum[] = "* is less than minimum of * minutes."; | 22 const char kDelayLessThanMinimum[] = "* is less than minimum of * minutes."; |
| 23 const char kDelayIsNonInteger[] = "* is not an integer value."; | 23 const char kDelayIsNonInteger[] = "* is not an integer value."; |
| 24 const char kBothRelativeAndAbsoluteTime[] = | 24 const char kBothRelativeAndAbsoluteTime[] = |
| 25 "Cannot set both when and delayInMinutes."; | 25 "Cannot set both when and delayInMinutes."; |
| 26 const char kNoScheduledTime[] = | 26 const char kNoScheduledTime[] = |
| 27 "Must set at least one of when, delayInMinutes, or periodInMinutes."; | 27 "Must set at least one of when, delayInMinutes, or periodInMinutes."; |
| 28 const int kReleaseDelayMinimum = 5; | 28 const int kReleaseDelayMinimum = 5; |
| 29 const int kDevDelayMinimum = 0; | 29 const int kDevDelayMinimum = 0; |
| 30 | 30 |
| 31 bool ValidateDelay(double delay_in_minutes, | 31 bool ValidateDelay(double delay_in_minutes, |
| 32 const Extension* extension, | 32 const Extension* extension, |
| 33 const std::string& delay_or_period, | 33 const std::string& delay_or_period, |
| 34 std::string* error) { | 34 std::string* error) { |
| 35 double delay_minimum = kDevDelayMinimum; | 35 double delay_minimum = kDevDelayMinimum; |
| 36 if (extension->location() != Extension::LOAD) { | 36 if (extension->location() != Extension::LOAD) { |
| 37 // In release mode we check for integer delay values and a stricter delay | 37 // In release mode we check for integer delay values and a stricter delay |
| 38 // minimum. | 38 // minimum. |
| 39 if (delay_in_minutes != static_cast<int>(delay_in_minutes)) { | 39 if (delay_in_minutes != static_cast<int>(delay_in_minutes)) { |
| 40 *error = ExtensionErrorUtils::FormatErrorMessage( | 40 *error = ErrorUtils::FormatErrorMessage( |
| 41 kDelayIsNonInteger, | 41 kDelayIsNonInteger, |
| 42 delay_or_period); | 42 delay_or_period); |
| 43 return false; | 43 return false; |
| 44 } | 44 } |
| 45 delay_minimum = kReleaseDelayMinimum; | 45 delay_minimum = kReleaseDelayMinimum; |
| 46 } | 46 } |
| 47 | 47 |
| 48 // Validate against our found delay minimum. | 48 // Validate against our found delay minimum. |
| 49 if (delay_in_minutes < delay_minimum) { | 49 if (delay_in_minutes < delay_minimum) { |
| 50 *error = ExtensionErrorUtils::FormatErrorMessage( | 50 *error = ErrorUtils::FormatErrorMessage( |
| 51 kDelayLessThanMinimum, | 51 kDelayLessThanMinimum, |
| 52 delay_or_period, | 52 delay_or_period, |
| 53 base::DoubleToString(delay_minimum)); | 53 base::DoubleToString(delay_minimum)); |
| 54 return false; | 54 return false; |
| 55 } | 55 } |
| 56 | 56 |
| 57 return true; | 57 return true; |
| 58 } | 58 } |
| 59 | 59 |
| 60 bool ValidateAlarmCreateInfo(const alarms::AlarmCreateInfo& create_info, | 60 bool ValidateAlarmCreateInfo(const alarms::AlarmCreateInfo& create_info, |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 bool AlarmsGetFunction::RunImpl() { | 121 bool AlarmsGetFunction::RunImpl() { |
| 122 scoped_ptr<alarms::Get::Params> params(alarms::Get::Params::Create(*args_)); | 122 scoped_ptr<alarms::Get::Params> params(alarms::Get::Params::Create(*args_)); |
| 123 EXTENSION_FUNCTION_VALIDATE(params.get()); | 123 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 124 | 124 |
| 125 std::string name = params->name.get() ? *params->name : kDefaultAlarmName; | 125 std::string name = params->name.get() ? *params->name : kDefaultAlarmName; |
| 126 const Alarm* alarm = | 126 const Alarm* alarm = |
| 127 ExtensionSystem::Get(profile())->alarm_manager()->GetAlarm( | 127 ExtensionSystem::Get(profile())->alarm_manager()->GetAlarm( |
| 128 extension_id(), name); | 128 extension_id(), name); |
| 129 | 129 |
| 130 if (!alarm) { | 130 if (!alarm) { |
| 131 error_ = ExtensionErrorUtils::FormatErrorMessage(kAlarmNotFound, name); | 131 error_ = ErrorUtils::FormatErrorMessage(kAlarmNotFound, name); |
| 132 return false; | 132 return false; |
| 133 } | 133 } |
| 134 | 134 |
| 135 results_ = alarms::Get::Results::Create(*alarm->js_alarm); | 135 results_ = alarms::Get::Results::Create(*alarm->js_alarm); |
| 136 return true; | 136 return true; |
| 137 } | 137 } |
| 138 | 138 |
| 139 bool AlarmsGetAllFunction::RunImpl() { | 139 bool AlarmsGetAllFunction::RunImpl() { |
| 140 const AlarmManager::AlarmList* alarms = | 140 const AlarmManager::AlarmList* alarms = |
| 141 ExtensionSystem::Get(profile())->alarm_manager()->GetAllAlarms( | 141 ExtensionSystem::Get(profile())->alarm_manager()->GetAllAlarms( |
| (...skipping 14 matching lines...) Expand all Loading... |
| 156 bool AlarmsClearFunction::RunImpl() { | 156 bool AlarmsClearFunction::RunImpl() { |
| 157 scoped_ptr<alarms::Clear::Params> params( | 157 scoped_ptr<alarms::Clear::Params> params( |
| 158 alarms::Clear::Params::Create(*args_)); | 158 alarms::Clear::Params::Create(*args_)); |
| 159 EXTENSION_FUNCTION_VALIDATE(params.get()); | 159 EXTENSION_FUNCTION_VALIDATE(params.get()); |
| 160 | 160 |
| 161 std::string name = params->name.get() ? *params->name : kDefaultAlarmName; | 161 std::string name = params->name.get() ? *params->name : kDefaultAlarmName; |
| 162 bool success = ExtensionSystem::Get(profile())->alarm_manager()->RemoveAlarm( | 162 bool success = ExtensionSystem::Get(profile())->alarm_manager()->RemoveAlarm( |
| 163 extension_id(), name); | 163 extension_id(), name); |
| 164 | 164 |
| 165 if (!success) { | 165 if (!success) { |
| 166 error_ = ExtensionErrorUtils::FormatErrorMessage(kAlarmNotFound, name); | 166 error_ = ErrorUtils::FormatErrorMessage(kAlarmNotFound, name); |
| 167 return false; | 167 return false; |
| 168 } | 168 } |
| 169 | 169 |
| 170 return true; | 170 return true; |
| 171 } | 171 } |
| 172 | 172 |
| 173 bool AlarmsClearAllFunction::RunImpl() { | 173 bool AlarmsClearAllFunction::RunImpl() { |
| 174 ExtensionSystem::Get(profile())->alarm_manager()->RemoveAllAlarms( | 174 ExtensionSystem::Get(profile())->alarm_manager()->RemoveAllAlarms( |
| 175 extension_id()); | 175 extension_id()); |
| 176 return true; | 176 return true; |
| 177 } | 177 } |
| 178 | 178 |
| 179 } // namespace extensions | 179 } // namespace extensions |
| OLD | NEW |