| Index: chrome/browser/search/hotword_service.cc | 
| diff --git a/chrome/browser/search/hotword_service.cc b/chrome/browser/search/hotword_service.cc | 
| index 4f59964830b3c06d17963d46971b18fa6b967045..673d5e852e7b3f693d9f4a88f5e50734b4f9be88 100644 | 
| --- a/chrome/browser/search/hotword_service.cc | 
| +++ b/chrome/browser/search/hotword_service.cc | 
| @@ -50,6 +50,10 @@ | 
| #include "ui/base/l10n/l10n_util.h" | 
| #include "ui/base/resource/resource_bundle.h" | 
|  | 
| +#if defined(OS_CHROMEOS) | 
| +#include "chromeos/audio/cras_audio_handler.h" | 
| +#endif | 
| + | 
| using extensions::BrowserContextKeyedAPIFactory; | 
| using extensions::HotwordPrivateEventService; | 
|  | 
| @@ -298,6 +302,23 @@ bool HotwordService::IsExperimentalHotwordingEnabled() { | 
| return true; | 
| } | 
|  | 
| +// static | 
| +bool HotwordService::IsHotwordHardwareAvailable() { | 
| +#if defined(OS_CHROMEOS) | 
| +  if (chromeos::CrasAudioHandler::IsInitialized()) { | 
| +    chromeos::AudioDeviceList devices; | 
| +    chromeos::CrasAudioHandler::Get()->GetAudioDevices(&devices); | 
| +    for (size_t i = 0; i < devices.size(); ++i) { | 
| +      if (devices[i].type == chromeos::AUDIO_TYPE_AOKR) { | 
| +        DCHECK(devices[i].is_input); | 
| +        return true; | 
| +      } | 
| +    } | 
| +  } | 
| +#endif | 
| +  return false; | 
| +} | 
| + | 
| #if defined(OS_CHROMEOS) | 
| class HotwordService::HotwordUserSessionStateObserver | 
| : public user_manager::UserManager::UserSessionStateObserver { | 
|  |