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

Unified Diff: content/common/child_process.cc

Issue 16328003: Move a bunch of child-only code from content/common to content/child (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 6 months 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 | « content/common/child_process.h ('k') | content/common/child_resource_message_filter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/child_process.cc
diff --git a/content/common/child_process.cc b/content/common/child_process.cc
deleted file mode 100644
index e8293a4fa9fab2a3d4155ceca5a2e1353bc4b232..0000000000000000000000000000000000000000
--- a/content/common/child_process.cc
+++ /dev/null
@@ -1,142 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "content/common/child_process.h"
-
-#if defined(OS_POSIX) && !defined(OS_ANDROID)
-#include <signal.h> // For SigUSR1Handler below.
-#endif
-
-#include "base/message_loop.h"
-#include "base/metrics/statistics_recorder.h"
-#include "base/process_util.h"
-#include "base/string_number_conversions.h"
-#include "base/threading/thread.h"
-#include "base/utf_string_conversions.h"
-#include "content/common/child_thread.h"
-
-#if defined(OS_ANDROID)
-#include "base/debug/debugger.h"
-#endif
-
-#if defined(OS_POSIX) && !defined(OS_ANDROID)
-static void SigUSR1Handler(int signal) { }
-#endif
-
-namespace content {
-// The singleton instance for this process.
-ChildProcess* child_process = NULL;
-
-ChildProcess::ChildProcess()
- : ref_count_(0),
- shutdown_event_(true, false),
- io_thread_("Chrome_ChildIOThread") {
- DCHECK(!child_process);
- child_process = this;
-
- base::StatisticsRecorder::Initialize();
-
- // We can't recover from failing to start the IO thread.
- CHECK(io_thread_.StartWithOptions(
- base::Thread::Options(base::MessageLoop::TYPE_IO, 0)));
-
-#if defined(OS_ANDROID)
- io_thread_.SetPriority(base::kThreadPriority_Display);
-#endif
-}
-
-ChildProcess::~ChildProcess() {
- DCHECK(child_process == this);
-
- // Signal this event before destroying the child process. That way all
- // background threads can cleanup.
- // For example, in the renderer the RenderThread instances will be able to
- // notice shutdown before the render process begins waiting for them to exit.
- shutdown_event_.Signal();
-
- // Kill the main thread object before nulling child_process, since
- // destruction code might depend on it.
- if (main_thread_) { // null in unittests.
- main_thread_->Shutdown();
- main_thread_.reset();
- }
-
- child_process = NULL;
-}
-
-ChildThread* ChildProcess::main_thread() {
- return main_thread_.get();
-}
-
-void ChildProcess::set_main_thread(ChildThread* thread) {
- main_thread_.reset(thread);
-}
-
-void ChildProcess::AddRefProcess() {
- DCHECK(!main_thread_.get() || // null in unittests.
- base::MessageLoop::current() == main_thread_->message_loop());
- ref_count_++;
-}
-
-void ChildProcess::ReleaseProcess() {
- DCHECK(!main_thread_.get() || // null in unittests.
- base::MessageLoop::current() == main_thread_->message_loop());
- DCHECK(ref_count_);
- DCHECK(child_process);
- if (--ref_count_)
- return;
-
- if (main_thread_) // null in unittests.
- main_thread_->OnProcessFinalRelease();
-}
-
-ChildProcess* ChildProcess::current() {
- return child_process;
-}
-
-base::WaitableEvent* ChildProcess::GetShutDownEvent() {
- DCHECK(child_process);
- return &child_process->shutdown_event_;
-}
-
-void ChildProcess::WaitForDebugger(const std::string& label) {
-#if defined(OS_WIN)
-#if defined(GOOGLE_CHROME_BUILD)
- std::string title = "Google Chrome";
-#else // CHROMIUM_BUILD
- std::string title = "Chromium";
-#endif // CHROMIUM_BUILD
- title += " ";
- title += label; // makes attaching to process easier
- std::string message = label;
- message += " starting with pid: ";
- message += base::IntToString(base::GetCurrentProcId());
- ::MessageBox(NULL, UTF8ToWide(message).c_str(), UTF8ToWide(title).c_str(),
- MB_OK | MB_SETFOREGROUND);
-#elif defined(OS_POSIX)
-#if defined(OS_ANDROID)
- LOG(ERROR) << label << " waiting for GDB.";
- // Wait 24 hours for a debugger to be attached to the current process.
- base::debug::WaitForDebugger(24 * 60 * 60, false);
-#else
- // TODO(playmobil): In the long term, overriding this flag doesn't seem
- // right, either use our own flag or open a dialog we can use.
- // This is just to ease debugging in the interim.
- LOG(ERROR) << label
- << " ("
- << getpid()
- << ") paused waiting for debugger to attach. "
- << "Send SIGUSR1 to unpause.";
- // Install a signal handler so that pause can be woken.
- struct sigaction sa;
- memset(&sa, 0, sizeof(sa));
- sa.sa_handler = SigUSR1Handler;
- sigaction(SIGUSR1, &sa, NULL);
-
- pause();
-#endif // defined(OS_ANDROID)
-#endif // defined(OS_POSIX)
-}
-
-} // namespace content
« no previous file with comments | « content/common/child_process.h ('k') | content/common/child_resource_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698