| Index: content/browser/frame_host/render_frame_host_manager.cc
|
| diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
|
| index 651c3590e50df1020770698e46d306bf1b358b2a..d9a98008539e270f9cddaeb70624ea0ee9d41f1e 100644
|
| --- a/content/browser/frame_host/render_frame_host_manager.cc
|
| +++ b/content/browser/frame_host/render_frame_host_manager.cc
|
| @@ -2145,10 +2145,21 @@ void RenderFrameHostManager::CommitPending() {
|
| // routing id in the RenderViewHost associated with the old RenderFrameHost
|
| // to MSG_ROUTING_NONE.
|
| if (is_main_frame) {
|
| - render_frame_host_->render_view_host()->set_main_frame_routing_id(
|
| - render_frame_host_->routing_id());
|
| - render_frame_host_->render_view_host()->set_is_active(true);
|
| - render_frame_host_->render_view_host()->set_is_swapped_out(false);
|
| + RenderViewHostImpl* rvh = render_frame_host_->render_view_host();
|
| + rvh->set_main_frame_routing_id(render_frame_host_->routing_id());
|
| +
|
| + // If the RenderViewHost is transitioning from swapped out to active state,
|
| + // it was reused, so dispatch a RenderViewReady event. For example, this
|
| + // is necessary to hide the sad tab if one is currently displayed. See
|
| + // https://crbug.com/591984.
|
| + //
|
| + // TODO(alexmos): Remove this and move RenderViewReady consumers to use
|
| + // the main frame's RenderFrameCreated instead.
|
| + if (!rvh->is_active())
|
| + rvh->PostRenderViewReady();
|
| +
|
| + rvh->set_is_active(true);
|
| + rvh->set_is_swapped_out(false);
|
| old_render_frame_host->render_view_host()->set_main_frame_routing_id(
|
| MSG_ROUTING_NONE);
|
| }
|
|
|