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 "extensions/browser/api/declarative/declarative_api.h" | 5 #include "extensions/browser/api/declarative/declarative_api.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/base64.h" | 9 #include "base/base64.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 } | 164 } |
165 | 165 |
166 return true; | 166 return true; |
167 } | 167 } |
168 | 168 |
169 bool EventsEventAddRulesFunction::RunAsyncOnCorrectThread() { | 169 bool EventsEventAddRulesFunction::RunAsyncOnCorrectThread() { |
170 ConvertBinaryListElementsToBase64(args_.get()); | 170 ConvertBinaryListElementsToBase64(args_.get()); |
171 scoped_ptr<AddRules::Params> params(AddRules::Params::Create(*args_)); | 171 scoped_ptr<AddRules::Params> params(AddRules::Params::Create(*args_)); |
172 EXTENSION_FUNCTION_VALIDATE(params.get()); | 172 EXTENSION_FUNCTION_VALIDATE(params.get()); |
173 | 173 |
174 error_ = rules_registry_->AddRules(extension_id(), params->rules); | 174 // TODO(devlin): Remove the dependency on linked_ptr here. |
| 175 std::vector<linked_ptr<api::events::Rule>> linked_rules; |
| 176 for (api::events::Rule& rule : params->rules) { |
| 177 linked_rules.push_back( |
| 178 make_linked_ptr(new api::events::Rule(std::move(rule)))); |
| 179 } |
| 180 error_ = rules_registry_->AddRules(extension_id(), linked_rules); |
175 | 181 |
176 if (error_.empty()) | 182 if (error_.empty()) { |
177 results_ = AddRules::Results::Create(params->rules); | 183 scoped_ptr<base::ListValue> rules_value(new base::ListValue()); |
| 184 for (const auto& rule : linked_rules) |
| 185 rules_value->Append(rule->ToValue()); |
| 186 SetResult(std::move(rules_value)); |
| 187 } |
178 | 188 |
179 return error_.empty(); | 189 return error_.empty(); |
180 } | 190 } |
181 | 191 |
182 bool EventsEventRemoveRulesFunction::RunAsyncOnCorrectThread() { | 192 bool EventsEventRemoveRulesFunction::RunAsyncOnCorrectThread() { |
183 scoped_ptr<RemoveRules::Params> params(RemoveRules::Params::Create(*args_)); | 193 scoped_ptr<RemoveRules::Params> params(RemoveRules::Params::Create(*args_)); |
184 EXTENSION_FUNCTION_VALIDATE(params.get()); | 194 EXTENSION_FUNCTION_VALIDATE(params.get()); |
185 | 195 |
186 if (params->rule_identifiers.get()) { | 196 if (params->rule_identifiers.get()) { |
187 error_ = rules_registry_->RemoveRules(extension_id(), | 197 error_ = rules_registry_->RemoveRules(extension_id(), |
(...skipping 10 matching lines...) Expand all Loading... |
198 EXTENSION_FUNCTION_VALIDATE(params.get()); | 208 EXTENSION_FUNCTION_VALIDATE(params.get()); |
199 | 209 |
200 std::vector<linked_ptr<Rule> > rules; | 210 std::vector<linked_ptr<Rule> > rules; |
201 if (params->rule_identifiers.get()) { | 211 if (params->rule_identifiers.get()) { |
202 rules_registry_->GetRules( | 212 rules_registry_->GetRules( |
203 extension_id(), *params->rule_identifiers, &rules); | 213 extension_id(), *params->rule_identifiers, &rules); |
204 } else { | 214 } else { |
205 rules_registry_->GetAllRules(extension_id(), &rules); | 215 rules_registry_->GetAllRules(extension_id(), &rules); |
206 } | 216 } |
207 | 217 |
208 results_ = GetRules::Results::Create(rules); | 218 scoped_ptr<base::ListValue> rules_value(new base::ListValue()); |
| 219 for (const auto& rule : rules) |
| 220 rules_value->Append(rule->ToValue()); |
| 221 SetResult(std::move(rules_value)); |
209 | 222 |
210 return true; | 223 return true; |
211 } | 224 } |
212 | 225 |
213 } // namespace extensions | 226 } // namespace extensions |
OLD | NEW |