Index: chrome/browser/renderer_host/browser_render_process_host.cc |
diff --git a/chrome/browser/renderer_host/browser_render_process_host.cc b/chrome/browser/renderer_host/browser_render_process_host.cc |
index d6fb8131875e933166e104406c72f586ed94d88e..887c04a031a62c6e4efc065980f08e516dcc45c6 100644 |
--- a/chrome/browser/renderer_host/browser_render_process_host.cc |
+++ b/chrome/browser/renderer_host/browser_render_process_host.cc |
@@ -251,16 +251,12 @@ bool BrowserRenderProcessHost::Init(bool is_extensions_process, |
URLRequestContextGetter* request_context) { |
// calling Init() more than once does nothing, this makes it more convenient |
// for the view host which may not be sure in some cases |
- if (channel_.get()) { |
- // Ensure that |is_extensions_process| doesn't change across multiple calls |
- // to Init(). |
- if (!run_renderer_in_process()) { |
- DCHECK_EQ(extension_process_, is_extensions_process); |
- } |
+ if (channel_.get()) |
return true; |
- } |
- extension_process_ = is_extensions_process; |
+ // It is possible for an extension process to be reused for non-extension |
+ // content, e.g. if an extension calls window.open. |
+ extension_process_ = extension_process_ || is_extensions_process; |
// run the IPC channel on the shared IO thread. |
base::Thread* io_thread = g_browser_process->io_thread(); |