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 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 void DispatchBeforeUnload(bool for_navigation, bool is_reload); | 424 void DispatchBeforeUnload(bool for_navigation, bool is_reload); |
425 | 425 |
426 // Simulate beforeunload ack on behalf of renderer if it's unrenresponsive. | 426 // Simulate beforeunload ack on behalf of renderer if it's unrenresponsive. |
427 void SimulateBeforeUnloadAck(); | 427 void SimulateBeforeUnloadAck(); |
428 | 428 |
429 // Returns true if a call to DispatchBeforeUnload will actually send the | 429 // Returns true if a call to DispatchBeforeUnload will actually send the |
430 // BeforeUnload IPC. This is the case if the current renderer is live and this | 430 // BeforeUnload IPC. This is the case if the current renderer is live and this |
431 // frame is the main frame. | 431 // frame is the main frame. |
432 bool ShouldDispatchBeforeUnload(); | 432 bool ShouldDispatchBeforeUnload(); |
433 | 433 |
434 // Returns true if the frame or any of its descendents have an onunload | |
435 // handler. | |
436 bool ShouldDispatchUnload(); | |
437 | |
438 // Update the frame's opener in the renderer process in response to the | 434 // Update the frame's opener in the renderer process in response to the |
439 // opener being modified (e.g., with window.open or being set to null) in | 435 // opener being modified (e.g., with window.open or being set to null) in |
440 // another renderer process. | 436 // another renderer process. |
441 void UpdateOpener(); | 437 void UpdateOpener(); |
442 | 438 |
443 // Set this frame as focused in the renderer process. This supports | 439 // Set this frame as focused in the renderer process. This supports |
444 // cross-process window.focus() calls. | 440 // cross-process window.focus() calls. |
445 void SetFocusedFrame(); | 441 void SetFocusedFrame(); |
446 | 442 |
447 // Continues sequential focus navigation in this frame. |source_proxy| | 443 // Continues sequential focus navigation in this frame. |source_proxy| |
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
760 const AccessibilityHostMsg_FindInPageResultParams& params); | 756 const AccessibilityHostMsg_FindInPageResultParams& params); |
761 void OnAccessibilityChildFrameHitTestResult(const gfx::Point& point, | 757 void OnAccessibilityChildFrameHitTestResult(const gfx::Point& point, |
762 int hit_obj_id); | 758 int hit_obj_id); |
763 void OnAccessibilitySnapshotResponse( | 759 void OnAccessibilitySnapshotResponse( |
764 int callback_id, | 760 int callback_id, |
765 const AXContentTreeUpdate& snapshot); | 761 const AXContentTreeUpdate& snapshot); |
766 void OnSmartClipDataExtracted(uint32_t id, | 762 void OnSmartClipDataExtracted(uint32_t id, |
767 base::string16 text, | 763 base::string16 text, |
768 base::string16 html); | 764 base::string16 html); |
769 void OnToggleFullscreen(bool enter_fullscreen); | 765 void OnToggleFullscreen(bool enter_fullscreen); |
770 void OnBeforeUnloadHandlersPresent(bool present); | |
771 void OnUnloadHandlersPresent(bool present); | |
772 void OnDidStartLoading(bool to_different_document); | 766 void OnDidStartLoading(bool to_different_document); |
773 void OnDidStopLoading(); | 767 void OnDidStopLoading(); |
774 void OnDidChangeLoadProgress(double load_progress); | 768 void OnDidChangeLoadProgress(double load_progress); |
775 void OnSerializeAsMHTMLResponse( | 769 void OnSerializeAsMHTMLResponse( |
776 int job_id, | 770 int job_id, |
777 MhtmlSaveStatus save_status, | 771 MhtmlSaveStatus save_status, |
778 const std::set<std::string>& digests_of_uris_of_serialized_resources, | 772 const std::set<std::string>& digests_of_uris_of_serialized_resources, |
779 base::TimeDelta renderer_main_thread_time); | 773 base::TimeDelta renderer_main_thread_time); |
780 void OnSelectionChanged(const base::string16& text, | 774 void OnSelectionChanged(const base::string16& text, |
781 uint32_t offset, | 775 uint32_t offset, |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
993 // this RFH is the pending RenderFrameHost of a RenderFrameHostManager. There | 987 // this RFH is the pending RenderFrameHost of a RenderFrameHostManager. There |
994 // will only ever be one suspended navigation, because RenderFrameHostManager | 988 // will only ever be one suspended navigation, because RenderFrameHostManager |
995 // will destroy the pending RenderFrameHost and create a new one if a second | 989 // will destroy the pending RenderFrameHost and create a new one if a second |
996 // navigation occurs. | 990 // navigation occurs. |
997 // PlzNavigate: unused as navigations are never suspended. | 991 // PlzNavigate: unused as navigations are never suspended. |
998 std::unique_ptr<NavigationParams> suspended_nav_params_; | 992 std::unique_ptr<NavigationParams> suspended_nav_params_; |
999 | 993 |
1000 // When the last BeforeUnload message was sent. | 994 // When the last BeforeUnload message was sent. |
1001 base::TimeTicks send_before_unload_start_time_; | 995 base::TimeTicks send_before_unload_start_time_; |
1002 | 996 |
1003 // Used to track whether the frame has onbeforeunload and onunload handlers | |
1004 bool has_beforeunload_handlers_; | |
1005 bool has_unload_handlers_; | |
1006 | |
1007 // Set to true when there is a pending FrameMsg_BeforeUnload message. This | 997 // Set to true when there is a pending FrameMsg_BeforeUnload message. This |
1008 // ensures we don't spam the renderer with multiple beforeunload requests. | 998 // ensures we don't spam the renderer with multiple beforeunload requests. |
1009 // When either this value or IsWaitingForUnloadACK is true, the value of | 999 // When either this value or IsWaitingForUnloadACK is true, the value of |
1010 // unload_ack_is_for_cross_site_transition_ indicates whether this is for a | 1000 // unload_ack_is_for_cross_site_transition_ indicates whether this is for a |
1011 // cross-site transition or a tab close attempt. | 1001 // cross-site transition or a tab close attempt. |
1012 // TODO(clamy): Remove this boolean and add one more state to the state | 1002 // TODO(clamy): Remove this boolean and add one more state to the state |
1013 // machine. | 1003 // machine. |
1014 bool is_waiting_for_beforeunload_ack_; | 1004 bool is_waiting_for_beforeunload_ack_; |
1015 | 1005 |
1016 // Valid only when is_waiting_for_beforeunload_ack_ or | 1006 // Valid only when is_waiting_for_beforeunload_ack_ or |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1176 | 1166 |
1177 // NOTE: This must be the last member. | 1167 // NOTE: This must be the last member. |
1178 base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; | 1168 base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; |
1179 | 1169 |
1180 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); | 1170 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); |
1181 }; | 1171 }; |
1182 | 1172 |
1183 } // namespace content | 1173 } // namespace content |
1184 | 1174 |
1185 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ | 1175 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ |
OLD | NEW |