Index: content/renderer/render_thread_impl.h |
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h |
index 2457b648018b8cbe9c0e67af364009ecc169c95b..dcbe7ef104014c4608b075be307dfbd439ef5a29 100644 |
--- a/content/renderer/render_thread_impl.h |
+++ b/content/renderer/render_thread_impl.h |
@@ -33,6 +33,8 @@ |
#include "content/renderer/gpu/compositor_dependencies.h" |
#include "content/renderer/layout_test_dependencies.h" |
#include "gpu/ipc/client/gpu_channel_host.h" |
+#include "mojo/public/cpp/bindings/associated_binding.h" |
+#include "mojo/public/cpp/bindings/associated_binding_set.h" |
#include "net/base/network_change_notifier.h" |
#include "third_party/WebKit/public/platform/WebConnectionType.h" |
#include "third_party/WebKit/public/platform/scheduler/renderer/renderer_scheduler.h" |
@@ -151,7 +153,8 @@ class CONTENT_EXPORT RenderThreadImpl |
public gpu::GpuChannelHostFactory, |
public blink::scheduler::RendererScheduler::RAILModeObserver, |
public memory_coordinator::ChildMemoryCoordinatorDelegate, |
- NON_EXPORTED_BASE(public CompositorDependencies) { |
+ NON_EXPORTED_BASE(public CompositorDependencies), |
+ NON_EXPORTED_BASE(public mojom::RouteProvider) { |
public: |
static RenderThreadImpl* Create(const InProcessChildThreadParams& params); |
static RenderThreadImpl* Create( |
@@ -179,6 +182,9 @@ class CONTENT_EXPORT RenderThreadImpl |
void AddRoute(int32_t routing_id, IPC::Listener* listener) override; |
void RemoveRoute(int32_t routing_id) override; |
int GenerateRoutingID() override; |
+ void AddRoutedInterfaces(int32_t routing_id, |
+ mojom::RoutedInterfaceProvider* provider) override; |
+ mojom::RouteProvider* GetRemoteRouteProvider() override; |
void AddFilter(IPC::MessageFilter* filter) override; |
void RemoveFilter(IPC::MessageFilter* filter) override; |
void AddObserver(RenderThreadObserver* observer) override; |
@@ -527,6 +533,13 @@ class CONTENT_EXPORT RenderThreadImpl |
void OnSyncMemoryPressure( |
base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level); |
+ void OnRouteProviderRequest(mojom::RouteProviderAssociatedRequest request); |
+ |
+ // mojom::RouteProvider: |
+ void GetRoutedInterfaces( |
+ int32_t routing_id, |
+ mojom::RoutedInterfaceProviderAssociatedRequest request) override; |
+ |
// These objects live solely on the render thread. |
std::unique_ptr<AppCacheDispatcher> appcache_dispatcher_; |
std::unique_ptr<DomStorageDispatcher> dom_storage_dispatcher_; |
@@ -707,6 +720,15 @@ class CONTENT_EXPORT RenderThreadImpl |
mojom::StoragePartitionServicePtr storage_partition_service_; |
+ // Registered routed interface providers. These are not owned. |
+ std::map<int32_t, mojom::RoutedInterfaceProvider*> |
+ routed_interface_providers_; |
+ |
+ mojo::AssociatedBinding<mojom::RouteProvider> route_provider_binding_; |
+ mojo::AssociatedBindingSet<mojom::RoutedInterfaceProvider> |
+ routed_interface_provider_bindings_; |
+ |
+ mojom::RouteProviderAssociatedPtr remote_route_provider_; |
mojom::RenderFrameMessageFilterAssociatedPtr render_frame_message_filter_; |
bool is_renderer_suspended_; |