Commit 2c3ab452 authored by Xiyuan Xia's avatar Xiyuan Xia Committed by Commit Bot

cros: Fix GamepadDeviceLinux calling dbus on a wrong thread

Ensure GamepadDataFetcherManager is created on UI thread so that
GamepadPlatformDataFetcherLinux::Factory is created with UI
thread as expected.

Bug: 962884
Change-Id: I2ff3f70baa8df332b43d080340ec1ffc573b015f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1613376Reviewed-by: default avatarMatt Reynolds <mattreynolds@chromium.org>
Commit-Queue: Xiyuan Xia <xiyuan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#660066}
parent acb19208
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "device/gamepad/gamepad_consumer.h" #include "device/gamepad/gamepad_consumer.h"
#include "device/gamepad/gamepad_data_fetcher.h" #include "device/gamepad/gamepad_data_fetcher.h"
#include "device/gamepad/gamepad_data_fetcher_manager.h"
#include "device/gamepad/gamepad_provider.h" #include "device/gamepad/gamepad_provider.h"
#include "services/service_manager/public/cpp/connector.h" #include "services/service_manager/public/cpp/connector.h"
...@@ -64,6 +65,11 @@ void GamepadService::StartUp( ...@@ -64,6 +65,11 @@ void GamepadService::StartUp(
std::unique_ptr<service_manager::Connector> service_manager_connector) { std::unique_ptr<service_manager::Connector> service_manager_connector) {
if (!service_manager_connector_) if (!service_manager_connector_)
service_manager_connector_ = std::move(service_manager_connector); service_manager_connector_ = std::move(service_manager_connector);
// Ensures GamepadDataFetcherManager is created on UI thread. Otherwise,
// GamepadPlatformDataFetcherLinux::Factory would be created with the
// wrong thread for its |dbus_runner_|.
GamepadDataFetcherManager::GetInstance();
} }
service_manager::Connector* GamepadService::GetConnector() { service_manager::Connector* GamepadService::GetConnector() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment