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

Unified Diff: content/public/browser/render_process_host.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/public/browser/render_process_host.h
diff --git a/content/public/browser/render_process_host.h b/content/public/browser/render_process_host.h
index de2843d4f796f29416cb0b0fa51a550588773de1..8d3d8db7a2324440235b5da9fb63c416c5da7ffe 100644
--- a/content/public/browser/render_process_host.h
+++ b/content/public/browser/render_process_host.h
@@ -16,6 +16,7 @@
#include "base/process/process_handle.h"
#include "base/supports_user_data.h"
#include "content/common/content_export.h"
+#include "content/public/common/routed_interface.mojom.h"
#include "ipc/ipc_channel_proxy.h"
#include "ipc/ipc_sender.h"
#include "ui/gfx/native_widget_types.h"
@@ -32,6 +33,10 @@ class AudioOutputController;
class MediaKeys;
}
+namespace mojo {
+class AssociatedGroup;
+}
+
namespace shell {
class Connection;
class InterfaceProvider;
@@ -85,6 +90,14 @@ class CONTENT_EXPORT RenderProcessHost : public IPC::Sender,
virtual void AddRoute(int32_t routing_id, IPC::Listener* listener) = 0;
virtual void RemoveRoute(int32_t routing_id) = 0;
+ // Adds a mojom::RoutedInterfaceProvider for a specific message routing ID.
+ // |provider| must live at least until RemoveRoute() is called on
+ // |routing_id|.
+ virtual void AddRoutedInterfaces(
+ int32_t routing_id,
+ mojom::RoutedInterfaceProvider* provider) = 0;
+ virtual mojo::AssociatedGroup* GetRoutedInterfaceGroup() = 0;
+
// Add and remove observers for lifecycle events. The order in which
// notifications are sent to observers is undefined. Observers must be sure to
// remove the observer before they go away.
@@ -266,6 +279,10 @@ class CONTENT_EXPORT RenderProcessHost : public IPC::Sender,
// interfaces exposed to it from the renderer.
virtual shell::InterfaceProvider* GetRemoteInterfaces() = 0;
+ // Returns the mojom::RouteProvider the browser process can use to connect
+ // to routed interfaces in the renderer.
+ virtual mojom::RouteProvider* GetRemoteRouteProvider() = 0;
+
// Extracts any persistent-memory-allocator used for renderer metrics.
// Ownership is passed to the caller. To support sharing of histogram data
// between the Renderer and the Browser, the allocator is created when the

Powered by Google App Engine
This is Rietveld 408576698