blob: e6165258aa7f00f805c4f3542de247519de4b0ef [file] [log] [blame]
// Copyright 2014 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/chrome_device_client.h"
#include "build/build_config.h"
#include "content/public/browser/browser_thread.h"
#include "device/hid/hid_service.h"
#include "device/usb/usb_service.h"
using content::BrowserThread;
ChromeDeviceClient::ChromeDeviceClient() {}
ChromeDeviceClient::~ChromeDeviceClient() {
#if DCHECK_IS_ON()
DCHECK(did_shutdown_);
#endif
}
void ChromeDeviceClient::Shutdown() {
if (usb_service_)
usb_service_->Shutdown();
if (hid_service_)
hid_service_->Shutdown();
#if DCHECK_IS_ON()
did_shutdown_ = true;
#endif
}
device::UsbService* ChromeDeviceClient::GetUsbService() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
if (!usb_service_) {
usb_service_ = device::UsbService::Create(
BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE));
}
return usb_service_.get();
}
device::HidService* ChromeDeviceClient::GetHidService() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
#if !defined(OS_ANDROID)
if (!hid_service_) {
hid_service_ = device::HidService::Create(
BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE));
}
#endif
return hid_service_.get();
}