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_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ | 5 #ifndef CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ |
6 #define CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ | 6 #define CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 class StreamHandle; | 94 class StreamHandle; |
95 class TimeoutMonitor; | 95 class TimeoutMonitor; |
96 class WebBluetoothServiceImpl; | 96 class WebBluetoothServiceImpl; |
97 struct ContentSecurityPolicyHeader; | 97 struct ContentSecurityPolicyHeader; |
98 struct ContextMenuParams; | 98 struct ContextMenuParams; |
99 struct FileChooserParams; | 99 struct FileChooserParams; |
100 struct FrameOwnerProperties; | 100 struct FrameOwnerProperties; |
101 struct FileChooserParams; | 101 struct FileChooserParams; |
102 struct ResourceResponse; | 102 struct ResourceResponse; |
103 | 103 |
| 104 namespace mojom { |
| 105 class CreateNewWindowParams; |
| 106 } |
| 107 |
104 class CONTENT_EXPORT RenderFrameHostImpl | 108 class CONTENT_EXPORT RenderFrameHostImpl |
105 : public RenderFrameHost, | 109 : public RenderFrameHost, |
106 NON_EXPORTED_BASE(public mojom::FrameHost), | 110 NON_EXPORTED_BASE(public mojom::FrameHost), |
107 public BrowserAccessibilityDelegate, | 111 public BrowserAccessibilityDelegate, |
108 public SiteInstanceImpl::Observer, | 112 public SiteInstanceImpl::Observer, |
109 public NON_EXPORTED_BASE( | 113 public NON_EXPORTED_BASE( |
110 service_manager::InterfaceFactory<media::mojom::InterfaceFactory>) { | 114 service_manager::InterfaceFactory<media::mojom::InterfaceFactory>) { |
111 public: | 115 public: |
112 using AXTreeSnapshotCallback = | 116 using AXTreeSnapshotCallback = |
113 base::Callback<void( | 117 base::Callback<void( |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 // Tracks whether the RenderFrame for this RenderFrameHost has been created in | 210 // Tracks whether the RenderFrame for this RenderFrameHost has been created in |
207 // the renderer process. This is currently only used for subframes. | 211 // the renderer process. This is currently only used for subframes. |
208 // TODO(creis): Use this for main frames as well when RVH goes away. | 212 // TODO(creis): Use this for main frames as well when RVH goes away. |
209 void SetRenderFrameCreated(bool created); | 213 void SetRenderFrameCreated(bool created); |
210 | 214 |
211 // Called for renderer-created windows to resume requests from this frame, | 215 // Called for renderer-created windows to resume requests from this frame, |
212 // after they are blocked in RenderWidgetHelper::CreateNewWindow. | 216 // after they are blocked in RenderWidgetHelper::CreateNewWindow. |
213 void Init(); | 217 void Init(); |
214 | 218 |
215 int routing_id() const { return routing_id_; } | 219 int routing_id() const { return routing_id_; } |
| 220 |
| 221 // Called when this frame has added a child. This is a continuation of an IPC |
| 222 // that was partially handled on the IO thread (to allocate |new_routing_id|), |
| 223 // and is forwarded here. The renderer has already been told to create a |
| 224 // RenderFrame with |new_routing_id|. |
216 void OnCreateChildFrame(int new_routing_id, | 225 void OnCreateChildFrame(int new_routing_id, |
217 blink::WebTreeScopeType scope, | 226 blink::WebTreeScopeType scope, |
218 const std::string& frame_name, | 227 const std::string& frame_name, |
219 const std::string& frame_unique_name, | 228 const std::string& frame_unique_name, |
220 blink::WebSandboxFlags sandbox_flags, | 229 blink::WebSandboxFlags sandbox_flags, |
221 const FrameOwnerProperties& frame_owner_properties); | 230 const FrameOwnerProperties& frame_owner_properties); |
222 | 231 |
| 232 // Called when this frame tries to open a new WebContents, e.g. via a script |
| 233 // call to window.open(). The renderer has already been told to create the |
| 234 // RenderView and RenderFrame with the specified route ids, which were |
| 235 // assigned on the IO thread. |
| 236 void OnCreateNewWindow(int32_t render_view_route_id, |
| 237 int32_t main_frame_route_id, |
| 238 int32_t main_frame_widget_route_id, |
| 239 const mojom::CreateNewWindowParams& params, |
| 240 SessionStorageNamespace* session_storage_namespace); |
| 241 |
223 RenderViewHostImpl* render_view_host() { return render_view_host_; } | 242 RenderViewHostImpl* render_view_host() { return render_view_host_; } |
224 RenderFrameHostDelegate* delegate() { return delegate_; } | 243 RenderFrameHostDelegate* delegate() { return delegate_; } |
225 FrameTreeNode* frame_tree_node() { return frame_tree_node_; } | 244 FrameTreeNode* frame_tree_node() { return frame_tree_node_; } |
226 | 245 |
227 const GURL& last_committed_url() const { return last_committed_url_; } | 246 const GURL& last_committed_url() const { return last_committed_url_; } |
228 | 247 |
229 // Allows FrameTreeNode::SetCurrentURL to update this frame's last committed | 248 // Allows FrameTreeNode::SetCurrentURL to update this frame's last committed |
230 // URL. Do not call this directly, since we rely on SetCurrentURL to track | 249 // URL. Do not call this directly, since we rely on SetCurrentURL to track |
231 // whether a real load has committed or not. | 250 // whether a real load has committed or not. |
232 void set_last_committed_url(const GURL& url) { | 251 void set_last_committed_url(const GURL& url) { |
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
700 const std::set<std::string>& digests_of_uris_of_serialized_resources, | 719 const std::set<std::string>& digests_of_uris_of_serialized_resources, |
701 base::TimeDelta renderer_main_thread_time); | 720 base::TimeDelta renderer_main_thread_time); |
702 void OnSelectionChanged(const base::string16& text, | 721 void OnSelectionChanged(const base::string16& text, |
703 uint32_t offset, | 722 uint32_t offset, |
704 const gfx::Range& range); | 723 const gfx::Range& range); |
705 | 724 |
706 #if defined(USE_EXTERNAL_POPUP_MENU) | 725 #if defined(USE_EXTERNAL_POPUP_MENU) |
707 void OnShowPopup(const FrameHostMsg_ShowPopup_Params& params); | 726 void OnShowPopup(const FrameHostMsg_ShowPopup_Params& params); |
708 void OnHidePopup(); | 727 void OnHidePopup(); |
709 #endif | 728 #endif |
| 729 void OnShowCreatedWindow(int pending_widget_routing_id, |
| 730 WindowOpenDisposition disposition, |
| 731 const gfx::Rect& initial_rect, |
| 732 bool user_gesture); |
710 | 733 |
711 // Registers Mojo interfaces that this frame host makes available. | 734 // Registers Mojo interfaces that this frame host makes available. |
712 void RegisterMojoInterfaces(); | 735 void RegisterMojoInterfaces(); |
713 | 736 |
714 // Resets any waiting state of this RenderFrameHost that is no longer | 737 // Resets any waiting state of this RenderFrameHost that is no longer |
715 // relevant. | 738 // relevant. |
716 void ResetWaitingState(); | 739 void ResetWaitingState(); |
717 | 740 |
718 // Returns whether the given URL is allowed to commit in the current process. | 741 // Returns whether the given URL is allowed to commit in the current process. |
719 // This is a more conservative check than RenderProcessHost::FilterURL, since | 742 // This is a more conservative check than RenderProcessHost::FilterURL, since |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1081 remote_associated_interfaces_; | 1104 remote_associated_interfaces_; |
1082 // NOTE: This must be the last member. | 1105 // NOTE: This must be the last member. |
1083 base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; | 1106 base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; |
1084 | 1107 |
1085 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); | 1108 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); |
1086 }; | 1109 }; |
1087 | 1110 |
1088 } // namespace content | 1111 } // namespace content |
1089 | 1112 |
1090 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ | 1113 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ |
OLD | NEW |