Index: device/devices_app/devices_app.cc |
diff --git a/device/devices_app/devices_app.cc b/device/devices_app/devices_app.cc |
index 134948d9c9229b956ade92efb9f0ea6f29f17476..599c64fce1a4630cb940eaefc38b9ca9dddfde31 100644 |
--- a/device/devices_app/devices_app.cc |
+++ b/device/devices_app/devices_app.cc |
@@ -72,15 +72,22 @@ |
DISALLOW_COPY_AND_ASSIGN(USBServiceInitializer); |
}; |
-DevicesApp::DevicesApp() |
- : app_impl_(nullptr), active_device_manager_count_(0) {} |
+DevicesApp::DevicesApp( |
+ scoped_refptr<base::SequencedTaskRunner> service_task_runner) |
+ : app_impl_(nullptr), |
+ service_task_runner_(service_task_runner), |
+ active_device_manager_count_(0) { |
+} |
DevicesApp::~DevicesApp() { |
} |
void DevicesApp::Initialize(mojo::ApplicationImpl* app) { |
app_impl_ = app; |
- service_initializer_.reset(new USBServiceInitializer); |
+ if (!service_task_runner_) { |
+ service_initializer_.reset(new USBServiceInitializer); |
+ service_task_runner_ = base::ThreadTaskRunnerHandle::Get(); |
+ } |
StartIdleTimer(); |
} |
@@ -103,8 +110,8 @@ |
connection->ConnectToService(&permission_provider); |
// Owned by its message pipe. |
- usb::DeviceManagerImpl* device_manager = |
- new usb::DeviceManagerImpl(permission_provider.Pass(), request.Pass()); |
+ usb::DeviceManagerImpl* device_manager = new usb::DeviceManagerImpl( |
+ request.Pass(), permission_provider.Pass(), service_task_runner_); |
device_manager->set_connection_error_handler( |
base::Bind(&DevicesApp::OnConnectionError, base::Unretained(this))); |