summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host
diff options
context:
space:
mode:
authormpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-16 18:31:53 +0000
committermpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-16 18:31:53 +0000
commitc240acea944449e6e74e1462c93b6115b0d8c9be (patch)
tree7602f32c474f633162de138d0717b59cd90a671d /chrome/browser/renderer_host
parent260efdab7eaf501d046a212dff5534ab8da48aab (diff)
downloadchromium_src-c240acea944449e6e74e1462c93b6115b0d8c9be.zip
chromium_src-c240acea944449e6e74e1462c93b6115b0d8c9be.tar.gz
chromium_src-c240acea944449e6e74e1462c93b6115b0d8c9be.tar.bz2
Allow POST requests made from an extension process to reuse the same process,
even when navigating to an external URL. See bug for details. BUG=39025 Review URL: http://codereview.chromium.org/2800005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49993 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host')
-rw-r--r--chrome/browser/renderer_host/browser_render_process_host.cc12
1 files changed, 4 insertions, 8 deletions
diff --git a/chrome/browser/renderer_host/browser_render_process_host.cc b/chrome/browser/renderer_host/browser_render_process_host.cc
index d6fb813..887c04a 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();