| # Copyright 2019 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| import logging |
| |
| from autotest_lib.client.common_lib.cros import assistant_util |
| # TODO (crbug.com/949874): Remove this when we make sure assistant_util_private |
| # is available. |
| try: |
| from autotest_lib.client.common_lib.cros import assistant_util_private |
| except ImportError: |
| logging.error("Failed to import assistant_util_private") |
| |
| class AssistantNativeError(Exception): |
| """Error in AssistantFacadeNative.""" |
| pass |
| |
| class AssistantFacadeNative(object): |
| """Facade to access the assistant-related functionality. |
| |
| The methods inside this class only accept Python native types. |
| |
| """ |
| def __init__(self, resource): |
| self._resource = resource |
| |
| |
| def restart_chrome_for_assistant(self, enable_dsp_hotword=True): |
| """Restarts Chrome with Google assistant enabled. |
| |
| @param enable_dsp_hotword: A bool to control the usage of dsp for |
| hotword. |
| """ |
| # TODO (paulhsia): Remove this when voice command is ready for non |
| # gaia_login environment. |
| cred = assistant_util_private.get_login_credential() |
| custom_chrome_setup = { |
| "autotest_ext": True, |
| "gaia_login": True, |
| "enable_assistant": True, |
| "username": cred.username, |
| "password": cred.password, |
| } |
| |
| if enable_dsp_hotword: |
| custom_chrome_setup["extra_browser_args"] = ( |
| ["--enable-features=ChromeOSAssistant,EnableDspHotword"]) |
| else: |
| custom_chrome_setup["extra_browser_args"] = ( |
| ["--enable-features=ChromeOSAssistant"]) |
| |
| self._resource.start_custom_chrome(custom_chrome_setup) |
| |
| |
| def send_text_query(self, text): |
| """Sends text query to Google assistant and gets response. |
| |
| @param text: A str object for text qeury. |
| |
| @returns: A str object for query response. |
| """ |
| ext = self._resource.get_extension() |
| return assistant_util.send_text_query(ext, text) |
| |
| |
| def enable_hotword(self): |
| """Enables hotword in Google assistant.""" |
| ext = self._resource.get_extension() |
| assistant_util.enable_hotword(ext) |