Index: chrome/browser/chrome_content_browser_client.cc |
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc |
index 6f4e66500156f32a069b4792e265a539281612c8..8bb9308ee10a2f796fa0dbcdb9297696eb75144a 100644 |
--- a/chrome/browser/chrome_content_browser_client.cc |
+++ b/chrome/browser/chrome_content_browser_client.cc |
@@ -197,6 +197,7 @@ |
#include "ppapi/host/ppapi_host.h" |
#include "printing/features/features.h" |
#include "services/preferences/public/interfaces/preferences.mojom.h" |
+#include "services/service_manager/public/cpp/binder_registry.h" |
#include "services/service_manager/public/cpp/interface_provider.h" |
#include "services/service_manager/public/cpp/interface_registry.h" |
#include "services/service_manager/public/cpp/service.h" |
@@ -975,6 +976,10 @@ ChromeContentBrowserClient::ChromeContentBrowserClient() |
#if BUILDFLAG(ENABLE_EXTENSIONS) |
extra_parts_.push_back(new ChromeContentBrowserClientExtensionsPart); |
#endif |
+ |
+ gpu_binder_registry_.AddInterface( |
+ base::Bind(&metrics::CallStackProfileCollector::Create, |
+ metrics::CallStackProfileParams::GPU_PROCESS)); |
} |
ChromeContentBrowserClient::~ChromeContentBrowserClient() { |
@@ -3061,7 +3066,7 @@ bool ChromeContentBrowserClient::PreSpawnRenderer( |
#endif // defined(OS_WIN) |
void ChromeContentBrowserClient::ExposeInterfacesToRenderer( |
- service_manager::InterfaceRegistry* registry, |
+ service_manager::BinderRegistry* registry, |
content::RenderProcessHost* render_process_host) { |
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner = |
content::BrowserThread::GetTaskRunnerForThread( |
@@ -3205,12 +3210,15 @@ void ChromeContentBrowserClient::RegisterRenderFrameMojoInterfaces( |
#endif |
} |
-void ChromeContentBrowserClient::ExposeInterfacesToGpuProcess( |
- service_manager::InterfaceRegistry* registry, |
- content::GpuProcessHost* render_process_host) { |
- registry->AddInterface( |
- base::Bind(&metrics::CallStackProfileCollector::Create, |
- metrics::CallStackProfileParams::GPU_PROCESS)); |
+void ChromeContentBrowserClient::BindInterfaceRequest( |
+ const service_manager::ServiceInfo& source_info, |
+ const std::string& interface_name, |
+ mojo::ScopedMessagePipeHandle* interface_pipe) { |
+ if (source_info.identity.name() == content::mojom::kGpuServiceName && |
+ gpu_binder_registry_.CanBindInterface(interface_name)) { |
+ gpu_binder_registry_.BindInterface(source_info.identity, interface_name, |
+ std::move(*interface_pipe)); |
+ } |
} |
void ChromeContentBrowserClient::RegisterInProcessServices( |