Index: content/browser/renderer_host/render_view_host_impl.h |
diff --git a/content/browser/renderer_host/render_view_host_impl.h b/content/browser/renderer_host/render_view_host_impl.h |
index 44851eea0e2983c78abd680af49322e2b72a555b..909e5714e2100f4a1757f50e182d8eb0d90bea0f 100644 |
--- a/content/browser/renderer_host/render_view_host_impl.h |
+++ b/content/browser/renderer_host/render_view_host_impl.h |
@@ -295,6 +295,20 @@ class CONTENT_EXPORT RenderViewHostImpl |
// different process. |
bool is_swapped_out() const { return is_swapped_out_; } |
+ // Whether this RenderViewHost is waiting for the execution of the unload in |
+ // the background, and should not be destroyed on SwapOut, even if it was the |
+ // last active in the SiteInstance. |
+ bool should_be_preserved_on_swap_out() const { |
Charlie Reis
2013/12/09 20:12:29
I don't think we need these.
|
+ return should_be_preserved_on_swap_out_; |
+ } |
+ |
+ // Whether this RenderViewHostImpl needs to perform additional cleanup before |
+ // being deleted. This is the case if the renderer was left to execute the |
+ // unload event in the background. |
+ bool need_to_perform_clean_up_on_swapped_out() const { |
+ return need_to_perform_clean_up_on_swapped_out_; |
+ } |
+ |
// Called on the pending RenderViewHost when the network response is ready to |
// commit. We should ensure that the old RenderViewHost runs its unload |
// handler and determine whether a transfer to a different RenderViewHost is |
@@ -324,7 +338,7 @@ class CONTENT_EXPORT RenderViewHostImpl |
// Called when either the SwapOut request has been acknowledged or has timed |
// out. |
- void OnSwappedOut(bool timed_out); |
+ void OnSwappedOut(bool timed_out, bool preserve_render_view_host); |
Charlie Reis
2013/12/09 20:12:29
I think we can get rid of this whole method.
|
// Called to notify the renderer that it has been visibly swapped out and |
// replaced by another RenderViewHost, after an earlier call to SwapOut. |
@@ -708,6 +722,14 @@ class CONTENT_EXPORT RenderViewHostImpl |
// is_waiting_for_beforeunload_ack_, unload_ack_is_for_cross_site_transition_. |
bool is_waiting_for_unload_ack_; |
+ // Set to true to prevent |this| to be killed when swapping out |
+ // RenderViewHosts. This allows the unload handler to be run into background. |
+ bool should_be_preserved_on_swap_out_; |
+ |
+ // Set to true to have the renderer perform additional clean up if it had the |
+ // unload handler run into the background previously. |
+ bool need_to_perform_clean_up_on_swapped_out_; |
+ |
// Set to true when waiting for ViewHostMsg_SwapOut_ACK has timed out. |
bool has_timed_out_on_unload_; |