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

Unified Diff: content/renderer/render_thread_impl.h

Issue 2310563002: Adds routed interface support between RenderFrameHost and RenderFrame (Closed)
Patch Set: Created 4 years, 3 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
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_;

Powered by Google App Engine
This is Rietveld 408576698