| 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 #include "content/browser/frame_host/render_frame_host_manager.h" | 5 #include "content/browser/frame_host/render_frame_host_manager.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 885 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 896 | 896 |
| 897 if (render_frame_host) { | 897 if (render_frame_host) { |
| 898 // We won't be coming back, so delete this one. | 898 // We won't be coming back, so delete this one. |
| 899 ShutdownProxiesIfLastActiveFrameInSiteInstance(render_frame_host.get()); | 899 ShutdownProxiesIfLastActiveFrameInSiteInstance(render_frame_host.get()); |
| 900 render_frame_host.reset(); | 900 render_frame_host.reset(); |
| 901 } | 901 } |
| 902 } | 902 } |
| 903 | 903 |
| 904 void RenderFrameHostManager::MoveToPendingDeleteHosts( | 904 void RenderFrameHostManager::MoveToPendingDeleteHosts( |
| 905 scoped_ptr<RenderFrameHostImpl> render_frame_host) { | 905 scoped_ptr<RenderFrameHostImpl> render_frame_host) { |
| 906 // If this is the main frame going away, mark the corresponding |
| 907 // RenderViewHost for deletion as well so that we don't try to reuse it. |
| 908 if (render_frame_host->frame_tree_node()->IsMainFrame()) |
| 909 render_frame_host->render_view_host()->set_pending_deletion(); |
| 910 |
| 906 // |render_frame_host| will be deleted when its SwapOut ACK is received, or | 911 // |render_frame_host| will be deleted when its SwapOut ACK is received, or |
| 907 // when the timer times out, or when the RFHM itself is deleted (whichever | 912 // when the timer times out, or when the RFHM itself is deleted (whichever |
| 908 // comes first). | 913 // comes first). |
| 909 pending_delete_hosts_.push_back( | 914 pending_delete_hosts_.push_back( |
| 910 linked_ptr<RenderFrameHostImpl>(render_frame_host.release())); | 915 linked_ptr<RenderFrameHostImpl>(render_frame_host.release())); |
| 911 } | 916 } |
| 912 | 917 |
| 913 bool RenderFrameHostManager::IsPendingDeletion( | 918 bool RenderFrameHostManager::IsPendingDeletion( |
| 914 RenderFrameHostImpl* render_frame_host) { | 919 RenderFrameHostImpl* render_frame_host) { |
| 915 for (const auto& rfh : pending_delete_hosts_) { | 920 for (const auto& rfh : pending_delete_hosts_) { |
| (...skipping 1659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2575 int RenderFrameHostManager::GetOpenerRoutingID(SiteInstance* instance) { | 2580 int RenderFrameHostManager::GetOpenerRoutingID(SiteInstance* instance) { |
| 2576 if (!frame_tree_node_->opener()) | 2581 if (!frame_tree_node_->opener()) |
| 2577 return MSG_ROUTING_NONE; | 2582 return MSG_ROUTING_NONE; |
| 2578 | 2583 |
| 2579 return frame_tree_node_->opener() | 2584 return frame_tree_node_->opener() |
| 2580 ->render_manager() | 2585 ->render_manager() |
| 2581 ->GetRoutingIdForSiteInstance(instance); | 2586 ->GetRoutingIdForSiteInstance(instance); |
| 2582 } | 2587 } |
| 2583 | 2588 |
| 2584 } // namespace content | 2589 } // namespace content |
| OLD | NEW |