| Index: content/gpu/gpu_child_thread.cc
|
| diff --git a/content/gpu/gpu_child_thread.cc b/content/gpu/gpu_child_thread.cc
|
| index f2ad57e72cf35fc1b8d1729bf3e3297ad92fae2f..f2083af5fda1e0bd04eae8590db7ed8276110ced 100644
|
| --- a/content/gpu/gpu_child_thread.cc
|
| +++ b/content/gpu/gpu_child_thread.cc
|
| @@ -17,13 +17,14 @@
|
| #include "content/public/common/content_switches.h"
|
| #include "content/public/common/service_manager_connection.h"
|
| #include "content/public/common/service_names.mojom.h"
|
| +#include "content/public/common/simple_connection_filter.h"
|
| #include "content/public/gpu/content_gpu_client.h"
|
| #include "gpu/command_buffer/common/activity_flags.h"
|
| #include "gpu/ipc/service/gpu_watchdog_thread.h"
|
| #include "ipc/ipc_sync_message_filter.h"
|
| #include "media/gpu/ipc/service/media_gpu_channel_manager.h"
|
| +#include "services/service_manager/public/cpp/binder_registry.h"
|
| #include "services/service_manager/public/cpp/connector.h"
|
| -#include "services/service_manager/public/cpp/interface_registry.h"
|
| #include "services/ui/gpu/interfaces/gpu_service.mojom.h"
|
|
|
| #if defined(USE_OZONE)
|
| @@ -47,6 +48,7 @@ ChildThreadImpl::Options GetOptions() {
|
| builder.AddStartupFilter(message_filter);
|
| #endif
|
|
|
| + builder.AutoStartServiceManagerConnection(false);
|
| builder.ConnectToBrowser(true);
|
|
|
| return builder.Build();
|
| @@ -119,10 +121,6 @@ void GpuChildThread::Init(const base::Time& process_start_time) {
|
| media::SetMediaDrmBridgeClient(
|
| GetContentClient()->GetMediaDrmBridgeClient());
|
| #endif
|
| - // We don't want to process any incoming interface requests until
|
| - // OnInitialize() is invoked.
|
| - GetInterfaceRegistry()->PauseBinding();
|
| -
|
| if (GetContentClient()->gpu()) // NULL in tests.
|
| GetContentClient()->gpu()->Initialize(this);
|
| AssociatedInterfaceRegistry* registry = &associated_interfaces_;
|
| @@ -196,16 +194,17 @@ void GpuChildThread::CreateGpuService(
|
| service_factory_.reset(new GpuServiceFactory(
|
| gpu_service_->media_gpu_channel_manager()->AsWeakPtr()));
|
|
|
| - GetInterfaceRegistry()->AddInterface(base::Bind(
|
| - &GpuChildThread::BindServiceFactoryRequest, base::Unretained(this)));
|
| + auto registry = base::MakeUnique<service_manager::BinderRegistry>();
|
| + registry->AddInterface(base::Bind(&GpuChildThread::BindServiceFactoryRequest,
|
| + base::Unretained(this)),
|
| + base::ThreadTaskRunnerHandle::Get());
|
| + GetServiceManagerConnection()->AddConnectionFilter(
|
| + base::MakeUnique<SimpleConnectionFilter>(std::move(registry)));
|
|
|
| - if (GetContentClient()->gpu()) { // NULL in tests.
|
| - GetContentClient()->gpu()->ExposeInterfacesToBrowser(GetInterfaceRegistry(),
|
| - gpu_preferences);
|
| - GetContentClient()->gpu()->ConsumeInterfacesFromBrowser(GetConnector());
|
| - }
|
| + if (GetContentClient()->gpu()) // NULL in tests.
|
| + GetContentClient()->gpu()->GpuServiceInitialized(gpu_preferences);
|
|
|
| - GetInterfaceRegistry()->ResumeBinding();
|
| + StartServiceManagerConnection();
|
| }
|
|
|
| void GpuChildThread::CreateFrameSinkManager(
|
|
|