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

Side by Side Diff: chrome/browser/extensions/api/alarms/alarms_api.cc

Issue 257333002: Drive extension functions from ExtensionFunction::Run. The (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix comment Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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" 8 #include "base/time/clock.h"
9 #include "base/time/default_clock.h" 9 #include "base/time/default_clock.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 : clock_(new base::DefaultClock()), owns_clock_(true) {} 91 : clock_(new base::DefaultClock()), owns_clock_(true) {}
92 92
93 AlarmsCreateFunction::AlarmsCreateFunction(base::Clock* clock) 93 AlarmsCreateFunction::AlarmsCreateFunction(base::Clock* clock)
94 : clock_(clock), owns_clock_(false) {} 94 : clock_(clock), owns_clock_(false) {}
95 95
96 AlarmsCreateFunction::~AlarmsCreateFunction() { 96 AlarmsCreateFunction::~AlarmsCreateFunction() {
97 if (owns_clock_) 97 if (owns_clock_)
98 delete clock_; 98 delete clock_;
99 } 99 }
100 100
101 bool AlarmsCreateFunction::RunImpl() { 101 bool AlarmsCreateFunction::RunAsync() {
102 scoped_ptr<alarms::Create::Params> params( 102 scoped_ptr<alarms::Create::Params> params(
103 alarms::Create::Params::Create(*args_)); 103 alarms::Create::Params::Create(*args_));
104 EXTENSION_FUNCTION_VALIDATE(params.get()); 104 EXTENSION_FUNCTION_VALIDATE(params.get());
105 const std::string& alarm_name = 105 const std::string& alarm_name =
106 params->name.get() ? *params->name : kDefaultAlarmName; 106 params->name.get() ? *params->name : kDefaultAlarmName;
107 std::vector<std::string> warnings; 107 std::vector<std::string> warnings;
108 if (!ValidateAlarmCreateInfo( 108 if (!ValidateAlarmCreateInfo(
109 alarm_name, params->alarm_info, GetExtension(), &error_, &warnings)) { 109 alarm_name, params->alarm_info, GetExtension(), &error_, &warnings)) {
110 return false; 110 return false;
111 } 111 }
(...skipping 10 matching lines...) Expand all
122 AlarmManager::Get(GetProfile())->AddAlarm( 122 AlarmManager::Get(GetProfile())->AddAlarm(
123 extension_id(), alarm, base::Bind(&AlarmsCreateFunction::Callback, this)); 123 extension_id(), alarm, base::Bind(&AlarmsCreateFunction::Callback, this));
124 124
125 return true; 125 return true;
126 } 126 }
127 127
128 void AlarmsCreateFunction::Callback() { 128 void AlarmsCreateFunction::Callback() {
129 SendResponse(true); 129 SendResponse(true);
130 } 130 }
131 131
132 bool AlarmsGetFunction::RunImpl() { 132 bool AlarmsGetFunction::RunAsync() {
133 scoped_ptr<alarms::Get::Params> params(alarms::Get::Params::Create(*args_)); 133 scoped_ptr<alarms::Get::Params> params(alarms::Get::Params::Create(*args_));
134 EXTENSION_FUNCTION_VALIDATE(params.get()); 134 EXTENSION_FUNCTION_VALIDATE(params.get());
135 135
136 std::string name = params->name.get() ? *params->name : kDefaultAlarmName; 136 std::string name = params->name.get() ? *params->name : kDefaultAlarmName;
137 AlarmManager::Get(GetProfile()) 137 AlarmManager::Get(GetProfile())
138 ->GetAlarm(extension_id(), 138 ->GetAlarm(extension_id(),
139 name, 139 name,
140 base::Bind(&AlarmsGetFunction::Callback, this, name)); 140 base::Bind(&AlarmsGetFunction::Callback, this, name));
141 141
142 return true; 142 return true;
143 } 143 }
144 144
145 void AlarmsGetFunction::Callback( 145 void AlarmsGetFunction::Callback(
146 const std::string& name, extensions::Alarm* alarm) { 146 const std::string& name, extensions::Alarm* alarm) {
147 if (alarm) { 147 if (alarm) {
148 results_ = alarms::Get::Results::Create(*alarm->js_alarm); 148 results_ = alarms::Get::Results::Create(*alarm->js_alarm);
149 } 149 }
150 SendResponse(true); 150 SendResponse(true);
151 } 151 }
152 152
153 bool AlarmsGetAllFunction::RunImpl() { 153 bool AlarmsGetAllFunction::RunAsync() {
154 AlarmManager::Get(GetProfile())->GetAllAlarms( 154 AlarmManager::Get(GetProfile())->GetAllAlarms(
155 extension_id(), base::Bind(&AlarmsGetAllFunction::Callback, this)); 155 extension_id(), base::Bind(&AlarmsGetAllFunction::Callback, this));
156 return true; 156 return true;
157 } 157 }
158 158
159 void AlarmsGetAllFunction::Callback(const AlarmList* alarms) { 159 void AlarmsGetAllFunction::Callback(const AlarmList* alarms) {
160 if (alarms) { 160 if (alarms) {
161 std::vector<linked_ptr<extensions::api::alarms::Alarm> > create_arg; 161 std::vector<linked_ptr<extensions::api::alarms::Alarm> > create_arg;
162 create_arg.reserve(alarms->size()); 162 create_arg.reserve(alarms->size());
163 for (size_t i = 0, size = alarms->size(); i < size; ++i) { 163 for (size_t i = 0, size = alarms->size(); i < size; ++i) {
164 create_arg.push_back((*alarms)[i].js_alarm); 164 create_arg.push_back((*alarms)[i].js_alarm);
165 } 165 }
166 results_ = alarms::GetAll::Results::Create(create_arg); 166 results_ = alarms::GetAll::Results::Create(create_arg);
167 } else { 167 } else {
168 SetResult(new base::ListValue()); 168 SetResult(new base::ListValue());
169 } 169 }
170 SendResponse(true); 170 SendResponse(true);
171 } 171 }
172 172
173 bool AlarmsClearFunction::RunImpl() { 173 bool AlarmsClearFunction::RunAsync() {
174 scoped_ptr<alarms::Clear::Params> params( 174 scoped_ptr<alarms::Clear::Params> params(
175 alarms::Clear::Params::Create(*args_)); 175 alarms::Clear::Params::Create(*args_));
176 EXTENSION_FUNCTION_VALIDATE(params.get()); 176 EXTENSION_FUNCTION_VALIDATE(params.get());
177 177
178 std::string name = params->name.get() ? *params->name : kDefaultAlarmName; 178 std::string name = params->name.get() ? *params->name : kDefaultAlarmName;
179 AlarmManager::Get(GetProfile()) 179 AlarmManager::Get(GetProfile())
180 ->RemoveAlarm(extension_id(), 180 ->RemoveAlarm(extension_id(),
181 name, 181 name,
182 base::Bind(&AlarmsClearFunction::Callback, this, name)); 182 base::Bind(&AlarmsClearFunction::Callback, this, name));
183 183
184 return true; 184 return true;
185 } 185 }
186 186
187 void AlarmsClearFunction::Callback(const std::string& name, bool success) { 187 void AlarmsClearFunction::Callback(const std::string& name, bool success) {
188 SetResult(new base::FundamentalValue(success)); 188 SetResult(new base::FundamentalValue(success));
189 SendResponse(true); 189 SendResponse(true);
190 } 190 }
191 191
192 bool AlarmsClearAllFunction::RunImpl() { 192 bool AlarmsClearAllFunction::RunAsync() {
193 AlarmManager::Get(GetProfile())->RemoveAllAlarms( 193 AlarmManager::Get(GetProfile())->RemoveAllAlarms(
194 extension_id(), base::Bind(&AlarmsClearAllFunction::Callback, this)); 194 extension_id(), base::Bind(&AlarmsClearAllFunction::Callback, this));
195 return true; 195 return true;
196 } 196 }
197 197
198 void AlarmsClearAllFunction::Callback() { 198 void AlarmsClearAllFunction::Callback() {
199 SetResult(new base::FundamentalValue(true)); 199 SetResult(new base::FundamentalValue(true));
200 SendResponse(true); 200 SendResponse(true);
201 } 201 }
202 202
203 } // namespace extensions 203 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/alarms/alarms_api.h ('k') | chrome/browser/extensions/api/app_window/app_window_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698