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

Side by Side Diff: chrome/browser/extensions/api/hotword_private/hotword_private_api.cc

Issue 2344653002: [Extensions] Convert some ChromeSyncExtensionFunctions (Closed)
Patch Set: Created 4 years, 3 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/hotword_private/hotword_private_api.h" 5 #include "chrome/browser/extensions/api/hotword_private/hotword_private_api.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 std::unique_ptr<base::ListValue> args) { 142 std::unique_ptr<base::ListValue> args) {
143 EventRouter* router = EventRouter::Get(profile_); 143 EventRouter* router = EventRouter::Get(profile_);
144 if (!router || !router->HasEventListener(event_name)) 144 if (!router || !router->HasEventListener(event_name))
145 return; 145 return;
146 146
147 std::unique_ptr<Event> event( 147 std::unique_ptr<Event> event(
148 new Event(histogram_value, event_name, std::move(args))); 148 new Event(histogram_value, event_name, std::move(args)));
149 router->BroadcastEvent(std::move(event)); 149 router->BroadcastEvent(std::move(event));
150 } 150 }
151 151
152 bool HotwordPrivateSetEnabledFunction::RunSync() { 152 ExtensionFunction::ResponseAction HotwordPrivateSetEnabledFunction::Run() {
153 std::unique_ptr<api::hotword_private::SetEnabled::Params> params( 153 std::unique_ptr<api::hotword_private::SetEnabled::Params> params(
154 api::hotword_private::SetEnabled::Params::Create(*args_)); 154 api::hotword_private::SetEnabled::Params::Create(*args_));
155 EXTENSION_FUNCTION_VALIDATE(params.get()); 155 EXTENSION_FUNCTION_VALIDATE(params.get());
156 156
157 PrefService* prefs = GetProfile()->GetPrefs(); 157 PrefService* prefs =
158 Profile::FromBrowserContext(browser_context())->GetPrefs();
158 prefs->SetBoolean(prefs::kHotwordSearchEnabled, params->state); 159 prefs->SetBoolean(prefs::kHotwordSearchEnabled, params->state);
159 return true; 160 return RespondNow(NoArguments());
160 } 161 }
161 162
162 bool HotwordPrivateSetAudioLoggingEnabledFunction::RunSync() { 163 ExtensionFunction::ResponseAction
164 HotwordPrivateSetAudioLoggingEnabledFunction::Run() {
163 std::unique_ptr<api::hotword_private::SetAudioLoggingEnabled::Params> params( 165 std::unique_ptr<api::hotword_private::SetAudioLoggingEnabled::Params> params(
164 api::hotword_private::SetAudioLoggingEnabled::Params::Create(*args_)); 166 api::hotword_private::SetAudioLoggingEnabled::Params::Create(*args_));
165 EXTENSION_FUNCTION_VALIDATE(params.get()); 167 EXTENSION_FUNCTION_VALIDATE(params.get());
166 168
167 // TODO(kcarattini): Sync the chrome pref with the account-level 169 // TODO(kcarattini): Sync the chrome pref with the account-level
168 // Audio History setting. 170 // Audio History setting.
169 PrefService* prefs = GetProfile()->GetPrefs(); 171 PrefService* prefs =
172 Profile::FromBrowserContext(browser_context())->GetPrefs();
170 prefs->SetBoolean(prefs::kHotwordAudioLoggingEnabled, params->state); 173 prefs->SetBoolean(prefs::kHotwordAudioLoggingEnabled, params->state);
171 return true; 174 return RespondNow(NoArguments());
172 } 175 }
173 176
174 bool HotwordPrivateSetHotwordAlwaysOnSearchEnabledFunction::RunSync() { 177 ExtensionFunction::ResponseAction
178 HotwordPrivateSetHotwordAlwaysOnSearchEnabledFunction::Run() {
175 std::unique_ptr<api::hotword_private::SetHotwordAlwaysOnSearchEnabled::Params> 179 std::unique_ptr<api::hotword_private::SetHotwordAlwaysOnSearchEnabled::Params>
176 params( 180 params(
177 api::hotword_private::SetHotwordAlwaysOnSearchEnabled::Params::Create( 181 api::hotword_private::SetHotwordAlwaysOnSearchEnabled::Params::Create(
178 *args_)); 182 *args_));
179 EXTENSION_FUNCTION_VALIDATE(params.get()); 183 EXTENSION_FUNCTION_VALIDATE(params.get());
180 184
181 PrefService* prefs = GetProfile()->GetPrefs(); 185 PrefService* prefs =
186 Profile::FromBrowserContext(browser_context())->GetPrefs();
182 prefs->SetBoolean(prefs::kHotwordAlwaysOnSearchEnabled, params->state); 187 prefs->SetBoolean(prefs::kHotwordAlwaysOnSearchEnabled, params->state);
183 return true; 188 return RespondNow(NoArguments());
184 } 189 }
185 190
186 bool HotwordPrivateGetStatusFunction::RunSync() { 191 ExtensionFunction::ResponseAction HotwordPrivateGetStatusFunction::Run() {
187 std::unique_ptr<api::hotword_private::GetStatus::Params> params( 192 std::unique_ptr<api::hotword_private::GetStatus::Params> params(
188 api::hotword_private::GetStatus::Params::Create(*args_)); 193 api::hotword_private::GetStatus::Params::Create(*args_));
189 EXTENSION_FUNCTION_VALIDATE(params.get()); 194 EXTENSION_FUNCTION_VALIDATE(params.get());
190 195
191 api::hotword_private::StatusDetails result; 196 api::hotword_private::StatusDetails result;
192 197
198 Profile* profile = Profile::FromBrowserContext(browser_context());
193 HotwordService* hotword_service = 199 HotwordService* hotword_service =
194 HotwordServiceFactory::GetForProfile(GetProfile()); 200 HotwordServiceFactory::GetForProfile(profile);
195 if (!hotword_service) { 201 if (!hotword_service) {
196 result.available = false; 202 result.available = false;
197 result.always_on_available = false; 203 result.always_on_available = false;
198 result.enabled = false; 204 result.enabled = false;
199 result.audio_logging_enabled = false; 205 result.audio_logging_enabled = false;
200 result.always_on_enabled = false; 206 result.always_on_enabled = false;
201 result.user_is_active = false; 207 result.user_is_active = false;
202 result.hotword_hardware_available = false; 208 result.hotword_hardware_available = false;
203 } else { 209 } else {
204 result.available = false; 210 result.available = false;
205 result.always_on_available = false; 211 result.always_on_available = false;
206 if (params->get_optional_fields && *params->get_optional_fields) { 212 if (params->get_optional_fields && *params->get_optional_fields) {
207 result.available = hotword_service->IsServiceAvailable(); 213 result.available = hotword_service->IsServiceAvailable();
208 result.always_on_available = 214 result.always_on_available =
209 HotwordServiceFactory::IsAlwaysOnAvailable(); 215 HotwordServiceFactory::IsAlwaysOnAvailable();
210 } 216 }
211 result.enabled = hotword_service->IsSometimesOnEnabled(); 217 result.enabled = hotword_service->IsSometimesOnEnabled();
212 result.audio_logging_enabled = hotword_service->IsOptedIntoAudioLogging(); 218 result.audio_logging_enabled = hotword_service->IsOptedIntoAudioLogging();
213 result.training_enabled = hotword_service->IsTraining(); 219 result.training_enabled = hotword_service->IsTraining();
214 result.always_on_enabled = hotword_service->IsAlwaysOnEnabled(); 220 result.always_on_enabled = hotword_service->IsAlwaysOnEnabled();
215 result.user_is_active = hotword_service->UserIsActive(); 221 result.user_is_active = hotword_service->UserIsActive();
216 result.hotword_hardware_available = 222 result.hotword_hardware_available =
217 HotwordService::IsHotwordHardwareAvailable(); 223 HotwordService::IsHotwordHardwareAvailable();
218 } 224 }
219 225
220 PrefService* prefs = GetProfile()->GetPrefs(); 226 PrefService* prefs = profile->GetPrefs();
221 result.enabled_set = prefs->HasPrefPath(prefs::kHotwordSearchEnabled); 227 result.enabled_set = prefs->HasPrefPath(prefs::kHotwordSearchEnabled);
222 228
223 SetResult(result.ToValue()); 229 return RespondNow(OneArgument(result.ToValue()));
224 return true;
225 } 230 }
226 231
227 bool HotwordPrivateSetHotwordSessionStateFunction::RunSync() { 232 ExtensionFunction::ResponseAction
233 HotwordPrivateSetHotwordSessionStateFunction::Run() {
228 std::unique_ptr<api::hotword_private::SetHotwordSessionState::Params> params( 234 std::unique_ptr<api::hotword_private::SetHotwordSessionState::Params> params(
229 api::hotword_private::SetHotwordSessionState::Params::Create(*args_)); 235 api::hotword_private::SetHotwordSessionState::Params::Create(*args_));
230 EXTENSION_FUNCTION_VALIDATE(params.get()); 236 EXTENSION_FUNCTION_VALIDATE(params.get());
231 237
232 HotwordService* hotword_service = 238 HotwordService* hotword_service = HotwordServiceFactory::GetForProfile(
233 HotwordServiceFactory::GetForProfile(GetProfile()); 239 Profile::FromBrowserContext(browser_context()));
234 if (hotword_service && 240 if (hotword_service &&
235 hotword_service->client() && 241 hotword_service->client() &&
236 !hotword_service->IsTraining()) 242 !hotword_service->IsTraining())
237 hotword_service->client()->OnHotwordStateChanged(params->started); 243 hotword_service->client()->OnHotwordStateChanged(params->started);
238 return true; 244 return RespondNow(NoArguments());
239 } 245 }
240 246
241 bool HotwordPrivateNotifyHotwordRecognitionFunction::RunSync() { 247 ExtensionFunction::ResponseAction
248 HotwordPrivateNotifyHotwordRecognitionFunction::Run() {
242 std::unique_ptr<api::hotword_private::NotifyHotwordRecognition::Params> 249 std::unique_ptr<api::hotword_private::NotifyHotwordRecognition::Params>
243 params(api::hotword_private::NotifyHotwordRecognition::Params::Create( 250 params(api::hotword_private::NotifyHotwordRecognition::Params::Create(
244 *args_)); 251 *args_));
245 EXTENSION_FUNCTION_VALIDATE(params.get()); 252 EXTENSION_FUNCTION_VALIDATE(params.get());
246 253
247 scoped_refptr<content::SpeechRecognitionSessionPreamble> preamble; 254 scoped_refptr<content::SpeechRecognitionSessionPreamble> preamble;
248 if (params->log.get() && 255 if (params->log.get() &&
249 !params->log->buffer.empty() && 256 !params->log->buffer.empty() &&
250 params->log->channels == 1) { 257 params->log->channels == 1) {
251 // TODO(amistry): Convert multi-channel preamble log into mono. 258 // TODO(amistry): Convert multi-channel preamble log into mono.
252 preamble = new content::SpeechRecognitionSessionPreamble(); 259 preamble = new content::SpeechRecognitionSessionPreamble();
253 preamble->sample_rate = params->log->sample_rate; 260 preamble->sample_rate = params->log->sample_rate;
254 preamble->sample_depth = params->log->bytes_per_sample; 261 preamble->sample_depth = params->log->bytes_per_sample;
255 preamble->sample_data.swap(params->log->buffer); 262 preamble->sample_data.swap(params->log->buffer);
256 } 263 }
257 264
265 Profile* profile = Profile::FromBrowserContext(browser_context());
258 HotwordService* hotword_service = 266 HotwordService* hotword_service =
259 HotwordServiceFactory::GetForProfile(GetProfile()); 267 HotwordServiceFactory::GetForProfile(profile);
260 if (hotword_service) { 268 if (hotword_service) {
261 if (hotword_service->IsTraining()) { 269 if (hotword_service->IsTraining()) {
262 hotword_service->NotifyHotwordTriggered(); 270 hotword_service->NotifyHotwordTriggered();
263 } else if (hotword_service->client()) { 271 } else if (hotword_service->client()) {
264 hotword_service->client()->OnHotwordRecognized(preamble); 272 hotword_service->client()->OnHotwordRecognized(preamble);
265 } else if (hotword_service->IsAlwaysOnEnabled()) { 273 } else if (hotword_service->IsAlwaysOnEnabled()) {
266 AppListService* app_list_service = AppListService::Get(); 274 AppListService* app_list_service = AppListService::Get();
267 CHECK(app_list_service); 275 CHECK(app_list_service);
268 app_list_service->ShowForVoiceSearch(GetProfile(), preamble); 276 app_list_service->ShowForVoiceSearch(profile, preamble);
269 } 277 }
270 } 278 }
271 return true; 279
280 return RespondNow(NoArguments());
272 } 281 }
273 282
274 bool HotwordPrivateGetLaunchStateFunction::RunSync() { 283 ExtensionFunction::ResponseAction HotwordPrivateGetLaunchStateFunction::Run() {
275 HotwordService* hotword_service = 284 HotwordService* hotword_service = HotwordServiceFactory::GetForProfile(
276 HotwordServiceFactory::GetForProfile(GetProfile()); 285 Profile::FromBrowserContext(browser_context()));
277 if (!hotword_service) { 286 if (!hotword_service) {
278 error_ = hotword_private_constants::kHotwordServiceUnavailable; 287 return RespondNow(
279 return false; 288 Error(hotword_private_constants::kHotwordServiceUnavailable));
280 } 289 }
281 290
282 api::hotword_private::LaunchState result; 291 api::hotword_private::LaunchState result;
283 result.launch_mode = 292 result.launch_mode =
284 hotword_service->GetHotwordAudioVerificationLaunchMode(); 293 hotword_service->GetHotwordAudioVerificationLaunchMode();
285 SetResult(result.ToValue()); 294 return RespondNow(OneArgument(result.ToValue()));
286 return true;
287 } 295 }
288 296
289 bool HotwordPrivateStartTrainingFunction::RunSync() { 297 ExtensionFunction::ResponseAction HotwordPrivateStartTrainingFunction::Run() {
290 HotwordService* hotword_service = 298 HotwordService* hotword_service = HotwordServiceFactory::GetForProfile(
291 HotwordServiceFactory::GetForProfile(GetProfile()); 299 Profile::FromBrowserContext(browser_context()));
292 if (!hotword_service) { 300 if (!hotword_service) {
293 error_ = hotword_private_constants::kHotwordServiceUnavailable; 301 return RespondNow(
294 return false; 302 Error(hotword_private_constants::kHotwordServiceUnavailable));
295 } 303 }
296 304
297 hotword_service->StartTraining(); 305 hotword_service->StartTraining();
298 return true; 306 return RespondNow(NoArguments());
299 } 307 }
300 308
301 bool HotwordPrivateFinalizeSpeakerModelFunction::RunSync() { 309 ExtensionFunction::ResponseAction
302 HotwordService* hotword_service = 310 HotwordPrivateFinalizeSpeakerModelFunction::Run() {
303 HotwordServiceFactory::GetForProfile(GetProfile()); 311 HotwordService* hotword_service = HotwordServiceFactory::GetForProfile(
312 Profile::FromBrowserContext(browser_context()));
304 if (!hotword_service) { 313 if (!hotword_service) {
305 error_ = hotword_private_constants::kHotwordServiceUnavailable; 314 return RespondNow(
306 return false; 315 Error(hotword_private_constants::kHotwordServiceUnavailable));
307 } 316 }
308 317
309 hotword_service->FinalizeSpeakerModel(); 318 hotword_service->FinalizeSpeakerModel();
310 return true; 319 return RespondNow(NoArguments());
311 } 320 }
312 321
313 bool HotwordPrivateNotifySpeakerModelSavedFunction::RunSync() { 322 ExtensionFunction::ResponseAction
323 HotwordPrivateNotifySpeakerModelSavedFunction::Run() {
314 HotwordPrivateEventService* event_service = 324 HotwordPrivateEventService* event_service =
315 BrowserContextKeyedAPIFactory<HotwordPrivateEventService>::Get( 325 BrowserContextKeyedAPIFactory<HotwordPrivateEventService>::Get(
316 GetProfile()); 326 Profile::FromBrowserContext(browser_context()));
317 if (!event_service) { 327 if (!event_service) {
318 error_ = hotword_private_constants::kHotwordEventServiceUnavailable; 328 return RespondNow(
319 return false; 329 Error(hotword_private_constants::kHotwordEventServiceUnavailable));
320 } 330 }
321 331
322 event_service->OnSpeakerModelSaved(); 332 event_service->OnSpeakerModelSaved();
323 return true; 333 return RespondNow(NoArguments());
324 } 334 }
325 335
326 bool HotwordPrivateStopTrainingFunction::RunSync() { 336 ExtensionFunction::ResponseAction HotwordPrivateStopTrainingFunction::Run() {
327 HotwordService* hotword_service = 337 HotwordService* hotword_service = HotwordServiceFactory::GetForProfile(
328 HotwordServiceFactory::GetForProfile(GetProfile()); 338 Profile::FromBrowserContext(browser_context()));
329 if (!hotword_service) { 339 if (!hotword_service) {
330 error_ = hotword_private_constants::kHotwordServiceUnavailable; 340 return RespondNow(
331 return false; 341 Error(hotword_private_constants::kHotwordServiceUnavailable));
332 } 342 }
333 343
334 hotword_service->StopTraining(); 344 hotword_service->StopTraining();
335 return true; 345 return RespondNow(NoArguments());
336 } 346 }
337 347
338 bool HotwordPrivateGetLocalizedStringsFunction::RunSync() { 348 ExtensionFunction::ResponseAction
349 HotwordPrivateGetLocalizedStringsFunction::Run() {
339 #if defined(OS_CHROMEOS) 350 #if defined(OS_CHROMEOS)
340 base::string16 device_type = ash::GetChromeOSDeviceName(); 351 base::string16 device_type = ash::GetChromeOSDeviceName();
341 #else 352 #else
342 base::string16 product_name = 353 base::string16 product_name =
343 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME); 354 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME);
344 base::string16 device_type = 355 base::string16 device_type =
345 l10n_util::GetStringFUTF16(IDS_HOTWORD_BROWSER_NAME, product_name); 356 l10n_util::GetStringFUTF16(IDS_HOTWORD_BROWSER_NAME, product_name);
346 #endif 357 #endif
347 358
348 std::unique_ptr<base::DictionaryValue> localized_strings( 359 std::unique_ptr<base::DictionaryValue> localized_strings(
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 localized_strings->SetString( 458 localized_strings->SetString(
448 "finish", 459 "finish",
449 l10n_util::GetStringUTF16(IDS_HOTWORD_OPT_IN_FINISH)); 460 l10n_util::GetStringUTF16(IDS_HOTWORD_OPT_IN_FINISH));
450 localized_strings->SetString( 461 localized_strings->SetString(
451 "finishedWait", 462 "finishedWait",
452 l10n_util::GetStringUTF16(IDS_HOTWORD_OPT_IN_FINISHED_WAIT)); 463 l10n_util::GetStringUTF16(IDS_HOTWORD_OPT_IN_FINISHED_WAIT));
453 464
454 const std::string& app_locale = g_browser_process->GetApplicationLocale(); 465 const std::string& app_locale = g_browser_process->GetApplicationLocale();
455 webui::SetLoadTimeDataDefaults(app_locale, localized_strings.get()); 466 webui::SetLoadTimeDataDefaults(app_locale, localized_strings.get());
456 467
457 SetResult(std::move(localized_strings)); 468 return RespondNow(OneArgument(std::move(localized_strings)));
458 return true;
459 } 469 }
460 470
461 bool HotwordPrivateSetAudioHistoryEnabledFunction::RunAsync() { 471 bool HotwordPrivateSetAudioHistoryEnabledFunction::RunAsync() {
462 std::unique_ptr<api::hotword_private::SetAudioHistoryEnabled::Params> params( 472 std::unique_ptr<api::hotword_private::SetAudioHistoryEnabled::Params> params(
463 api::hotword_private::SetAudioHistoryEnabled::Params::Create(*args_)); 473 api::hotword_private::SetAudioHistoryEnabled::Params::Create(*args_));
464 EXTENSION_FUNCTION_VALIDATE(params.get()); 474 EXTENSION_FUNCTION_VALIDATE(params.get());
465 475
466 HotwordService* hotword_service = 476 HotwordService* hotword_service =
467 HotwordServiceFactory::GetForProfile(GetProfile()); 477 HotwordServiceFactory::GetForProfile(GetProfile());
468 if (!hotword_service || !hotword_service->GetAudioHistoryHandler()) { 478 if (!hotword_service || !hotword_service->GetAudioHistoryHandler()) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 514
505 void HotwordPrivateGetAudioHistoryEnabledFunction::SetResultAndSendResponse( 515 void HotwordPrivateGetAudioHistoryEnabledFunction::SetResultAndSendResponse(
506 bool success, bool new_enabled_value) { 516 bool success, bool new_enabled_value) {
507 api::hotword_private::AudioHistoryState result; 517 api::hotword_private::AudioHistoryState result;
508 result.success = success; 518 result.success = success;
509 result.enabled = new_enabled_value; 519 result.enabled = new_enabled_value;
510 SetResult(result.ToValue()); 520 SetResult(result.ToValue());
511 SendResponse(true); 521 SendResponse(true);
512 } 522 }
513 523
514 bool HotwordPrivateSpeakerModelExistsResultFunction::RunSync() { 524 ExtensionFunction::ResponseAction
525 HotwordPrivateSpeakerModelExistsResultFunction::Run() {
515 std::unique_ptr<api::hotword_private::SpeakerModelExistsResult::Params> 526 std::unique_ptr<api::hotword_private::SpeakerModelExistsResult::Params>
516 params(api::hotword_private::SpeakerModelExistsResult::Params::Create( 527 params(api::hotword_private::SpeakerModelExistsResult::Params::Create(
517 *args_)); 528 *args_));
518 EXTENSION_FUNCTION_VALIDATE(params.get()); 529 EXTENSION_FUNCTION_VALIDATE(params.get());
519 530
520 HotwordService* hotword_service = 531 HotwordService* hotword_service = HotwordServiceFactory::GetForProfile(
521 HotwordServiceFactory::GetForProfile(GetProfile()); 532 Profile::FromBrowserContext(browser_context()));
522 if (!hotword_service) 533 if (!hotword_service)
523 return false; 534 return RespondNow(Error(kUnknownErrorDoNotUse));
524 535
525 hotword_service->SpeakerModelExistsComplete(params->exists); 536 hotword_service->SpeakerModelExistsComplete(params->exists);
526 return true; 537 return RespondNow(NoArguments());
527 } 538 }
528 539
529 } // namespace extensions 540 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/hotword_private/hotword_private_api.h ('k') | chrome/browser/extensions/api/i18n/i18n_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698