summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-15 20:39:01 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-15 20:39:01 +0000
commit7fff586ce10cfa76fdd6ec99309437a1482d7f76 (patch)
tree765376d979c27ed63fa5dc210a981808476db899 /content
parent7db08f494b0a164ef7628852280c7293045aefa0 (diff)
downloadchromium_src-7fff586ce10cfa76fdd6ec99309437a1482d7f76.zip
chromium_src-7fff586ce10cfa76fdd6ec99309437a1482d7f76.tar.gz
chromium_src-7fff586ce10cfa76fdd6ec99309437a1482d7f76.tar.bz2
When running in single-process mode, delete the one RenderProcessHost at shutdown. This ensures that we stop the renderer thread which would expose any crashes.
BUG=301520 R=glider@chromium.org Review URL: https://codereview.chromium.org/27183007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@228757 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/browser_main_loop.cc6
-rw-r--r--content/browser/renderer_host/render_process_host_impl.cc1
2 files changed, 5 insertions, 2 deletions
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
index 14dd614..f8c8a1c 100644
--- a/content/browser/browser_main_loop.cc
+++ b/content/browser/browser_main_loop.cc
@@ -699,7 +699,6 @@ void BrowserMainLoop::RunMainMessageLoopParts() {
}
void BrowserMainLoop::ShutdownThreadsAndCleanUp() {
-
if (!created_threads_) {
// Called early, nothing to do
return;
@@ -714,6 +713,11 @@ void BrowserMainLoop::ShutdownThreadsAndCleanUp() {
base::Bind(base::IgnoreResult(&base::ThreadRestrictions::SetIOAllowed),
true));
+ if (RenderProcessHost::run_renderer_in_process() &&
+ !RenderProcessHost::AllHostsIterator().IsAtEnd()) {
+ delete RenderProcessHost::AllHostsIterator().GetCurrentValue();
+ }
+
if (parts_) {
TRACE_EVENT0("shutdown",
"BrowserMainLoop::Subsystem:PostMainMessageLoopRun");
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 0710984..177533c 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -398,7 +398,6 @@ RenderProcessHostImpl::RenderProcessHostImpl(
}
RenderProcessHostImpl::~RenderProcessHostImpl() {
- DCHECK(!run_renderer_in_process());
ChildProcessSecurityPolicyImpl::GetInstance()->Remove(GetID());
if (gpu_observer_registered_) {