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

Unified Diff: content/browser/web_contents/web_contents_impl.h

Issue 2310563002: Adds routed interface support between RenderFrameHost and RenderFrame (Closed)
Patch Set: nit 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/browser/web_contents/web_contents_impl.h
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 829f02447bf2663d1c21c67510f726f6e64a53fc..e4b786fd7f49396fa2ce9ee355568552e6e238c0 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -75,6 +75,7 @@ class TestWebContents;
class TextInputManager;
class WakeLockServiceContext;
class WebContentsAudioMuter;
+class WebContentsBindingSet;
class WebContentsDelegate;
class WebContentsImpl;
class WebContentsView;
@@ -246,6 +247,15 @@ class CONTENT_EXPORT WebContentsImpl
const std::string& host,
double level);
+ // Adds a new binding set to the WebContents. Returns a closure which may be
+ // used to remove the binding set at any time. The closure is safe to call
+ // even after WebContents destruction.
+ //
+ // |binding_set| is not owned and must either outlive this WebContents or be
+ // explicitly removed before being destroyed.
+ base::Closure AddBindingSet(const std::string& interface_name,
+ WebContentsBindingSet* binding_set);
+
// WebContents ------------------------------------------------------
WebContentsDelegate* GetDelegate() override;
void SetDelegate(WebContentsDelegate* delegate) override;
@@ -427,6 +437,10 @@ class CONTENT_EXPORT WebContentsImpl
// RenderFrameHostDelegate ---------------------------------------------------
bool OnMessageReceived(RenderFrameHost* render_frame_host,
const IPC::Message& message) override;
+ void OnAssociatedInterfaceRequest(
+ RenderFrameHost* render_frame_host,
+ const std::string& interface_name,
+ mojo::ScopedInterfaceEndpointHandle handle) override;
const GURL& GetMainFrameLastCommittedURL() const override;
void RenderFrameCreated(RenderFrameHost* render_frame_host) override;
void RenderFrameDeleted(RenderFrameHost* render_frame_host) override;
@@ -1105,6 +1119,9 @@ class CONTENT_EXPORT WebContentsImpl
// Returns the FindRequestManager, or creates one if it doesn't already exist.
FindRequestManager* GetOrCreateFindRequestManager();
+ // Removes a registered WebContentsBindingSet by interface name.
+ void RemoveBindingSet(const std::string& interface_name);
+
// Data for core operation ---------------------------------------------------
// Delegate for notifying our owner about stuff. Not owned by us.
@@ -1139,6 +1156,9 @@ class CONTENT_EXPORT WebContentsImpl
// the observer list then.
base::ObserverList<WebContentsObserver> observers_;
+ // Associated interface binding sets attached to this WebContents.
+ std::map<std::string, WebContentsBindingSet*> binding_sets_;
+
// True if this tab was opened by another tab. This is not unset if the opener
// is closed.
bool created_with_opener_;
« no previous file with comments | « content/browser/renderer_host/render_process_host_impl.cc ('k') | content/browser/web_contents/web_contents_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698