| Index: chrome/browser/chrome_content_browser_client.cc
|
| diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
|
| index 66ccc01d7f86825f5dd5d75dcd2d1e6eb9ea2b47..6727f575f5a77fec063fcd05e91bfd1400be7399 100644
|
| --- a/chrome/browser/chrome_content_browser_client.cc
|
| +++ b/chrome/browser/chrome_content_browser_client.cc
|
| @@ -515,9 +515,15 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) {
|
| }
|
|
|
| void HandleBlockedPopupOnUIThread(const BlockedWindowParams& params) {
|
| - WebContents* tab = tab_util::GetWebContentsByID(params.render_process_id(),
|
| - params.opener_id());
|
| - if (!tab)
|
| + // TODO(jochen): This code path should use RenderFrameHosts. See
|
| + // http://crbug.com/431769 for details.
|
| + RenderViewHost* render_view_host =
|
| + RenderViewHost::FromID(params.render_process_id(), params.opener_id());
|
| + if (!render_view_host)
|
| + return;
|
| + WebContents* tab = WebContents::FromRenderViewHost(render_view_host);
|
| + // The tab might already have navigated away.
|
| + if (!tab || tab->GetRenderViewHost() != render_view_host)
|
| return;
|
|
|
| prerender::PrerenderContents* prerender_contents =
|
|
|