Index: content/browser/frame_host/render_frame_host_impl.cc |
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc |
index c945e389582606988424d09c98eee87703f3fd64..4a6aff977d924b0893e13bbf8391cb947a69a85a 100644 |
--- a/content/browser/frame_host/render_frame_host_impl.cc |
+++ b/content/browser/frame_host/render_frame_host_impl.cc |
@@ -466,23 +466,6 @@ bool RenderFrameHostImpl::OnMessageReceived(const IPC::Message &msg) { |
if (!render_frame_created_) |
return false; |
- // Filter out most IPC messages if this frame is swapped out. |
- // We still want to handle certain ACKs to keep our state consistent. |
- if (is_swapped_out()) { |
- if (!SwappedOutMessages::CanHandleWhileSwappedOut(msg)) { |
- // If this is a synchronous message and we decided not to handle it, |
- // we must send an error reply, or else the renderer will be stuck |
- // and won't respond to future requests. |
- if (msg.is_sync()) { |
- IPC::Message* reply = IPC::SyncMessage::GenerateReply(&msg); |
- reply->set_reply_error(); |
- Send(reply); |
- } |
- // Don't continue looking for someone to handle it. |
- return true; |
- } |
- } |
- |
// This message map is for handling internal IPC messages which should not |
// be dispatched to other objects. |
bool handled = true; |
@@ -1315,11 +1298,7 @@ void RenderFrameHostImpl::OnRenderProcessGone(int status, int exit_code) { |
// Reset frame tree state associated with this process. This must happen |
// before RenderViewTerminated because observers expect the subframes of any |
// affected frames to be cleared first. |
- // Note: When a RenderFrameHost is swapped out there is a different one |
- // which is the current host. In this case, the FrameTreeNode state must |
- // not be reset. |
- if (!is_swapped_out()) |
- frame_tree_node_->ResetForNewProcess(); |
+ frame_tree_node_->ResetForNewProcess(); |
// Reset state for the current RenderFrameHost once the FrameTreeNode has been |
// reset. |
@@ -1356,13 +1335,9 @@ void RenderFrameHostImpl::OnSwappedOut() { |
render_view_host_->set_is_swapped_out(true); |
} |
- if (frame_tree_node_->render_manager()->DeleteFromPendingList(this)) { |
- // We are now deleted. |
- return; |
- } |
- |
- // If this RFH wasn't pending deletion, then it is now swapped out. |
- SetState(RenderFrameHostImpl::STATE_SWAPPED_OUT); |
+ bool deleted = |
+ frame_tree_node_->render_manager()->DeleteFromPendingList(this); |
+ CHECK(deleted); |
} |
void RenderFrameHostImpl::OnContextMenu(const ContextMenuParams& params) { |
@@ -1887,33 +1862,22 @@ void RenderFrameHostImpl::RegisterMojoServices() { |
} |
void RenderFrameHostImpl::SetState(RenderFrameHostImplState rfh_state) { |
- // Only main frames should be swapped out and retained inside a proxy host. |
- if (rfh_state == STATE_SWAPPED_OUT) |
- CHECK(!GetParent()); |
- |
- // We update the number of RenderFrameHosts in a SiteInstance when the swapped |
- // out status of a RenderFrameHost gets flipped to/from active. |
- if (!IsRFHStateActive(rfh_state_) && IsRFHStateActive(rfh_state)) |
- GetSiteInstance()->IncrementActiveFrameCount(); |
- else if (IsRFHStateActive(rfh_state_) && !IsRFHStateActive(rfh_state)) |
+ // We decrement the number of RenderFrameHosts in a SiteInstance when the |
+ // status of a RenderFrameHost gets flipped from active. |
+ if (IsRFHStateActive(rfh_state_) && !IsRFHStateActive(rfh_state)) |
GetSiteInstance()->DecrementActiveFrameCount(); |
- // The active and swapped out state of the RVH is determined by its main |
- // frame, since subframes should have their own widgets. |
- if (frame_tree_node_->IsMainFrame()) { |
+ // The active state of the RVH is determined by its main frame, since |
+ // subframes should have their own widgets. |
+ if (frame_tree_node_->IsMainFrame()) |
render_view_host_->set_is_active(IsRFHStateActive(rfh_state)); |
- render_view_host_->set_is_swapped_out(rfh_state == STATE_SWAPPED_OUT); |
- } |
- // Whenever we change the RFH state to and from active or swapped out state, |
- // we should not be waiting for beforeunload or close acks. We clear them |
- // here to be safe, since they can cause navigations to be ignored in |
+ // Whenever we change the RFH state to and from active state, we should not be |
Charlie Reis
2016/03/14 21:49:15
Let's come back to cleaning up this method after t
|
+ // waiting for beforeunload or close acks. We clear them here to be safe, |
+ // since they can cause navigations to be ignored in |
// OnDidCommitProvisionalLoad. |
// TODO(creis): Move is_waiting_for_beforeunload_ack_ into the state machine. |
- if (rfh_state == STATE_DEFAULT || |
- rfh_state == STATE_SWAPPED_OUT || |
- rfh_state_ == STATE_DEFAULT || |
- rfh_state_ == STATE_SWAPPED_OUT) { |
+ if (rfh_state == STATE_DEFAULT || rfh_state_ == STATE_DEFAULT) { |
if (is_waiting_for_beforeunload_ack_) { |
is_waiting_for_beforeunload_ack_ = false; |
render_view_host_->GetWidget()->decrement_in_flight_event_count(); |