| Index: content/browser/renderer_host/render_view_host_impl.cc
|
| diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
|
| index a09f793a2def90606824205da191faacd6b3b5da..66f962c80dab8f1128d51ba6dc37d2ecd4cc2051 100644
|
| --- a/content/browser/renderer_host/render_view_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_view_host_impl.cc
|
| @@ -121,10 +121,8 @@ g_created_callbacks = LAZY_INSTANCE_INITIALIZER;
|
| // static
|
| RenderViewHost* RenderViewHost::FromID(int render_process_id,
|
| int render_view_id) {
|
| - RenderProcessHost* process = RenderProcessHost::FromID(render_process_id);
|
| - if (!process)
|
| - return NULL;
|
| - RenderWidgetHost* widget = process->GetRenderWidgetHostByID(render_view_id);
|
| + RenderWidgetHost* widget =
|
| + RenderWidgetHost::FromID(render_process_id, render_view_id);
|
| if (!widget || !widget->IsRenderView())
|
| return NULL;
|
| return static_cast<RenderViewHostImpl*>(RenderWidgetHostImpl::From(widget));
|
| @@ -490,10 +488,22 @@ void RenderViewHostImpl::WasSwappedOut() {
|
|
|
| // Count the number of widget hosts for the process, which is equivalent to
|
| // views using the process as of this writing.
|
| + /*
|
| RenderProcessHost::RenderWidgetHostsIterator iter(
|
| GetProcess()->GetRenderWidgetHostsIterator());
|
| for (; !iter.IsAtEnd(); iter.Advance())
|
| ++views;
|
| + */
|
| + scoped_ptr<RenderWidgetHost::List> hosts =
|
| + RenderWidgetHost::GetRenderWidgetHosts();
|
| + for (RenderWidgetHost::List::const_iterator it = hosts->begin();
|
| + it != hosts->end();
|
| + ++it) {
|
| + const RenderWidgetHost* widget = *it;
|
| + if (widget->GetProcess()->GetID() == GetProcess()->GetID())
|
| + ++views;
|
| + }
|
| +
|
|
|
| if (!RenderProcessHost::run_renderer_in_process() &&
|
| process_handle && views <= 1) {
|
|
|