Index: device/devices_app/devices_app.cc |
diff --git a/device/devices_app/devices_app.cc b/device/devices_app/devices_app.cc |
index 4501f75540bacc2ddf64824d21fbf8acd2e80c2d..19f7ed84c00ed0fc4346eb902305a2015307162e 100644 |
--- a/device/devices_app/devices_app.cc |
+++ b/device/devices_app/devices_app.cc |
@@ -65,14 +65,20 @@ class AppDeviceClient : public DeviceClient { |
public: |
explicit AppDeviceClient( |
scoped_refptr<base::SequencedTaskRunner> blocking_task_runner) |
- : usb_service_(UsbService::GetInstance(blocking_task_runner)) {} |
+ : blocking_task_runner_(blocking_task_runner) {} |
~AppDeviceClient() override {} |
private: |
// DeviceClient: |
- UsbService* GetUsbService() override { return usb_service_; } |
+ UsbService* GetUsbService() override { |
+ if (!usb_service_) { |
+ usb_service_ = UsbService::Create(blocking_task_runner_); |
+ } |
+ return usb_service_.get(); |
+ } |
- UsbService* usb_service_; |
+ scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; |
+ scoped_ptr<UsbService> usb_service_; |
}; |
} // namespace |