summaryrefslogtreecommitdiffstats
path: root/chrome/browser/render_process_host.cc
diff options
context:
space:
mode:
authorbrettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-14 03:25:15 +0000
committerbrettw@google.com <brettw@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-14 03:25:15 +0000
commit176aa48371da91eb98d675d87b4e70c7b26d696f (patch)
tree4c972de6ecd5a54650ab1dc7d421187f5d25834f /chrome/browser/render_process_host.cc
parent9a3f0ac2899139ace97e399015259d028b4d5704 (diff)
downloadchromium_src-176aa48371da91eb98d675d87b4e70c7b26d696f.zip
chromium_src-176aa48371da91eb98d675d87b4e70c7b26d696f.tar.gz
chromium_src-176aa48371da91eb98d675d87b4e70c7b26d696f.tar.bz2
Add Terminate() to the Process object, have RenderProcessHost use this to avoid some more Windows specific code.
Move Process and SharedMemory into the base namespace (most changes). Review URL: http://codereview.chromium.org/10895 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5446 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/render_process_host.cc')
-rw-r--r--chrome/browser/render_process_host.cc40
1 files changed, 18 insertions, 22 deletions
diff --git a/chrome/browser/render_process_host.cc b/chrome/browser/render_process_host.cc
index d5bba2b..2c659bc 100644
--- a/chrome/browser/render_process_host.cc
+++ b/chrome/browser/render_process_host.cc
@@ -422,7 +422,7 @@ bool RenderProcessHost::Init() {
} 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 @@ bool RenderProcessHost::Init() {
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 @@ void RenderProcessHost::InitVisitedLinks() {
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::InitGreasemonkeyScripts() {
}
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 @@ void RenderProcessHost::ReportExpectingClose(int32 listener_id) {
}
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 @@ bool RenderProcessHost::FastShutdownIfPossible() {
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 @@ void RenderProcessHost::OnObjectSignaled(HANDLE object) {
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 @@ void RenderProcessHost::Observe(NotificationType type,
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);