Index: chrome/renderer/chrome_render_thread_observer.cc |
diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc |
index 6c42add93269fc8a1e9c6fc4eee22edffb8b1795..043975d22cbed79c2fdd8907c5bf212afdbfe0f9 100644 |
--- a/chrome/renderer/chrome_render_thread_observer.cc |
+++ b/chrome/renderer/chrome_render_thread_observer.cc |
@@ -38,10 +38,13 @@ |
#include "chrome/renderer/content_settings_observer.h" |
#include "chrome/renderer/security_filter_peer.h" |
#include "components/visitedlink/renderer/visitedlink_slave.h" |
+#include "content/public/child/child_thread.h" |
#include "content/public/child/resource_dispatcher_delegate.h" |
#include "content/public/common/associated_interface_registry.h" |
#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/renderer/render_thread.h" |
#include "content/public/renderer/render_view.h" |
#include "content/public/renderer/render_view_visitor.h" |
@@ -50,8 +53,8 @@ |
#include "mojo/public/cpp/bindings/strong_binding.h" |
#include "net/base/net_errors.h" |
#include "net/base/net_module.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 "third_party/WebKit/public/platform/WebCache.h" |
#include "third_party/WebKit/public/web/WebDocument.h" |
#include "third_party/WebKit/public/web/WebFrame.h" |
@@ -241,9 +244,6 @@ ChromeRenderThreadObserver::ChromeRenderThreadObserver() |
resource_delegate_.reset(new RendererResourceDelegate()); |
thread->SetResourceDispatcherDelegate(resource_delegate_.get()); |
- thread->GetInterfaceRegistry()->AddInterface( |
- base::Bind(CreateResourceUsageReporter, weak_factory_.GetWeakPtr())); |
- |
// Configure modules that need access to resources. |
net::NetModule::SetResourceProvider(chrome_common_net::NetResourceProvider); |
media::SetLocalizedStringProvider( |
@@ -261,8 +261,18 @@ ChromeRenderThreadObserver::ChromeRenderThreadObserver() |
WebSecurityPolicy::RegisterURLSchemeAsNotAllowingJavascriptURLs( |
native_scheme); |
- thread->GetInterfaceRegistry()->AddInterface( |
- visited_link_slave_->GetBindCallback()); |
+ auto registry = base::MakeUnique<service_manager::BinderRegistry>(); |
+ registry->AddInterface( |
+ base::Bind(CreateResourceUsageReporter, weak_factory_.GetWeakPtr()), |
+ base::ThreadTaskRunnerHandle::Get()); |
+ registry->AddInterface(visited_link_slave_->GetBindCallback(), |
+ base::ThreadTaskRunnerHandle::Get()); |
+ if (content::ChildThread::Get()) { |
+ content::ChildThread::Get() |
+ ->GetServiceManagerConnection() |
+ ->AddConnectionFilter(base::MakeUnique<content::SimpleConnectionFilter>( |
+ std::move(registry))); |
+ } |
} |
ChromeRenderThreadObserver::~ChromeRenderThreadObserver() {} |