| Index: chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc | 
| diff --git a/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc b/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..83871f2259a678344a57bce2d8009cafebdd6c80 | 
| --- /dev/null | 
| +++ b/chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.cc | 
| @@ -0,0 +1,75 @@ | 
| +// Copyright 2016 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#include "chrome/browser/ui/webui/settings/chromeos/google_assistant_handler.h" | 
| + | 
| +#include <utility> | 
| + | 
| +#include "base/bind.h" | 
| +#include "base/values.h" | 
| +#include "chrome/browser/chromeos/arc/voice_interaction/arc_voice_interaction_framework_service.h" | 
| +#include "chrome/browser/profiles/profile.h" | 
| +#include "components/arc/arc_service_manager.h" | 
| + | 
| +namespace chromeos { | 
| +namespace settings { | 
| + | 
| +GoogleAssistantHandler::GoogleAssistantHandler(Profile* profile) { | 
| +} | 
| + | 
| +GoogleAssistantHandler::~GoogleAssistantHandler() { | 
| +} | 
| + | 
| +void GoogleAssistantHandler::OnJavascriptAllowed() {} | 
| +void GoogleAssistantHandler::OnJavascriptDisallowed() {} | 
| + | 
| +void GoogleAssistantHandler::RegisterMessages() { | 
| +  web_ui()->RegisterMessageCallback( | 
| +      "setGoogleAssistantEnabled", | 
| +      base::Bind(&GoogleAssistantHandler::HandleSetGoogleAssistantEnabled, | 
| +                 base::Unretained(this))); | 
| +  web_ui()->RegisterMessageCallback( | 
| +      "setGoogleAssistantContextEnabled", | 
| +      base::Bind( | 
| +          &GoogleAssistantHandler::HandleSetGoogleAssistantContextEnabled, | 
| +          base::Unretained(this))); | 
| +  web_ui()->RegisterMessageCallback( | 
| +      "showGoogleAssistantSettings", | 
| +      base::Bind(&GoogleAssistantHandler::HandleShowGoogleAssistantSettings, | 
| +                 base::Unretained(this))); | 
| +} | 
| + | 
| +void GoogleAssistantHandler::HandleSetGoogleAssistantEnabled( | 
| +    const base::ListValue* args) { | 
| +  CHECK_EQ(1U, args->GetSize()); | 
| +  bool enabled; | 
| +  CHECK(args->GetBoolean(0, &enabled)); | 
| + | 
| +  arc::ArcVoiceInteractionFrameworkService* service = | 
| +      arc::ArcServiceManager::Get() | 
| +          ->GetService<arc::ArcVoiceInteractionFrameworkService>(); | 
| +  if (service) | 
| +    service->SetVoiceInteractionEnabled(enabled); | 
| +} | 
| + | 
| +void GoogleAssistantHandler::HandleSetGoogleAssistantContextEnabled( | 
| +    const base::ListValue* args) { | 
| +  CHECK_EQ(1U, args->GetSize()); | 
| +  bool enabled; | 
| +  CHECK(args->GetBoolean(0, &enabled)); | 
| + | 
| +  arc::ArcVoiceInteractionFrameworkService* service = | 
| +      arc::ArcServiceManager::Get() | 
| +          ->GetService<arc::ArcVoiceInteractionFrameworkService>(); | 
| +  if (service) | 
| +    service->SetVoiceInteractionContextEnabled(enabled); | 
| +} | 
| + | 
| +void GoogleAssistantHandler::HandleShowGoogleAssistantSettings( | 
| +    const base::ListValue* args) { | 
| +  // TODO(rcui): Implement. | 
| +} | 
| + | 
| +}  // namespace settings | 
| +} | 
|  |