OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ | 5 #ifndef CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ |
6 #define CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ | 6 #define CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 // process. All other frame creation is driven through Blink and Create. | 162 // process. All other frame creation is driven through Blink and Create. |
163 static void CreateFrame(int routing_id, | 163 static void CreateFrame(int routing_id, |
164 int proxy_routing_id, | 164 int proxy_routing_id, |
165 int opener_routing_id, | 165 int opener_routing_id, |
166 int parent_routing_id, | 166 int parent_routing_id, |
167 int previous_sibling_routing_id, | 167 int previous_sibling_routing_id, |
168 const FrameReplicationState& replicated_state, | 168 const FrameReplicationState& replicated_state, |
169 CompositorDependencies* compositor_deps, | 169 CompositorDependencies* compositor_deps, |
170 const FrameMsg_NewFrame_WidgetParams& params); | 170 const FrameMsg_NewFrame_WidgetParams& params); |
171 | 171 |
| 172 // Detaches a RenderFrame identified by |routing_id|. |
| 173 static void DetachFrame(int routing_id); |
| 174 |
172 // Returns the RenderFrameImpl for the given routing ID. | 175 // Returns the RenderFrameImpl for the given routing ID. |
173 static RenderFrameImpl* FromRoutingID(int routing_id); | 176 static RenderFrameImpl* FromRoutingID(int routing_id); |
174 | 177 |
175 // Just like RenderFrame::FromWebFrame but returns the implementation. | 178 // Just like RenderFrame::FromWebFrame but returns the implementation. |
176 static RenderFrameImpl* FromWebFrame(blink::WebFrame* web_frame); | 179 static RenderFrameImpl* FromWebFrame(blink::WebFrame* web_frame); |
177 | 180 |
178 // Used by content_layouttest_support to hook into the creation of | 181 // Used by content_layouttest_support to hook into the creation of |
179 // RenderFrameImpls. | 182 // RenderFrameImpls. |
180 struct CreateParams { | 183 struct CreateParams { |
181 CreateParams(RenderViewImpl* render_view, int32 routing_id) | 184 CreateParams(RenderViewImpl* render_view, int32 routing_id) |
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
879 #endif | 882 #endif |
880 | 883 |
881 media::CdmFactory* GetCdmFactory(); | 884 media::CdmFactory* GetCdmFactory(); |
882 | 885 |
883 void RegisterMojoServices(); | 886 void RegisterMojoServices(); |
884 | 887 |
885 // Connects to a Mojo application and returns a proxy to its exposed | 888 // Connects to a Mojo application and returns a proxy to its exposed |
886 // ServiceProvider. | 889 // ServiceProvider. |
887 mojo::ServiceProviderPtr ConnectToApplication(const GURL& url); | 890 mojo::ServiceProviderPtr ConnectToApplication(const GURL& url); |
888 | 891 |
| 892 void set_in_browser_initiated_detach() { |
| 893 in_browser_initiated_detach_ = true; |
| 894 } |
| 895 |
889 // Stores the WebLocalFrame we are associated with. This is null from the | 896 // Stores the WebLocalFrame we are associated with. This is null from the |
890 // constructor until SetWebFrame is called, and it is null after | 897 // constructor until SetWebFrame is called, and it is null after |
891 // frameDetached is called until destruction (which is asynchronous in the | 898 // frameDetached is called until destruction (which is asynchronous in the |
892 // case of the main frame, but not subframes). | 899 // case of the main frame, but not subframes). |
893 blink::WebLocalFrame* frame_; | 900 blink::WebLocalFrame* frame_; |
894 | 901 |
895 // Boolean value indicating whether this RenderFrameImpl object is for the | 902 // Boolean value indicating whether this RenderFrameImpl object is for the |
896 // main frame or not. It remains accurate during destruction, even when | 903 // main frame or not. It remains accurate during destruction, even when |
897 // |frame_| has been invalidated. | 904 // |frame_| has been invalidated. |
898 bool is_main_frame_; | 905 bool is_main_frame_; |
899 | 906 |
900 // Frame is a local root if it is rendered in a process different than parent | 907 // Frame is a local root if it is rendered in a process different than parent |
901 // or it is a main frame. | 908 // or it is a main frame. |
902 bool is_local_root_; | 909 bool is_local_root_; |
903 | 910 |
| 911 // When a frame is detached in response to a messge from the browser process, |
| 912 // this RenderFrame should not be sending notifications back to it. This |
| 913 // boolean is used to indicate this case. |
| 914 bool in_browser_initiated_detach_; |
| 915 |
904 base::WeakPtr<RenderViewImpl> render_view_; | 916 base::WeakPtr<RenderViewImpl> render_view_; |
905 int routing_id_; | 917 int routing_id_; |
906 bool is_swapped_out_; | 918 bool is_swapped_out_; |
907 | 919 |
908 // RenderFrameProxy exists only when is_swapped_out_ is true. | 920 // RenderFrameProxy exists only when is_swapped_out_ is true. |
909 // TODO(nasko): This can be removed once we don't have a swapped out state on | 921 // TODO(nasko): This can be removed once we don't have a swapped out state on |
910 // RenderFrame. See https://crbug.com/357747. | 922 // RenderFrame. See https://crbug.com/357747. |
911 RenderFrameProxy* render_frame_proxy_; | 923 RenderFrameProxy* render_frame_proxy_; |
912 bool is_detaching_; | 924 bool is_detaching_; |
913 | 925 |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1083 #endif | 1095 #endif |
1084 | 1096 |
1085 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; | 1097 base::WeakPtrFactory<RenderFrameImpl> weak_factory_; |
1086 | 1098 |
1087 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); | 1099 DISALLOW_COPY_AND_ASSIGN(RenderFrameImpl); |
1088 }; | 1100 }; |
1089 | 1101 |
1090 } // namespace content | 1102 } // namespace content |
1091 | 1103 |
1092 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ | 1104 #endif // CONTENT_RENDERER_RENDER_FRAME_IMPL_H_ |
OLD | NEW |