diff options
author | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-16 18:31:53 +0000 |
---|---|---|
committer | mpcomplete@chromium.org <mpcomplete@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-16 18:31:53 +0000 |
commit | c240acea944449e6e74e1462c93b6115b0d8c9be (patch) | |
tree | 7602f32c474f633162de138d0717b59cd90a671d /chrome/browser/renderer_host | |
parent | 260efdab7eaf501d046a212dff5534ab8da48aab (diff) | |
download | chromium_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.cc | 12 |
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(); |