Index: content/renderer/render_frame_proxy.h |
diff --git a/content/renderer/render_frame_proxy.h b/content/renderer/render_frame_proxy.h |
index 54c63619290485850f4598cfce1c5526fb4e0b41..df38016d3b7319a35c9cdad5e93360b0ae3ecba7 100644 |
--- a/content/renderer/render_frame_proxy.h |
+++ b/content/renderer/render_frame_proxy.h |
@@ -48,17 +48,35 @@ class CONTENT_EXPORT RenderFrameProxy |
public IPC::Sender, |
NON_EXPORTED_BASE(public blink::WebFrameClient) { |
public: |
+ // This method should be used to create a RenderFrameProxy, which will replace |
+ // an existing RenderFrame during its cross-process navigation from the |
+ // current process to a different one. |
+ static RenderFrameProxy* CreateProxyForFrame(int routing_id, |
+ int frame_routing_id); |
+ |
+ // This method should be used to create a RenderFrameProxy, when there isn't |
+ // an existing RenderFrame. It happens when some other frame in the frame tree |
+ // of the document is navigating cross-process and a proxy for the new frame |
+ // is needed. |
static RenderFrameProxy* CreateFrameProxy(int routing_id, |
- int frame_routing_id); |
+ int parent_routing_id, |
+ int render_view_routing_id); |
// Returns the RenderFrameProxy for the given routing ID. |
static RenderFrameProxy* FromRoutingID(int routing_id); |
+ // Returns the RenderFrameProxy given a WebFrame. |
+ static RenderFrameProxy* FromWebFrame(blink::WebFrame* web_frame); |
+ |
virtual ~RenderFrameProxy(); |
// IPC::Sender |
virtual bool Send(IPC::Message* msg) OVERRIDE; |
+ int routing_id() { |
+ return routing_id_; |
+ } |
+ |
RenderFrameImpl* render_frame() { |
return render_frame_; |
} |
@@ -67,6 +85,14 @@ class CONTENT_EXPORT RenderFrameProxy |
// when a compositor frame has committed. |
void DidCommitCompositorFrame(); |
+ RenderViewImpl* render_view() { |
+ return render_view_; |
+ } |
+ |
+ blink::WebRemoteFrame* GetWebFrame() { |
+ return frame_; |
+ } |
+ |
private: |
RenderFrameProxy(int routing_id, int frame_routing_id); |
@@ -79,14 +105,18 @@ class CONTENT_EXPORT RenderFrameProxy |
void OnBuffersSwapped(const FrameMsg_BuffersSwapped_Params& params); |
void OnCompositorFrameSwapped(const IPC::Message& message); |
- blink::WebFrame* GetWebFrame(); |
+ void set_render_view(RenderViewImpl* render_view) { |
+ render_view_ = render_view; |
+ } |
int routing_id_; |
int frame_routing_id_; |
RenderFrameImpl* render_frame_; |
- |
+ blink::WebRemoteFrame* frame_; |
scoped_refptr<ChildFrameCompositingHelper> compositing_helper_; |
+ RenderViewImpl* render_view_; |
+ |
DISALLOW_COPY_AND_ASSIGN(RenderFrameProxy); |
}; |