Chromium Code Reviews| Index: ui/ozone/platform/drm/ozone_platform_gbm.cc |
| diff --git a/ui/ozone/platform/drm/ozone_platform_gbm.cc b/ui/ozone/platform/drm/ozone_platform_gbm.cc |
| index 7e8d50e45f38df67647bb7f57ff1a7e1b3e930ca..df0cb0a2d8b04471226174852b8a0d78d91cb5bb 100644 |
| --- a/ui/ozone/platform/drm/ozone_platform_gbm.cc |
| +++ b/ui/ozone/platform/drm/ozone_platform_gbm.cc |
| @@ -17,6 +17,7 @@ |
| #include "base/command_line.h" |
| #include "base/macros.h" |
| #include "base/memory/ptr_util.h" |
| +#include "base/threading/thread_task_runner_handle.h" |
| #include "services/service_manager/public/cpp/bind_source_info.h" |
| #include "services/service_manager/public/cpp/binder_registry.h" |
| #include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h" |
| @@ -108,7 +109,8 @@ class OzonePlatformGbm : public OzonePlatform { |
| } |
| void AddInterfaces(service_manager::BinderRegistry* registry) override { |
| registry->AddInterface<ozone::mojom::DeviceCursor>( |
| - base::Bind(&OzonePlatformGbm::Create, base::Unretained(this))); |
| + base::Bind(&OzonePlatformGbm::Create, base::Unretained(this)), |
| + gpu_task_runner_); |
| } |
| void Create(const service_manager::BindSourceInfo& source_info, |
| ozone::mojom::DeviceCursorRequest request) { |
| @@ -208,6 +210,7 @@ class OzonePlatformGbm : public OzonePlatform { |
| // complete. |
| // using_mojo_ = args.connector != nullptr; |
| + gpu_task_runner_ = base::ThreadTaskRunnerHandle::Get(); |
|
varad
2017/06/02 09:59:41
exo clients segfault here during ui::OzonePlatform
|
| InterThreadMessagingProxy* itmp; |
| if (using_mojo_ || single_process_) { |
| itmp = mus_thread_proxy_.get(); |
| @@ -247,6 +250,7 @@ class OzonePlatformGbm : public OzonePlatform { |
| scoped_refptr<IPC::MessageFilter> gpu_message_filter_; |
| // TODO(sad): Once the mus gpu process split happens, this can go away. |
| std::vector<ozone::mojom::DeviceCursorRequest> pending_cursor_requests_; |
| + scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner_; |
| // Objects in the Browser process. |
| std::unique_ptr<DeviceManager> device_manager_; |