Chromium Code Reviews| Index: content/renderer/mojo/blink_service_registry_impl.cc |
| diff --git a/content/renderer/mojo/blink_service_registry_impl.cc b/content/renderer/mojo/blink_service_registry_impl.cc |
| index 6a2fdf09a6abd87bca03d0ce8fa6ed7dc3724586..9747b58d2621c35f0c4d4f672fd6e436e9d5b50e 100644 |
| --- a/content/renderer/mojo/blink_service_registry_impl.cc |
| +++ b/content/renderer/mojo/blink_service_registry_impl.cc |
| @@ -6,19 +6,31 @@ |
| #include <utility> |
| +#include "base/single_thread_task_runner.h" |
| +#include "base/thread_task_runner_handle.h" |
| #include "content/common/mojo/service_registry_impl.h" |
| namespace content { |
| BlinkServiceRegistryImpl::BlinkServiceRegistryImpl( |
| base::WeakPtr<content::ServiceRegistry> service_registry) |
| - : service_registry_(service_registry) {} |
| + : service_registry_(service_registry), |
| + main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()), |
| + weak_ptr_factory_(this) {} |
| BlinkServiceRegistryImpl::~BlinkServiceRegistryImpl() = default; |
| void BlinkServiceRegistryImpl::connectToRemoteService( |
| const char* name, |
| mojo::ScopedMessagePipeHandle handle) { |
| + if (!main_thread_task_runner_->BelongsToCurrentThread()) { |
| + main_thread_task_runner_->PostTask( |
| + FROM_HERE, base::Bind(&BlinkServiceRegistryImpl::connectToRemoteService, |
| + weak_ptr_factory_.GetWeakPtr(), name, |
| + base::Passed(std::move(handle)))); |
|
dcheng
2016/05/10 06:54:46
base::Passed(&handle) should work
Peter Beverloo
2016/05/10 13:32:55
Done.
|
| + return; |
| + } |
| + |
| if (!service_registry_) |
| return; |