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

Unified Diff: content/browser/frame_host/render_frame_host_impl.h

Issue 281663002: Create RenderFrameProxyHost at time of swap-out instead of commit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix IPC_BEGIN_MESSAGE_MAP macro, as _EX version doesn't exist anymore. Created 6 years, 7 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/frame_host/render_frame_host_impl.h
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index a0fb3327ff2b6b81ac3bb5b0144d17057648ffea..2acebc6115d3917b601d113ab8bdb44a3c5f0333 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -36,6 +36,7 @@ class CrossSiteTransferringRequest;
class FrameTree;
class FrameTreeNode;
class RenderFrameHostDelegate;
+class RenderFrameProxyHost;
class RenderProcessHost;
class RenderViewHostImpl;
struct ContextMenuParams;
@@ -92,6 +93,10 @@ class CONTENT_EXPORT RenderFrameHostImpl : public RenderFrameHost {
cross_process_frame_connector_ = cross_process_frame_connector;
}
+ void set_render_frame_proxy_host(RenderFrameProxyHost* proxy) {
+ render_frame_proxy_host_ = proxy;
+ }
+
// Returns a bitwise OR of bindings types that have been enabled for this
// RenderFrameHostImpl's RenderView. See BindingsPolicy for details.
// TODO(creis): Make bindings frame-specific, to support cases like <webview>.
@@ -110,12 +115,12 @@ class CONTENT_EXPORT RenderFrameHostImpl : public RenderFrameHost {
bool should_replace_current_entry);
// Tells the renderer that this RenderFrame is being swapped out for one in a
- // different renderer process. It should run its unload handler and move to
- // a blank document. The renderer should preserve the Frame object until it
- // exits, in case we come back. The renderer can exit if it has no other
- // active RenderFrames, but not until WasSwappedOut is called (when it is no
- // longer visible).
- void SwapOut();
+ // different renderer process. It should run its unload handler, move to
+ // a blank document and create a RenderFrameProxy to replace the RenderFrame.
+ // The renderer should preserve the Proxy object until it exits, in case we
+ // come back. The renderer can exit if it has no other active RenderFrames,
+ // but not until WasSwappedOut is called (when it is no longer visible).
+ void SwapOut(RenderFrameProxyHost* proxy);
void OnSwappedOut(bool timed_out);
bool is_swapped_out() { return is_swapped_out_; }
@@ -261,6 +266,12 @@ class CONTENT_EXPORT RenderFrameHostImpl : public RenderFrameHost {
// This will move to RenderFrameProxyHost when that class is created.
CrossProcessFrameConnector* cross_process_frame_connector_;
+ // The proxy created for this RenderFrameHost. It is used to send and receive
+ // IPC messages while in swapped out state.
+ // TODO(nasko): This can be removed once we don't have a swapped out state on
+ // RenderFrameHosts. See https://crbug.com/357747.
+ RenderFrameProxyHost* render_frame_proxy_host_;
+
// Reference to the whole frame tree that this RenderFrameHost belongs to.
// Allows this RenderFrameHost to add and remove nodes in response to
// messages from the renderer requesting DOM manipulation.
« no previous file with comments | « content/browser/frame_host/interstitial_page_impl.cc ('k') | content/browser/frame_host/render_frame_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698