Chromium Code Reviews| 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 <map> | 8 #include <map> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 245 // active RenderFrames, but not until WasSwappedOut is called. | 245 // active RenderFrames, but not until WasSwappedOut is called. |
| 246 void SwapOut(RenderFrameProxyHost* proxy, bool is_loading); | 246 void SwapOut(RenderFrameProxyHost* proxy, bool is_loading); |
| 247 | 247 |
| 248 bool is_waiting_for_beforeunload_ack() const { | 248 bool is_waiting_for_beforeunload_ack() const { |
| 249 return is_waiting_for_beforeunload_ack_; | 249 return is_waiting_for_beforeunload_ack_; |
| 250 } | 250 } |
| 251 | 251 |
| 252 // Whether the RFH is waiting for an unload ACK from the renderer. | 252 // Whether the RFH is waiting for an unload ACK from the renderer. |
| 253 bool IsWaitingForUnloadACK() const; | 253 bool IsWaitingForUnloadACK() const; |
| 254 | 254 |
| 255 // Whether sudden termination is allowed for this frame. | |
|
Charlie Reis
2015/01/23 06:01:32
Briefly mention what conditions determine this.
clamy
2015/01/26 16:38:40
Done.
| |
| 256 bool SuddenTerminationAllowed() const; | |
| 257 | |
| 258 // Called by the browser to override or not the sudden termination status of | |
|
Charlie Reis
2015/01/23 06:01:32
nit: (or not)
clamy
2015/01/26 16:38:39
Done.
| |
| 259 // the frame. When overriden, sudden termination is always allowed, even if | |
| 260 // some disablers are present for the frame. | |
|
Charlie Reis
2015/01/23 06:01:32
"disablers" isn't a well-defined term in the code.
clamy
2015/01/26 16:38:39
Done.
| |
| 261 void set_override_sudden_termination_status(bool enabled) { | |
| 262 override_sudden_termination_status_ = enabled; | |
| 263 } | |
| 264 | |
| 255 // Called when either the SwapOut request has been acknowledged or has timed | 265 // Called when either the SwapOut request has been acknowledged or has timed |
| 256 // out. | 266 // out. |
| 257 void OnSwappedOut(); | 267 void OnSwappedOut(); |
| 258 | 268 |
| 259 // Whether this RenderFrameHost has been swapped out, such that the frame is | 269 // Whether this RenderFrameHost has been swapped out, such that the frame is |
| 260 // now rendered by a RenderFrameHost in a different process. | 270 // now rendered by a RenderFrameHost in a different process. |
| 261 bool is_swapped_out() const { return rfh_state_ == STATE_SWAPPED_OUT; } | 271 bool is_swapped_out() const { return rfh_state_ == STATE_SWAPPED_OUT; } |
| 262 | 272 |
| 263 // The current state of this RFH. | 273 // The current state of this RFH. |
| 264 RenderFrameHostImplState rfh_state() const { return rfh_state_; } | 274 RenderFrameHostImplState rfh_state() const { return rfh_state_; } |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 461 void OnBeginNavigation(const FrameHostMsg_BeginNavigation_Params& params, | 471 void OnBeginNavigation(const FrameHostMsg_BeginNavigation_Params& params, |
| 462 const CommonNavigationParams& common_params); | 472 const CommonNavigationParams& common_params); |
| 463 void OnAccessibilityEvents( | 473 void OnAccessibilityEvents( |
| 464 const std::vector<AccessibilityHostMsg_EventParams>& params, | 474 const std::vector<AccessibilityHostMsg_EventParams>& params, |
| 465 int reset_token); | 475 int reset_token); |
| 466 void OnAccessibilityLocationChanges( | 476 void OnAccessibilityLocationChanges( |
| 467 const std::vector<AccessibilityHostMsg_LocationChangeParams>& params); | 477 const std::vector<AccessibilityHostMsg_LocationChangeParams>& params); |
| 468 void OnAccessibilityFindInPageResult( | 478 void OnAccessibilityFindInPageResult( |
| 469 const AccessibilityHostMsg_FindInPageResultParams& params); | 479 const AccessibilityHostMsg_FindInPageResultParams& params); |
| 470 void OnToggleFullscreen(bool enter_fullscreen); | 480 void OnToggleFullscreen(bool enter_fullscreen); |
| 481 void OnBeforeUnloadHandlersPresenceChanged(bool present); | |
| 482 void OnUnloadHandlersPresenceChanged(bool present); | |
|
Charlie Reis
2015/01/23 06:01:32
These names are a bit unwieldy. Would On{Before}U
clamy
2015/01/26 16:38:40
Done.
| |
| 471 | 483 |
| 472 #if defined(OS_MACOSX) || defined(OS_ANDROID) | 484 #if defined(OS_MACOSX) || defined(OS_ANDROID) |
| 473 void OnShowPopup(const FrameHostMsg_ShowPopup_Params& params); | 485 void OnShowPopup(const FrameHostMsg_ShowPopup_Params& params); |
| 474 void OnHidePopup(); | 486 void OnHidePopup(); |
| 475 #endif | 487 #endif |
| 476 | 488 |
| 477 // Registers Mojo services that this frame host makes available. | 489 // Registers Mojo services that this frame host makes available. |
| 478 void RegisterMojoServices(); | 490 void RegisterMojoServices(); |
| 479 | 491 |
| 480 // Updates the state of this RenderFrameHost and clears any waiting state | 492 // Updates the state of this RenderFrameHost and clears any waiting state |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 499 const std::map<int32, int>& node_to_browser_plugin_instance_id_map); | 511 const std::map<int32, int>& node_to_browser_plugin_instance_id_map); |
| 500 | 512 |
| 501 // Asserts that the given RenderFrameHostImpl is part of the same browser | 513 // Asserts that the given RenderFrameHostImpl is part of the same browser |
| 502 // context (and crashes if not), then returns whether the given frame is | 514 // context (and crashes if not), then returns whether the given frame is |
| 503 // part of the same site instance. | 515 // part of the same site instance. |
| 504 bool IsSameSiteInstance(RenderFrameHostImpl* other_render_frame_host); | 516 bool IsSameSiteInstance(RenderFrameHostImpl* other_render_frame_host); |
| 505 | 517 |
| 506 // Informs the content client that geolocation permissions were used. | 518 // Informs the content client that geolocation permissions were used. |
| 507 void DidUseGeolocationPermission(); | 519 void DidUseGeolocationPermission(); |
| 508 | 520 |
| 521 // Handle a change in presence for one of the sudden termination disablers. | |
| 522 // Signals the RenderProcessHost if the sudden termination status for this | |
| 523 // frame changes. | |
| 524 void HandleSuddenTerminationDisablerPresenceChange(bool* disabler_presence, | |
| 525 bool new_value); | |
| 526 | |
| 509 // For now, RenderFrameHosts indirectly keep RenderViewHosts alive via a | 527 // For now, RenderFrameHosts indirectly keep RenderViewHosts alive via a |
| 510 // refcount that calls Shutdown when it reaches zero. This allows each | 528 // refcount that calls Shutdown when it reaches zero. This allows each |
| 511 // RenderFrameHostManager to just care about RenderFrameHosts, while ensuring | 529 // RenderFrameHostManager to just care about RenderFrameHosts, while ensuring |
| 512 // we have a RenderViewHost for each RenderFrameHost. | 530 // we have a RenderViewHost for each RenderFrameHost. |
| 513 // TODO(creis): RenderViewHost will eventually go away and be replaced with | 531 // TODO(creis): RenderViewHost will eventually go away and be replaced with |
| 514 // some form of page context. | 532 // some form of page context. |
| 515 RenderViewHostImpl* render_view_host_; | 533 RenderViewHostImpl* render_view_host_; |
| 516 | 534 |
| 517 RenderFrameHostDelegate* delegate_; | 535 RenderFrameHostDelegate* delegate_; |
| 518 | 536 |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 618 // already exists it will still be used. | 636 // already exists it will still be used. |
| 619 bool no_create_browser_accessibility_manager_for_testing_; | 637 bool no_create_browser_accessibility_manager_for_testing_; |
| 620 | 638 |
| 621 // PlzNavigate: Owns the stream used in navigations to store the body of the | 639 // PlzNavigate: Owns the stream used in navigations to store the body of the |
| 622 // response once it has started. | 640 // response once it has started. |
| 623 scoped_ptr<StreamHandle> stream_handle_; | 641 scoped_ptr<StreamHandle> stream_handle_; |
| 624 | 642 |
| 625 // Context shared for each PermissionService instance created for this RFH. | 643 // Context shared for each PermissionService instance created for this RFH. |
| 626 scoped_ptr<PermissionServiceContext> permission_service_context_; | 644 scoped_ptr<PermissionServiceContext> permission_service_context_; |
| 627 | 645 |
| 646 // Used to track whether sudden termination is allowed for this frame. | |
| 647 // has_beforeunload_handlers_ and has_unload_handlers_ are also used to skip | |
| 648 // waiting for the execution of BeforeUnload and Unload if they are false. The | |
|
Charlie Reis
2015/01/23 06:01:32
...to avoid asking the renderer process to run Bef
clamy
2015/01/26 16:38:39
Done.
| |
| 649 // browser can set override_sudden_termination_status_ to true, in which case | |
| 650 // sudden termination will be allowed. This is used when a renderer executing | |
| 651 // BeforeUnload or Unload is unresponsive. All other values are modified based | |
| 652 // on IPCs received from the renderer. | |
| 653 bool has_beforeunload_handlers_; | |
|
Charlie Reis
2015/01/23 06:01:32
nit: Please put these near the other *unload membe
clamy
2015/01/26 16:38:40
Done.
| |
| 654 bool has_unload_handlers_; | |
| 655 bool override_sudden_termination_status_; | |
| 656 | |
| 628 // NOTE: This must be the last member. | 657 // NOTE: This must be the last member. |
| 629 base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; | 658 base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_; |
| 630 | 659 |
| 631 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); | 660 DISALLOW_COPY_AND_ASSIGN(RenderFrameHostImpl); |
| 632 }; | 661 }; |
| 633 | 662 |
| 634 } // namespace content | 663 } // namespace content |
| 635 | 664 |
| 636 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ | 665 #endif // CONTENT_BROWSER_FRAME_HOST_RENDER_FRAME_HOST_IMPL_H_ |
| OLD | NEW |