Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Side by Side Diff: content/renderer/render_thread_impl.cc

Issue 1409693009: Fix leaking of RenderFrames. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Handle main frame navigating to existing process. Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/renderer/render_thread_impl.h" 5 #include "content/renderer/render_thread_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <vector> 10 #include <vector>
(...skipping 1583 matching lines...) Expand 10 before | Expand all | Expand 10 after
1594 // Some messages are handled by delegates. 1594 // Some messages are handled by delegates.
1595 if (appcache_dispatcher_->OnMessageReceived(msg) || 1595 if (appcache_dispatcher_->OnMessageReceived(msg) ||
1596 dom_storage_dispatcher_->OnMessageReceived(msg) || 1596 dom_storage_dispatcher_->OnMessageReceived(msg) ||
1597 embedded_worker_dispatcher_->OnMessageReceived(msg)) { 1597 embedded_worker_dispatcher_->OnMessageReceived(msg)) {
1598 return true; 1598 return true;
1599 } 1599 }
1600 1600
1601 bool handled = true; 1601 bool handled = true;
1602 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg) 1602 IPC_BEGIN_MESSAGE_MAP(RenderThreadImpl, msg)
1603 IPC_MESSAGE_HANDLER(FrameMsg_NewFrame, OnCreateNewFrame) 1603 IPC_MESSAGE_HANDLER(FrameMsg_NewFrame, OnCreateNewFrame)
1604 IPC_MESSAGE_HANDLER(FrameMsg_Detach, OnDetachFrame)
1604 IPC_MESSAGE_HANDLER(FrameMsg_NewFrameProxy, OnCreateNewFrameProxy) 1605 IPC_MESSAGE_HANDLER(FrameMsg_NewFrameProxy, OnCreateNewFrameProxy)
1605 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForCurrentURL, 1606 IPC_MESSAGE_HANDLER(ViewMsg_SetZoomLevelForCurrentURL,
1606 OnSetZoomLevelForCurrentURL) 1607 OnSetZoomLevelForCurrentURL)
1607 // TODO(port): removed from render_messages_internal.h; 1608 // TODO(port): removed from render_messages_internal.h;
1608 // is there a new non-windows message I should add here? 1609 // is there a new non-windows message I should add here?
1609 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView) 1610 IPC_MESSAGE_HANDLER(ViewMsg_New, OnCreateNewView)
1610 IPC_MESSAGE_HANDLER(ViewMsg_NetworkConnectionChanged, 1611 IPC_MESSAGE_HANDLER(ViewMsg_NetworkConnectionChanged,
1611 OnNetworkConnectionChanged) 1612 OnNetworkConnectionChanged)
1612 IPC_MESSAGE_HANDLER(WorkerProcessMsg_CreateWorker, OnCreateNewSharedWorker) 1613 IPC_MESSAGE_HANDLER(WorkerProcessMsg_CreateWorker, OnCreateNewSharedWorker)
1613 IPC_MESSAGE_HANDLER(ViewMsg_TimezoneChange, OnUpdateTimezone) 1614 IPC_MESSAGE_HANDLER(ViewMsg_TimezoneChange, OnUpdateTimezone)
(...skipping 23 matching lines...) Expand all
1637 } 1638 }
1638 1639
1639 void RenderThreadImpl::OnCreateNewFrame(FrameMsg_NewFrame_Params params) { 1640 void RenderThreadImpl::OnCreateNewFrame(FrameMsg_NewFrame_Params params) {
1640 CompositorDependencies* compositor_deps = this; 1641 CompositorDependencies* compositor_deps = this;
1641 RenderFrameImpl::CreateFrame( 1642 RenderFrameImpl::CreateFrame(
1642 params.routing_id, params.proxy_routing_id, params.opener_routing_id, 1643 params.routing_id, params.proxy_routing_id, params.opener_routing_id,
1643 params.parent_routing_id, params.previous_sibling_routing_id, 1644 params.parent_routing_id, params.previous_sibling_routing_id,
1644 params.replication_state, compositor_deps, params.widget_params); 1645 params.replication_state, compositor_deps, params.widget_params);
1645 } 1646 }
1646 1647
1648 void RenderThreadImpl::OnDetachFrame(int routing_id) {
1649 RenderFrameImpl::DetachFrame(routing_id);
1650 }
1651
1647 void RenderThreadImpl::OnCreateNewFrameProxy( 1652 void RenderThreadImpl::OnCreateNewFrameProxy(
1648 int routing_id, 1653 int routing_id,
1649 int render_view_routing_id, 1654 int render_view_routing_id,
1650 int opener_routing_id, 1655 int opener_routing_id,
1651 int parent_routing_id, 1656 int parent_routing_id,
1652 const FrameReplicationState& replicated_state) { 1657 const FrameReplicationState& replicated_state) {
1653 RenderFrameProxy::CreateFrameProxy(routing_id, render_view_routing_id, 1658 RenderFrameProxy::CreateFrameProxy(routing_id, render_view_routing_id,
1654 opener_routing_id, parent_routing_id, 1659 opener_routing_id, parent_routing_id,
1655 replicated_state); 1660 replicated_state);
1656 } 1661 }
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
2001 } 2006 }
2002 2007
2003 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() { 2008 void RenderThreadImpl::PendingRenderFrameConnect::OnConnectionError() {
2004 size_t erased = 2009 size_t erased =
2005 RenderThreadImpl::current()->pending_render_frame_connects_.erase( 2010 RenderThreadImpl::current()->pending_render_frame_connects_.erase(
2006 routing_id_); 2011 routing_id_);
2007 DCHECK_EQ(1u, erased); 2012 DCHECK_EQ(1u, erased);
2008 } 2013 }
2009 2014
2010 } // namespace content 2015 } // namespace content
OLDNEW
« content/renderer/render_frame_impl.cc ('K') | « content/renderer/render_thread_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698