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

Side by Side Diff: chrome/browser/chrome_browser_main.cc

Issue 819133004: Make callers of CommandLine use it via the base:: namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 5 years, 12 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chrome_browser_main.h" 5 #include "chrome/browser/chrome_browser_main.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 #if defined(USE_AURA) 215 #if defined(USE_AURA)
216 #include "ui/aura/env.h" 216 #include "ui/aura/env.h"
217 #endif 217 #endif
218 218
219 using content::BrowserThread; 219 using content::BrowserThread;
220 220
221 namespace { 221 namespace {
222 222
223 // This function provides some ways to test crash and assertion handling 223 // This function provides some ways to test crash and assertion handling
224 // behavior of the program. 224 // behavior of the program.
225 void HandleTestParameters(const CommandLine& command_line) { 225 void HandleTestParameters(const base::CommandLine& command_line) {
226 // This parameter causes an assertion. 226 // This parameter causes an assertion.
227 if (command_line.HasSwitch(switches::kBrowserAssertTest)) { 227 if (command_line.HasSwitch(switches::kBrowserAssertTest)) {
228 DCHECK(false); 228 DCHECK(false);
229 } 229 }
230 230
231 // This parameter causes a null pointer crash (crash reporter trigger). 231 // This parameter causes a null pointer crash (crash reporter trigger).
232 if (command_line.HasSwitch(switches::kBrowserCrashTest)) { 232 if (command_line.HasSwitch(switches::kBrowserCrashTest)) {
233 int* bad_pointer = NULL; 233 int* bad_pointer = NULL;
234 *bad_pointer = 0; 234 *bad_pointer = 0;
235 } 235 }
236 } 236 }
237 237
238 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS) 238 #if !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
239 void AddFirstRunNewTabs(StartupBrowserCreator* browser_creator, 239 void AddFirstRunNewTabs(StartupBrowserCreator* browser_creator,
240 const std::vector<GURL>& new_tabs) { 240 const std::vector<GURL>& new_tabs) {
241 for (std::vector<GURL>::const_iterator it = new_tabs.begin(); 241 for (std::vector<GURL>::const_iterator it = new_tabs.begin();
242 it != new_tabs.end(); ++it) { 242 it != new_tabs.end(); ++it) {
243 if (it->is_valid()) 243 if (it->is_valid())
244 browser_creator->AddFirstRunTab(*it); 244 browser_creator->AddFirstRunTab(*it);
245 } 245 }
246 } 246 }
247 #endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS) 247 #endif // !defined(OS_ANDROID) && !defined(OS_CHROMEOS)
248 248
249 // Returns the new local state object, guaranteed non-NULL. 249 // Returns the new local state object, guaranteed non-NULL.
250 // |local_state_task_runner| must be a shutdown-blocking task runner. 250 // |local_state_task_runner| must be a shutdown-blocking task runner.
251 PrefService* InitializeLocalState( 251 PrefService* InitializeLocalState(
252 base::SequencedTaskRunner* local_state_task_runner, 252 base::SequencedTaskRunner* local_state_task_runner,
253 const CommandLine& parsed_command_line) { 253 const base::CommandLine& parsed_command_line) {
254 TRACE_EVENT0("startup", "ChromeBrowserMainParts::InitializeLocalState") 254 TRACE_EVENT0("startup", "ChromeBrowserMainParts::InitializeLocalState")
255 base::FilePath local_state_path; 255 base::FilePath local_state_path;
256 PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path); 256 PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path);
257 bool local_state_file_exists = base::PathExists(local_state_path); 257 bool local_state_file_exists = base::PathExists(local_state_path);
258 258
259 // Load local state. This includes the application locale so we know which 259 // Load local state. This includes the application locale so we know which
260 // locale dll to load. This also causes local state prefs to be registered. 260 // locale dll to load. This also causes local state prefs to be registered.
261 PrefService* local_state = g_browser_process->local_state(); 261 PrefService* local_state = g_browser_process->local_state();
262 DCHECK(local_state); 262 DCHECK(local_state);
263 263
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 #endif 320 #endif
321 321
322 return local_state; 322 return local_state;
323 } 323 }
324 324
325 // Initializes the primary profile, possibly doing some user prompting to pick 325 // Initializes the primary profile, possibly doing some user prompting to pick
326 // a fallback profile. Returns the newly created profile, or NULL if startup 326 // a fallback profile. Returns the newly created profile, or NULL if startup
327 // should not continue. 327 // should not continue.
328 Profile* CreatePrimaryProfile(const content::MainFunctionParams& parameters, 328 Profile* CreatePrimaryProfile(const content::MainFunctionParams& parameters,
329 const base::FilePath& user_data_dir, 329 const base::FilePath& user_data_dir,
330 const CommandLine& parsed_command_line) { 330 const base::CommandLine& parsed_command_line) {
331 TRACE_EVENT0("startup", "ChromeBrowserMainParts::CreateProfile") 331 TRACE_EVENT0("startup", "ChromeBrowserMainParts::CreateProfile")
332 base::Time start = base::Time::Now(); 332 base::Time start = base::Time::Now();
333 if (profiles::IsMultipleProfilesEnabled() && 333 if (profiles::IsMultipleProfilesEnabled() &&
334 parsed_command_line.HasSwitch(switches::kProfileDirectory)) { 334 parsed_command_line.HasSwitch(switches::kProfileDirectory)) {
335 g_browser_process->local_state()->SetString(prefs::kProfileLastUsed, 335 g_browser_process->local_state()->SetString(prefs::kProfileLastUsed,
336 parsed_command_line.GetSwitchValueASCII(switches::kProfileDirectory)); 336 parsed_command_line.GetSwitchValueASCII(switches::kProfileDirectory));
337 // Clear kProfilesLastActive since the user only wants to launch a specific 337 // Clear kProfilesLastActive since the user only wants to launch a specific
338 // profile. 338 // profile.
339 ListPrefUpdate update(g_browser_process->local_state(), 339 ListPrefUpdate update(g_browser_process->local_state(),
340 prefs::kProfilesLastActive); 340 prefs::kProfilesLastActive);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 448
449 #if defined(OS_WIN) 449 #if defined(OS_WIN)
450 RegisterSwReporterComponent(cus, g_browser_process->local_state()); 450 RegisterSwReporterComponent(cus, g_browser_process->local_state());
451 #endif 451 #endif
452 452
453 cus->Start(); 453 cus->Start();
454 } 454 }
455 455
456 #if !defined(OS_ANDROID) 456 #if !defined(OS_ANDROID)
457 bool ProcessSingletonNotificationCallback( 457 bool ProcessSingletonNotificationCallback(
458 const CommandLine& command_line, 458 const base::CommandLine& command_line,
459 const base::FilePath& current_directory) { 459 const base::FilePath& current_directory) {
460 // Drop the request if the browser process is already in shutdown path. 460 // Drop the request if the browser process is already in shutdown path.
461 if (!g_browser_process || g_browser_process->IsShuttingDown()) 461 if (!g_browser_process || g_browser_process->IsShuttingDown())
462 return false; 462 return false;
463 463
464 if (command_line.HasSwitch(switches::kOriginalProcessStartTime)) { 464 if (command_line.HasSwitch(switches::kOriginalProcessStartTime)) {
465 std::string start_time_string = 465 std::string start_time_string =
466 command_line.GetSwitchValueASCII(switches::kOriginalProcessStartTime); 466 command_line.GetSwitchValueASCII(switches::kOriginalProcessStartTime);
467 int64 remote_start_time; 467 int64 remote_start_time;
468 if (base::StringToInt64(start_time_string, &remote_start_time)) { 468 if (base::StringToInt64(start_time_string, &remote_start_time)) {
(...skipping 16 matching lines...) Expand all
485 g_browser_process->profile_manager()->user_data_dir(); 485 g_browser_process->profile_manager()->user_data_dir();
486 base::FilePath startup_profile_dir = 486 base::FilePath startup_profile_dir =
487 GetStartupProfilePath(user_data_dir, command_line); 487 GetStartupProfilePath(user_data_dir, command_line);
488 488
489 StartupBrowserCreator::ProcessCommandLineAlreadyRunning( 489 StartupBrowserCreator::ProcessCommandLineAlreadyRunning(
490 command_line, current_directory, startup_profile_dir); 490 command_line, current_directory, startup_profile_dir);
491 return true; 491 return true;
492 } 492 }
493 #endif // !defined(OS_ANDROID) 493 #endif // !defined(OS_ANDROID)
494 494
495 void LaunchDevToolsHandlerIfNeeded(const CommandLine& command_line) { 495 void LaunchDevToolsHandlerIfNeeded(const base::CommandLine& command_line) {
496 if (command_line.HasSwitch(::switches::kRemoteDebuggingPort)) { 496 if (command_line.HasSwitch(::switches::kRemoteDebuggingPort)) {
497 std::string port_str = 497 std::string port_str =
498 command_line.GetSwitchValueASCII(::switches::kRemoteDebuggingPort); 498 command_line.GetSwitchValueASCII(::switches::kRemoteDebuggingPort);
499 int port; 499 int port;
500 if (base::StringToInt(port_str, &port) && port >= 0 && port < 65535) { 500 if (base::StringToInt(port_str, &port) && port >= 0 && port < 65535) {
501 g_browser_process->CreateDevToolsHttpProtocolHandler( 501 g_browser_process->CreateDevToolsHttpProtocolHandler(
502 chrome::HOST_DESKTOP_TYPE_NATIVE, 502 chrome::HOST_DESKTOP_TYPE_NATIVE,
503 "127.0.0.1", 503 "127.0.0.1",
504 static_cast<uint16>(port)); 504 static_cast<uint16>(port));
505 } else { 505 } else {
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 // Must initialize metrics after labs have been converted into switches, 593 // Must initialize metrics after labs have been converted into switches,
594 // but before field trials are set up (so that client ID is available for 594 // but before field trials are set up (so that client ID is available for
595 // one-time randomized field trials). 595 // one-time randomized field trials).
596 596
597 // Initialize FieldTrialList to support FieldTrials that use one-time 597 // Initialize FieldTrialList to support FieldTrials that use one-time
598 // randomization. 598 // randomization.
599 metrics::MetricsService* metrics = browser_process_->metrics_service(); 599 metrics::MetricsService* metrics = browser_process_->metrics_service();
600 field_trial_list_.reset( 600 field_trial_list_.reset(
601 new base::FieldTrialList(metrics->CreateEntropyProvider().release())); 601 new base::FieldTrialList(metrics->CreateEntropyProvider().release()));
602 602
603 const CommandLine* command_line = CommandLine::ForCurrentProcess(); 603 const base::CommandLine* command_line =
604 base::CommandLine::ForCurrentProcess();
604 if (command_line->HasSwitch(switches::kEnableBenchmarking) || 605 if (command_line->HasSwitch(switches::kEnableBenchmarking) ||
605 command_line->HasSwitch(cc::switches::kEnableGpuBenchmarking)) { 606 command_line->HasSwitch(cc::switches::kEnableGpuBenchmarking)) {
606 base::FieldTrial::EnableBenchmarking(); 607 base::FieldTrial::EnableBenchmarking();
607 } 608 }
608 609
609 // Ensure any field trials specified on the command line are initialized. 610 // Ensure any field trials specified on the command line are initialized.
610 if (command_line->HasSwitch(switches::kForceFieldTrials)) { 611 if (command_line->HasSwitch(switches::kForceFieldTrials)) {
611 std::set<std::string> unforceable_field_trials; 612 std::set<std::string> unforceable_field_trials;
612 #if defined(OFFICIAL_BUILD) 613 #if defined(OFFICIAL_BUILD)
613 unforceable_field_trials.insert("SettingsEnforcement"); 614 unforceable_field_trials.insert("SettingsEnforcement");
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
868 // ResourceBundle::InitSharedInstanceWithLocale as some loaded resources are 869 // ResourceBundle::InitSharedInstanceWithLocale as some loaded resources are
869 // affected by experiment flags (--touch-optimized-ui in particular). 870 // affected by experiment flags (--touch-optimized-ui in particular).
870 // On ChromeOS system level flags are applied from the device settings from 871 // On ChromeOS system level flags are applied from the device settings from
871 // the session manager. 872 // the session manager.
872 { 873 {
873 TRACE_EVENT0("startup", 874 TRACE_EVENT0("startup",
874 "ChromeBrowserMainParts::PreCreateThreadsImpl:ConvertFlags"); 875 "ChromeBrowserMainParts::PreCreateThreadsImpl:ConvertFlags");
875 about_flags::PrefServiceFlagsStorage flags_storage_( 876 about_flags::PrefServiceFlagsStorage flags_storage_(
876 g_browser_process->local_state()); 877 g_browser_process->local_state());
877 about_flags::ConvertFlagsToSwitches(&flags_storage_, 878 about_flags::ConvertFlagsToSwitches(&flags_storage_,
878 CommandLine::ForCurrentProcess(), 879 base::CommandLine::ForCurrentProcess(),
879 about_flags::kAddSentinels); 880 about_flags::kAddSentinels);
880 } 881 }
881 #endif 882 #endif
882 883
883 local_state_->UpdateCommandLinePrefStore( 884 local_state_->UpdateCommandLinePrefStore(
884 new CommandLinePrefStore(CommandLine::ForCurrentProcess())); 885 new CommandLinePrefStore(base::CommandLine::ForCurrentProcess()));
885 886
886 // Reset the command line in the crash report details, since we may have 887 // Reset the command line in the crash report details, since we may have
887 // just changed it to include experiments. 888 // just changed it to include experiments.
888 crash_keys::SetSwitchesFromCommandLine(CommandLine::ForCurrentProcess()); 889 crash_keys::SetSwitchesFromCommandLine(
890 base::CommandLine::ForCurrentProcess());
889 891
890 // Mac starts it earlier in |PreMainMessageLoopStart()| (because it is 892 // Mac starts it earlier in |PreMainMessageLoopStart()| (because it is
891 // needed when loading the MainMenu.nib and the language doesn't depend on 893 // needed when loading the MainMenu.nib and the language doesn't depend on
892 // anything since it comes from Cocoa. 894 // anything since it comes from Cocoa.
893 #if defined(OS_MACOSX) 895 #if defined(OS_MACOSX)
894 std::string locale = 896 std::string locale =
895 parameters().ui_task ? "en-US" : l10n_util::GetLocaleOverride(); 897 parameters().ui_task ? "en-US" : l10n_util::GetLocaleOverride();
896 browser_process_->SetApplicationLocale(locale); 898 browser_process_->SetApplicationLocale(locale);
897 #else 899 #else
898 const std::string locale = 900 const std::string locale =
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after
1723 chromeos::CrosSettings::Shutdown(); 1725 chromeos::CrosSettings::Shutdown();
1724 #endif 1726 #endif
1725 #endif 1727 #endif
1726 } 1728 }
1727 1729
1728 // Public members: 1730 // Public members:
1729 1731
1730 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { 1732 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) {
1731 chrome_extra_parts_.push_back(parts); 1733 chrome_extra_parts_.push_back(parts);
1732 } 1734 }
OLDNEW
« no previous file with comments | « chrome/browser/chrome_browser_field_trials_mobile.cc ('k') | chrome/browser/chrome_browser_main_android.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698