Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3253)

Unified Diff: chrome/browser/render_process_host.cc

Issue 10895: Add Terminate() to the Process object, have RenderProcessHost use this to avo... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 12 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/render_process_host.h ('k') | chrome/browser/resource_dispatcher_host.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/render_process_host.cc
===================================================================
--- chrome/browser/render_process_host.cc (revision 5371)
+++ chrome/browser/render_process_host.cc (working copy)
@@ -422,7 +422,7 @@
} else {
// spawn child process
HANDLE process;
- if (!process_util::LaunchApp(cmd_line, false, false, &process))
+ if (!base::LaunchApp(cmd_line, false, false, &process))
return false;
process_.set_handle(process);
}
@@ -443,14 +443,10 @@
return true;
}
-HANDLE RenderProcessHost::GetRendererProcessHandle() {
- HANDLE result = process_.handle();
- if (!result) {
- // Renderer process can be null if it's started with the --single-process
- // flag.
- result = GetCurrentProcess();
- }
- return result;
+base::ProcessHandle RenderProcessHost::GetRendererProcessHandle() {
+ if (run_renderer_in_process_)
+ return base::Process::Current().handle();
+ return process_.handle();
}
void RenderProcessHost::InitVisitedLinks() {
@@ -459,7 +455,7 @@
return;
}
- SharedMemoryHandle handle_for_process = NULL;
+ base::SharedMemoryHandle handle_for_process = NULL;
visitedlink_master->ShareToProcess(GetRendererProcessHandle(),
&handle_for_process);
DCHECK(handle_for_process);
@@ -495,8 +491,8 @@
}
void RenderProcessHost::SendGreasemonkeyScriptsUpdate(
- SharedMemory *shared_memory) {
- SharedMemoryHandle handle_for_process = NULL;
+ base::SharedMemory *shared_memory) {
+ base::SharedMemoryHandle handle_for_process = NULL;
shared_memory->ShareToProcess(GetRendererProcessHandle(),
&handle_for_process);
DCHECK(handle_for_process);
@@ -536,12 +532,10 @@
}
bool RenderProcessHost::FastShutdownIfPossible() {
- HANDLE proc = process().handle();
- if (!proc)
- return false;
- // If we're in single process mode, do nothing.
+ if (!process_.handle())
+ return false; // Render process is probably crashed.
if (RenderProcessHost::run_renderer_in_process())
- return false;
+ return false; // Since process mode can't do fast shutdown.
// Test if there's an unload listener
RenderProcessHost::listeners_iterator iter;
@@ -561,9 +555,10 @@
return false;
}
}
- // Otherwise, call TerminateProcess. Using exit code 0 means that UMA won't
- // treat this as a renderer crash.
- ::TerminateProcess(proc, ResultCodes::NORMAL_EXIT);
+
+ // Otherwise, we're allowed to just terminate the process. Using exit code 0
+ // means that UMA won't treat this as a renderer crash.
+ process_.Terminate(ResultCodes::NORMAL_EXIT);
return true;
}
@@ -651,7 +646,7 @@
DCHECK(channel_.get());
DCHECK_EQ(object, process_.handle());
- bool clean_shutdown = !process_util::DidProcessCrash(object);
+ bool clean_shutdown = !base::DidProcessCrash(object);
process_.Close();
@@ -824,7 +819,8 @@
break;
}
case NOTIFY_NEW_USER_SCRIPTS: {
- SharedMemory* shared_memory = Details<SharedMemory>(details).ptr();
+ base::SharedMemory* shared_memory =
+ Details<base::SharedMemory>(details).ptr();
DCHECK(shared_memory);
if (shared_memory) {
SendGreasemonkeyScriptsUpdate(shared_memory);
« no previous file with comments | « chrome/browser/render_process_host.h ('k') | chrome/browser/resource_dispatcher_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698