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

Unified Diff: chrome/app/chrome_main.cc

Issue 7779040: Start moving code from BrowserMain to content, so that it can be reused by all embedders of conte... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix windows unittest Created 9 years, 3 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 | « no previous file | chrome/browser/browser_main.h » ('j') | chrome/browser/browser_main.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/app/chrome_main.cc
===================================================================
--- chrome/app/chrome_main.cc (revision 99756)
+++ chrome/app/chrome_main.cc (working copy)
@@ -8,13 +8,12 @@
#include "base/lazy_instance.h"
#include "base/message_loop.h"
#include "base/metrics/stats_counters.h"
-#include "base/metrics/stats_table.h"
#include "base/path_service.h"
#include "base/process_util.h"
#include "base/stringprintf.h"
-#include "base/string_number_conversions.h"
#include "base/utf_string_conversions.h"
#include "build/build_config.h"
+#include "chrome/browser/chrome_content_browser_client.h"
#include "chrome/browser/defaults.h"
#include "chrome/browser/diagnostics/diagnostics_main.h"
#include "chrome/common/chrome_constants.h"
@@ -35,7 +34,6 @@
#include "content/common/content_client.h"
#include "content/common/content_counters.h"
#include "content/common/content_paths.h"
-#include "ipc/ipc_switches.h"
#include "media/base/media.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/ui_base_switches.h"
@@ -91,6 +89,8 @@
#endif
#if !defined(NACL_WIN64) // We don't build the this code on win nacl64.
+base::LazyInstance<chrome::ChromeContentBrowserClient>
+ g_chrome_content_browser_client(base::LINKER_INITIALIZED);
base::LazyInstance<chrome::ChromeContentRendererClient>
g_chrome_content_renderer_client(base::LINKER_INITIALIZED);
base::LazyInstance<chrome::ChromeContentUtilityClient>
@@ -100,7 +100,6 @@
base::LazyInstance<chrome::ChromeContentPluginClient>
g_chrome_content_plugin_client(base::LINKER_INITIALIZED);
-extern int BrowserMain(const MainFunctionParams&);
extern int RendererMain(const MainFunctionParams&);
extern int NaClMain(const MainFunctionParams&);
extern int ProfileImportMain(const MainFunctionParams&);
@@ -230,7 +229,12 @@
}
void InitializeChromeContentClient(const std::string& process_type) {
- if (process_type == switches::kPluginProcess) {
+ if (process_type.empty()) {
+#if !defined(NACL_WIN64) // We don't build the this code on win nacl64.
+ content::GetContentClient()->set_browser(
+ &g_chrome_content_browser_client.Get());
+#endif
+ } else if (process_type == switches::kPluginProcess) {
content::GetContentClient()->set_plugin(
&g_chrome_content_plugin_client.Get());
} else if (process_type == switches::kRendererProcess ||
@@ -290,27 +294,6 @@
#endif // defined(OS_MACOSX)
-void InitializeStatsTable(base::ProcessId browser_pid,
- const CommandLine& command_line) {
- // Initialize the Stats Counters table. With this initialized,
- // the StatsViewer can be utilized to read counters outside of
- // Chrome. These lines can be commented out to effectively turn
- // counters 'off'. The table is created and exists for the life
- // of the process. It is not cleaned up.
- if (command_line.HasSwitch(switches::kEnableStatsTable) ||
- command_line.HasSwitch(switches::kEnableBenchmarking)) {
- // NOTIMPLEMENTED: we probably need to shut this down correctly to avoid
- // leaking shared memory regions on posix platforms.
- std::string statsfile =
- base::StringPrintf("%s-%u",
- chrome::kStatsFilename,
- static_cast<unsigned int>(browser_pid));
- base::StatsTable *stats_table = new base::StatsTable(statsfile,
- chrome::kStatsMaxThreads, chrome::kStatsMaxCounters);
- base::StatsTable::set_current(stats_table);
- }
-}
-
#if defined(OS_POSIX)
// Check for --version and --product-version; return true if we encountered
// one of these switches and should exit now.
@@ -519,27 +502,6 @@
if (!user_data_dir.empty())
CHECK(PathService::Override(chrome::DIR_USER_DATA, user_data_dir));
- base::ProcessId browser_pid = base::GetCurrentProcId();
- if (!process_type.empty() &&
-#if defined(OS_MACOSX)
- process_type != switches::kRelauncherProcess &&
-#endif
- process_type != switches::kServiceProcess) {
-#if defined(OS_WIN) || defined(OS_MACOSX)
- std::string channel_name =
- command_line.GetSwitchValueASCII(switches::kProcessChannelID);
-
- int browser_pid_int;
- base::StringToInt(channel_name, &browser_pid_int);
- browser_pid = static_cast<base::ProcessId>(browser_pid_int);
- DCHECK_NE(browser_pid_int, 0);
-#elif defined(OS_POSIX)
- // On linux, we're in the zygote here; so we need the parent process' id.
- browser_pid = base::GetParentProcessId(base::GetCurrentProcId());
-#endif
- }
- InitializeStatsTable(browser_pid, command_line);
-
startup_timer_.reset(new base::StatsScope<base::StatsCounterTimer>
(content::Counters::chrome_main()));
@@ -643,7 +605,6 @@
const std::string& process_type,
const MainFunctionParams& main_function_params) OVERRIDE {
static const MainFunction kMainFunctions[] = {
- { "", BrowserMain },
// An extension process is just a renderer process. We use a different
// command line argument to differentiate crash reports.
{ switches::kExtensionProcess, RendererMain },
@@ -724,13 +685,6 @@
std::string process_type =
command_line.GetSwitchValueASCII(switches::kProcessType);
- // The StatsTable must be initialized in each process; we already
- // initialized for the browser process, now we need to initialize
- // within the new processes as well.
- pid_t browser_pid = base::GetParentProcessId(
- base::GetParentProcessId(base::GetCurrentProcId()));
- InitializeStatsTable(browser_pid, command_line);
-
#if defined(USE_LINUX_BREAKPAD)
// Needs to be called after we have chrome::DIR_USER_DATA. BrowserMain sets
// this up for the browser process in a different manner.
« no previous file with comments | « no previous file | chrome/browser/browser_main.h » ('j') | chrome/browser/browser_main.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698