Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(524)

Unified Diff: content/gpu/gpu_child_thread.cc

Issue 2819903004: Migrate GpuChildThread to use ConnectionFilter instead of the ChildThread's InterfaceRegistry to exp (Closed)
Patch Set: . Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/gpu/chrome_content_gpu_client.cc ('k') | content/public/gpu/content_gpu_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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(
« no previous file with comments | « chrome/gpu/chrome_content_gpu_client.cc ('k') | content/public/gpu/content_gpu_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698