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_impl.h" | 5 #include "content/browser/frame_host/render_frame_host_impl.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
252 // RenderFrameHost during cleanup. | 252 // RenderFrameHost during cleanup. |
253 ClearAllWebUI(); | 253 ClearAllWebUI(); |
254 | 254 |
255 GetProcess()->RemoveRoute(routing_id_); | 255 GetProcess()->RemoveRoute(routing_id_); |
256 g_routing_id_frame_map.Get().erase( | 256 g_routing_id_frame_map.Get().erase( |
257 RenderFrameHostID(GetProcess()->GetID(), routing_id_)); | 257 RenderFrameHostID(GetProcess()->GetID(), routing_id_)); |
258 | 258 |
259 if (delegate_ && render_frame_created_) | 259 if (delegate_ && render_frame_created_) |
260 delegate_->RenderFrameDeleted(this); | 260 delegate_->RenderFrameDeleted(this); |
261 | 261 |
262 // If this was swapped out, it already decremented the active frame count of | 262 bool is_active = IsRFHStateActive(rfh_state_); |
263 // the SiteInstance it belongs to. | 263 |
264 if (IsRFHStateActive(rfh_state_)) | 264 // If this RenderFrameHost is swapped out, it already decremented the active |
| 265 // frame count of the SiteInstance it belongs to. |
| 266 if (is_active) |
265 GetSiteInstance()->decrement_active_frame_count(); | 267 GetSiteInstance()->decrement_active_frame_count(); |
266 | 268 |
| 269 // If this RenderFrameHost is swapping with a RenderFrameProxyHost, the |
| 270 // RenderFrame will already be deleted in the renderer process. Main frame |
| 271 // RenderFrames will be cleaned up as part of deleting its RenderView. In all |
| 272 // other cases, the RenderFrame should be cleaned up (if it exists). |
| 273 if (is_active && !frame_tree_node_->IsMainFrame() && render_frame_created_) |
| 274 Send(new FrameMsg_Delete(routing_id_)); |
| 275 |
267 // NULL out the swapout timer; in crash dumps this member will be null only if | 276 // NULL out the swapout timer; in crash dumps this member will be null only if |
268 // the dtor has run. | 277 // the dtor has run. |
269 swapout_event_monitor_timeout_.reset(); | 278 swapout_event_monitor_timeout_.reset(); |
270 | 279 |
271 for (const auto& iter: visual_state_callbacks_) { | 280 for (const auto& iter: visual_state_callbacks_) { |
272 iter.second.Run(false); | 281 iter.second.Run(false); |
273 } | 282 } |
274 | 283 |
275 if (render_widget_host_ && | 284 if (render_widget_host_ && |
276 render_widget_host_->owned_by_render_frame_host()) { | 285 render_widget_host_->owned_by_render_frame_host()) { |
(...skipping 2230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2507 *dst = src; | 2516 *dst = src; |
2508 | 2517 |
2509 if (src.routing_id != -1) | 2518 if (src.routing_id != -1) |
2510 dst->tree_id = RoutingIDToAXTreeID(src.routing_id); | 2519 dst->tree_id = RoutingIDToAXTreeID(src.routing_id); |
2511 | 2520 |
2512 if (src.parent_routing_id != -1) | 2521 if (src.parent_routing_id != -1) |
2513 dst->parent_tree_id = RoutingIDToAXTreeID(src.parent_routing_id); | 2522 dst->parent_tree_id = RoutingIDToAXTreeID(src.parent_routing_id); |
2514 } | 2523 } |
2515 | 2524 |
2516 } // namespace content | 2525 } // namespace content |
OLD | NEW |